From b92831e8157caa60b217bf05c689af89d450bb77 Mon Sep 17 00:00:00 2001 From: Anonymous <> Date: Sat, 20 Jul 2024 20:26:10 -0400 Subject: [PATCH] Init --- README.md | 44 + dist/_index.lua | 82 + dist/actions/mage/arcane.lua | 11 + dist/actions/mage/fire.lua | 11 + dist/actions/mage/frost.lua | 11 + dist/managers/action-manager.lua | 191 + dist/managers/aura-manager.lua | 84 + dist/managers/bindings-manager.lua | 325 + dist/managers/command-manager.lua | 34 + dist/managers/event-manager.lua | 59 + dist/managers/mob-manager.lua | 233 + dist/managers/player-state-manager.lua | 116 + dist/utils/aura-utils.lua | 32 + dist/utils/cast-util.lua | 57 + dist/utils/mob-utils.lua | 517 + dist/utils/spell-utils.lua | 152 + dist/utils/vector-utils.lua | 163 + lib/BlizzardInterfaceCode | 1 + lib/dkjson/CMakeLists.txt | 14 + lib/dkjson/cmake/FindLua.cmake | 118 + lib/dkjson/cmake/dist.cmake | 321 + lib/dkjson/cmake/lua.cmake | 390 + lib/dkjson/dist.info | 14 + lib/dkjson/dkjson-2.5-2.rockspec | 30 + lib/dkjson/dkjson.lua | 714 + lib/dkjson/jsontest.lua | 653 + lib/dkjson/readme.txt | 211 + lib/dkjson/speedtest.lua | 131 + lib/dkjson/versions.txt | 107 + package.json | 34 + pnpm-lock.yaml | 1794 + sample.env | 3 + scripts/clear-dir/index.ts | 17 + scripts/copy-dist/index.ts | 3 + scripts/gen-types/gen-types.ts | 68 + .../helpers/generate-script-object.ts | 71 + .../gen-types/helpers/get-parsed-callbacks.ts | 42 + .../gen-types/helpers/get-parsed-constants.ts | 42 + scripts/gen-types/helpers/get-parsed-enums.ts | 28 + .../helpers/get-parsed-event-data.ts | 37 + .../gen-types/helpers/get-parsed-structs.ts | 48 + .../gen-types/helpers/get-parsed-systems.ts | 45 + scripts/gen-types/shared/constants.ts | 3 + .../gen-types/shared/helpers/only-unique.ts | 3 + .../gen-types/shared/helpers/parse-field.ts | 43 + .../shared/helpers/parse-function.ts | 41 + scripts/gen-types/shared/types/doc-types.ts | 87 + .../shared/types/wow-type-aliases.ts | 129 + scripts/lua-docs/docs/docs.json | 70262 ++++++++++++++++ scripts/lua-docs/get-docs.lua | 58 + scripts/tsconfig.json | 9 + src/_index.ts | 95 + src/actions/mage/arcane.ts | 16 + src/actions/mage/fire.ts | 16 + src/actions/mage/frost.ts | 16 + src/managers/action-manager.ts | 230 + src/managers/aura-manager.ts | 99 + src/managers/bindings-manager.ts | 170 + src/managers/command-manager.ts | 51 + src/managers/event-manager.ts | 87 + src/managers/mob-manager.ts | 239 + src/managers/player-state-manager.ts | 104 + src/types/Mekanome.d.ts | 53 + src/types/Tinkr.d.ts | 319 + src/types/Wow/callbacks.d.ts | 55 + src/types/Wow/constants.d.ts | 168 + src/types/Wow/enums.d.ts | 5033 ++ src/types/Wow/events.d.ts | 5121 ++ src/types/Wow/scripts.d.ts | 2413 + src/types/Wow/structs.d.ts | 5548 ++ src/types/Wow/systems.d.ts | 10532 +++ src/types/Wow/undocumented.d.ts | 982 + src/utils/aura-utils.ts | 52 + src/utils/cast-util.ts | 75 + src/utils/mob-utils.ts | 682 + src/utils/spell-utils.ts | 249 + src/utils/vector-utils.ts | 210 + tsconfig.json | 26 + 78 files changed, 110334 insertions(+) create mode 100644 README.md create mode 100644 dist/_index.lua create mode 100644 dist/actions/mage/arcane.lua create mode 100644 dist/actions/mage/fire.lua create mode 100644 dist/actions/mage/frost.lua create mode 100644 dist/managers/action-manager.lua create mode 100644 dist/managers/aura-manager.lua create mode 100644 dist/managers/bindings-manager.lua create mode 100644 dist/managers/command-manager.lua create mode 100644 dist/managers/event-manager.lua create mode 100644 dist/managers/mob-manager.lua create mode 100644 dist/managers/player-state-manager.lua create mode 100644 dist/utils/aura-utils.lua create mode 100644 dist/utils/cast-util.lua create mode 100644 dist/utils/mob-utils.lua create mode 100644 dist/utils/spell-utils.lua create mode 100644 dist/utils/vector-utils.lua create mode 160000 lib/BlizzardInterfaceCode create mode 100644 lib/dkjson/CMakeLists.txt create mode 100644 lib/dkjson/cmake/FindLua.cmake create mode 100644 lib/dkjson/cmake/dist.cmake create mode 100644 lib/dkjson/cmake/lua.cmake create mode 100644 lib/dkjson/dist.info create mode 100644 lib/dkjson/dkjson-2.5-2.rockspec create mode 100644 lib/dkjson/dkjson.lua create mode 100644 lib/dkjson/jsontest.lua create mode 100644 lib/dkjson/readme.txt create mode 100644 lib/dkjson/speedtest.lua create mode 100644 lib/dkjson/versions.txt create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 sample.env create mode 100644 scripts/clear-dir/index.ts create mode 100644 scripts/copy-dist/index.ts create mode 100644 scripts/gen-types/gen-types.ts create mode 100644 scripts/gen-types/helpers/generate-script-object.ts create mode 100644 scripts/gen-types/helpers/get-parsed-callbacks.ts create mode 100644 scripts/gen-types/helpers/get-parsed-constants.ts create mode 100644 scripts/gen-types/helpers/get-parsed-enums.ts create mode 100644 scripts/gen-types/helpers/get-parsed-event-data.ts create mode 100644 scripts/gen-types/helpers/get-parsed-structs.ts create mode 100644 scripts/gen-types/helpers/get-parsed-systems.ts create mode 100644 scripts/gen-types/shared/constants.ts create mode 100644 scripts/gen-types/shared/helpers/only-unique.ts create mode 100644 scripts/gen-types/shared/helpers/parse-field.ts create mode 100644 scripts/gen-types/shared/helpers/parse-function.ts create mode 100644 scripts/gen-types/shared/types/doc-types.ts create mode 100644 scripts/gen-types/shared/types/wow-type-aliases.ts create mode 100644 scripts/lua-docs/docs/docs.json create mode 100644 scripts/lua-docs/get-docs.lua create mode 100644 scripts/tsconfig.json create mode 100644 src/_index.ts create mode 100644 src/actions/mage/arcane.ts create mode 100644 src/actions/mage/fire.ts create mode 100644 src/actions/mage/frost.ts create mode 100644 src/managers/action-manager.ts create mode 100644 src/managers/aura-manager.ts create mode 100644 src/managers/bindings-manager.ts create mode 100644 src/managers/command-manager.ts create mode 100644 src/managers/event-manager.ts create mode 100644 src/managers/mob-manager.ts create mode 100644 src/managers/player-state-manager.ts create mode 100644 src/types/Mekanome.d.ts create mode 100644 src/types/Tinkr.d.ts create mode 100644 src/types/Wow/callbacks.d.ts create mode 100644 src/types/Wow/constants.d.ts create mode 100644 src/types/Wow/enums.d.ts create mode 100644 src/types/Wow/events.d.ts create mode 100644 src/types/Wow/scripts.d.ts create mode 100644 src/types/Wow/structs.d.ts create mode 100644 src/types/Wow/systems.d.ts create mode 100644 src/types/Wow/undocumented.d.ts create mode 100644 src/utils/aura-utils.ts create mode 100644 src/utils/cast-util.ts create mode 100644 src/utils/mob-utils.ts create mode 100644 src/utils/spell-utils.ts create mode 100644 src/utils/vector-utils.ts create mode 100644 tsconfig.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..4c3955a --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +# Mekanome + +Mekanome is a TypeScript based SDK for building combat rotations for the tinkr unlocker on macOS. Heavily inspired by the Bastion project, it aims to be a more type-safe, developer friendly, and potentially more secure (maybe, who really knows) way of building rotations for tinkr. + +## Developing + +1. Clone or fork this repo and run `pnpm i` to install its dependencies. I prefer `pnpm` so that's what this project uses as a package manager, but you prefer npm or yarn you should be able to switch to them without issue. +2. The types in the repo should be up to date, but if not you'll need to re-generate them. See the below section for details on how to do that. +3. Create a .env file and copy ./sample.env into it. Fill in the config so it matches your set up. +4. Running `pnpm run build:full` will clear out your Mekanome dist directory, your Tinkr scripts directory, compile your typescript code to lua, and copy it to both the Mekanome dist and Tinkr scripts directories. *WARNING: This will completely delete and replace your Tinkr scripts directory. If you have anything in there you dont want to delete, I suggest running `build:dist` instead and copying the generated code manually.* +6. You should now have a working version of Mekanome ready to be loaded when you next run the game. + +## Generating types + +This repo should come with up to date types, but just in case it doesn't and you need to generate your own the process is as follows: + +1. Navigate into the blizzard interface code library with `cd ./lib/BlizzardInterfaceCode` and run `git pull` to pull in the latest documentation, then navigate back to the root with `cd ../../`. +2. Running `pnpm run lua-docs:full` will grab the documentation from the interface code and format them into JSON. +3. Next run `pnpm run types:full` to convert the JSON we just generated into usable types. If you run into an error that says something like "Error: Encountered unknown string type: "X"" its because "X" is typed in the documentation in a way that cant easily be translated into typescript. See `wow-type-aliases.ts` to fix that. +4. You should now have workable types for most of the World of Warcraft lua APIs. Some functions / systems are not included in the BlizzardInterfaceCode repo and need to be stubbed in manually, to add those see `undocumented.d.ts`. + +## Documentation + +This project is still in its infancy. Once TWW launches I hope to have a solid v1 done and ready to use, including some documentation. Until then things are too in flux document. + +## FAQ + +#### More Secure? + +Ideally 😅. Mekanome interacts with WoW a little bit differently than Bastion does, in a way that I suspect (and may never be able to confirm) is "safer" from a detection standpoint. Not too long ago Blizzard checked in some code that seemed to be incrementing a count of binding usage whenever an action button was pressed or clicked. This could mean nothing, or it could mean that they intend to use this as some sort of detection method when comparing real players vs those using an unlocker like Tinkr since most rotations / bots will use the "CastSpellByName" function to cast their spells skipping the incrementation of this new binding usage count. If Blizzard sees a player with a bunch of successful spell casts, and a binding usage count that is wildly off that number it could look suspect. + +Again though, we may never know if this is anything worth being worried about. Ive just decided to err on the side of caution. + +#### So I have to bind all my spells? + +All of the spells used by the rotations built with Mekanome require that the spell is on a default Blizzard UI action bar. They don't necessarily have to have a corresponding keybind -- since clicking a button will also increment its usage count -- but I'd suggest at least binding the rotations most used spells since a real human being cant really click buttons with the speed that Mekanome will run their corresponding bindings. + +#### Wait, default UI? + +Currently Mekanome will not work with action bars from ELVUI, Bartender, or similar addons. I use default action bars, and supporting these addons would require installing them and implementing handling for the additional action buttons they create. If someone wants to put in the effort to add that support I'd gladly approve their PR, I just don't really want to. Sorry! + +#### Who is this for? + +Developers who like typescript and developing rotations for Tinkr. I'll be including some rotations that I use as part of this package, but they'll be tailored to my needs and if you message me asking about them I'll just block you 💅. \ No newline at end of file diff --git a/dist/_index.lua b/dist/_index.lua new file mode 100644 index 0000000..012169d --- /dev/null +++ b/dist/_index.lua @@ -0,0 +1,82 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +-- Lua Library inline imports +local function __TS__ObjectKeys(obj) + local result = {} + local len = 0 + for key in pairs(obj) do + len = len + 1 + result[len] = key + end + return result +end + +local function __TS__ArrayForEach(self, callbackFn, thisArg) + for i = 1, #self do + callbackFn(thisArg, self[i], i - 1, self) + end +end +-- End of Lua Library inline imports +local ____exports = {} +local _Tinkr = ... +local Tinkr = _Tinkr +local function Print(____bindingPattern0) + local color + local level + local prefix + local text + text = ____bindingPattern0.text + prefix = ____bindingPattern0.prefix + level = ____bindingPattern0.level + color = ____bindingPattern0.color + local textColor = color + if not textColor then + textColor = level == "error" and "FF76CE" or (level == "info" and "94FFD8" or (level == "warn" and "FDFFC2" or "A3D8FF")) + end + print((((("|cFF" .. textColor) .. "[") .. (prefix or "Mekanome")) .. "]|r |cFFFFFFFF ") .. text) +end +local function GetObject(token) + return Object(token) +end +local function Error(text) + Print({text = text, prefix = "ERROR", level = "error"}) + error(text) +end +local Mekanome = {enabled = false, Print = Print, Error = Error, GetObject = GetObject} +local function Load(path) + return Tinkr.Util.Evaluator:LoadString( + Tinkr.Util.File:Read(path), + {Tinkr, Mekanome}, + path + ).default +end +local function LoadDirectoryFiles(path) + local directories = ListDirectories(path) + for ____, directory in ipairs(directories) do + LoadDirectoryFiles((path .. "/") .. directory) + end + local files = ListFiles(path) + for ____, file in ipairs(files) do + Load((path .. "/") .. file) + Print({text = (path .. "/") .. file, prefix = "Loaded"}) + end +end +local function Init() + Print({text = "(V) (°,,,,°) (V)"}) + LoadDirectoryFiles("scripts/utils") + LoadDirectoryFiles("scripts/managers") + LoadDirectoryFiles("scripts/actions") + local keys = __TS__ObjectKeys(Mekanome) + __TS__ArrayForEach( + keys, + function(____, key) + local module = Mekanome[key] + if module ~= nil and type(module) == "table" and module.Init ~= nil then + module:Init() + Print({text = key, prefix = "Initialized", level = "info"}) + end + end + ) +end +Init() +____exports.default = {} +return ____exports diff --git a/dist/actions/mage/arcane.lua b/dist/actions/mage/arcane.lua new file mode 100644 index 0000000..ca1f294 --- /dev/null +++ b/dist/actions/mage/arcane.lua @@ -0,0 +1,11 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +local ____exports = {} +local _, _Mekanome = ... +local Mekanome = _Mekanome +local ArcaneInt = Mekanome.SpellUtils.Create(1459) +local function ArcaneMage() + return Mekanome.SpellUtils.SelfCast(ArcaneInt) +end +Mekanome.ActionManager.Add("arcane_mage", {run = ArcaneMage, priority = 1, loadConditions = {spec = 1, class = 8}}) +____exports.default = nil +return ____exports diff --git a/dist/actions/mage/fire.lua b/dist/actions/mage/fire.lua new file mode 100644 index 0000000..cf580aa --- /dev/null +++ b/dist/actions/mage/fire.lua @@ -0,0 +1,11 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +local ____exports = {} +local _, _Mekanome = ... +local Mekanome = _Mekanome +local function FireMage() + print("Fire!") + return +end +Mekanome.ActionManager.Add("fire_mage", {run = FireMage, priority = 1, loadConditions = {spec = 2, class = 8}}) +____exports.default = nil +return ____exports diff --git a/dist/actions/mage/frost.lua b/dist/actions/mage/frost.lua new file mode 100644 index 0000000..da4b997 --- /dev/null +++ b/dist/actions/mage/frost.lua @@ -0,0 +1,11 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +local ____exports = {} +local _, _Mekanome = ... +local Mekanome = _Mekanome +local function FrostMage() + print("Frost!") + return nil +end +Mekanome.ActionManager.Add("frost_mage", {run = FrostMage, priority = 1, loadConditions = {spec = 3, class = 8}}) +____exports.default = nil +return ____exports diff --git a/dist/managers/action-manager.lua b/dist/managers/action-manager.lua new file mode 100644 index 0000000..3546eab --- /dev/null +++ b/dist/managers/action-manager.lua @@ -0,0 +1,191 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +-- Lua Library inline imports +local function __TS__ArraySort(self, compareFn) + if compareFn ~= nil then + table.sort( + self, + function(a, b) return compareFn(nil, a, b) < 0 end + ) + else + table.sort(self) + end + return self +end + +local function __TS__ObjectAssign(target, ...) + local sources = {...} + for i = 1, #sources do + local source = sources[i] + for key in pairs(source) do + target[key] = source[key] + end + end + return target +end +-- End of Lua Library inline imports +local ____exports = {} +local _, _Mekanome = ... +local Mekanome = _Mekanome +local actions = {} +local isInitialized = false +local isMouseoverSettingEnabled = false +--- Evaluates the actions load conditions to tell the ActionManager +-- wether or not this action should be loaded. +-- +-- @param loadConditions ActionLoadConditions +-- @returns boolean +local function GetIsActionLoaded(loadConditions) + local matchesClass = true + local matchesSpec = true + local matchesCustom = true + if loadConditions.class ~= nil then + local ____, ____, classId = UnitClass("player") + matchesClass = loadConditions.class == classId + end + if (loadConditions and loadConditions.spec) ~= nil then + matchesSpec = loadConditions.spec == GetSpecialization() + end + if loadConditions.custom ~= nil then + matchesCustom = loadConditions:custom() + end + return matchesClass == true and matchesSpec == true and matchesCustom == true +end +--- Returns the actions map in array format, sorted by priority. +local function GetSortedActions() + local actionsArray = {} + for ____, action in pairs(actions) do + actionsArray[#actionsArray + 1] = action + end + return __TS__ArraySort( + actionsArray, + function(____, a, b) + return a.priority - b.priority + end + ) +end +--- Adds an action to the manager to call inside its ticker if loaded. +-- +-- @param name A unique name to identify the action. +-- @param action The function to call for the action. +-- @param options Options for the action to add. +local function Add(name, options) + if actions[name] ~= nil then + error( + Mekanome.Error(("Tried to add action " .. name) .. " but it already exists."), + 0 + ) + end + local ____temp_2 + if options.loadConditions ~= nil then + ____temp_2 = GetIsActionLoaded(options.loadConditions) + else + ____temp_2 = false + end + local loaded = ____temp_2 + local priority = options.priority + if priority == nil then + local sortedActions = GetSortedActions() + if #sortedActions == 0 then + priority = 1 + else + local lastAction = sortedActions[#sortedActions] + priority = lastAction.priority + 1 + end + end + actions[name] = { + priority = priority, + run = options.run, + loadConditions = options.loadConditions, + loaded = loaded, + name = name + } + if loaded then + Mekanome.Print({text = name, prefix = "Module Loaded", level = "info"}) + end +end +--- Removes the action from the list. +-- +-- @param name The name of the action to remove. +local function Remove(name) + if actions[name] ~= nil then + actions[name] = nil + end +end +--- Calls the list of loaded actions, in order. +-- If an action returns a binding, that binding is run and the loop is terminted +-- for a tick. +local function CallActions() + local actionList = GetSortedActions() + for ____, action in ipairs(actionList) do + if action and action.loaded then + local castable = action.run() + if castable ~= nil then + Mekanome.Cast(castable) + break + end + end + end +end +--- In order to cast on targets that arent the active target, we need +-- to leverage mouse over casting. If the setting isnt enabled, Mekanome +-- will not be able to cast on mobs that aren't the current target. +local function CheckSettings() + local mouseoverSetting = C_CVar.GetCVar("enableMouseoverCast") + if mouseoverSetting ~= nil and mouseoverSetting ~= "0" then + isMouseoverSettingEnabled = true + else + isMouseoverSettingEnabled = false + error( + Mekanome.Error("Please enable mouseover casting in the settings menu."), + 0 + ) + end +end +--- Initializes the action manager. +local function Init() + if isInitialized == false then + CheckSettings() + C_Timer.NewTicker( + 0.15, + function() + if Mekanome.enabled and isMouseoverSettingEnabled then + Mekanome.MobManager.Refresh() + Mekanome.PlayerStateManager.Refresh() + CallActions() + end + end, + nil + ) + Mekanome.EventManager.RegisterEventHandler( + "PLAYER_SPECIALIZATION_CHANGED", + function() + for name, action in pairs(actions) do + if action.loadConditions then + local loaded = GetIsActionLoaded(action.loadConditions) + if loaded ~= action.loaded then + actions[name] = __TS__ObjectAssign({}, action, {loaded = loaded}) + Mekanome.Print({text = name, level = "info", prefix = loaded and "Loaded Module" or "Unloaded Module"}) + end + end + end + end, + "am_spec_change" + ) + Mekanome.EventManager.RegisterEventHandler( + "CVAR_UPDATE", + function(____, ____bindingPattern0) + local eventName + eventName = ____bindingPattern0[1] + if eventName == "enableMouseoverCast" then + CheckSettings() + end + end, + "am_cvar_update" + ) + isInitialized = true + end +end +local _ActionManager = {Add = Add, Remove = Remove, Init = Init} +Mekanome.ActionManager = _ActionManager +____exports.default = {} +return ____exports diff --git a/dist/managers/aura-manager.lua b/dist/managers/aura-manager.lua new file mode 100644 index 0000000..a2fd1f8 --- /dev/null +++ b/dist/managers/aura-manager.lua @@ -0,0 +1,84 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +-- Lua Library inline imports +local function __TS__ArrayForEach(self, callbackFn, thisArg) + for i = 1, #self do + callbackFn(thisArg, self[i], i - 1, self) + end +end +-- End of Lua Library inline imports +local ____exports = {} +local _, _Mekanome = ... +local Mekanome = _Mekanome +local function New(token) + local auras = {} + local helpfulSlots = {C_UnitAuras.GetAuraSlots(token, "HELPFUL", 200, nil)} + __TS__ArrayForEach( + helpfulSlots, + function(____, s) + if s ~= nil then + local aura = C_UnitAuras.GetAuraDataBySlot(token, s) + if aura then + auras[aura.auraInstanceID] = aura + end + end + end + ) + local harmfulSlots = {C_UnitAuras.GetAuraSlots(token, "HARMFUL", 200, nil)} + __TS__ArrayForEach( + harmfulSlots, + function(____, s) + if s ~= nil then + local aura = C_UnitAuras.GetAuraDataBySlot(token, s) + if aura then + auras[aura.auraInstanceID] = aura + end + end + end + ) + return auras +end +local function GetUpdatedAuras(updateInfo, mob) + local auras = {} + if updateInfo.isFullUpdate then + return New(mob.token) + end + if mob.auras ~= nil then + for instanceId, aura in pairs(mob.auras) do + auras[instanceId] = aura + end + end + if updateInfo.removedAuraInstanceIDs ~= nil then + __TS__ArrayForEach( + updateInfo.removedAuraInstanceIDs, + function(____, id) + if auras[id] ~= nil then + auras[id] = nil + end + end + ) + end + if updateInfo.addedAuras ~= nil then + __TS__ArrayForEach( + updateInfo.addedAuras, + function(____, data) + auras[data.auraInstanceID] = data + end + ) + end + if updateInfo.updatedAuraInstanceIDs then + __TS__ArrayForEach( + updateInfo.updatedAuraInstanceIDs, + function(____, id) + local data = C_UnitAuras.GetAuraDataByAuraInstanceID(mob.token, id) + if data then + auras[data.auraInstanceID] = data + end + end + ) + end + return auras +end +local _AuraManager = {New = New, GetUpdatedAuras = GetUpdatedAuras} +Mekanome.AuraManager = _AuraManager +____exports.default = {} +return ____exports diff --git a/dist/managers/bindings-manager.lua b/dist/managers/bindings-manager.lua new file mode 100644 index 0000000..19994d1 --- /dev/null +++ b/dist/managers/bindings-manager.lua @@ -0,0 +1,325 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +-- Lua Library inline imports +local function __TS__Class(self) + local c = {prototype = {}} + c.prototype.__index = c.prototype + c.prototype.constructor = c + return c +end + +local __TS__Symbol, Symbol +do + local symbolMetatable = {__tostring = function(self) + return ("Symbol(" .. (self.description or "")) .. ")" + end} + function __TS__Symbol(description) + return setmetatable({description = description}, symbolMetatable) + end + Symbol = { + asyncDispose = __TS__Symbol("Symbol.asyncDispose"), + dispose = __TS__Symbol("Symbol.dispose"), + iterator = __TS__Symbol("Symbol.iterator"), + hasInstance = __TS__Symbol("Symbol.hasInstance"), + species = __TS__Symbol("Symbol.species"), + toStringTag = __TS__Symbol("Symbol.toStringTag") + } +end + +local __TS__Iterator +do + local function iteratorGeneratorStep(self) + local co = self.____coroutine + local status, value = coroutine.resume(co) + if not status then + error(value, 0) + end + if coroutine.status(co) == "dead" then + return + end + return true, value + end + local function iteratorIteratorStep(self) + local result = self:next() + if result.done then + return + end + return true, result.value + end + local function iteratorStringStep(self, index) + index = index + 1 + if index > #self then + return + end + return index, string.sub(self, index, index) + end + function __TS__Iterator(iterable) + if type(iterable) == "string" then + return iteratorStringStep, iterable, 0 + elseif iterable.____coroutine ~= nil then + return iteratorGeneratorStep, iterable + elseif iterable[Symbol.iterator] then + local iterator = iterable[Symbol.iterator](iterable) + return iteratorIteratorStep, iterator + else + return ipairs(iterable) + end + end +end + +local Map +do + Map = __TS__Class() + Map.name = "Map" + function Map.prototype.____constructor(self, entries) + self[Symbol.toStringTag] = "Map" + self.items = {} + self.size = 0 + self.nextKey = {} + self.previousKey = {} + if entries == nil then + return + end + local iterable = entries + if iterable[Symbol.iterator] then + local iterator = iterable[Symbol.iterator](iterable) + while true do + local result = iterator:next() + if result.done then + break + end + local value = result.value + self:set(value[1], value[2]) + end + else + local array = entries + for ____, kvp in ipairs(array) do + self:set(kvp[1], kvp[2]) + end + end + end + function Map.prototype.clear(self) + self.items = {} + self.nextKey = {} + self.previousKey = {} + self.firstKey = nil + self.lastKey = nil + self.size = 0 + end + function Map.prototype.delete(self, key) + local contains = self:has(key) + if contains then + self.size = self.size - 1 + local next = self.nextKey[key] + local previous = self.previousKey[key] + if next ~= nil and previous ~= nil then + self.nextKey[previous] = next + self.previousKey[next] = previous + elseif next ~= nil then + self.firstKey = next + self.previousKey[next] = nil + elseif previous ~= nil then + self.lastKey = previous + self.nextKey[previous] = nil + else + self.firstKey = nil + self.lastKey = nil + end + self.nextKey[key] = nil + self.previousKey[key] = nil + end + self.items[key] = nil + return contains + end + function Map.prototype.forEach(self, callback) + for ____, key in __TS__Iterator(self:keys()) do + callback(nil, self.items[key], key, self) + end + end + function Map.prototype.get(self, key) + return self.items[key] + end + function Map.prototype.has(self, key) + return self.nextKey[key] ~= nil or self.lastKey == key + end + function Map.prototype.set(self, key, value) + local isNewValue = not self:has(key) + if isNewValue then + self.size = self.size + 1 + end + self.items[key] = value + if self.firstKey == nil then + self.firstKey = key + self.lastKey = key + elseif isNewValue then + self.nextKey[self.lastKey] = key + self.previousKey[key] = self.lastKey + self.lastKey = key + end + return self + end + Map.prototype[Symbol.iterator] = function(self) + return self:entries() + end + function Map.prototype.entries(self) + local items = self.items + local nextKey = self.nextKey + local key = self.firstKey + return { + [Symbol.iterator] = function(self) + return self + end, + next = function(self) + local result = {done = not key, value = {key, items[key]}} + key = nextKey[key] + return result + end + } + end + function Map.prototype.keys(self) + local nextKey = self.nextKey + local key = self.firstKey + return { + [Symbol.iterator] = function(self) + return self + end, + next = function(self) + local result = {done = not key, value = key} + key = nextKey[key] + return result + end + } + end + function Map.prototype.values(self) + local items = self.items + local nextKey = self.nextKey + local key = self.firstKey + return { + [Symbol.iterator] = function(self) + return self + end, + next = function(self) + local result = {done = not key, value = items[key]} + key = nextKey[key] + return result + end + } + end + Map[Symbol.species] = Map +end + +local function __TS__New(target, ...) + local instance = setmetatable({}, target.prototype) + instance:____constructor(...) + return instance +end +-- End of Lua Library inline imports +local ____exports = {} +local _, _Mekanome = ... +local Mekanome = _Mekanome +local ActionBarButtonNames = { + "ActionButton", + "MultiBarBottomLeftButton", + "MultiBarBottomRightButton", + "MultiBarLeftButton", + "MultiBarRightButton", + "MultiBar5Button", + "MultiBar6Button", + "MultiBar7Button" +} +local BarMap = { + ActionButton = "ACTIONBUTTON", + MultiBarBottomLeftButton = "MULTIACTIONBAR1BUTTON", + MultiBarBottomRightButton = "MULTIACTIONBAR2BUTTON", + MultiBarRightButton = "MULTIACTIONBAR3BUTTON", + MultiBarLeftButton = "MULTIACTIONBAR4BUTTON", + MultiBar5Button = "MULTIACTIONBAR5BUTTON", + MultiBar6Button = "MULTIACTIONBAR6BUTTON" +} +local bindings = __TS__New(Map) +local isInitialized = false +--- Loops through all of the WoW action bar buttons, checks to see if there is a spell +-- or item on them, then stores that relationship for later use. +local function CheckBindings(self) + bindings:clear() + for ____, bar in ipairs(ActionBarButtonNames) do + for i = 1, 12 do + local actionButton = bar .. tostring(i) + local button = _G[actionButton] + if button ~= nil and type(button) == "table" and button.action ~= nil then + local ____type, id = GetActionInfo(button.action) + if ____type == "spell" or ____type == "item" then + local barName = BarMap[bar] + local binding = tostring(barName) .. tostring(i) + bindings:set(button.action, {binding = binding, id = id, type = ____type}) + end + end + end + end + Mekanome.Print({ + text = tostring(bindings.size), + prefix = "Bindings Update", + level = "warn" + }) +end +--- Returns the ActionButtons binding for a given spell. +-- +-- @param spell +-- @returns ActionButtons +local function GetBindingForSpell(spell) + local binding = nil + for ____, ____value in __TS__Iterator(bindings) do + local bindingInfo = ____value[2] + if bindingInfo.id == spell.id then + binding = bindingInfo.binding + break + end + end + return binding +end +local function CallBinding(binding) + RunBinding(binding) + RunBinding(binding, "up") +end +--- Initializes the bindings manager. +local function Init() + if isInitialized == false then + CheckBindings(nil) + Mekanome.EventManager.RegisterEventHandler( + "ACTIONBAR_SLOT_CHANGED", + function(____, args) + local slot = args[1] + local binding = bindings:get(slot) + local ____type, id = GetActionInfo(slot) + if binding ~= nil then + if ____type ~= binding.type or id ~= binding.id then + CheckBindings(nil) + end + else + if ____type == "spell" or ____type == "item" then + CheckBindings(nil) + end + end + end, + "bm_action_bar_slot_changed" + ) + Mekanome.EventManager.RegisterEventHandler( + "UPDATE_BONUS_ACTIONBAR", + function() + CheckBindings(nil) + end, + "bm_player_mount_display" + ) + Mekanome.EventManager.RegisterEventHandler( + "PLAYER_SPECIALIZATION_CHANGED", + function() + CheckBindings(nil) + end, + "bm_spec_change" + ) + isInitialized = true + end +end +local _BindingsManager = {Init = Init, GetBindingForSpell = GetBindingForSpell, CallBinding = CallBinding} +Mekanome.BindingsManager = _BindingsManager +____exports.default = {} +return ____exports diff --git a/dist/managers/command-manager.lua b/dist/managers/command-manager.lua new file mode 100644 index 0000000..4413e9e --- /dev/null +++ b/dist/managers/command-manager.lua @@ -0,0 +1,34 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +local ____exports = {} +local _Tinkr, _Mekanome = ... +local Tinkr = _Tinkr +local Mekanome = _Mekanome +local meka = Tinkr.Util.Commands:New("meka") +--- Registers a commant to be used under the "meka" namespace +-- +-- @param prefix /meka {prefix} +-- @param callback The function to be called when the command is entered. +-- @param helpText Optional text to help describe the command. +local function Register(prefix, callback, helpText) + meka:Register(prefix, callback, helpText) +end +--- Initializes core commands. +local function Init() + Register( + "toggle", + function() + if Mekanome.enabled == false then + Mekanome.Print({text = "Started"}) + Mekanome.enabled = true + else + Mekanome.Print({text = "Stopped"}) + Mekanome.enabled = false + end + end, + "Toggles Mekanome." + ) +end +local _CommandManager = {Register = Register, Init = Init} +Mekanome.CommandManager = _CommandManager +____exports.default = {} +return ____exports diff --git a/dist/managers/event-manager.lua b/dist/managers/event-manager.lua new file mode 100644 index 0000000..3718b70 --- /dev/null +++ b/dist/managers/event-manager.lua @@ -0,0 +1,59 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +local ____exports = {} +local _, _Mekanome = ... +local Mekanome = _Mekanome +local events = {} +local frame = CreateFrame("Frame") +frame:SetScript( + "OnEvent", + function(f, event, ...) + local args = {...} + local callbacks = events[event] + if callbacks then + for ____, cb in pairs(callbacks) do + cb(nil, args) + end + end + end +) +--- Registers an event to listen to. +-- +-- @param event The name of the wow event. +-- @param callback The function to call when the event triggers. +-- @param id The ID specific to this callback, so that multiple handlers can be added per event. +local function RegisterEventHandler(event, callback, id) + local existingHandlers = events[event] + if existingHandlers then + if existingHandlers[id] ~= nil then + return + end + existingHandlers[id] = callback + events[event] = existingHandlers + else + frame:RegisterEvent(event) + local handlers = {} + handlers[id] = callback + events[event] = handlers + Mekanome.Print({text = event, prefix = "Registered", level = "info"}) + end +end +--- Unregisters a Wow event handler. +-- +-- @param event The event to unregister from. +-- @param id The ID of the handler to unregister. +local function UnregisterEventHandler(event, id) + local handlers = events[event] + if handlers and handlers[id] ~= nil then + handlers[id] = nil + Mekanome.Print({text = (("Event: " .. event) .. " | ID: ") .. id, prefix = "Handler", level = "error"}) + end + if handlers and next(handlers) == nil == true then + events[event] = nil + frame:UnregisterEvent(event) + Mekanome.Print({text = event, prefix = "Event", level = "error"}) + end +end +local _EventManager = {RegisterEventHandler = RegisterEventHandler, UnregisterEventHandler = UnregisterEventHandler} +Mekanome.EventManager = _EventManager +____exports.default = {} +return ____exports diff --git a/dist/managers/mob-manager.lua b/dist/managers/mob-manager.lua new file mode 100644 index 0000000..44a8992 --- /dev/null +++ b/dist/managers/mob-manager.lua @@ -0,0 +1,233 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +-- Lua Library inline imports +local function __TS__ArrayIncludes(self, searchElement, fromIndex) + if fromIndex == nil then + fromIndex = 0 + end + local len = #self + local k = fromIndex + if fromIndex < 0 then + k = len + fromIndex + end + if k < 0 then + k = 0 + end + for i = k + 1, len do + if self[i] == searchElement then + return true + end + end + return false +end + +local function __TS__ArrayIsArray(value) + return type(value) == "table" and (value[1] ~= nil or next(value) == nil) +end + +local function __TS__ArrayConcat(self, ...) + local items = {...} + local result = {} + local len = 0 + for i = 1, #self do + len = len + 1 + result[len] = self[i] + end + for i = 1, #items do + local item = items[i] + if __TS__ArrayIsArray(item) then + for j = 1, #item do + len = len + 1 + result[len] = item[j] + end + else + len = len + 1 + result[len] = item + end + end + return result +end + +local function __TS__ObjectAssign(target, ...) + local sources = {...} + for i = 1, #sources do + local source = sources[i] + for key in pairs(source) do + target[key] = source[key] + end + end + return target +end +-- End of Lua Library inline imports +local ____exports = {} +local CreateMobFromObject, GetMob, Mekanome, DUMMYS, mobs +function CreateMobFromObject(mobObject) + local ____type = "unknown" + local id = mobObject:id() + local unit = mobObject:unit() + if UnitIsFriend("player", unit) or UnitInParty(unit, nil) or UnitInRaid(unit, nil) then + ____type = "friend" + end + if UnitCanAttack("player", unit) or type(id) == "number" and __TS__ArrayIncludes(DUMMYS, id) then + ____type = "enemy" + end + return { + type = ____type, + token = mobObject:unit(), + guid = mobObject:guid(), + id = mobObject:id(), + auras = Mekanome.AuraManager.New(mobObject:unit()) + } +end +function GetMob(____bindingPattern0) + local guid + local token + token = ____bindingPattern0.token + guid = ____bindingPattern0.guid + local id = nil + if guid then + id = guid + elseif token then + id = token == "none" and token or ObjectGUID(token) + end + if id == nil then + return nil + end + if mobs[id] ~= nil == false then + local gameObject = Object(id) + if gameObject ~= false then + mobs[id] = CreateMobFromObject(gameObject) + end + end + return mobs[id] +end +local _, _Mekanome = ... +Mekanome = _Mekanome +local isInitialized = false +local CREATURE_TYPES_TO_IGNORE = {8, 12, 13, 14} +DUMMYS = { + 31146, + 31144, + 32666, + 32667, + 46647, + 114832, + 153285, + 153292, + 198594, + 194648, + 189632, + 194643, + 194644, + 197833, + 189617, + 194649, + 193563, + 65310, + 66374, + 196394, + 196406, + 199057 +} +mobs = {} +local function GetMobFromObject(mobObject) + return mobs[mobObject:guid()] +end +--- Updates the time in which a mob was last in combat. +-- +-- @param guid The GUID of the mob to update. +local function UpdateCombatTime(guid) + local mob = GetMob({guid = guid}) + if mob and mob.type == "enemy" then + mob.lastCombatTime = GetTime() + mobs[guid] = mob + end +end +--- Refreshes the list of mobs. +local function Refresh() + local touchedMobs = {} + local unitObjects = Objects(5) + local playerObjects = Objects(6) + local activePlayerObject = Objects(7) + local objects = __TS__ArrayConcat( + __TS__ArrayConcat(unitObjects, playerObjects), + activePlayerObject + ) + for ____, gameObject in ipairs(objects) do + local objectType = ObjectCreatureType(gameObject) + if __TS__ArrayIncludes(CREATURE_TYPES_TO_IGNORE, objectType) == false then + local existingMob = GetMobFromObject(gameObject) + local mob = CreateMobFromObject(gameObject) + touchedMobs[#touchedMobs + 1] = mob.guid + if existingMob == nil then + mobs[mob.guid] = mob + else + local isStale = existingMob.id ~= mob.id or existingMob.token ~= mob.token + if isStale then + mobs[existingMob.guid] = __TS__ObjectAssign({}, existingMob, {id = mob.id, token = mob.token}) + end + end + end + end + for guid, _ in pairs(mobs) do + if __TS__ArrayIncludes(touchedMobs, guid) == false then + mobs[guid] = nil + end + end +end +--- Iterates over the mob list, and calls a function for each mob. +-- +-- @param callback Function called for each mob in the list. +-- @param type The type of mobs to iterate over. "enemies_active" iterates over enemies that are in combat. +local function Iterate(callback, ____type) + for _, mob in pairs(mobs) do + if ____type ~= nil then + if ____type == "enemies_active" then + local combatOdds = Mekanome.MobUtils.InCombatOdds(mob) + if combatOdds ~= nil and combatOdds < 0.4 then + callback(nil, mob) + end + elseif mob.type == ____type then + callback(nil, mob) + end + else + callback(nil, mob) + end + end +end +--- Initializes the mob manager. +local function Init() + if isInitialized == false then + Mekanome.EventManager.RegisterEventHandler( + "COMBAT_LOG_EVENT_UNFILTERED", + function() + if Mekanome.enabled then + local ____, ____, ____, source, ____, ____, ____, dest = CombatLogGetCurrentEventInfo() + UpdateCombatTime(source) + UpdateCombatTime(dest) + end + end, + "mm_combat_log_event_unfiltered" + ) + Mekanome.EventManager.RegisterEventHandler( + "UNIT_AURA", + function(____, ____bindingPattern0) + local auraInfo + local token + token = ____bindingPattern0[1] + auraInfo = ____bindingPattern0[2] + local mob = GetMob({token = token}) + if mob then + local updatedAuras = Mekanome.AuraManager.GetUpdatedAuras(auraInfo, mob) + mob.auras = updatedAuras + mobs[mob.guid] = mob + end + end, + "mm_unit_aura" + ) + isInitialized = true + end +end +local _MobManager = {Iterate = Iterate, Refresh = Refresh, GetMob = GetMob, Init = Init} +Mekanome.MobManager = _MobManager +____exports.default = {} +return ____exports diff --git a/dist/managers/player-state-manager.lua b/dist/managers/player-state-manager.lua new file mode 100644 index 0000000..5c1a557 --- /dev/null +++ b/dist/managers/player-state-manager.lua @@ -0,0 +1,116 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +-- Lua Library inline imports +local function __TS__Number(value) + local valueType = type(value) + if valueType == "number" then + return value + elseif valueType == "string" then + local numberValue = tonumber(value) + if numberValue then + return numberValue + end + if value == "Infinity" then + return math.huge + end + if value == "-Infinity" then + return -math.huge + end + local stringWithoutSpaces = string.gsub(value, "%s", "") + if stringWithoutSpaces == "" then + return 0 + end + return 0 / 0 + elseif valueType == "boolean" then + return value and 1 or 0 + else + return 0 / 0 + end +end +-- End of Lua Library inline imports +local ____exports = {} +local _, _Mekanome = ... +local Mekanome = _Mekanome +local isMoving = false +local isCasting = false +local isChanneling = false +local isAlive = true +local isMounted = false +local Player = nil +local Target = nil +local Mouseover = nil +local sqw = C_CVar.GetCVar("SpellQueueWindow") +local spellQueueWindow = sqw ~= nil and __TS__Number(sqw) or 0 +--- Refresh the players state +local function Refresh() + local MobUtils = Mekanome.MobUtils + local MobManager = Mekanome.MobManager + local player = MobManager.GetMob({token = "player"}) + local target = MobManager.GetMob({token = "target"}) + local mouseover = MobManager.GetMob({token = "mouseover"}) + if player == nil then + error( + Mekanome.Error("Unable to refresh player state as player object doesnt exist."), + 0 + ) + end + Player = player + Target = target + Mouseover = mouseover + isMoving = MobUtils.GetIsMoving(player) + isMounted = MobUtils.IsMounted(player) + isAlive = MobUtils.IsAlive(player) + local castEnd = MobUtils.GetCastEndTime(player) + local channelEnd = MobUtils.GetChannelEndTime(player) + if castEnd then + local timeUntilEnd = castEnd - GetTime() + isCasting = timeUntilEnd > spellQueueWindow / 1000 + else + isCasting = false + end + if channelEnd then + local timeUntilEnd = channelEnd - GetTime() + isChanneling = timeUntilEnd > spellQueueWindow / 1000 + else + isChanneling = false + end +end +--- Get the players state +local function GetPlayerState() + if Player == nil then + error( + Mekanome.Error("Unable to get player state as player object doesnt exist."), + 0 + ) + end + return { + Player = Player, + Target = Target, + Mouseover = Mouseover, + spellQueueWindow = spellQueueWindow, + isAlive = isAlive, + isMounted = isMounted, + isMoving = isMoving, + isCasting = isCasting, + isChanneling = isChanneling + } +end +local function Init() + Mekanome.EventManager.RegisterEventHandler( + "CVAR_UPDATE", + function(____, ____bindingPattern0) + local eventName + eventName = ____bindingPattern0[1] + if eventName == "SpellQueueWindow" then + local newSQW = C_CVar.GetCVar("SpellQueueWindow") + if newSQW ~= nil then + spellQueueWindow = __TS__Number(newSQW) + end + end + end, + "tm_cvar_update" + ) +end +local _PlayerStateManager = {Refresh = Refresh, GetPlayerState = GetPlayerState, Init = Init} +Mekanome.PlayerStateManager = _PlayerStateManager +____exports.default = {} +return ____exports diff --git a/dist/utils/aura-utils.lua b/dist/utils/aura-utils.lua new file mode 100644 index 0000000..ccd11bf --- /dev/null +++ b/dist/utils/aura-utils.lua @@ -0,0 +1,32 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +local ____exports = {} +local _, _Mekanome = ... +local Mekanome = _Mekanome +--- Creates a useable aura +local function Create(id, isPlayerAura) + return {id = id, isPlayerAura = isPlayerAura} +end +--- Returns whether or not an aura is active in a list of auras +local function IsUp(aura, mob, secondsToIgnore) + local isUp = false + for ____, auraData in pairs(mob.auras) do + local matchesPlayerFilter = aura.isPlayerAura == nil or auraData.sourceUnit == "player" + if auraData.spellId == aura.id and matchesPlayerFilter then + if auraData.expirationTime == 0 then + isUp = true + else + local expirationTime = auraData.expirationTime - GetTime() + if secondsToIgnore ~= nil then + isUp = expirationTime > secondsToIgnore + else + isUp = expirationTime > 0 + end + end + break + end + end + return isUp +end +local _AuraUtils = {IsUp = IsUp, Create = Create} +Mekanome.AuraUtils = _AuraUtils +return ____exports diff --git a/dist/utils/cast-util.lua b/dist/utils/cast-util.lua new file mode 100644 index 0000000..aaae137 --- /dev/null +++ b/dist/utils/cast-util.lua @@ -0,0 +1,57 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +local ____exports = {} +local _, _Mekanome = ... +local Mekanome = _Mekanome +--- Casts the provided castable. Can be used for spells, items, macros etc as long as there +-- is a corresponding binding and target / position info. +local function Cast(castable) + local mouseover = Mekanome.GetObject("mouseover") + local function ExecuteBinding() + print(castable.binding) + RunBinding(castable.binding) + RunBinding(castable.binding, "up") + end + local function ClearMouseover() + SetMouseover(nil) + end + local function RestoreMouseover() + if mouseover ~= false then + SetMouseover(mouseover) + end + end + --- Will execute the binding on the player, or active 'target'. + local function TargetOrSelfCast() + ClearMouseover() + ExecuteBinding() + RestoreMouseover() + end + if castable.variant == "self" then + TargetOrSelfCast() + end + if castable.variant == "ground" then + local position = castable.position + ExecuteBinding() + local pending = IsSpellPending() + if pending == 64 then + Click(position.x, position.y, position.z) + end + end + if castable.variant == "target" then + local target = Mekanome.GetObject("target") + local targetGuid = target ~= false and ObjectGUID(target) or nil + local castTarget = castable.target + if targetGuid == nil or castTarget.guid ~= targetGuid then + local targetObj = Mekanome.GetObject(castTarget.token) + if targetObj ~= false then + SetMouseover(targetObj) + ExecuteBinding() + RestoreMouseover() + end + else + TargetOrSelfCast() + end + end +end +Mekanome.Cast = Cast +____exports.default = {} +return ____exports diff --git a/dist/utils/mob-utils.lua b/dist/utils/mob-utils.lua new file mode 100644 index 0000000..3f378a9 --- /dev/null +++ b/dist/utils/mob-utils.lua @@ -0,0 +1,517 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +-- Lua Library inline imports +local function __TS__ArrayIncludes(self, searchElement, fromIndex) + if fromIndex == nil then + fromIndex = 0 + end + local len = #self + local k = fromIndex + if fromIndex < 0 then + k = len + fromIndex + end + if k < 0 then + k = 0 + end + for i = k + 1, len do + if self[i] == searchElement then + return true + end + end + return false +end +-- End of Lua Library inline imports +local ____exports = {} +local ____, _Mekanome = ... +local Mekanome = _Mekanome +--- Check whether or not the mob is a valid wow mob. +local function IsValid(mob) + return mob.token ~= "none" and mob.token ~= nil and Mekanome.GetObject(mob.token) ~= false +end +--- Get whether or not the mob is alive. +local function IsAlive(mob) + return UnitIsDeadOrGhost(mob.token) == false +end +--- Get whether or not the mob is a pet. +local function IsPet(mob) + return UnitIsUnit(mob.token, "pet") +end +--- Get whether or not the player can attack this mob. +local function CanAttack(mob) + local token = mob.token + local isFriend = UnitIsFriend("player", token) + if isFriend then + return false + end + local isAttackable = UnitCanAttack("player", token) + if isAttackable == false then + return false + end + local reaction = UnitReaction("player", token) + if reaction == nil then + return false + else + local isPositiveReaction = reaction >= 5 + if isPositiveReaction then + return false + end + end + return true +end +--- Get the name of the mob. +local function GetName(mob) + local unitName = UnitName(mob.token) + return unitName +end +--- Get the health of the mob. +local function GetHealth(mob) + local token = mob.token + local absorbAmount = UnitGetTotalHealAbsorbs(token) + local health = UnitHealth(token, false) - absorbAmount + return health +end +--- Get the mobs current health expressed as a percentage of their max health. +local function GetHealthPercent(mob) + local health = GetHealth(mob) + local maxHealth = UnitHealthMax(mob.token) + return health / maxHealth * 100 +end +--- Get the mobs default powertype, eg 1 for Rage. +local function GetPowerType(mob) + local powerType = UnitPowerType(mob.token, 0) + return powerType +end +--- Get the mobs maximum power of their default power type, or a specified one. +local function GetMaxPower(mob, powerType) + local maxPower = UnitPowerMax( + mob.token, + powerType or GetPowerType(mob), + false + ) + return maxPower +end +--- Get the current value for the mobs default powertype, or a specified one. +local function GetCurrentPower(mob, powerType) + local power = UnitPower( + mob.token, + powerType or GetPowerType(mob), + false + ) + return power +end +--- Get the current value for the mobs default powertype, or a specified one, expressed as a percentage of the max for that powertype. +local function GetPowerPercent(mob, powerType) + local power = GetCurrentPower(mob, powerType) + local maxPower = GetMaxPower(mob, powerType) + return power / maxPower * 100 +end +--- Gets the group role of the mob if it exists. +local function GetRole(mob) + return UnitGroupRolesAssigned(mob.token) +end +--- Check whether or not the mob is in combat according to the wow api. +local function IsAffectingCombat(mob) + return UnitAffectingCombat(mob.token) +end +--- Returns the Vector3 coords of the mob. +local function GetPosition(mob) + local x, y, z = ObjectPosition(mob.token) + return Mekanome.VectorUtils.Create({x = x, y = y, z = z}) +end +--- Returns distance between two mobs. +local function GetDistanceBetween(referenceMob, compareMob) + return Mekanome.VectorUtils.Distance( + GetPosition(referenceMob), + GetPosition(compareMob) + ) +end +--- Get whether or not a mob can see another mob un-obstructed. +local function CanSee(reference, compare) + local ax, ay, az = ObjectPosition(reference.token) + local ah = ObjectHeight(reference.token) + local attx, atty, attz = GetUnitAttachmentPosition(compare.token, 34) + if attx == nil or ax == nil or ah == nil then + return false + end + if ax == 0 and ay == 0 and az == 0 or attx == 0 and atty == 0 and attz == 0 then + return true + end + local x, y, z = TraceLine( + ax, + ay, + az + ah, + attx, + atty, + attz, + 0 + ) + if x ~= 0 or y ~= 0 or z ~= 0 then + return false + else + return true + end +end +--- Returns whether or not a mob is casting a spell +local function IsCasting(mob) + return ({UnitCastingInfo(mob.token)}) ~= nil +end +--- Returns whether or not a mob is channeling a spell +local function IsChanneling(mob) + return ({UnitChannelInfo(mob.token)}) ~= nil +end +--- Returns whether or not a mob is channeling or casting a spell +local function IsCastingOrChanneling(mob) + return IsChanneling(mob) or IsCasting(mob) +end +local function GetEndTime(startMs, endMs, percent) + local castLength = endMs - startMs + local startTime = startMs / 1000 + local timeUntil = castLength / 1000 * ((percent or 100) / 100) + return startTime + timeUntil +end +--- If a mob is casting a spell, return the time when it will end. +-- +-- @param percent : By default the cast end time is when the cast is complete. If you want to consider +-- a spell as being done once it reaches a certain percentage threshold, pass in this value. +local function GetCastEndTime(mob, percent) + local castingInfo = {UnitCastingInfo(mob.token)} + if castingInfo ~= nil then + local name = castingInfo[1] + local startTimeMS = castingInfo[4] + local endTimeMs = castingInfo[5] + if name ~= nil and startTimeMS ~= nil and endTimeMs ~= nil then + return GetEndTime(startTimeMS, endTimeMs, percent) + end + end + return nil +end +--- If a mob is channeling a spell, return the time when it will end. +-- +-- @param percent : By default the cast end time is when the channel ends. If you want to consider +-- a spell as being done once it reaches a certain percentage threshold, pass in this value. +local function GetChannelEndTime(mob, percent) + local channelInfo = {UnitChannelInfo(mob.token)} + if channelInfo ~= nil then + local name = channelInfo[1] + local startTimeMS = channelInfo[4] + local endTimeMs = channelInfo[5] + if name ~= nil and startTimeMS ~= nil and endTimeMs ~= nil then + return GetEndTime(startTimeMS, endTimeMs, percent) + end + end + return nil +end +local function GetCastOrChannelEndTime(mob, percent) + return GetCastEndTime(mob, percent) or GetChannelEndTime(mob, percent) +end +--- If the mob is casting or channeling a spell, this returns the target mob of said spell. +local function GetCastTarget(mob) + local isMobCasting = IsCastingOrChanneling(mob) + if isMobCasting then + local target = ObjectCastingTarget(mob.token) + if target ~= false then + local targetMob = Mekanome.MobManager.GetMob({guid = target:guid()}) + return targetMob or Mekanome.MobManager.GetMob({token = "none"}) + else + return Mekanome.MobManager.GetMob({token = "none"}) + end + end + return nil +end +--- If the mob is casting or channeling a spell, this returns how far into the cast the mob is, as a percentage. +local function GetCastOrChannelPercentComplete(mob) + local name = nil + local startTimeMS = nil + local endTimeMs = nil + local castingInfo = {UnitCastingInfo(mob.token)} + if castingInfo == nil then + local channelInfo = {UnitChannelInfo(mob.token)} + if channelInfo ~= nil then + name = channelInfo[1] + startTimeMS = channelInfo[4] + endTimeMs = channelInfo[5] + end + else + name = castingInfo[1] + startTimeMS = castingInfo[4] + endTimeMs = castingInfo[5] + end + if name ~= nil and startTimeMS ~= nil and endTimeMs ~= nil then + local start = startTimeMS / 1000 + local finish = endTimeMs / 1000 + local current = GetTime() + return (current - start) / (finish - start) * 100 + end + return nil +end +--- If the mob is casting or channeling a spell, returns whether or not that spell is interruptible. +local function GetIsInterruptible(mob) + local name = nil + local notInterruptible = nil + local castingInfo = {UnitCastingInfo(mob.token)} + if castingInfo == nil then + local channelInfo = {UnitChannelInfo(mob.token)} + if channelInfo ~= nil then + name = channelInfo[1] + notInterruptible = channelInfo[7] + end + else + name = castingInfo[1] + notInterruptible = castingInfo[8] + end + if name ~= nil and notInterruptible ~= nil then + return notInterruptible == false + end + return false +end +--- Returns whether or not a mob is interruptible at a specific percentage of their cast. +-- +-- @param interruptPercent The percent to check against. +-- @param ignoreInterruptible By default this will return false if the active spell is not interruptible. This bypasses that check. +local function GetIsInterruptibleAt(mob, interruptPercent, ignoreInterruptible) + if not ignoreInterruptible and GetIsInterruptible(mob) == false then + return false + end + local castPercent = GetCastOrChannelPercentComplete(mob) + if castPercent and castPercent >= interruptPercent then + return true + end + return false +end +--- Gets whether or not the mob is moving. +local function GetIsMoving(mob) + local currentSpeed = GetUnitSpeed(mob.token) + return currentSpeed > 0 +end +--- Checks if a mob is facing another using their current positions. +local function IsFacingMob(reference, compare) + local rotation = ObjectRotation(reference.token) + local x, y = ObjectPosition(reference.token) + local x2, y2 = ObjectPosition(compare.token) + if not x or not x2 or not rotation then + return false + end + local angle = math.atan2(y2 - y, x2 - x) - rotation + angle = math.deg(angle) + angle = angle % 360 + if angle > 180 then + angle = angle - 360 + end + return math.abs(angle) < 90 +end +--- Checks if a mob is behind another using their current positions. +local function IsBehindMob(reference, compare) + local rotation = ObjectRotation(reference.token) + local x, y = ObjectPosition(reference.token) + local x2, y2 = ObjectPosition(compare.token) + if not x or not x2 or not rotation then + return false + end + local angle = math.atan2(y2 - y, x2 - x) - rotation + angle = math.deg(angle) + angle = angle % 360 + if angle > 180 then + angle = angle - 360 + end + return math.abs(angle) > 90 +end +--- Gets the model ID for the mob. +local function GetModelId(mob) + return ObjectModelId(mob.token) +end +--- Returns whether or not the mob is in a party with the player. +local function IsInParty(mob) + return UnitInParty(mob.token, nil) +end +--- Returns whether or not the mob is in a raid with the player. +local function IsInRaid(mob) + return UnitInRaid(mob.token, nil) ~= nil +end +--- Returns whether or not the mob is in a party or raid with the player. +local function IsInPartyOrRaid(mob) + return IsInParty(mob) or IsInRaid(mob) +end +--- Returns whether or not the player is mounted, or shapeshifted into a mount form. +local function IsMounted(mob) + local isMounted = UnitIsMounted(mob.token) + if isMounted then + return true + end + local mountFormIds = {3, 27, 29} + local shapeShiftId = GetShapeshiftFormID() + return shapeShiftId ~= nil and __TS__ArrayIncludes(mountFormIds, shapeShiftId) +end +--- Returns the "Combat reach" of a mob. The combat reach of a mob is a bounding radius from which distance calcs begin for the purposes of calculating combat distance. +local function GetCombatReach(mob) + return ObjectCombatReach(mob.token) or 0 +end +--- Returns the distance between two mobs, with combat reach accounted for. +local function GetCombatDistanceBetween(reference, compare) + local ____ = GetDistanceBetween(reference, compare) - GetCombatReach(compare) +end +--- Gets whether or not the mob is currently online. +local function GetIsOnline(mob) + return UnitIsConnected(mob.token) +end +--- Get whether or not the mob is being resurrected. +local function HasIncomingRessurection(mob) + return IsAlive(mob) == false and UnitHasIncomingResurrection(mob.token) +end +--- Get whether or not the mob is currently targetting something. +local function HasTarget(mob) + return ObjectTarget(mob.token) ~= nil +end +--- Get the mobs current target. +local function GetTarget(mob) + local objTarget = ObjectTarget(mob.token) + if not objTarget then + return nil + end + local mobManagerMob = Mekanome.MobManager.GetMob({token = objTarget:unit()}) + return mobManagerMob +end +--- Returns whether or not a mob is within a certain distance from another mob, with combat reach accounted for. +local function IsWithinCombatDistance(reference, compare, distance) + if not IsValid(compare) then + return false + end + return GetDistanceBetween(reference, compare) <= distance + GetCombatReach(compare) +end +--- Returns whether or not a mob is within a certain distance from another mob. +local function IsWithinDistance(reference, compare, distance) + return GetDistanceBetween(reference, compare) <= distance +end +--- Returns the number of loss of control effects on the mob. Interrupt lockouts included. +local function GetLossOfControlCount(mob) + return C_LossOfControl.GetActiveLossOfControlDataCountByUnit(mob.token) +end +--- Returns the mobs outgoing missiles. +local function GetOutgoingMissles(self, ____bindingPattern0) + local spellVisualId + local spellId + local target + local reference + reference = ____bindingPattern0.reference + target = ____bindingPattern0.target + spellId = ____bindingPattern0.spellId + spellVisualId = ____bindingPattern0.spellVisualId + local missiles = Missiles() + local results = {} + if type(missiles) == "table" and IsValid(reference) then + for ____, missile in pairs(missiles) do + local ____opt_0 = missile.source + local missileSource = ____opt_0 and ____opt_0:unit() + if missileSource then + local ____UnitIsUnit_result_6 = UnitIsUnit(reference.token, missileSource) + if ____UnitIsUnit_result_6 then + local ____temp_5 = not target + if not ____temp_5 then + local ____UnitIsUnit_4 = UnitIsUnit + local ____opt_2 = missile.target + ____temp_5 = ____UnitIsUnit_4( + ____opt_2 and ____opt_2:unit() or "none", + target.token + ) + end + ____UnitIsUnit_result_6 = ____temp_5 + end + if ____UnitIsUnit_result_6 and (not spellId or not not spellId and spellId == missile.spellId) and (not spellVisualId or not not spellVisualId and spellVisualId == missile.spellVisualId) then + results[#results + 1] = missile + end + end + end + end + return results +end +--- Returns the mobs incoming missiles. +local function GetIncomingMissiles(____bindingPattern0) + local spellVisualId + local spellId + local source + local reference + reference = ____bindingPattern0.reference + source = ____bindingPattern0.source + spellId = ____bindingPattern0.spellId + spellVisualId = ____bindingPattern0.spellVisualId + local missiles = Missiles() + local results = {} + if type(missiles) == "table" and IsValid(reference) then + for ____, missile in pairs(missiles) do + local ____opt_7 = missile.target + local missileTarget = ____opt_7 and ____opt_7:unit() + if missileTarget and UnitIsUnit(reference.token, missileTarget) and (not source or UnitIsUnit(source.token or "none", reference.token)) and (not spellId or spellId == missile.spellId) and (not spellVisualId or spellVisualId == missile.spellVisualId) then + table.insert(results, missile) + end + end + end + return results +end +--- Gets the amount of time the mob has been in combat. +local function GetCombatTime(mob) + if not mob.lastCombatTime then + return nil + end + return GetTime() - mob.lastCombatTime +end +--- Get combat odds (if the last combat time is less than 1 minute ago return 1 / time, else return 0) +-- the closer to 0 the more likely the unit is to be in combat (0 = 100%) 60 = 0% +-- +-- @param mob The mob to check +-- @returns number | undefined +local function InCombatOdds(mob) + local combatTime = GetCombatTime(mob) + if combatTime == nil then + return nil + end + local percent = 1 - combatTime / 60 + return percent * 100 +end +local _MobUtils = { + GetLossOfControlCount = GetLossOfControlCount, + GetTarget = GetTarget, + IsWithinCombatDistance = IsWithinCombatDistance, + IsWithinDistance = IsWithinDistance, + GetOutgoingMissles = GetOutgoingMissles, + GetIncomingMissiles = GetIncomingMissiles, + HasTarget = HasTarget, + HasIncomingRessurection = HasIncomingRessurection, + GetCombatDistanceBetween = GetCombatDistanceBetween, + GetCombatReach = GetCombatReach, + IsInPartyOrRaid = IsInPartyOrRaid, + IsMounted = IsMounted, + GetModelId = GetModelId, + IsInRaid = IsInRaid, + IsInParty = IsInParty, + IsBehindMob = IsBehindMob, + GetIsOnline = GetIsOnline, + IsFacingMob = IsFacingMob, + GetIsMoving = GetIsMoving, + GetIsInterruptible = GetIsInterruptible, + GetCastOrChannelPercentComplete = GetCastOrChannelPercentComplete, + IsCasting = IsCasting, + GetCastOrChannelEndTime = GetCastOrChannelEndTime, + IsChanneling = IsChanneling, + GetIsInterruptibleAt = GetIsInterruptibleAt, + IsCastingOrChanneling = IsCastingOrChanneling, + IsAffectingCombat = IsAffectingCombat, + GetPowerType = GetPowerType, + CanSee = CanSee, + GetMaxPower = GetMaxPower, + GetCurrentPower = GetCurrentPower, + GetPowerPercent = GetPowerPercent, + GetCastTarget = GetCastTarget, + InCombatOdds = InCombatOdds, + GetName = GetName, + CanAttack = CanAttack, + GetHealthPercent = GetHealthPercent, + IsAlive = IsAlive, + GetPosition = GetPosition, + GetDistanceBetween = GetDistanceBetween, + IsPet = IsPet, + GetRole = GetRole, + GetCombatTime = GetCombatTime, + GetChannelEndTime = GetChannelEndTime, + GetCastEndTime = GetCastEndTime +} +Mekanome.MobUtils = _MobUtils +____exports.default = {} +return ____exports diff --git a/dist/utils/spell-utils.lua b/dist/utils/spell-utils.lua new file mode 100644 index 0000000..ba3ec09 --- /dev/null +++ b/dist/utils/spell-utils.lua @@ -0,0 +1,152 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +local ____exports = {} +local _, _Mekanome = ... +local Mekanome = _Mekanome +--- Creates a useable spell +local function Create(id, traits) + local spellInfo = C_Spell.GetSpellInfo(id) + if spellInfo == nil or spellInfo.name == nil then + error( + Mekanome.Error("Unable to find info for spell " .. tostring(id)), + 0 + ) + end + return { + id = id, + minRange = spellInfo.minRange, + maxRange = spellInfo.maxRange, + name = spellInfo.name, + traits = traits + } +end +--- Get cooldown information for the spell. +local function GetCooldownInfo(spell) + local ____, cdDuration, enabled = GetSpellCooldown(spell.id) + local ____, ccDuration = GetSpellLossOfControlCooldown(spell.id) + local ____Mekanome_PlayerStateManager_GetPlayerState_result_0 = Mekanome.PlayerStateManager.GetPlayerState() + local spellQueueWindow = ____Mekanome_PlayerStateManager_GetPlayerState_result_0.spellQueueWindow + local secondsUntilReady = cdDuration == 0 and ccDuration or cdDuration + local secondsUntilCastable = secondsUntilReady - spellQueueWindow / 1000 + return {secondsUntilReady = secondsUntilReady, secondsUntilCastable = secondsUntilCastable < 0 and 0 or secondsUntilCastable, isActive = enabled == 0} +end +--- Handles undefined / funciton traits to get a more usuable set of trait values +local function GetSpellTraits(spell) + local isCastableWhileMoving = false + local isCastableWhileCasting = false + local isOverride = false + if spell.traits ~= nil then + if spell.traits.isOverride ~= nil then + isOverride = spell.traits.isOverride + end + if spell.traits.isCastableWhileCasting ~= nil then + if type(spell.traits.isCastableWhileCasting) == "function" then + isCastableWhileCasting = spell.traits:isCastableWhileCasting() + else + isCastableWhileCasting = spell.traits.isCastableWhileCasting + end + end + if spell.traits.isCastableWhileMoving ~= nil then + if type(spell.traits.isCastableWhileMoving) == "function" then + isCastableWhileMoving = spell.traits:isCastableWhileMoving() + else + isCastableWhileMoving = spell.traits.isCastableWhileMoving + end + end + end + return {isCastableWhileMoving = isCastableWhileMoving, isCastableWhileCasting = isCastableWhileCasting, isOverride = isOverride} +end +--- Evaluates the spells traits & conditions to see if it is currently castable. +local function IsCastable(____bindingPattern0) + local spell + spell = ____bindingPattern0.spell + local target = ____bindingPattern0.target + local position = ____bindingPattern0.position + local player = Mekanome.MobManager.GetMob({token = "player"}) + local ____GetSpellTraits_result_1 = GetSpellTraits(spell) + local isCastableWhileCasting = ____GetSpellTraits_result_1.isCastableWhileCasting + local isCastableWhileMoving = ____GetSpellTraits_result_1.isCastableWhileMoving + local isOverride = ____GetSpellTraits_result_1.isOverride + if player == nil then + return false + end + local traits = Mekanome.PlayerStateManager.GetPlayerState() + if isOverride == true then + if IsSpellKnownOrOverridesKnown(spell.id) ~= true then + return false + end + else + if IsSpellKnown(spell.id) ~= true then + return false + end + end + local ____GetCooldownInfo_result_2 = GetCooldownInfo(spell) + local isActive = ____GetCooldownInfo_result_2.isActive + local secondsUntilCastable = ____GetCooldownInfo_result_2.secondsUntilCastable + print("COOLDOWN: " .. tostring(secondsUntilCastable)) + if isActive then + return false + end + if secondsUntilCastable ~= 0 then + return false + end + if traits.isMoving and isCastableWhileMoving == false then + return false + end + if traits.isCasting == true and isCastableWhileCasting == false then + return false + end + return true +end +--- Get the localized name of the spell. +local function GetName(spell) + local name = C_Spell.GetSpellInfo(spell.id).name + return name +end +--- Gets the action button binding for the provided spell. +local function GetBindingForSpell(spell) + local binding = Mekanome.BindingsManager.GetBindingForSpell(spell) + if binding == nil then + error( + Mekanome.Error(("Unable to cast " .. GetName(spell)) .. " without binding."), + 0 + ) + end + return binding +end +--- Generates a castable to cast the spell on the player +local function SelfCast(spell) + local binding = GetBindingForSpell(spell) + if IsCastable({spell = spell}) == false then + return nil + end + return {id = spell.id, variant = "self", binding = binding} +end +--- Generates a castable to cast the spell at the specified target. +local function TargetCast(spell, _target) + local binding = GetBindingForSpell(spell) + local target = type(_target) == "function" and _target(nil) or _target + if IsCastable({spell = spell, target = target}) == false then + return nil + end + return {id = spell.id, variant = "target", binding = binding, target = target} +end +--- Generates a castable to cast the spell at the specified location +local function GroundCast(spell, _position) + local binding = GetBindingForSpell(spell) + local position = type(_position) == "function" and _position(nil) or _position + if IsCastable({spell = spell, position = position}) == false then + return nil + end + return {id = spell.id, variant = "ground", binding = binding, position = position} +end +local _SpellUtils = { + Create = Create, + GetName = GetName, + GetCooldownInfo = GetCooldownInfo, + SelfCast = SelfCast, + GroundCast = GroundCast, + TargetCast = TargetCast +} +Mekanome.SpellUtils = _SpellUtils +____exports.default = {} +return ____exports diff --git a/dist/utils/vector-utils.lua b/dist/utils/vector-utils.lua new file mode 100644 index 0000000..466bbba --- /dev/null +++ b/dist/utils/vector-utils.lua @@ -0,0 +1,163 @@ +--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] +local ____exports = {} +local _, _Mekanome = ... +local Mekanome = _Mekanome +local function Create(____bindingPattern0) + local z + local y + local x + x = ____bindingPattern0.x + y = ____bindingPattern0.y + z = ____bindingPattern0.z + return {x = x, y = y, z = z} +end +local function Add(a, b) + if type(b) == "number" then + return Create({x = a.x + b, y = a.y + b, z = a.z + b}) + end + return Create({x = a.x + b.x, y = a.y + b.y, z = a.z + b.z}) +end +local function Subtract(a, b) + if type(b) == "number" then + return Create({x = a.x - b, y = a.y - b, z = a.z - b}) + end + return Create({x = a.x - b.x, y = a.y - b.y, z = a.z - b.z}) +end +local function Multiply(a, b) + if type(b) == "number" then + return Create({x = a.x * b, y = a.y * b, z = a.z * b}) + end + return Create({x = a.x * b.x, y = a.y * b.y, z = a.z * b.z}) +end +local function Divide(a, b) + if type(b) == "number" then + return Create({x = a.x / b, y = a.y / b, z = a.z / b}) + end + return Create({x = a.x / b.x, y = a.y / b.y, z = a.z / b.z}) +end +local function Equals(a, b) + return a.x == b.x and a.y == b.y and a.z == b.z +end +local function LessThan(a, b) + return a.x < b.x and a.y < b.y and a.z < b.z +end +local function LessThanOrEqualTo(a, b) + return a.x <= b.x and a.y <= b.y and a.z <= b.z +end +local function Dot(a, b) + return a.x * b.x + a.y * b.y + a.z + b.z +end +local function Cross(a, b) + return Create({x = a.y * b.z - a.z * b.y, y = a.z * b.x - a.x * b.z, z = a.x * b.y - a.y * b.x}) +end +local function Distance(a, b) + return FastDistance( + a.x, + a.y, + a.z, + b.x, + b.y, + b.z + ) +end +local function NormalizeOrientation(orientation) + if orientation < 0 then + local mod = orientation * -1 + mod = mod % (2 * math.pi) + mod = -mod + 2 * math.pi + return mod + else + return orientation % (2 * math.pi) + end +end +local function GetAbsoluteAngle(a, b) + return NormalizeOrientation(math.atan2(b.y - a.y, b.x - a.x)) +end +local function Angle(a, b) + return math.acos(Dot(a, b) / (math.sqrt(a.x * a.x + a.y * a.y + a.z * a.z) * math.sqrt(b.x * b.x + b.y * b.y + b.z * b.z))) +end +local function _GetNormalized(vector) + local length = math.sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z) + return Create({x = vector.x / length, y = vector.y / length, z = vector.z / length}) +end +local function ClampMagnitude(vector, maxLength) + if Dot(vector, vector) > maxLength * maxLength then + return Multiply( + _GetNormalized(vector), + maxLength + ) + else + return vector + end +end +local function _GetMagnitude(vector) + return math.sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z) +end +local function DirectionOrZero(vector) + local magnitude = _GetMagnitude(vector) + if magnitude < 1e-7 then + return Create({x = 0, y = 0, z = 0}) + elseif magnitude < 1.00001 and magnitude > 0.99999 then + return vector + else + return Multiply(vector, 1 / magnitude) + end +end +local function Clamp(x, min, max) + return x < min and min or (x > max and max or x) +end +local function Lerp(a, b, _t) + local t = Clamp(_t, 0, 1) + return Create({x = a.x + (b.x - a.x) * t, y = a.y + (b.y - a.y) * t, z = a.z + (b.z - a.z) * t}) +end +local function MoveTowards(reference, target, maxDistanceDelta) + local toVector = Subtract(target, reference) + local distance = _GetMagnitude(toVector) + if distance <= maxDistanceDelta or distance == 0 then + return target + end + return Divide( + Add(reference, toVector), + distance * maxDistanceDelta + ) +end +local function Project(reference, normal) + local num = Dot(normal, normal) + if num < 1.401298e-45 then + return Create({x = 0, y = 0, z = 0}) + end + return Multiply( + normal, + Dot(reference, normal) / num + ) +end +local function ProjectOnPlane(reference, plane) + return Subtract( + reference, + Project(reference, plane) + ) +end +local _VectorUtils = { + Create = Create, + Add = Add, + Subtract = Subtract, + Multiply = Multiply, + Divide = Divide, + Equals = Equals, + LessThan = LessThan, + LessThanOrEqualTo = LessThanOrEqualTo, + Dot = Dot, + Cross = Cross, + Distance = Distance, + Angle = Angle, + GetAbsoluteAngle = GetAbsoluteAngle, + ClampMagnitude = ClampMagnitude, + DirectionOrZero = DirectionOrZero, + Clamp = Clamp, + Lerp = Lerp, + MoveTowards = MoveTowards, + ProjectOnPlane = ProjectOnPlane +} +Mekanome.VectorUtils = _VectorUtils +____exports.default = {} +return ____exports diff --git a/lib/BlizzardInterfaceCode b/lib/BlizzardInterfaceCode new file mode 160000 index 0000000..31f9338 --- /dev/null +++ b/lib/BlizzardInterfaceCode @@ -0,0 +1 @@ +Subproject commit 31f933887a8f4fadd7740e8beae2d6c248023238 diff --git a/lib/dkjson/CMakeLists.txt b/lib/dkjson/CMakeLists.txt new file mode 100644 index 0000000..2efbabd --- /dev/null +++ b/lib/dkjson/CMakeLists.txt @@ -0,0 +1,14 @@ +# Copyright (C) 2007-2013 LuaDist. +# Created by Peter Drahoš +# Redistribution and use of this file is allowed according to the terms of the MIT license. +# For details see the COPYRIGHT file distributed with LuaDist. +# Please note that the package source code is licensed under its own license. + +project ( dkjson NONE ) +cmake_minimum_required ( VERSION 2.8 ) +include ( cmake/dist.cmake ) +include ( lua ) + +install_lua_module ( dkjson dkjson.lua ) +install_example ( jsontest.lua speedtest.lua ) +install_data ( versions.txt ) \ No newline at end of file diff --git a/lib/dkjson/cmake/FindLua.cmake b/lib/dkjson/cmake/FindLua.cmake new file mode 100644 index 0000000..7fb7ca3 --- /dev/null +++ b/lib/dkjson/cmake/FindLua.cmake @@ -0,0 +1,118 @@ +# Locate Lua library +# This module defines +# LUA_EXECUTABLE, if found +# LUA_FOUND, if false, do not try to link to Lua +# LUA_LIBRARIES +# LUA_INCLUDE_DIR, where to find lua.h +# LUA_VERSION_STRING, the version of Lua found (since CMake 2.8.8) +# +# Note that the expected include convention is +# #include "lua.h" +# and not +# #include +# This is because, the lua location is not standardized and may exist +# in locations other than lua/ + +#============================================================================= +# Copyright 2007-2009 Kitware, Inc. +# Modified to support Lua 5.2 by LuaDist 2012 +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) +# +# The required version of Lua can be specified using the +# standard syntax, e.g. FIND_PACKAGE(Lua 5.1) +# Otherwise the module will search for any available Lua implementation + +# Always search for non-versioned lua first (recommended) +SET(_POSSIBLE_LUA_INCLUDE include include/lua) +SET(_POSSIBLE_LUA_EXECUTABLE lua) +SET(_POSSIBLE_LUA_LIBRARY lua) + +# Determine possible naming suffixes (there is no standard for this) +IF(Lua_FIND_VERSION_MAJOR AND Lua_FIND_VERSION_MINOR) + SET(_POSSIBLE_SUFFIXES "${Lua_FIND_VERSION_MAJOR}${Lua_FIND_VERSION_MINOR}" "${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR}" "-${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR}") +ELSE(Lua_FIND_VERSION_MAJOR AND Lua_FIND_VERSION_MINOR) + SET(_POSSIBLE_SUFFIXES "52" "5.2" "-5.2" "51" "5.1" "-5.1") +ENDIF(Lua_FIND_VERSION_MAJOR AND Lua_FIND_VERSION_MINOR) + +# Set up possible search names and locations +FOREACH(_SUFFIX ${_POSSIBLE_SUFFIXES}) + LIST(APPEND _POSSIBLE_LUA_INCLUDE "include/lua${_SUFFIX}") + LIST(APPEND _POSSIBLE_LUA_EXECUTABLE "lua${_SUFFIX}") + LIST(APPEND _POSSIBLE_LUA_LIBRARY "lua${_SUFFIX}") +ENDFOREACH(_SUFFIX) + +# Find the lua executable +FIND_PROGRAM(LUA_EXECUTABLE + NAMES ${_POSSIBLE_LUA_EXECUTABLE} +) + +# Find the lua header +FIND_PATH(LUA_INCLUDE_DIR lua.h + HINTS + $ENV{LUA_DIR} + PATH_SUFFIXES ${_POSSIBLE_LUA_INCLUDE} + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt +) + +# Find the lua library +FIND_LIBRARY(LUA_LIBRARY + NAMES ${_POSSIBLE_LUA_LIBRARY} + HINTS + $ENV{LUA_DIR} + PATH_SUFFIXES lib64 lib + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt +) + +IF(LUA_LIBRARY) + # include the math library for Unix + IF(UNIX AND NOT APPLE) + FIND_LIBRARY(LUA_MATH_LIBRARY m) + SET( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries") + # For Windows and Mac, don't need to explicitly include the math library + ELSE(UNIX AND NOT APPLE) + SET( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries") + ENDIF(UNIX AND NOT APPLE) +ENDIF(LUA_LIBRARY) + +# Determine Lua version +IF(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h") + FILE(STRINGS "${LUA_INCLUDE_DIR}/lua.h" lua_version_str REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua .+\"") + + STRING(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([^\"]+)\".*" "\\1" LUA_VERSION_STRING "${lua_version_str}") + UNSET(lua_version_str) +ENDIF() + +INCLUDE(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if +# all listed variables are TRUE +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua + REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR + VERSION_VAR LUA_VERSION_STRING) + +MARK_AS_ADVANCED(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_MATH_LIBRARY LUA_EXECUTABLE) + diff --git a/lib/dkjson/cmake/dist.cmake b/lib/dkjson/cmake/dist.cmake new file mode 100644 index 0000000..310ef94 --- /dev/null +++ b/lib/dkjson/cmake/dist.cmake @@ -0,0 +1,321 @@ +# LuaDist CMake utility library. +# Provides sane project defaults and macros common to LuaDist CMake builds. +# +# Copyright (C) 2007-2012 LuaDist. +# by David Manura, Peter Drahoš +# Redistribution and use of this file is allowed according to the terms of the MIT license. +# For details see the COPYRIGHT file distributed with LuaDist. +# Please note that the package source code is licensed under its own license. + +## Extract information from dist.info +if ( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/dist.info ) + message ( FATAL_ERROR + "Missing dist.info file (${CMAKE_CURRENT_SOURCE_DIR}/dist.info)." ) +endif () +file ( READ ${CMAKE_CURRENT_SOURCE_DIR}/dist.info DIST_INFO ) +if ( "${DIST_INFO}" STREQUAL "" ) + message ( FATAL_ERROR "Failed to load dist.info." ) +endif () +# Reads field `name` from dist.info string `DIST_INFO` into variable `var`. +macro ( _parse_dist_field name var ) + string ( REGEX REPLACE ".*${name}[ \t]?=[ \t]?[\"']([^\"']+)[\"'].*" "\\1" + ${var} "${DIST_INFO}" ) + if ( ${var} STREQUAL DIST_INFO ) + message ( FATAL_ERROR "Failed to extract \"${var}\" from dist.info" ) + endif () +endmacro () +# +_parse_dist_field ( name DIST_NAME ) +_parse_dist_field ( version DIST_VERSION ) +_parse_dist_field ( license DIST_LICENSE ) +_parse_dist_field ( author DIST_AUTHOR ) +_parse_dist_field ( maintainer DIST_MAINTAINER ) +_parse_dist_field ( url DIST_URL ) +_parse_dist_field ( desc DIST_DESC ) +message ( "DIST_NAME: ${DIST_NAME}") +message ( "DIST_VERSION: ${DIST_VERSION}") +message ( "DIST_LICENSE: ${DIST_LICENSE}") +message ( "DIST_AUTHOR: ${DIST_AUTHOR}") +message ( "DIST_MAINTAINER: ${DIST_MAINTAINER}") +message ( "DIST_URL: ${DIST_URL}") +message ( "DIST_DESC: ${DIST_DESC}") +string ( REGEX REPLACE ".*depends[ \t]?=[ \t]?[\"']([^\"']+)[\"'].*" "\\1" + DIST_DEPENDS ${DIST_INFO} ) +if ( DIST_DEPENDS STREQUAL DIST_INFO ) + set ( DIST_DEPENDS "" ) +endif () +message ( "DIST_DEPENDS: ${DIST_DEPENDS}") +## 2DO: Parse DIST_DEPENDS and try to install Dependencies with automatically using externalproject_add + + +## INSTALL DEFAULTS (Relative to CMAKE_INSTALL_PREFIX) +# Primary paths +set ( INSTALL_BIN bin CACHE PATH "Where to install binaries to." ) +set ( INSTALL_LIB lib CACHE PATH "Where to install libraries to." ) +set ( INSTALL_INC include CACHE PATH "Where to install headers to." ) +set ( INSTALL_ETC etc CACHE PATH "Where to store configuration files" ) +set ( INSTALL_SHARE share CACHE PATH "Directory for shared data." ) + +# Secondary paths +option ( INSTALL_VERSION + "Install runtime libraries and executables with version information." OFF) +set ( INSTALL_DATA ${INSTALL_SHARE}/${DIST_NAME} CACHE PATH + "Directory the package can store documentation, tests or other data in.") +set ( INSTALL_DOC ${INSTALL_DATA}/doc CACHE PATH + "Recommended directory to install documentation into.") +set ( INSTALL_EXAMPLE ${INSTALL_DATA}/example CACHE PATH + "Recommended directory to install examples into.") +set ( INSTALL_TEST ${INSTALL_DATA}/test CACHE PATH + "Recommended directory to install tests into.") +set ( INSTALL_FOO ${INSTALL_DATA}/etc CACHE PATH + "Where to install additional files") + +# Tweaks and other defaults +# Setting CMAKE to use loose block and search for find modules in source directory +set ( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true ) +set ( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH} ) +option ( BUILD_SHARED_LIBS "Build shared libraries" ON ) + +# In MSVC, prevent warnings that can occur when using standard libraries. +if ( MSVC ) + add_definitions ( -D_CRT_SECURE_NO_WARNINGS ) +endif () + +# RPath and relative linking +option ( USE_RPATH "Use relative linking." ON) +if ( USE_RPATH ) + string ( REGEX REPLACE "[^!/]+" ".." UP_DIR ${INSTALL_BIN} ) + set ( CMAKE_SKIP_BUILD_RPATH FALSE CACHE STRING "" FORCE ) + set ( CMAKE_BUILD_WITH_INSTALL_RPATH FALSE CACHE STRING "" FORCE ) + set ( CMAKE_INSTALL_RPATH $ORIGIN/${UP_DIR}/${INSTALL_LIB} + CACHE STRING "" FORCE ) + set ( CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE STRING "" FORCE ) + set ( CMAKE_INSTALL_NAME_DIR @executable_path/${UP_DIR}/${INSTALL_LIB} + CACHE STRING "" FORCE ) +endif () + +## MACROS +# Parser macro +macro ( parse_arguments prefix arg_names option_names) + set ( DEFAULT_ARGS ) + foreach ( arg_name ${arg_names} ) + set ( ${prefix}_${arg_name} ) + endforeach () + foreach ( option ${option_names} ) + set ( ${prefix}_${option} FALSE ) + endforeach () + + set ( current_arg_name DEFAULT_ARGS ) + set ( current_arg_list ) + foreach ( arg ${ARGN} ) + set ( larg_names ${arg_names} ) + list ( FIND larg_names "${arg}" is_arg_name ) + if ( is_arg_name GREATER -1 ) + set ( ${prefix}_${current_arg_name} ${current_arg_list} ) + set ( current_arg_name ${arg} ) + set ( current_arg_list ) + else () + set ( loption_names ${option_names} ) + list ( FIND loption_names "${arg}" is_option ) + if ( is_option GREATER -1 ) + set ( ${prefix}_${arg} TRUE ) + else () + set ( current_arg_list ${current_arg_list} ${arg} ) + endif () + endif () + endforeach () + set ( ${prefix}_${current_arg_name} ${current_arg_list} ) +endmacro () + + +# install_executable ( executable_targets ) +# Installs any executables generated using "add_executable". +# USE: install_executable ( lua ) +# NOTE: subdirectories are NOT supported +set ( CPACK_COMPONENT_RUNTIME_DISPLAY_NAME "${DIST_NAME} Runtime" ) +set ( CPACK_COMPONENT_RUNTIME_DESCRIPTION + "Executables and runtime libraries. Installed into ${INSTALL_BIN}." ) +macro ( install_executable ) + foreach ( _file ${ARGN} ) + if ( INSTALL_VERSION ) + set_target_properties ( ${_file} PROPERTIES VERSION ${DIST_VERSION} + SOVERSION ${DIST_VERSION} ) + endif () + install ( TARGETS ${_file} RUNTIME DESTINATION ${INSTALL_BIN} + COMPONENT Runtime ) + endforeach() +endmacro () + +# install_library ( library_targets ) +# Installs any libraries generated using "add_library" into apropriate places. +# USE: install_library ( libexpat ) +# NOTE: subdirectories are NOT supported +set ( CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "${DIST_NAME} Development Libraries" ) +set ( CPACK_COMPONENT_LIBRARY_DESCRIPTION + "Static and import libraries needed for development. Installed into ${INSTALL_LIB} or ${INSTALL_BIN}." ) +macro ( install_library ) + foreach ( _file ${ARGN} ) + if ( INSTALL_VERSION ) + set_target_properties ( ${_file} PROPERTIES VERSION ${DIST_VERSION} + SOVERSION ${DIST_VERSION} ) + endif () + install ( TARGETS ${_file} + RUNTIME DESTINATION ${INSTALL_BIN} COMPONENT Runtime + LIBRARY DESTINATION ${INSTALL_LIB} COMPONENT Runtime + ARCHIVE DESTINATION ${INSTALL_LIB} COMPONENT Library ) + endforeach() +endmacro () + +# helper function for various install_* functions, for PATTERN/REGEX args. +macro ( _complete_install_args ) + if ( NOT("${_ARG_PATTERN}" STREQUAL "") ) + set ( _ARG_PATTERN PATTERN ${_ARG_PATTERN} ) + endif () + if ( NOT("${_ARG_REGEX}" STREQUAL "") ) + set ( _ARG_REGEX REGEX ${_ARG_REGEX} ) + endif () +endmacro () + +# install_header ( files/directories [INTO destination] ) +# Install a directories or files into header destination. +# USE: install_header ( lua.h luaconf.h ) or install_header ( GL ) +# USE: install_header ( mylib.h INTO mylib ) +# For directories, supports optional PATTERN/REGEX arguments like install(). +set ( CPACK_COMPONENT_HEADER_DISPLAY_NAME "${DIST_NAME} Development Headers" ) +set ( CPACK_COMPONENT_HEADER_DESCRIPTION + "Headers needed for development. Installed into ${INSTALL_INC}." ) +macro ( install_header ) + parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) + _complete_install_args() + foreach ( _file ${_ARG_DEFAULT_ARGS} ) + if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) + install ( DIRECTORY ${_file} DESTINATION ${INSTALL_INC}/${_ARG_INTO} + COMPONENT Header ${_ARG_PATTERN} ${_ARG_REGEX} ) + else () + install ( FILES ${_file} DESTINATION ${INSTALL_INC}/${_ARG_INTO} + COMPONENT Header ) + endif () + endforeach() +endmacro () + +# install_data ( files/directories [INTO destination] ) +# This installs additional data files or directories. +# USE: install_data ( extra data.dat ) +# USE: install_data ( image1.png image2.png INTO images ) +# For directories, supports optional PATTERN/REGEX arguments like install(). +set ( CPACK_COMPONENT_DATA_DISPLAY_NAME "${DIST_NAME} Data" ) +set ( CPACK_COMPONENT_DATA_DESCRIPTION + "Application data. Installed into ${INSTALL_DATA}." ) +macro ( install_data ) + parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) + _complete_install_args() + foreach ( _file ${_ARG_DEFAULT_ARGS} ) + if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) + install ( DIRECTORY ${_file} + DESTINATION ${INSTALL_DATA}/${_ARG_INTO} + COMPONENT Data ${_ARG_PATTERN} ${_ARG_REGEX} ) + else () + install ( FILES ${_file} DESTINATION ${INSTALL_DATA}/${_ARG_INTO} + COMPONENT Data ) + endif () + endforeach() +endmacro () + +# INSTALL_DOC ( files/directories [INTO destination] ) +# This installs documentation content +# USE: install_doc ( doc/ doc.pdf ) +# USE: install_doc ( index.html INTO html ) +# For directories, supports optional PATTERN/REGEX arguments like install(). +set ( CPACK_COMPONENT_DOCUMENTATION_DISPLAY_NAME "${DIST_NAME} Documentation" ) +set ( CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION + "Application documentation. Installed into ${INSTALL_DOC}." ) +macro ( install_doc ) + parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) + _complete_install_args() + foreach ( _file ${_ARG_DEFAULT_ARGS} ) + if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) + install ( DIRECTORY ${_file} DESTINATION ${INSTALL_DOC}/${_ARG_INTO} + COMPONENT Documentation ${_ARG_PATTERN} ${_ARG_REGEX} ) + else () + install ( FILES ${_file} DESTINATION ${INSTALL_DOC}/${_ARG_INTO} + COMPONENT Documentation ) + endif () + endforeach() +endmacro () + +# install_example ( files/directories [INTO destination] ) +# This installs additional examples +# USE: install_example ( examples/ exampleA ) +# USE: install_example ( super_example super_data INTO super) +# For directories, supports optional PATTERN/REGEX argument like install(). +set ( CPACK_COMPONENT_EXAMPLE_DISPLAY_NAME "${DIST_NAME} Examples" ) +set ( CPACK_COMPONENT_EXAMPLE_DESCRIPTION + "Examples and their associated data. Installed into ${INSTALL_EXAMPLE}." ) +macro ( install_example ) + parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) + _complete_install_args() + foreach ( _file ${_ARG_DEFAULT_ARGS} ) + if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) + install ( DIRECTORY ${_file} DESTINATION ${INSTALL_EXAMPLE}/${_ARG_INTO} + COMPONENT Example ${_ARG_PATTERN} ${_ARG_REGEX} ) + else () + install ( FILES ${_file} DESTINATION ${INSTALL_EXAMPLE}/${_ARG_INTO} + COMPONENT Example ) + endif () + endforeach() +endmacro () + +# install_test ( files/directories [INTO destination] ) +# This installs tests and test files, DOES NOT EXECUTE TESTS +# USE: install_test ( my_test data.sql ) +# USE: install_test ( feature_x_test INTO x ) +# For directories, supports optional PATTERN/REGEX argument like install(). +set ( CPACK_COMPONENT_TEST_DISPLAY_NAME "${DIST_NAME} Tests" ) +set ( CPACK_COMPONENT_TEST_DESCRIPTION + "Tests and associated data. Installed into ${INSTALL_TEST}." ) +macro ( install_test ) + parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) + _complete_install_args() + foreach ( _file ${_ARG_DEFAULT_ARGS} ) + if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) + install ( DIRECTORY ${_file} DESTINATION ${INSTALL_TEST}/${_ARG_INTO} + COMPONENT Test ${_ARG_PATTERN} ${_ARG_REGEX} ) + else () + install ( FILES ${_file} DESTINATION ${INSTALL_TEST}/${_ARG_INTO} + COMPONENT Test ) + endif () + endforeach() +endmacro () + +# install_foo ( files/directories [INTO destination] ) +# This installs optional or otherwise unneeded content +# USE: install_foo ( etc/ example.doc ) +# USE: install_foo ( icon.png logo.png INTO icons) +# For directories, supports optional PATTERN/REGEX argument like install(). +set ( CPACK_COMPONENT_OTHER_DISPLAY_NAME "${DIST_NAME} Unspecified Content" ) +set ( CPACK_COMPONENT_OTHER_DESCRIPTION + "Other unspecified content. Installed into ${INSTALL_FOO}." ) +macro ( install_foo ) + parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) + _complete_install_args() + foreach ( _file ${_ARG_DEFAULT_ARGS} ) + if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) + install ( DIRECTORY ${_file} DESTINATION ${INSTALL_FOO}/${_ARG_INTO} + COMPONENT Other ${_ARG_PATTERN} ${_ARG_REGEX} ) + else () + install ( FILES ${_file} DESTINATION ${INSTALL_FOO}/${_ARG_INTO} + COMPONENT Other ) + endif () + endforeach() +endmacro () + +## CTest defaults + +## CPack defaults +set ( CPACK_GENERATOR "ZIP" ) +set ( CPACK_STRIP_FILES TRUE ) +set ( CPACK_PACKAGE_NAME "${DIST_NAME}" ) +set ( CPACK_PACKAGE_VERSION "${DIST_VERSION}") +set ( CPACK_PACKAGE_VENDOR "LuaDist" ) +set ( CPACK_COMPONENTS_ALL Runtime Library Header Data Documentation Example Other ) +include ( CPack ) diff --git a/lib/dkjson/cmake/lua.cmake b/lib/dkjson/cmake/lua.cmake new file mode 100644 index 0000000..a0f3e67 --- /dev/null +++ b/lib/dkjson/cmake/lua.cmake @@ -0,0 +1,390 @@ +# LuaDist CMake utility library for Lua. +# +# Copyright (C) 2007-2012 LuaDist. +# by David Manura, Peter Drahos +# Redistribution and use of this file is allowed according to the terms of the MIT license. +# For details see the COPYRIGHT file distributed with LuaDist. +# Please note that the package source code is licensed under its own license. + +set ( INSTALL_LMOD ${INSTALL_LIB}/lua + CACHE PATH "Directory to install Lua modules." ) +set ( INSTALL_CMOD ${INSTALL_LIB}/lua + CACHE PATH "Directory to install Lua binary modules." ) + +option ( SKIP_LUA_WRAPPER + "Do not build and install Lua executable wrappers." OFF) + +# List of (Lua module name, file path) pairs. +# Used internally by add_lua_test. Built by add_lua_module. +set ( _lua_modules ) + +# utility function: appends path `path` to path `basepath`, properly +# handling cases when `path` may be relative or absolute. +macro ( _append_path basepath path result ) + if ( IS_ABSOLUTE "${path}" ) + set ( ${result} "${path}" ) + else () + set ( ${result} "${basepath}/${path}" ) + endif () +endmacro () + +# install_lua_executable ( target source ) +# Automatically generate a binary wrapper for lua application and install it +# The wrapper and the source of the application will be placed into /bin +# If the application source did not have .lua suffix then it will be added +# USE: lua_executable ( sputnik src/sputnik.lua ) +macro ( install_lua_executable _name _source ) + get_filename_component ( _source_name ${_source} NAME_WE ) + if ( NOT SKIP_LUA_WRAPPER ) + enable_language ( C ) + + find_package ( Lua REQUIRED ) + include_directories ( ${LUA_INCLUDE_DIR} ) + + set ( _wrapper ${CMAKE_CURRENT_BINARY_DIR}/${_name}.c ) + set ( _code +"// Not so simple executable wrapper for Lua apps +#include +#include +#include +#include +#include + +lua_State *L\; + +static int getargs (lua_State *L, char **argv, int n) { +int narg\; +int i\; +int argc = 0\; +while (argv[argc]) argc++\; +narg = argc - (n + 1)\; +luaL_checkstack(L, narg + 3, \"too many arguments to script\")\; +for (i=n+1\; i < argc\; i++) + lua_pushstring(L, argv[i])\; +lua_createtable(L, narg, n + 1)\; +for (i=0\; i < argc\; i++) { + lua_pushstring(L, argv[i])\; + lua_rawseti(L, -2, i - n)\; +} +return narg\; +} + +static void lstop (lua_State *L, lua_Debug *ar) { +(void)ar\; +lua_sethook(L, NULL, 0, 0)\; +luaL_error(L, \"interrupted!\")\; +} + +static void laction (int i) { +signal(i, SIG_DFL)\; +lua_sethook(L, lstop, LUA_MASKCALL | LUA_MASKRET | LUA_MASKCOUNT, 1)\; +} + +static void l_message (const char *pname, const char *msg) { +if (pname) fprintf(stderr, \"%s: \", pname)\; +fprintf(stderr, \"%s\\n\", msg)\; +fflush(stderr)\; +} + +static int report (lua_State *L, int status) { +if (status && !lua_isnil(L, -1)) { + const char *msg = lua_tostring(L, -1)\; + if (msg == NULL) msg = \"(error object is not a string)\"\; + l_message(\"${_source_name}\", msg)\; + lua_pop(L, 1)\; +} +return status\; +} + +static int traceback (lua_State *L) { +if (!lua_isstring(L, 1)) + return 1\; +lua_getfield(L, LUA_GLOBALSINDEX, \"debug\")\; +if (!lua_istable(L, -1)) { + lua_pop(L, 1)\; + return 1\; +} +lua_getfield(L, -1, \"traceback\")\; +if (!lua_isfunction(L, -1)) { + lua_pop(L, 2)\; + return 1\; +} +lua_pushvalue(L, 1)\; +lua_pushinteger(L, 2)\; +lua_call(L, 2, 1)\; +return 1\; +} + +static int docall (lua_State *L, int narg, int clear) { +int status\; +int base = lua_gettop(L) - narg\; +lua_pushcfunction(L, traceback)\; +lua_insert(L, base)\; +signal(SIGINT, laction)\; +status = lua_pcall(L, narg, (clear ? 0 : LUA_MULTRET), base)\; +signal(SIGINT, SIG_DFL)\; +lua_remove(L, base)\; +if (status != 0) lua_gc(L, LUA_GCCOLLECT, 0)\; +return status\; +} + +int main (int argc, char **argv) { +L=lua_open()\; +lua_gc(L, LUA_GCSTOP, 0)\; +luaL_openlibs(L)\; +lua_gc(L, LUA_GCRESTART, 0)\; +int narg = getargs(L, argv, 0)\; +lua_setglobal(L, \"arg\")\; + +// Script +char script[500] = \"./${_source_name}.lua\"\; +lua_getglobal(L, \"_PROGDIR\")\; +if (lua_isstring(L, -1)) { + sprintf( script, \"%s/${_source_name}.lua\", lua_tostring(L, -1))\; +} +lua_pop(L, 1)\; + +// Run +int status = luaL_loadfile(L, script)\; +lua_insert(L, -(narg+1))\; +if (status == 0) + status = docall(L, narg, 0)\; +else + lua_pop(L, narg)\; + +report(L, status)\; +lua_close(L)\; +return status\; +}; +") + file ( WRITE ${_wrapper} ${_code} ) + add_executable ( ${_name} ${_wrapper} ) + target_link_libraries ( ${_name} ${LUA_LIBRARY} ) + install ( TARGETS ${_name} DESTINATION ${INSTALL_BIN} ) + endif() + install ( PROGRAMS ${_source} DESTINATION ${INSTALL_BIN} + RENAME ${_source_name}.lua ) +endmacro () + +macro ( _lua_module_helper is_install _name ) + parse_arguments ( _MODULE "LINK;ALL_IN_ONE" "" ${ARGN} ) + # _target is CMake-compatible target name for module (e.g. socket_core). + # _module is relative path of target (e.g. socket/core), + # without extension (e.g. .lua/.so/.dll). + # _MODULE_SRC is list of module source files (e.g. .lua and .c files). + # _MODULE_NAMES is list of module names (e.g. socket.core). + if ( _MODULE_ALL_IN_ONE ) + string ( REGEX REPLACE "\\..*" "" _target "${_name}" ) + string ( REGEX REPLACE "\\..*" "" _module "${_name}" ) + set ( _target "${_target}_all_in_one") + set ( _MODULE_SRC ${_MODULE_ALL_IN_ONE} ) + set ( _MODULE_NAMES ${_name} ${_MODULE_DEFAULT_ARGS} ) + else () + string ( REPLACE "." "_" _target "${_name}" ) + string ( REPLACE "." "/" _module "${_name}" ) + set ( _MODULE_SRC ${_MODULE_DEFAULT_ARGS} ) + set ( _MODULE_NAMES ${_name} ) + endif () + if ( NOT _MODULE_SRC ) + message ( FATAL_ERROR "no module sources specified" ) + endif () + list ( GET _MODULE_SRC 0 _first_source ) + + get_filename_component ( _ext ${_first_source} EXT ) + if ( _ext STREQUAL ".lua" ) # Lua source module + list ( LENGTH _MODULE_SRC _len ) + if ( _len GREATER 1 ) + message ( FATAL_ERROR "more than one source file specified" ) + endif () + + set ( _module "${_module}.lua" ) + + get_filename_component ( _module_dir ${_module} PATH ) + get_filename_component ( _module_filename ${_module} NAME ) + _append_path ( "${CMAKE_CURRENT_SOURCE_DIR}" "${_first_source}" _module_path ) + list ( APPEND _lua_modules "${_name}" "${_module_path}" ) + + if ( ${is_install} ) + install ( FILES ${_first_source} DESTINATION ${INSTALL_LMOD}/${_module_dir} + RENAME ${_module_filename} ) + endif () + else () # Lua C binary module + enable_language ( C ) + find_package ( Lua REQUIRED ) + include_directories ( ${LUA_INCLUDE_DIR} ) + + set ( _module "${_module}${CMAKE_SHARED_MODULE_SUFFIX}" ) + + get_filename_component ( _module_dir ${_module} PATH ) + get_filename_component ( _module_filenamebase ${_module} NAME_WE ) + foreach ( _thisname ${_MODULE_NAMES} ) + list ( APPEND _lua_modules "${_thisname}" + "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_CFG_INTDIR}/${_module}" ) + endforeach () + + add_library( ${_target} MODULE ${_MODULE_SRC}) + target_link_libraries ( ${_target} ${LUA_LIBRARY} ${_MODULE_LINK} ) + set_target_properties ( ${_target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY + "${_module_dir}" PREFIX "" OUTPUT_NAME "${_module_filenamebase}" ) + if ( ${is_install} ) + install ( TARGETS ${_target} DESTINATION ${INSTALL_CMOD}/${_module_dir}) + endif () + endif () +endmacro () + +# add_lua_module +# Builds a Lua source module into a destination locatable by Lua +# require syntax. +# Binary modules are also supported where this function takes sources and +# libraries to compile separated by LINK keyword. +# USE: add_lua_module ( socket.http src/http.lua ) +# USE2: add_lua_module ( mime.core src/mime.c ) +# USE3: add_lua_module ( socket.core ${SRC_SOCKET} LINK ${LIB_SOCKET} ) +# USE4: add_lua_module ( ssl.context ssl.core ALL_IN_ONE src/context.c src/ssl.c ) +# This form builds an "all-in-one" module (e.g. ssl.so or ssl.dll containing +# both modules ssl.context and ssl.core). The CMake target name will be +# ssl_all_in_one. +# Also sets variable _module_path (relative path where module typically +# would be installed). +macro ( add_lua_module ) + _lua_module_helper ( 0 ${ARGN} ) +endmacro () + + +# install_lua_module +# This is the same as `add_lua_module` but also installs the module. +# USE: install_lua_module ( socket.http src/http.lua ) +# USE2: install_lua_module ( mime.core src/mime.c ) +# USE3: install_lua_module ( socket.core ${SRC_SOCKET} LINK ${LIB_SOCKET} ) +macro ( install_lua_module ) + _lua_module_helper ( 1 ${ARGN} ) +endmacro () + +# Builds string representing Lua table mapping Lua modules names to file +# paths. Used internally. +macro ( _make_module_table _outvar ) + set ( ${_outvar} ) + list ( LENGTH _lua_modules _n ) + if ( ${_n} GREATER 0 ) # avoids cmake complaint + foreach ( _i RANGE 1 ${_n} 2 ) + list ( GET _lua_modules ${_i} _path ) + math ( EXPR _ii ${_i}-1 ) + list ( GET _lua_modules ${_ii} _name ) + set ( ${_outvar} "${_table} ['${_name}'] = '${_path}'\;\n") + endforeach () + endif () + set ( ${_outvar} +"local modules = { +${_table}}" ) +endmacro () + +# add_lua_test ( _testfile [ WORKING_DIRECTORY _working_dir ] ) +# Runs Lua script `_testfile` under CTest tester. +# Optional named argument `WORKING_DIRECTORY` is current working directory to +# run test under (defaults to ${CMAKE_CURRENT_BINARY_DIR}). +# Both paths, if relative, are relative to ${CMAKE_CURRENT_SOURCE_DIR}. +# Any modules previously defined with install_lua_module are automatically +# preloaded (via package.preload) prior to running the test script. +# Under LuaDist, set test=true in config.lua to enable testing. +# USE: add_lua_test ( test/test1.lua [args...] [WORKING_DIRECTORY dir]) +macro ( add_lua_test _testfile ) + if ( NOT SKIP_TESTING ) + parse_arguments ( _ARG "WORKING_DIRECTORY" "" ${ARGN} ) + include ( CTest ) + find_program ( LUA NAMES lua lua.bat ) + get_filename_component ( TESTFILEABS ${_testfile} ABSOLUTE ) + get_filename_component ( TESTFILENAME ${_testfile} NAME ) + get_filename_component ( TESTFILEBASE ${_testfile} NAME_WE ) + + # Write wrapper script. + # Note: One simple way to allow the script to find modules is + # to just put them in package.preload. + set ( TESTWRAPPER ${CMAKE_CURRENT_BINARY_DIR}/${TESTFILENAME} ) + _make_module_table ( _table ) + set ( TESTWRAPPERSOURCE +"local CMAKE_CFG_INTDIR = ... or '.' +${_table} +local function preload_modules(modules) + for name, path in pairs(modules) do + if path:match'%.lua' then + package.preload[name] = assert(loadfile(path)) + else + local name = name:gsub('.*%-', '') -- remove any hyphen prefix + local symbol = 'luaopen_' .. name:gsub('%.', '_') + --improve: generalize to support all-in-one loader? + local path = path:gsub('%$%{CMAKE_CFG_INTDIR%}', CMAKE_CFG_INTDIR) + package.preload[name] = assert(package.loadlib(path, symbol)) + end + end +end +preload_modules(modules) +arg[0] = '${TESTFILEABS}' +table.remove(arg, 1) +return assert(loadfile '${TESTFILEABS}')(unpack(arg)) +" ) + if ( _ARG_WORKING_DIRECTORY ) + get_filename_component ( + TESTCURRENTDIRABS ${_ARG_WORKING_DIRECTORY} ABSOLUTE ) + # note: CMake 2.6 (unlike 2.8) lacks WORKING_DIRECTORY parameter. + set ( _pre ${CMAKE_COMMAND} -E chdir "${TESTCURRENTDIRABS}" ) + endif () + file ( WRITE ${TESTWRAPPER} ${TESTWRAPPERSOURCE}) + add_test ( NAME ${TESTFILEBASE} COMMAND ${_pre} ${LUA} + ${TESTWRAPPER} "${CMAKE_CFG_INTDIR}" + ${_ARG_DEFAULT_ARGS} ) + endif () + # see also http://gdcm.svn.sourceforge.net/viewvc/gdcm/Sandbox/CMakeModules/UsePythonTest.cmake + # Note: ${CMAKE_CFG_INTDIR} is a command-line argument to allow proper + # expansion by the native build tool. +endmacro () + + +# Converts Lua source file `_source` to binary string embedded in C source +# file `_target`. Optionally compiles Lua source to byte code (not available +# under LuaJIT2, which doesn't have a bytecode loader). Additionally, Lua +# versions of bin2c [1] and luac [2] may be passed respectively as additional +# arguments. +# +# [1] http://lua-users.org/wiki/BinToCee +# [2] http://lua-users.org/wiki/LuaCompilerInLua +function ( add_lua_bin2c _target _source ) + find_program ( LUA NAMES lua lua.bat ) + execute_process ( COMMAND ${LUA} -e "string.dump(function()end)" + RESULT_VARIABLE _LUA_DUMP_RESULT ERROR_QUIET ) + if ( NOT ${_LUA_DUMP_RESULT} ) + SET ( HAVE_LUA_DUMP true ) + endif () + message ( "-- string.dump=${HAVE_LUA_DUMP}" ) + + if ( ARGV2 ) + get_filename_component ( BIN2C ${ARGV2} ABSOLUTE ) + set ( BIN2C ${LUA} ${BIN2C} ) + else () + find_program ( BIN2C NAMES bin2c bin2c.bat ) + endif () + if ( HAVE_LUA_DUMP ) + if ( ARGV3 ) + get_filename_component ( LUAC ${ARGV3} ABSOLUTE ) + set ( LUAC ${LUA} ${LUAC} ) + else () + find_program ( LUAC NAMES luac luac.bat ) + endif () + endif ( HAVE_LUA_DUMP ) + message ( "-- bin2c=${BIN2C}" ) + message ( "-- luac=${LUAC}" ) + + get_filename_component ( SOURCEABS ${_source} ABSOLUTE ) + if ( HAVE_LUA_DUMP ) + get_filename_component ( SOURCEBASE ${_source} NAME_WE ) + add_custom_command ( + OUTPUT ${_target} DEPENDS ${_source} + COMMAND ${LUAC} -o ${CMAKE_CURRENT_BINARY_DIR}/${SOURCEBASE}.lo + ${SOURCEABS} + COMMAND ${BIN2C} ${CMAKE_CURRENT_BINARY_DIR}/${SOURCEBASE}.lo + ">${_target}" ) + else () + add_custom_command ( + OUTPUT ${_target} DEPENDS ${SOURCEABS} + COMMAND ${BIN2C} ${_source} ">${_target}" ) + endif () +endfunction() diff --git a/lib/dkjson/dist.info b/lib/dkjson/dist.info new file mode 100644 index 0000000..9945679 --- /dev/null +++ b/lib/dkjson/dist.info @@ -0,0 +1,14 @@ +--- This file is part of LuaDist project + +name = "dkjson" +version = "2.5" + +desc = "dkjson is a module for encoding and decoding JSON data. It supports UTF-8." +author = "David Kolf" +license = "MIT/X11" +url = "http://dkolf.de/src/dkjson-lua.fsl/" +maintainer = "Peter Drahoš" + +depends = { + "lua >= 5.1" +} diff --git a/lib/dkjson/dkjson-2.5-2.rockspec b/lib/dkjson/dkjson-2.5-2.rockspec new file mode 100644 index 0000000..9a56ca1 --- /dev/null +++ b/lib/dkjson/dkjson-2.5-2.rockspec @@ -0,0 +1,30 @@ +package = "dkjson" +version = "2.5-2" +source = { + url = "http://dkolf.de/src/dkjson-lua.fsl/tarball/dkjson-2.5.tar.gz?uuid=release_2_5", + file = "dkjson-2.5.tar.gz" +} +description = { + summary = "David Kolf's JSON module for Lua", + detailed = [[ +dkjson is a module for encoding and decoding JSON data. It supports UTF-8. + +JSON (JavaScript Object Notation) is a format for serializing data based +on the syntax for JavaScript data structures. + +dkjson is written in Lua without any dependencies, but +when LPeg is available dkjson uses it to speed up decoding. +]], + homepage = "http://dkolf.de/src/dkjson-lua.fsl/", + license = "MIT/X11" +} +dependencies = { + "lua >= 5.1, < 5.4" +} +build = { + type = "builtin", + modules = { + dkjson = "dkjson.lua" + } +} + diff --git a/lib/dkjson/dkjson.lua b/lib/dkjson/dkjson.lua new file mode 100644 index 0000000..b63d5ac --- /dev/null +++ b/lib/dkjson/dkjson.lua @@ -0,0 +1,714 @@ +-- Module options: +local always_try_using_lpeg = true +local register_global_module_table = false +local global_module_name = 'json' + +--[==[ + +David Kolf's JSON module for Lua 5.1/5.2 + +Version 2.5 + + +For the documentation see the corresponding readme.txt or visit +. + +You can contact the author by sending an e-mail to 'david' at the +domain 'dkolf.de'. + + +Copyright (C) 2010-2014 David Heiko Kolf + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--]==] + +-- global dependencies: +local pairs, type, tostring, tonumber, getmetatable, setmetatable, rawset = + pairs, type, tostring, tonumber, getmetatable, setmetatable, rawset +local error, require, pcall, select = error, require, pcall, select +local floor, huge = math.floor, math.huge +local strrep, gsub, strsub, strbyte, strchar, strfind, strlen, strformat = + string.rep, string.gsub, string.sub, string.byte, string.char, + string.find, string.len, string.format +local strmatch = string.match +local concat = table.concat + +local json = { version = "dkjson 2.5" } + +if register_global_module_table then + _G[global_module_name] = json +end + +local _ENV = nil -- blocking globals in Lua 5.2 + +pcall (function() + -- Enable access to blocked metatables. + -- Don't worry, this module doesn't change anything in them. + local debmeta = require "debug".getmetatable + if debmeta then getmetatable = debmeta end +end) + +json.null = setmetatable ({}, { + __tojson = function () return "null" end +}) + +local function isarray (tbl) + local max, n, arraylen = 0, 0, 0 + for k,v in pairs (tbl) do + if k == 'n' and type(v) == 'number' then + arraylen = v + if v > max then + max = v + end + else + if type(k) ~= 'number' or k < 1 or floor(k) ~= k then + return false + end + if k > max then + max = k + end + n = n + 1 + end + end + if max > 10 and max > arraylen and max > n * 2 then + return false -- don't create an array with too many holes + end + return true, max +end + +local escapecodes = { + ["\""] = "\\\"", ["\\"] = "\\\\", ["\b"] = "\\b", ["\f"] = "\\f", + ["\n"] = "\\n", ["\r"] = "\\r", ["\t"] = "\\t" +} + +local function escapeutf8 (uchar) + local value = escapecodes[uchar] + if value then + return value + end + local a, b, c, d = strbyte (uchar, 1, 4) + a, b, c, d = a or 0, b or 0, c or 0, d or 0 + if a <= 0x7f then + value = a + elseif 0xc0 <= a and a <= 0xdf and b >= 0x80 then + value = (a - 0xc0) * 0x40 + b - 0x80 + elseif 0xe0 <= a and a <= 0xef and b >= 0x80 and c >= 0x80 then + value = ((a - 0xe0) * 0x40 + b - 0x80) * 0x40 + c - 0x80 + elseif 0xf0 <= a and a <= 0xf7 and b >= 0x80 and c >= 0x80 and d >= 0x80 then + value = (((a - 0xf0) * 0x40 + b - 0x80) * 0x40 + c - 0x80) * 0x40 + d - 0x80 + else + return "" + end + if value <= 0xffff then + return strformat ("\\u%.4x", value) + elseif value <= 0x10ffff then + -- encode as UTF-16 surrogate pair + value = value - 0x10000 + local highsur, lowsur = 0xD800 + floor (value/0x400), 0xDC00 + (value % 0x400) + return strformat ("\\u%.4x\\u%.4x", highsur, lowsur) + else + return "" + end +end + +local function fsub (str, pattern, repl) + -- gsub always builds a new string in a buffer, even when no match + -- exists. First using find should be more efficient when most strings + -- don't contain the pattern. + if strfind (str, pattern) then + return gsub (str, pattern, repl) + else + return str + end +end + +local function quotestring (value) + -- based on the regexp "escapable" in https://github.com/douglascrockford/JSON-js + value = fsub (value, "[%z\1-\31\"\\\127]", escapeutf8) + if strfind (value, "[\194\216\220\225\226\239]") then + value = fsub (value, "\194[\128-\159\173]", escapeutf8) + value = fsub (value, "\216[\128-\132]", escapeutf8) + value = fsub (value, "\220\143", escapeutf8) + value = fsub (value, "\225\158[\180\181]", escapeutf8) + value = fsub (value, "\226\128[\140-\143\168-\175]", escapeutf8) + value = fsub (value, "\226\129[\160-\175]", escapeutf8) + value = fsub (value, "\239\187\191", escapeutf8) + value = fsub (value, "\239\191[\176-\191]", escapeutf8) + end + return "\"" .. value .. "\"" +end +json.quotestring = quotestring + +local function replace(str, o, n) + local i, j = strfind (str, o, 1, true) + if i then + return strsub(str, 1, i-1) .. n .. strsub(str, j+1, -1) + else + return str + end +end + +-- locale independent num2str and str2num functions +local decpoint, numfilter + +local function updatedecpoint () + decpoint = strmatch(tostring(0.5), "([^05+])") + -- build a filter that can be used to remove group separators + numfilter = "[^0-9%-%+eE" .. gsub(decpoint, "[%^%$%(%)%%%.%[%]%*%+%-%?]", "%%%0") .. "]+" +end + +updatedecpoint() + +local function num2str (num) + return replace(fsub(tostring(num), numfilter, ""), decpoint, ".") +end + +local function str2num (str) + local num = tonumber(replace(str, ".", decpoint)) + if not num then + updatedecpoint() + num = tonumber(replace(str, ".", decpoint)) + end + return num +end + +local function addnewline2 (level, buffer, buflen) + buffer[buflen+1] = "\n" + buffer[buflen+2] = strrep (" ", level) + buflen = buflen + 2 + return buflen +end + +function json.addnewline (state) + if state.indent then + state.bufferlen = addnewline2 (state.level or 0, + state.buffer, state.bufferlen or #(state.buffer)) + end +end + +local encode2 -- forward declaration + +local function addpair (key, value, prev, indent, level, buffer, buflen, tables, globalorder, state) + local kt = type (key) + if kt ~= 'string' and kt ~= 'number' then + return nil, "type '" .. kt .. "' is not supported as a key by JSON." + end + if prev then + buflen = buflen + 1 + buffer[buflen] = "," + end + if indent then + buflen = addnewline2 (level, buffer, buflen) + end + buffer[buflen+1] = quotestring (key) + buffer[buflen+2] = ":" + return encode2 (value, indent, level, buffer, buflen + 2, tables, globalorder, state) +end + +local function appendcustom(res, buffer, state) + local buflen = state.bufferlen + if type (res) == 'string' then + buflen = buflen + 1 + buffer[buflen] = res + end + return buflen +end + +local function exception(reason, value, state, buffer, buflen, defaultmessage) + defaultmessage = defaultmessage or reason + local handler = state.exception + if not handler then + return nil, defaultmessage + else + state.bufferlen = buflen + local ret, msg = handler (reason, value, state, defaultmessage) + if not ret then return nil, msg or defaultmessage end + return appendcustom(ret, buffer, state) + end +end + +function json.encodeexception(reason, value, state, defaultmessage) + return quotestring("<" .. defaultmessage .. ">") +end + +encode2 = function (value, indent, level, buffer, buflen, tables, globalorder, state) + local valtype = type (value) + local valmeta = getmetatable (value) + valmeta = type (valmeta) == 'table' and valmeta -- only tables + local valtojson = valmeta and valmeta.__tojson + if valtojson then + if tables[value] then + return exception('reference cycle', value, state, buffer, buflen) + end + tables[value] = true + state.bufferlen = buflen + local ret, msg = valtojson (value, state) + if not ret then return exception('custom encoder failed', value, state, buffer, buflen, msg) end + tables[value] = nil + buflen = appendcustom(ret, buffer, state) + elseif value == nil then + buflen = buflen + 1 + buffer[buflen] = "null" + elseif valtype == 'number' then + local s + if value ~= value or value >= huge or -value >= huge then + -- This is the behaviour of the original JSON implementation. + s = "null" + else + s = num2str (value) + end + buflen = buflen + 1 + buffer[buflen] = s + elseif valtype == 'boolean' then + buflen = buflen + 1 + buffer[buflen] = value and "true" or "false" + elseif valtype == 'string' then + buflen = buflen + 1 + buffer[buflen] = quotestring (value) + elseif valtype == 'table' then + if tables[value] then + return exception('reference cycle', value, state, buffer, buflen) + end + tables[value] = true + level = level + 1 + local isa, n = isarray (value) + if n == 0 and valmeta and valmeta.__jsontype == 'object' then + isa = false + end + local msg + if isa then -- JSON array + buflen = buflen + 1 + buffer[buflen] = "[" + for i = 1, n do + buflen, msg = encode2 (value[i], indent, level, buffer, buflen, tables, globalorder, state) + if not buflen then return nil, msg end + if i < n then + buflen = buflen + 1 + buffer[buflen] = "," + end + end + buflen = buflen + 1 + buffer[buflen] = "]" + else -- JSON object + local prev = false + buflen = buflen + 1 + buffer[buflen] = "{" + local order = valmeta and valmeta.__jsonorder or globalorder + if order then + local used = {} + n = #order + for i = 1, n do + local k = order[i] + local v = value[k] + if v then + used[k] = true + buflen, msg = addpair (k, v, prev, indent, level, buffer, buflen, tables, globalorder, state) + prev = true -- add a seperator before the next element + end + end + for k,v in pairs (value) do + if not used[k] then + buflen, msg = addpair (k, v, prev, indent, level, buffer, buflen, tables, globalorder, state) + if not buflen then return nil, msg end + prev = true -- add a seperator before the next element + end + end + else -- unordered + for k,v in pairs (value) do + buflen, msg = addpair (k, v, prev, indent, level, buffer, buflen, tables, globalorder, state) + if not buflen then return nil, msg end + prev = true -- add a seperator before the next element + end + end + if indent then + buflen = addnewline2 (level - 1, buffer, buflen) + end + buflen = buflen + 1 + buffer[buflen] = "}" + end + tables[value] = nil + else + return exception ('unsupported type', value, state, buffer, buflen, + "type '" .. valtype .. "' is not supported by JSON.") + end + return buflen +end + +function json.encode (value, state) + state = state or {} + local oldbuffer = state.buffer + local buffer = oldbuffer or {} + state.buffer = buffer + updatedecpoint() + local ret, msg = encode2 (value, state.indent, state.level or 0, + buffer, state.bufferlen or 0, state.tables or {}, state.keyorder, state) + if not ret then + error (msg, 2) + elseif oldbuffer == buffer then + state.bufferlen = ret + return true + else + state.bufferlen = nil + state.buffer = nil + return concat (buffer) + end +end + +local function loc (str, where) + local line, pos, linepos = 1, 1, 0 + while true do + pos = strfind (str, "\n", pos, true) + if pos and pos < where then + line = line + 1 + linepos = pos + pos = pos + 1 + else + break + end + end + return "line " .. line .. ", column " .. (where - linepos) +end + +local function unterminated (str, what, where) + return nil, strlen (str) + 1, "unterminated " .. what .. " at " .. loc (str, where) +end + +local function scanwhite (str, pos) + while true do + pos = strfind (str, "%S", pos) + if not pos then return nil end + local sub2 = strsub (str, pos, pos + 1) + if sub2 == "\239\187" and strsub (str, pos + 2, pos + 2) == "\191" then + -- UTF-8 Byte Order Mark + pos = pos + 3 + elseif sub2 == "//" then + pos = strfind (str, "[\n\r]", pos + 2) + if not pos then return nil end + elseif sub2 == "/*" then + pos = strfind (str, "*/", pos + 2) + if not pos then return nil end + pos = pos + 2 + else + return pos + end + end +end + +local escapechars = { + ["\""] = "\"", ["\\"] = "\\", ["/"] = "/", ["b"] = "\b", ["f"] = "\f", + ["n"] = "\n", ["r"] = "\r", ["t"] = "\t" +} + +local function unichar (value) + if value < 0 then + return nil + elseif value <= 0x007f then + return strchar (value) + elseif value <= 0x07ff then + return strchar (0xc0 + floor(value/0x40), + 0x80 + (floor(value) % 0x40)) + elseif value <= 0xffff then + return strchar (0xe0 + floor(value/0x1000), + 0x80 + (floor(value/0x40) % 0x40), + 0x80 + (floor(value) % 0x40)) + elseif value <= 0x10ffff then + return strchar (0xf0 + floor(value/0x40000), + 0x80 + (floor(value/0x1000) % 0x40), + 0x80 + (floor(value/0x40) % 0x40), + 0x80 + (floor(value) % 0x40)) + else + return nil + end +end + +local function scanstring (str, pos) + local lastpos = pos + 1 + local buffer, n = {}, 0 + while true do + local nextpos = strfind (str, "[\"\\]", lastpos) + if not nextpos then + return unterminated (str, "string", pos) + end + if nextpos > lastpos then + n = n + 1 + buffer[n] = strsub (str, lastpos, nextpos - 1) + end + if strsub (str, nextpos, nextpos) == "\"" then + lastpos = nextpos + 1 + break + else + local escchar = strsub (str, nextpos + 1, nextpos + 1) + local value + if escchar == "u" then + value = tonumber (strsub (str, nextpos + 2, nextpos + 5), 16) + if value then + local value2 + if 0xD800 <= value and value <= 0xDBff then + -- we have the high surrogate of UTF-16. Check if there is a + -- low surrogate escaped nearby to combine them. + if strsub (str, nextpos + 6, nextpos + 7) == "\\u" then + value2 = tonumber (strsub (str, nextpos + 8, nextpos + 11), 16) + if value2 and 0xDC00 <= value2 and value2 <= 0xDFFF then + value = (value - 0xD800) * 0x400 + (value2 - 0xDC00) + 0x10000 + else + value2 = nil -- in case it was out of range for a low surrogate + end + end + end + value = value and unichar (value) + if value then + if value2 then + lastpos = nextpos + 12 + else + lastpos = nextpos + 6 + end + end + end + end + if not value then + value = escapechars[escchar] or escchar + lastpos = nextpos + 2 + end + n = n + 1 + buffer[n] = value + end + end + if n == 1 then + return buffer[1], lastpos + elseif n > 1 then + return concat (buffer), lastpos + else + return "", lastpos + end +end + +local scanvalue -- forward declaration + +local function scantable (what, closechar, str, startpos, nullval, objectmeta, arraymeta) + local len = strlen (str) + local tbl, n = {}, 0 + local pos = startpos + 1 + if what == 'object' then + setmetatable (tbl, objectmeta) + else + setmetatable (tbl, arraymeta) + end + while true do + pos = scanwhite (str, pos) + if not pos then return unterminated (str, what, startpos) end + local char = strsub (str, pos, pos) + if char == closechar then + return tbl, pos + 1 + end + local val1, err + val1, pos, err = scanvalue (str, pos, nullval, objectmeta, arraymeta) + if err then return nil, pos, err end + pos = scanwhite (str, pos) + if not pos then return unterminated (str, what, startpos) end + char = strsub (str, pos, pos) + if char == ":" then + if val1 == nil then + return nil, pos, "cannot use nil as table index (at " .. loc (str, pos) .. ")" + end + pos = scanwhite (str, pos + 1) + if not pos then return unterminated (str, what, startpos) end + local val2 + val2, pos, err = scanvalue (str, pos, nullval, objectmeta, arraymeta) + if err then return nil, pos, err end + tbl[val1] = val2 + pos = scanwhite (str, pos) + if not pos then return unterminated (str, what, startpos) end + char = strsub (str, pos, pos) + else + n = n + 1 + tbl[n] = val1 + end + if char == "," then + pos = pos + 1 + end + end +end + +scanvalue = function (str, pos, nullval, objectmeta, arraymeta) + pos = pos or 1 + pos = scanwhite (str, pos) + if not pos then + return nil, strlen (str) + 1, "no valid JSON value (reached the end)" + end + local char = strsub (str, pos, pos) + if char == "{" then + return scantable ('object', "}", str, pos, nullval, objectmeta, arraymeta) + elseif char == "[" then + return scantable ('array', "]", str, pos, nullval, objectmeta, arraymeta) + elseif char == "\"" then + return scanstring (str, pos) + else + local pstart, pend = strfind (str, "^%-?[%d%.]+[eE]?[%+%-]?%d*", pos) + if pstart then + local number = str2num (strsub (str, pstart, pend)) + if number then + return number, pend + 1 + end + end + pstart, pend = strfind (str, "^%a%w*", pos) + if pstart then + local name = strsub (str, pstart, pend) + if name == "true" then + return true, pend + 1 + elseif name == "false" then + return false, pend + 1 + elseif name == "null" then + return nullval, pend + 1 + end + end + return nil, pos, "no valid JSON value at " .. loc (str, pos) + end +end + +local function optionalmetatables(...) + if select("#", ...) > 0 then + return ... + else + return {__jsontype = 'object'}, {__jsontype = 'array'} + end +end + +function json.decode (str, pos, nullval, ...) + local objectmeta, arraymeta = optionalmetatables(...) + return scanvalue (str, pos, nullval, objectmeta, arraymeta) +end + +function json.use_lpeg () + local g = require ("lpeg") + + if g.version() == "0.11" then + error "due to a bug in LPeg 0.11, it cannot be used for JSON matching" + end + + local pegmatch = g.match + local P, S, R = g.P, g.S, g.R + + local function ErrorCall (str, pos, msg, state) + if not state.msg then + state.msg = msg .. " at " .. loc (str, pos) + state.pos = pos + end + return false + end + + local function Err (msg) + return g.Cmt (g.Cc (msg) * g.Carg (2), ErrorCall) + end + + local SingleLineComment = P"//" * (1 - S"\n\r")^0 + local MultiLineComment = P"/*" * (1 - P"*/")^0 * P"*/" + local Space = (S" \n\r\t" + P"\239\187\191" + SingleLineComment + MultiLineComment)^0 + + local PlainChar = 1 - S"\"\\\n\r" + local EscapeSequence = (P"\\" * g.C (S"\"\\/bfnrt" + Err "unsupported escape sequence")) / escapechars + local HexDigit = R("09", "af", "AF") + local function UTF16Surrogate (match, pos, high, low) + high, low = tonumber (high, 16), tonumber (low, 16) + if 0xD800 <= high and high <= 0xDBff and 0xDC00 <= low and low <= 0xDFFF then + return true, unichar ((high - 0xD800) * 0x400 + (low - 0xDC00) + 0x10000) + else + return false + end + end + local function UTF16BMP (hex) + return unichar (tonumber (hex, 16)) + end + local U16Sequence = (P"\\u" * g.C (HexDigit * HexDigit * HexDigit * HexDigit)) + local UnicodeEscape = g.Cmt (U16Sequence * U16Sequence, UTF16Surrogate) + U16Sequence/UTF16BMP + local Char = UnicodeEscape + EscapeSequence + PlainChar + local String = P"\"" * g.Cs (Char ^ 0) * (P"\"" + Err "unterminated string") + local Integer = P"-"^(-1) * (P"0" + (R"19" * R"09"^0)) + local Fractal = P"." * R"09"^0 + local Exponent = (S"eE") * (S"+-")^(-1) * R"09"^1 + local Number = (Integer * Fractal^(-1) * Exponent^(-1))/str2num + local Constant = P"true" * g.Cc (true) + P"false" * g.Cc (false) + P"null" * g.Carg (1) + local SimpleValue = Number + String + Constant + local ArrayContent, ObjectContent + + -- The functions parsearray and parseobject parse only a single value/pair + -- at a time and store them directly to avoid hitting the LPeg limits. + local function parsearray (str, pos, nullval, state) + local obj, cont + local npos + local t, nt = {}, 0 + repeat + obj, cont, npos = pegmatch (ArrayContent, str, pos, nullval, state) + if not npos then break end + pos = npos + nt = nt + 1 + t[nt] = obj + until cont == 'last' + return pos, setmetatable (t, state.arraymeta) + end + + local function parseobject (str, pos, nullval, state) + local obj, key, cont + local npos + local t = {} + repeat + key, obj, cont, npos = pegmatch (ObjectContent, str, pos, nullval, state) + if not npos then break end + pos = npos + t[key] = obj + until cont == 'last' + return pos, setmetatable (t, state.objectmeta) + end + + local Array = P"[" * g.Cmt (g.Carg(1) * g.Carg(2), parsearray) * Space * (P"]" + Err "']' expected") + local Object = P"{" * g.Cmt (g.Carg(1) * g.Carg(2), parseobject) * Space * (P"}" + Err "'}' expected") + local Value = Space * (Array + Object + SimpleValue) + local ExpectedValue = Value + Space * Err "value expected" + ArrayContent = Value * Space * (P"," * g.Cc'cont' + g.Cc'last') * g.Cp() + local Pair = g.Cg (Space * String * Space * (P":" + Err "colon expected") * ExpectedValue) + ObjectContent = Pair * Space * (P"," * g.Cc'cont' + g.Cc'last') * g.Cp() + local DecodeValue = ExpectedValue * g.Cp () + + function json.decode (str, pos, nullval, ...) + local state = {} + state.objectmeta, state.arraymeta = optionalmetatables(...) + local obj, retpos = pegmatch (DecodeValue, str, pos, nullval, state) + if state.msg then + return nil, state.pos, state.msg + else + return obj, retpos + end + end + + -- use this function only once: + json.use_lpeg = function () return json end + + json.using_lpeg = true + + return json -- so you can get the module using json = require "dkjson".use_lpeg() +end + +if always_try_using_lpeg then + pcall (json.use_lpeg) +end + +return json + diff --git a/lib/dkjson/jsontest.lua b/lib/dkjson/jsontest.lua new file mode 100644 index 0000000..2884d84 --- /dev/null +++ b/lib/dkjson/jsontest.lua @@ -0,0 +1,653 @@ +local encode, decode, dkencode, dkdecode + + +local test_module, opt = ... -- command line argument +--local test_module = 'cmj-json' +--local test_module = 'dkjson' +--local test_module = 'dkjson-nopeg' +--local test_module = 'fleece' +--local test_module = 'jf-json' +--locel test_module = 'lua-yajl' +--local test_module = 'mp-cjson' +--local test_module = 'nm-json' +--local test_module = 'sb-json' +--local test_module = 'th-json' +test_module = test_module or 'dkjson' + +--local opt = "esc" -- Test which characters in the BMP get escaped and whether this is correct +--local opt = "esc_full" -- Full range from 0 to 0x10ffff +--local opt = "esc_asc" -- Just 0 to 127 + +--local opt = "refcycle" -- What happens when a reference cycle gets encoded? + +local testlocale = "de_DE.UTF8" + +local function inlocale(fn) + local oldloc = os.setlocale(nil, 'numeric') + if not os.setlocale(testlocale, 'numeric') then + print("test could not switch to locale "..testlocale) + else + fn() + end + os.setlocale(oldloc, 'numeric') +end + +if test_module == 'dkjson-nopeg' then + test_module = 'dkjson' + package.preload["lpeg"] = function () error "lpeg disabled" end + package.loaded["lpeg"] = nil + lpeg = nil +end + +if test_module == 'dkjson-lulpeg' then + test_module = 'dkjson' + package.loaded["lpeg"] = require "lulpeg" +end + +do + -- http://chiselapp.com/user/dhkolf/repository/dkjson/ + local dkjson = require "dkjson" + dkencode = dkjson.encode + dkdecode = dkjson.decode +end + +if test_module == 'cmj-json' then + -- https://github.com/craigmj/json4lua/ + -- http://json.luaforge.net/ + local json = require "cmjjson" -- renamed, the original file was just 'json' + encode = json.encode + decode = json.decode +elseif test_module == 'dkjson' then + -- http://chiselapp.com/user/dhkolf/repository/dkjson/ + encode = dkencode + decode = dkdecode +elseif test_module == 'fleece' then + -- http://www.eonblast.com/fleece/ + local fleece = require "fleece" + encode = function(x) return fleece.json(x, "E4") end +elseif test_module == 'jf-json' then + -- http://regex.info/blog/lua/json + local json = require "jfjson" -- renamed, the original file was just 'JSON' + encode = function(x) return json:encode(x) end + decode = function(x) return json:decode(x) end +elseif test_module == 'lua-yajl' then + -- http://github.com/brimworks/lua-yajl + local yajl = require ("yajl") + encode = yajl.to_string + decode = yajl.to_value +elseif test_module == 'mp-cjson' then + -- http://www.kyne.com.au/~mark/software/lua-cjson.php + local json = require "cjson" + encode = json.encode + decode = json.decode +elseif test_module == 'nm-json' then + -- http://luaforge.net/projects/luajsonlib/ + local json = require "LuaJSON" + encode = json.encode or json.stringify + decode = json.decode or json.parse +elseif test_module == 'sb-json' then + -- http://www.chipmunkav.com/downloads/Json.lua + local json = require "sbjson" -- renamed, the original file was just 'Json' + encode = json.Encode + decode = json.Decode +elseif test_module == 'th-json' then + -- https://github.com/harningt/luajson + -- http://luaforge.net/projects/luajson/ + local json = require "json" + encode = json.encode + decode = json.decode +else + print "No module specified" + return +end + +if not encode then + print ("No encode method") +else + local x, r + + local escapecodes = { + ["\""] = "\\\"", ["\\"] = "\\\\", ["\b"] = "\\b", ["\f"] = "\\f", + ["\n"] = "\\n", ["\r"] = "\\r", ["\t"] = "\\t", ["/"] = "\\/" + } + local function test (x, n, expect) + local enc = encode{ x }:match("^%s*%[%s*%\"(.-)%\"%s*%]%s*$") + if not enc or (escapecodes[x] ~= enc + and ("\\u%04x"):format(n) ~= enc:gsub("[A-F]", string.lower) + and not (expect and enc:match("^"..expect.."$"))) then + print(("U+%04X isn't encoded correctly: %q"):format(n, enc)) + end + end + + -- necessary escapes for JSON: + for i = 0,31 do + test(string.char(i), i) + end + test("\"", ("\""):byte()) + test("\\", ("\\"):byte()) + -- necessary escapes for JavaScript: + test("\226\128\168", 0x2028) + test("\226\128\169", 0x2029) + -- invalid escapes that were seen in the wild: + test("'", ("'"):byte(), "%'") + + r,x = pcall (encode, { [1000] = "x" }) + if not r then + print ("encoding a sparse array (#=0) raises an error:", x) + else + if #x > 30 then + print ("sparse array (#=0) encoded as:", x:sub(1,15).." <...> "..x:sub(-15,-1), "#"..#x) + else + print ("sparse array (#=0) encoded as:", x) + end + end + + r,x = pcall (encode, { [1] = "a", [1000] = "x" }) + if not r then + print ("encoding a sparse array (#=1) raises an error:", x) + else + if #x > 30 then + print ("sparse array (#=1) encoded as:", x:sub(1,15).." <...> "..x:sub(-15,-1), "#str="..#x) + else + print ("sparse array (#=1) encoded as:", x) + end + end + + r,x = pcall (encode, { [1] = "a", [5] = "c", ["x"] = "x" }) + if not r then + print ("encoding a mixed table raises an error:", x) + else + print ("mixed table encoded as:", x) + end + + r, x = pcall(encode, { math.huge*0 }) -- NaN + if not r then + print ("encoding NaN raises an error:", x) + else + r = dkdecode(x) + if not r then + print ("NaN isn't converted into valid JSON:", x) + elseif type(r[1]) == "number" and r[1] == r[1] then -- a number, but not NaN + print ("NaN is converted into a valid number:", x) + else + print ("NaN is converted to:", x) + end + end + + if test_module == 'fleece' then + print ("Fleece (0.3.1) is known to freeze on +/-Inf") + else + r, x = pcall(encode, { math.huge }) -- +Inf + if not r then + print ("encoding +Inf raises an error:", x) + else + r = dkdecode(x) + if not r then + print ("+Inf isn't converted into valid JSON:", x) + else + print ("+Inf is converted to:", x) + end + end + + r, x = pcall(encode, { -math.huge }) -- -Inf + if not r then + print ("encoding -Inf raises an error:", x) + else + r = dkdecode(x) + if not r then + print ("-Inf isn't converted into valid JSON:", x) + else + print ("-Inf is converted to:", x) + end + end + end + + inlocale(function () + local r, x = pcall(encode, { 0.5 }) + if not r then + print("encoding 0.5 in locale raises an error:", x) + elseif not x:find(".", 1, true) then + print("In locale 0.5 isn't converted into valid JSON:", x) + end + end) + + -- special tests for dkjson: + if test_module == 'dkjson' then + do -- encode a function + local why, value, exstate + local state = { + exception = function (w, v, s) + why, value, exstate = w, v, s + return "\"demo\"" + end + } + local encfunction = function () end + r, x = pcall(dkencode, { encfunction }, state ) + if not r then + print("encoding a function with exception handler raises an error:", x) + else + if x ~= "[\"demo\"]" then + print("expected to see output of exception handler for type exception, but got", x) + end + if why ~= "unsupported type" then + print("expected exception reason to be 'unsupported type' for type exception") + end + if value ~= encfunction then + print("expected to recieve value for type exception") + end + if exstate ~= state then + print("expected to recieve state for type exception") + end + end + + r, x = pcall(dkencode, { function () end }, { + exception = function (w, v, s) + return nil, "demo" + end + }) + if r or x ~= "demo" then + print("expected custom error for type exception, but got:", r, x) + end + + r, x = pcall(dkencode, { function () end }, { + exception = function (w, v, s) + return nil + end + }) + if r or x ~= "type 'function' is not supported by JSON." then + print("expected default error for type exception, but got:", r, x) + end + end + + do -- encode a reference cycle + local why, value, exstate + local state = { + exception = function (w, v, s) + why, value, exstate = w, v, s + return "\"demo\"" + end + } + local a = {} + a[1] = a + r, x = pcall(dkencode, a, state ) + if not r then + print("encoding a reference cycle with exception handler raises an error:", x) + else + if x ~= "[\"demo\"]" then + print("expected to see output of exception handler for reference cycle exception, but got", x) + end + if why ~= "reference cycle" then + print("expected exception reason to be 'reference cycle' for reference cycle exception") + end + if value ~= a then + print("expected to recieve value for reference cycle exception") + end + if exstate ~= state then + print("expected to recieve state for reference cycle exception") + end + end + end + + do -- example exception handler + r = dkencode(function () end, { exception = require "dkjson".encodeexception }) + if r ~= [[""]] then + print("expected the exception encoder to encode default error message, but got", r) + end + end + + do -- test state buffer for custom __tojson function + local origstate = {} + local usedstate, usedbuffer, usedbufferlen + dkencode({ setmetatable({}, { + __tojson = function(self, state) + usedstate = state + usedbuffer = state.buffer + usedbufferlen = state.bufferlen + return true + end + }) }, origstate) + if usedstate ~= origstate then print("expected tojson-function to recieve the original state") end + if type(usedbuffer) ~= 'table' or #usedbuffer < 1 then print("expected buffer in tojson-function to be an array") end + if usedbufferlen ~= 1 then print("expected bufferlen in tojson-function to be 1, but got "..tostring(usedbufferlen)) end + end + + do -- do not keep buffer and bufferlen when they were not present initially + local origstate = {} + dkencode(setmetatable({}, {__tojson = function() return true end}), origstate) + if origstate.buffer ~= nil then print("expected buffer to be reset to nil") end + if origstate.bufferlen ~= nil then print("expected bufferlen to be reset to nil") end + end + + do -- keep buffer and update bufferlen when they were present initially + local origbuffer = {} + local origstate = { buffer = origbuffer } + dkencode(true, origstate) + if origstate.buffer ~= origbuffer then print("expected original buffer to remain") end + if origstate.bufferlen ~= 1 then print("expected bufferlen to be updated") end + end + end +end + +if not decode then + print ("No decode method") +else + local x, r + + x = decode[=[ ["\u0000"] ]=] + if x[1] ~= "\000" then + print ("\\u0000 isn't decoded correctly") + end + + x = decode[=[ ["\u20AC"] ]=] + if x[1] ~= "\226\130\172" then + print ("\\u20AC isn't decoded correctly") + end + + x = decode[=[ ["\uD834\uDD1E"] ]=] + if x[1] ~= "\240\157\132\158" then + print ("\\uD834\\uDD1E isn't decoded correctly") + end + + r, x = pcall(decode, [=[ +{"x":{"x":{"x":{"x":{"x": {"x":{"x":{"x":{"x":{"x": {"x":{"x":{"x":{"x":{"x": +{"x":{"x":{"x":{"x":{"x": {"x":{"x":{"x":{"x":{"x": {"x":{"x":{"x":{"x":{"x": +{"x":{"x":{"x":{"x":{"x": {"x":{"x":{"x":{"x":{"x": {"x":{"x":{"x":{"x":{"x": +{"x":{"x":{"x":{"x":{"x": {"x":{"x":{"x":{"x":{"x": {"x":{"x":{"x":{"x":{"x": +"deep down" + } } } } } } } } } } } } } } } + } } } } } } } } } } } } } } } + } } } } } } } } } } } } } } } + } } } } } } } } } } } } } } } +]=]) + + if not r then + print ("decoding a deep nested table raises an error:", x) + else + local i = 0 + while type(x) == 'table' do + i = i + 1 + x = x.x + end + if i ~= 60 or x ~= "deep down" then + print ("deep nested table isn't decoded correctly") + end + end + + if false and test_module == 'cmj-json' then + -- unfortunatly the version can't be read + print ("decoding a big array takes ages (or forever?) on cmj-json prior to version 0.9.5") + else + r, x = pcall(decode, "["..("0,"):rep(100000).."0]") + if not r then + print ("decoding a big array raises an error:", x) + else + if type(x) ~= 'table' or #x ~= 100001 then + print ("big array isn't decoded correctly") + end + end + end + + r, x = pcall(decode, "{}") + if not r then + print ("decoding an empty object raises an error:", x) + end + + r, x = pcall(decode, "[]") + if not r then + print ("decoding an empty array raises an error:", x) + end + + r, x = pcall(decode, "[1e+2]") + if not r then + print ("decoding a number with exponential notation raises an error:", x) + elseif x[1] ~= 1e+2 then + print ("1e+2 decoded incorrectly:", r[1]) + end + + inlocale(function () + local r, x = pcall(decode, "[0.5]") + if not r then + print("decoding 0.5 in locale raises an error:", x) + elseif not x then + print("cannot decode 0.5 in locale") + elseif x[1] ~= 0.5 then + print("decoded 0.5 incorrectly in locale:", x[1]) + end + end) + + -- special tests for dkjson: + if test_module == 'dkjson' then + x = dkdecode[=[ [{"x":0}] ]=] + local m = getmetatable(x) + if not m or m.__jsontype ~= 'array' then + print (".__jsontype ~= array") + end + local m = getmetatable(x[1]) + if not m or m.__jsontype ~= 'object' then + print (".__jsontype ~= object") + end + + local x,p,m = dkdecode" invalid " + if p ~= 2 or type(m) ~= 'string' or not m:find("at line 1, column 2$") then + print (("Invalid location: position=%d, message=%q"):format(p,m)) + end + local x,p,m = dkdecode" \n invalid " + if p ~= 4 or type(m) ~= 'string' or not m:find("at line 2, column 2$") then + print (("Invalid location: position=%d, message=%q"):format(p,m)) + end + + do -- single line comments + local x, p, m = dkdecode [[ +{"test://" // comment // --? + : [ // continues + 0] // +} +]] + if type(x) ~= 'table' or type(x["test://"]) ~= 'table' or x["test://"][1] ~= 0 then + print("could not decode a string with single line comments: "..tostring(m)) + end + end + + do -- multi line comments + local x, p, m = dkdecode [[ +{"test:/*"/**//* + hi! this is a comment +*/ : [/** / **/ 0] +} +]] + if type(x) ~= 'table' or type(x["test:/*"]) ~= 'table' or x["test:/*"][1] ~= 0 then + print("could not decode a string with multi line comments: "..tostring(m)) + end + end + end +end + +if encode and opt == "refcycle" then + local a = {} + a.a = a + print ("Trying a reference cycle...") + encode(a) +end + +if encode and (opt or ""):sub(1,3) == "esc" then + +local strchar, strbyte, strformat = string.char, string.byte, string.format +local floor = math.floor + +local function unichar (value) + if value < 0 then + return nil + elseif value <= 0x007f then + return strchar (value) + elseif value <= 0x07ff then + return strchar (0xc0 + floor(value/0x40), + 0x80 + (floor(value) % 0x40)) + elseif value <= 0xffff then + return strchar (0xe0 + floor(value/0x1000), + 0x80 + (floor(value/0x40) % 0x40), + 0x80 + (floor(value) % 0x40)) + elseif value <= 0x10ffff then + return strchar (0xf0 + floor(value/0x40000), + 0x80 + (floor(value/0x1000) % 0x40), + 0x80 + (floor(value/0x40) % 0x40), + 0x80 + (floor(value) % 0x40)) + else + return nil + end +end + +local escapecodes = { + ["\""] = "\\\"", ["\\"] = "\\\\", ["\b"] = "\\b", ["\f"] = "\\f", + ["\n"] = "\\n", ["\r"] = "\\r", ["\t"] = "\\t", ["/"] = "\\/" +} + +local function escapeutf8 (uchar) + local a, b, c, d = strbyte (uchar, 1, 4) + a, b, c, d = a or 0, b or 0, c or 0, d or 0 + if a <= 0x7f then + value = a + elseif 0xc0 <= a and a <= 0xdf and b >= 0x80 then + value = (a - 0xc0) * 0x40 + b - 0x80 + elseif 0xe0 <= a and a <= 0xef and b >= 0x80 and c >= 0x80 then + value = ((a - 0xe0) * 0x40 + b - 0x80) * 0x40 + c - 0x80 + elseif 0xf0 <= a and a <= 0xf7 and b >= 0x80 and c >= 0x80 and d >= 0x80 then + value = (((a - 0xf0) * 0x40 + b - 0x80) * 0x40 + c - 0x80) * 0x40 + d - 0x80 + else + return "" + end + if value <= 0xffff then + return strformat ("\\u%.4x", value) + elseif value <= 0x10ffff then + -- encode as UTF-16 surrogate pair + value = value - 0x10000 + local highsur, lowsur = 0xD800 + floor (value/0x400), 0xDC00 + (value % 0x400) + return strformat ("\\u%.4x\\u%.4x", highsur, lowsur) + else + return "" + end +end + + local isspecial = {} + local unifile = io.open("UnicodeData.txt") + if unifile then + -- + -- each line consists of 15 parts for each defined codepoints + local pat = {} + for i = 1,14 do + pat[i] = "[^;]*;" + end + pat[1] = "([^;]*);" -- Codepoint + pat[3] = "([^;]*);" -- Category + pat[15] = "[^;]*" + pat = table.concat(pat) + + for line in unifile:lines() do + local cp, cat = line:match(pat) + if cat:match("^C[^so]") or cat:match("^Z[lp]") then + isspecial[tonumber(cp, 16)] = cat + end + end + unifile:close() + end + + local x,xe + + local t = {} + local esc = {} + local escerr = {} + local range + if opt == "esc_full" then range = 0x10ffff + elseif opt == "esc_asc" then range = 0x7f + else range = 0xffff end + + for i = 0,range do + t[1] = unichar(i) + xe = encode(t) + x = string.match(xe, "^%s*%[%s*%\"(.*)%\"%s*%]%s*$") + if type(x) ~= 'string' then + escerr[i] = xe + elseif string.lower(x) == escapeutf8(t[1]) then + esc[i] = 'u' + elseif x == escapecodes[t[1]] then + esc[i] = 'c' + elseif x:sub(1,1) == "\\" then + escerr[i] = xe + end + end + do + local i = 0 + while i <= range do + local first + while i <= range and not (esc[i] or isspecial[i]) do i = i + 1 end + if i > range then break end + first = i + local special = isspecial[i] + if esc[i] and special then + while esc[i] and isspecial[i] == special do i = i + 1 end + if i-1 > first then + print (("Escaped %s characters from U+%04X to U+%04X"):format(special,first,i-1)) + else + print (("Escaped %s character U+%04X"):format(special,first)) + end + elseif esc[i] then + while esc[i] and not isspecial[i] do i = i + 1 end + if i-1 > first then + print (("Escaped from U+%04X to U+%04X"):format(first,i-1)) + else + if first >= 32 and first <= 127 then + print (("Escaped U+%04X (%c)"):format(first,first)) + else + print (("Escaped U+%04X"):format(first)) + end + end + elseif special then + while not esc[i] and isspecial[i] == special do i = i + 1 end + if i-1 > first then + print (("Unescaped %s characters from U+%04X to U+%04X"):format(special,first,i-1)) + else + print (("Unescaped %s character U+%04X"):format(special,first)) + end + end + end + end + do + local i = 0 + while i <= range do + local first + while i <= range and not escerr[i] do i = i + 1 end + if not escerr[i] then break end + first = i + while escerr[i] do i = i + 1 end + if i-1 > first then + print (("Errors while escaping from U+%04X to U+%04X"):format(first, i-1)) + else + print (("Errors while escaping U+%04X"):format(first)) + end + end + end + +end + +-- Copyright (C) 2011 David Heiko Kolf +-- +-- Permission is hereby granted, free of charge, to any person obtaining +-- a copy of this software and associated documentation files (the +-- "Software"), to deal in the Software without restriction, including +-- without limitation the rights to use, copy, modify, merge, publish, +-- distribute, sublicense, and/or sell copies of the Software, and to +-- permit persons to whom the Software is furnished to do so, subject to +-- the following conditions: +-- +-- The above copyright notice and this permission notice shall be +-- included in all copies or substantial portions of the Software. +-- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +-- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +-- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +-- BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +-- ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +-- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +-- SOFTWARE. + + diff --git a/lib/dkjson/readme.txt b/lib/dkjson/readme.txt new file mode 100644 index 0000000..86ada92 --- /dev/null +++ b/lib/dkjson/readme.txt @@ -0,0 +1,211 @@ +David Kolf's JSON module for Lua 5.1/5.2 +======================================== + +*Version 2.5* + +In the default configuration this module writes no global values, not even +the module table. Import it using + + json = require ("dkjson") + +In environments where `require` or a similiar function are not available +and you cannot receive the return value of the module, you can set the +option `register_global_module_table` to `true`. The module table will +then be saved in the global variable with the name given by the option +`global_module_name`. + +Exported functions and values: + +`json.encode (object [, state])` +-------------------------------- + +Create a string representing the object. `Object` can be a table, +a string, a number, a boolean, `nil`, `json.null` or any object with +a function `__tojson` in its metatable. A table can only use strings +and numbers as keys and its values have to be valid objects as +well. It raises an error for any invalid data types or reference +cycles. + +`state` is an optional table with the following fields: + + - `indent` + When `indent` (a boolean) is set, the created string will contain + newlines and indentations. Otherwise it will be one long line. + - `keyorder` + `keyorder` is an array to specify the ordering of keys in the + encoded output. If an object has keys which are not in this array + they are written after the sorted keys. + - `level` + This is the initial level of indentation used when `indent` is + set. For each level two spaces are added. When absent it is set + to 0. + - `buffer` + `buffer` is an array to store the strings for the result so they + can be concatenated at once. When it isn't given, the encode + function will create it temporary and will return the + concatenated result. + - `bufferlen` + When `bufferlen` is set, it has to be the index of the last + element of `buffer`. + - `tables` + `tables` is a set to detect reference cycles. It is created + temporary when absent. Every table that is currently processed + is used as key, the value is `true`. + - `exception` + When `exception` is given, it will be called whenever the encoder + cannot encode a given value. + The parameters are `reason`, `value`, `state` and `defaultmessage`. + `reason` is either `"reference cycle"`, `"custom encoder failed"` or + `"unsupported type"`. `value` is the original value that caused the + exception, `state` is this state table, `defaultmessage` is the message + of the error that would usually be raised. + You can either return `true` and add directly to the buffer or you can + return the string directly. To keep raising an error return `nil` and + the desired error message. + An example implementation for an exception function is given in + `json.encodeexception`. + +When `state.buffer` was set, the return value will be `true` on +success. Without `state.buffer` the return value will be a string. + +`json.decode (string [, position [, null]])` +-------------------------------------------- + +Decode `string` starting at `position` or at 1 if `position` was +omitted. + +`null` is an optional value to be returned for null values. The +default is `nil`, but you could set it to `json.null` or any other +value. + +The return values are the object or `nil`, the position of the next +character that doesn't belong to the object, and in case of errors +an error message. + +Two metatables are created. Every array or object that is decoded gets +a metatable with the `__jsontype` field set to either `array` or +`object`. If you want to provide your own metatables use the syntax + + json.decode (string, position, null, objectmeta, arraymeta) + +To prevent the assigning of metatables pass `nil`: + + json.decode (string, position, null, nil) + +`.__jsonorder` +------------------------- + +`__jsonorder` can overwrite the `keyorder` for a specific table. + +`.__jsontype` +------------------------ + +`__jsontype` can be either `"array"` or `"object"`. This value is only +checked for empty tables. (The default for empty tables is `"array"`). + +`.__tojson (self, state)` +------------------------------------ + +You can provide your own `__tojson` function in a metatable. In this +function you can either add directly to the buffer and return true, +or you can return a string. On errors nil and a message should be +returned. + +`json.null` +----------- + +You can use this value for setting explicit `null` values. + +`json.version` +-------------- + +Set to `"dkjson 2.5"`. + +`json.quotestring (string)` +--------------------------- + +Quote a UTF-8 string and escape critical characters using JSON +escape sequences. This function is only necessary when you build +your own `__tojson` functions. + +`json.addnewline (state)` +------------------------- + +When `state.indent` is set, add a newline to `state.buffer` and spaces +according to `state.level`. + +`json.encodeexception (reason, value, state, defaultmessage)` +------------------------------------------------------------- + +This function can be used as value to the `exception` option. Instead of +raising an error this function encodes the error message as a string. This +can help to debug malformed input data. + + x = json.encode(value, { exception = json.encodeexception }) + +LPeg support +------------ + +When the local configuration variable `always_try_using_lpeg` is set, +this module tries to load LPeg to replace the `decode` function. The +speed increase is significant. You can get the LPeg module at + . +When LPeg couldn't be loaded, the pure Lua functions stay active. + +In case you don't want this module to require LPeg on its own, +disable the option `always_try_using_lpeg` in the options section at +the top of the module. + +In this case you can later load LPeg support using + +### `json.use_lpeg ()` + +Require the LPeg module and replace the functions `quotestring` and +and `decode` with functions that use LPeg patterns. +This function returns the module table, so you can load the module +using: + + json = require "dkjson".use_lpeg() + +Alternatively you can use `pcall` so the JSON module still works when +LPeg isn't found. + + json = require "dkjson" + pcall (json.use_lpeg) + +### `json.using_lpeg` + +This variable is set to `true` when LPeg was loaded successfully. + +--------------------------------------------------------------------- + +Contact +------- + +You can contact the author by sending an e-mail to 'david' at the +domain 'dkolf.de'. + +--------------------------------------------------------------------- + +*Copyright (C) 2010-2014 David Heiko Kolf* + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/lib/dkjson/speedtest.lua b/lib/dkjson/speedtest.lua new file mode 100644 index 0000000..69a8be5 --- /dev/null +++ b/lib/dkjson/speedtest.lua @@ -0,0 +1,131 @@ +local encode, decode + +local test_module = ... -- command line argument +--local test_module = 'cmj-json' +--local test_module = 'dkjson' +--local test_module = 'dkjson-nopeg' +--local test_module = 'fleece' +--local test_module = 'jf-json' +--locel test_module = 'lua-yajl' +--local test_module = 'mp-cjson' +--local test_module = 'nm-json' +--local test_module = 'sb-json' +--local test_module = 'th-json' + + +if test_module == 'cmj-json' then + -- http://json.luaforge.net/ + local json = require "cmjjson" -- renamed, the original file was just 'json' + encode = json.encode + decode = json.decode +elseif test_module == 'dkjson' then + -- http://chiselapp.com/user/dhkolf/repository/dkjson/ + local dkjson = require "dkjson" + encode = dkjson.encode + decode = dkjson.decode +elseif test_module == 'dkjson-nopeg' then + package.preload["lpeg"] = function () error "lpeg disabled" end + package.loaded["lpeg"] = nil + lpeg = nil + local dkjson = require "dkjson" + encode = dkjson.encode + decode = dkjson.decode +elseif test_module == 'fleece' then + -- http://www.eonblast.com/fleece/ + local fleece = require "fleece" + encode = function(x) return fleece.json(x, "E4") end +elseif test_module == 'jf-json' then + -- http://regex.info/blog/lua/json + local json = require "jfjson" -- renamed, the original file was just 'JSON' + encode = function(x) return json:encode(x) end + decode = function(x) return json:decode(x) end +elseif test_module == 'lua-yajl' then + -- http://github.com/brimworks/lua-yajl + local yajl = require ("yajl") + encode = yajl.to_string + decode = yajl.to_value +elseif test_module == 'mp-cjson' then + -- http://www.kyne.com.au/~mark/software/lua-cjson.php + local json = require "cjson" + encode = json.encode + decode = json.decode +elseif test_module == 'nm-json' then + -- http://luaforge.net/projects/luajsonlib/ + local json = require "LuaJSON" + encode = json.encode or json.stringify + decode = json.decode or json.parse +elseif test_module == 'sb-json' then + -- http://www.chipmunkav.com/downloads/Json.lua + local json = require "sbjson" -- renamed, the original file was just 'Json' + encode = json.Encode + decode = json.Decode +elseif test_module == 'th-json' then + -- http://luaforge.net/projects/luajson/ + local json = require "json" + encode = json.encode + decode = json.decode +else + print "No module specified" + return +end + +-- example data taken from +-- http://de.wikipedia.org/wiki/JavaScript_Object_Notation + +local str = [[ +{ + "Herausgeber": "Xema", + "Nummer": "1234-5678-9012-3456", + "Deckung": 26, + "Währung": "EUR", + "Inhaber": { + "Name": "Mustermann", + "Vorname": "Max", + "männlich": true, + "Depot": {}, + "Hobbys": [ "Reiten", "Golfen", "Lesen" ], + "Alter": 42, + "Kinder": [0], + "Partner": null + } +} +]] + +local tbl = { + Herausgeber= "Xema", + Nummer= "1234-5678-9012-3456", + Deckung= 2e+6, + ["Währung"]= "EUR", + Inhaber= { + Name= "Mustermann", + Vorname= "Max", + ["männlich"]= true, + Depot= {}, + Hobbys= { "Reiten", "Golfen", "Lesen" }, + Alter= 42, + Kinder= {}, + Partner= nil + --Partner= json.null + } +} + +local t1, t2 + +if decode then + t1 = os.clock () + for i = 1,100000 do + decode (str) + end + t2 = os.clock () + print ("Decoding:", t2 - t1) +end + +if encode then + t1 = os.clock () + for i = 1,100000 do + encode (tbl) + end + t2 = os.clock () + print ("Encoding:", t2 - t1) +end + diff --git a/lib/dkjson/versions.txt b/lib/dkjson/versions.txt new file mode 100644 index 0000000..32b9273 --- /dev/null +++ b/lib/dkjson/versions.txt @@ -0,0 +1,107 @@ +Version 2.5 (2014-04-28) +=========== + +Changes since version 2.4: + + * Added customizable exception handling. + * Decode input that contains JavaScript comments. + +Version 2.4 (2013-09-28) +=========== + +Changes since version 2.3: + + * Fixed encoding and decoding of numbers in different numeric locales. + * Prevent using version 0.11 of LPeg (causes segmentation faults on + some systems). + +Version 1.3 (2013-09-28) +=========== + +Changes since version 1.2: + + * Fixed encoding and decoding of numbers in different numeric locales. + +Version 2.3 (2013-04-14) +=========== + +Changes since version 2.2: + + * Corrected the range of escaped characters. Among other characters + U+2029 was missing, which would cause trouble when parsed by a + JavaScript interpreter. + * Added options to register the module table in a global variable. + This is useful in environments where functions similar to require are + not available. + +Version 1.2 (2013-04-14) +=========== + +Changes since version 1.1: + + * Corrected the range of escaped characters. Among other characters + U+2029 was missing, which would cause trouble when parsed by a + JavaScript interpreter. + * Locations for error messages were off by one in the first line. + +Version 2.2 (2012-04-28) +=========== + +Changes since version 2.1: + + * __jsontype is only used for empty tables. + * It is possible to decode tables without assigning metatables. + * Locations for error messages were off by one in the first line. + * There is no LPeg version of json.quotestring anymore. + +Version 2.1 (2011-07-08) +=========== + +Changes since version 2.0: + + * Changed the documentation to Markdown format. + * LPeg is now parsing only a single value at a time to avoid running + out of Lua stack for big arrays and objects. + * Read __tojson, __jsontype and __jsonorder even from blocked metatables + through the debug module. + * Fixed decoding single numbers (only affected the non-LPeg mode). + * Corrected the range of escaped Unicode control characters. + +Version 1.1 (2011-07-08) +=========== + +Changes since version 1.0: + + * The values NaN/+Inf/-Inf are recognised and encoded as "null" like in + the original JavaScript implementation. + * Read __tojson even from blocked metatables through the debug module. + * Fixed decoding single numbers. + * Corrected the range of escaped Unicode control characters. + +Version 2.0 (2011-05-31) +=========== + +Changes since version 1.0: + + * Optional LPeg support. + * Invalid input data for encoding raises errors instead of returning nil + and the error message. (Invalid data for encoding is usually a + programming error. Raising an error removes the work of explicitly + checking the result). + * The metatable field __jsontype can control whether a Lua table is + encoded as a JSON array or object. (Mainly useful for empty tables). + * When decoding, two metatables are created. One is used to mark the arrays + while the other one is used for the objects. (The metatables are + created once for each decoding operation to make sandboxing possible. + However, you can specify your own metatables as arguments). + * There are no spaces added any longer when encoding. + * It is possible to explicitly sort keys for encoding by providing an array with key + names to the option "keyorder" or the metatable field __jsonorder. + * The values NaN/+Inf/-Inf are recognised and encoded as "null" like in + the original JavaScript implementation. + +Version 1.0 +=========== + +Initial version, released 2010-08-28. + diff --git a/package.json b/package.json new file mode 100644 index 0000000..3834a83 --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "devDependencies": { + "@types/node": "^20.11.20", + "@typescript-eslint/eslint-plugin": "^6.7.5", + "@typescript-eslint/parser": "^6.7.5", + "@typescript-to-lua/language-extensions": "^1.19.0", + "dotenv": "^16.4.5", + "eslint": "^8.46.0", + "eslint-config-prettier": "^8.9.0", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-simple-import-sort": "^10.0.0", + "lua-json": "^1.0.1", + "lua-types": "^2.13.1", + "prettier": "^3.0.0", + "tsx": "^4.7.1", + "typescript": "^5.3.3", + "typescript-to-lua": "^1.24.1" + }, + "scripts": { + "lint": "eslint -c .eslintrc ./scripts ./src --ext .ts,.tsx", + "lua-docs:get": "lua ./scripts/lua-docs/get-docs.lua ./lib/BlizzardInterfaceCode/Interface/AddOns/Blizzard_APIDocumentationGenerated", + "lua-docs:format": "prettier --write ./scripts/lua-docs/docs/docs.json", + "lua-docs:full": "pnpm run lua-docs:get && pnpm run lua-docs:format", + "files:clean-dist": "tsx ./scripts/clear-dir dist", + "files:clean-tinkr": "tsx ./scripts/clear-dir tinkr", + "files:copy": "tsx ./scripts/copy-dist", + "types:gen": "tsx ./scripts/gen-types/gen-types.ts", + "types:format": "prettier --write ./src/types/Wow/*.d.ts", + "types:full": "pnpm run types:gen && pnpm run types:format", + "type-check": "tsc --skipLibCheck --noEmit", + "build:dist": "pnpm run files:clean-dist && tstl", + "build:full": "pnpm run files:clean-tinkr && pnpm run build:dist && pnpm run files:copy" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..98fc968 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1794 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +devDependencies: + '@types/node': + specifier: ^20.11.20 + version: registry.npmjs.org/@types/node@20.11.20 + '@typescript-eslint/eslint-plugin': + specifier: ^6.7.5 + version: registry.npmjs.org/@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.46.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^6.7.5 + version: registry.npmjs.org/@typescript-eslint/parser@6.7.5(eslint@8.46.0)(typescript@5.3.3) + '@typescript-to-lua/language-extensions': + specifier: ^1.19.0 + version: registry.npmjs.org/@typescript-to-lua/language-extensions@1.19.0 + dotenv: + specifier: ^16.4.5 + version: registry.npmjs.org/dotenv@16.4.5 + eslint: + specifier: ^8.46.0 + version: registry.npmjs.org/eslint@8.46.0 + eslint-config-prettier: + specifier: ^8.9.0 + version: registry.npmjs.org/eslint-config-prettier@8.9.0(eslint@8.46.0) + eslint-plugin-prettier: + specifier: ^5.0.0 + version: registry.npmjs.org/eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.9.0)(eslint@8.46.0)(prettier@3.0.0) + eslint-plugin-simple-import-sort: + specifier: ^10.0.0 + version: registry.npmjs.org/eslint-plugin-simple-import-sort@10.0.0(eslint@8.46.0) + lua-json: + specifier: ^1.0.1 + version: registry.npmjs.org/lua-json@1.0.1 + lua-types: + specifier: ^2.13.1 + version: registry.npmjs.org/lua-types@2.13.1 + prettier: + specifier: ^3.0.0 + version: registry.npmjs.org/prettier@3.0.0 + tsx: + specifier: ^4.7.1 + version: registry.npmjs.org/tsx@4.7.1 + typescript: + specifier: ^5.3.3 + version: registry.npmjs.org/typescript@5.3.3 + typescript-to-lua: + specifier: ^1.24.1 + version: registry.npmjs.org/typescript-to-lua@1.24.1(typescript@5.3.3) + +packages: + + registry.npmjs.org/@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz} + name: '@aashutoshrathi/word-wrap' + version: 1.2.6 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz} + name: '@esbuild/aix-ppc64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz} + name: '@esbuild/android-arm64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz} + name: '@esbuild/android-arm' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz} + name: '@esbuild/android-x64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz} + name: '@esbuild/darwin-arm64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz} + name: '@esbuild/darwin-x64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz} + name: '@esbuild/freebsd-x64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz} + name: '@esbuild/linux-arm64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz} + name: '@esbuild/linux-arm' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz} + name: '@esbuild/linux-ia32' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz} + name: '@esbuild/linux-loong64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz} + name: '@esbuild/linux-mips64el' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz} + name: '@esbuild/linux-ppc64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz} + name: '@esbuild/linux-riscv64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz} + name: '@esbuild/linux-s390x' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz} + name: '@esbuild/linux-x64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz} + name: '@esbuild/netbsd-x64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz} + name: '@esbuild/openbsd-x64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz} + name: '@esbuild/sunos-x64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz} + name: '@esbuild/win32-arm64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz} + name: '@esbuild/win32-ia32' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz} + name: '@esbuild/win32-x64' + version: 0.19.12 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} + id: registry.npmjs.org/@eslint-community/eslint-utils/4.4.0 + name: '@eslint-community/eslint-utils' + version: 4.4.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: registry.npmjs.org/eslint@8.46.0 + eslint-visitor-keys: registry.npmjs.org/eslint-visitor-keys@3.4.3 + dev: true + + registry.npmjs.org/@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz} + name: '@eslint-community/regexpp' + version: 4.10.0 + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + registry.npmjs.org/@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz} + name: '@eslint/eslintrc' + version: 2.1.4 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: registry.npmjs.org/ajv@6.12.6 + debug: registry.npmjs.org/debug@4.3.4 + espree: registry.npmjs.org/espree@9.6.1 + globals: registry.npmjs.org/globals@13.24.0 + ignore: registry.npmjs.org/ignore@5.3.1 + import-fresh: registry.npmjs.org/import-fresh@3.3.0 + js-yaml: registry.npmjs.org/js-yaml@4.1.0 + minimatch: registry.npmjs.org/minimatch@3.1.2 + strip-json-comments: registry.npmjs.org/strip-json-comments@3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmjs.org/@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz} + name: '@eslint/js' + version: 8.57.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + registry.npmjs.org/@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz} + name: '@humanwhocodes/config-array' + version: 0.11.14 + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': registry.npmjs.org/@humanwhocodes/object-schema@2.0.2 + debug: registry.npmjs.org/debug@4.3.4 + minimatch: registry.npmjs.org/minimatch@3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmjs.org/@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz} + name: '@humanwhocodes/module-importer' + version: 1.0.1 + engines: {node: '>=12.22'} + dev: true + + registry.npmjs.org/@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz} + name: '@humanwhocodes/object-schema' + version: 2.0.2 + dev: true + + registry.npmjs.org/@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} + name: '@nodelib/fs.scandir' + version: 2.1.5 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': registry.npmjs.org/@nodelib/fs.stat@2.0.5 + run-parallel: registry.npmjs.org/run-parallel@1.2.0 + dev: true + + registry.npmjs.org/@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + name: '@nodelib/fs.stat' + version: 2.0.5 + engines: {node: '>= 8'} + dev: true + + registry.npmjs.org/@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + name: '@nodelib/fs.walk' + version: 1.2.8 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': registry.npmjs.org/@nodelib/fs.scandir@2.1.5 + fastq: registry.npmjs.org/fastq@1.17.1 + dev: true + + registry.npmjs.org/@pkgr/core@0.1.1: + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz} + name: '@pkgr/core' + version: 0.1.1 + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true + + registry.npmjs.org/@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz} + name: '@types/json-schema' + version: 7.0.15 + dev: true + + registry.npmjs.org/@types/node@20.11.20: + resolution: {integrity: sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz} + name: '@types/node' + version: 20.11.20 + dependencies: + undici-types: registry.npmjs.org/undici-types@5.26.5 + dev: true + + registry.npmjs.org/@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz} + name: '@types/semver' + version: 7.5.8 + dev: true + + registry.npmjs.org/@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.46.0)(typescript@5.3.3): + resolution: {integrity: sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz} + id: registry.npmjs.org/@typescript-eslint/eslint-plugin/6.7.5 + name: '@typescript-eslint/eslint-plugin' + version: 6.7.5 + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': registry.npmjs.org/@eslint-community/regexpp@4.10.0 + '@typescript-eslint/parser': registry.npmjs.org/@typescript-eslint/parser@6.7.5(eslint@8.46.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': registry.npmjs.org/@typescript-eslint/scope-manager@6.7.5 + '@typescript-eslint/type-utils': registry.npmjs.org/@typescript-eslint/type-utils@6.7.5(eslint@8.46.0)(typescript@5.3.3) + '@typescript-eslint/utils': registry.npmjs.org/@typescript-eslint/utils@6.7.5(eslint@8.46.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': registry.npmjs.org/@typescript-eslint/visitor-keys@6.7.5 + debug: registry.npmjs.org/debug@4.3.4 + eslint: registry.npmjs.org/eslint@8.46.0 + graphemer: registry.npmjs.org/graphemer@1.4.0 + ignore: registry.npmjs.org/ignore@5.3.1 + natural-compare: registry.npmjs.org/natural-compare@1.4.0 + semver: registry.npmjs.org/semver@7.6.0 + ts-api-utils: registry.npmjs.org/ts-api-utils@1.2.1(typescript@5.3.3) + typescript: registry.npmjs.org/typescript@5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmjs.org/@typescript-eslint/parser@6.7.5(eslint@8.46.0)(typescript@5.3.3): + resolution: {integrity: sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.5.tgz} + id: registry.npmjs.org/@typescript-eslint/parser/6.7.5 + name: '@typescript-eslint/parser' + version: 6.7.5 + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': registry.npmjs.org/@typescript-eslint/scope-manager@6.7.5 + '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@6.7.5 + '@typescript-eslint/typescript-estree': registry.npmjs.org/@typescript-eslint/typescript-estree@6.7.5(typescript@5.3.3) + '@typescript-eslint/visitor-keys': registry.npmjs.org/@typescript-eslint/visitor-keys@6.7.5 + debug: registry.npmjs.org/debug@4.3.4 + eslint: registry.npmjs.org/eslint@8.46.0 + typescript: registry.npmjs.org/typescript@5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmjs.org/@typescript-eslint/scope-manager@6.7.5: + resolution: {integrity: sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz} + name: '@typescript-eslint/scope-manager' + version: 6.7.5 + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@6.7.5 + '@typescript-eslint/visitor-keys': registry.npmjs.org/@typescript-eslint/visitor-keys@6.7.5 + dev: true + + registry.npmjs.org/@typescript-eslint/type-utils@6.7.5(eslint@8.46.0)(typescript@5.3.3): + resolution: {integrity: sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz} + id: registry.npmjs.org/@typescript-eslint/type-utils/6.7.5 + name: '@typescript-eslint/type-utils' + version: 6.7.5 + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': registry.npmjs.org/@typescript-eslint/typescript-estree@6.7.5(typescript@5.3.3) + '@typescript-eslint/utils': registry.npmjs.org/@typescript-eslint/utils@6.7.5(eslint@8.46.0)(typescript@5.3.3) + debug: registry.npmjs.org/debug@4.3.4 + eslint: registry.npmjs.org/eslint@8.46.0 + ts-api-utils: registry.npmjs.org/ts-api-utils@1.2.1(typescript@5.3.3) + typescript: registry.npmjs.org/typescript@5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmjs.org/@typescript-eslint/types@6.7.5: + resolution: {integrity: sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.5.tgz} + name: '@typescript-eslint/types' + version: 6.7.5 + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + registry.npmjs.org/@typescript-eslint/typescript-estree@6.7.5(typescript@5.3.3): + resolution: {integrity: sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz} + id: registry.npmjs.org/@typescript-eslint/typescript-estree/6.7.5 + name: '@typescript-eslint/typescript-estree' + version: 6.7.5 + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@6.7.5 + '@typescript-eslint/visitor-keys': registry.npmjs.org/@typescript-eslint/visitor-keys@6.7.5 + debug: registry.npmjs.org/debug@4.3.4 + globby: registry.npmjs.org/globby@11.1.0 + is-glob: registry.npmjs.org/is-glob@4.0.3 + semver: registry.npmjs.org/semver@7.6.0 + ts-api-utils: registry.npmjs.org/ts-api-utils@1.2.1(typescript@5.3.3) + typescript: registry.npmjs.org/typescript@5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmjs.org/@typescript-eslint/utils@6.7.5(eslint@8.46.0)(typescript@5.3.3): + resolution: {integrity: sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz} + id: registry.npmjs.org/@typescript-eslint/utils/6.7.5 + name: '@typescript-eslint/utils' + version: 6.7.5 + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': registry.npmjs.org/@eslint-community/eslint-utils@4.4.0(eslint@8.46.0) + '@types/json-schema': registry.npmjs.org/@types/json-schema@7.0.15 + '@types/semver': registry.npmjs.org/@types/semver@7.5.8 + '@typescript-eslint/scope-manager': registry.npmjs.org/@typescript-eslint/scope-manager@6.7.5 + '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@6.7.5 + '@typescript-eslint/typescript-estree': registry.npmjs.org/@typescript-eslint/typescript-estree@6.7.5(typescript@5.3.3) + eslint: registry.npmjs.org/eslint@8.46.0 + semver: registry.npmjs.org/semver@7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + registry.npmjs.org/@typescript-eslint/visitor-keys@6.7.5: + resolution: {integrity: sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz} + name: '@typescript-eslint/visitor-keys' + version: 6.7.5 + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@6.7.5 + eslint-visitor-keys: registry.npmjs.org/eslint-visitor-keys@3.4.3 + dev: true + + registry.npmjs.org/@typescript-to-lua/language-extensions@1.19.0: + resolution: {integrity: sha512-Os5wOKwviTD4LeqI29N0btYOjokSJ97iCf45EOjIABlb5IwNQy7AE/AqZJobRw3ywHH8+KzJUMkEirWPzh2tUA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-to-lua/language-extensions/-/language-extensions-1.19.0.tgz} + name: '@typescript-to-lua/language-extensions' + version: 1.19.0 + dev: true + + registry.npmjs.org/acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz} + id: registry.npmjs.org/acorn-jsx/5.3.2 + name: acorn-jsx + version: 5.3.2 + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: registry.npmjs.org/acorn@8.11.3 + dev: true + + registry.npmjs.org/acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz} + name: acorn + version: 8.11.3 + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + registry.npmjs.org/ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz} + name: ajv + version: 6.12.6 + dependencies: + fast-deep-equal: registry.npmjs.org/fast-deep-equal@3.1.3 + fast-json-stable-stringify: registry.npmjs.org/fast-json-stable-stringify@2.1.0 + json-schema-traverse: registry.npmjs.org/json-schema-traverse@0.4.1 + uri-js: registry.npmjs.org/uri-js@4.4.1 + dev: true + + registry.npmjs.org/ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz} + name: ansi-regex + version: 5.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmjs.org/color-convert@2.0.1 + dev: true + + registry.npmjs.org/argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz} + name: argparse + version: 2.0.1 + dev: true + + registry.npmjs.org/array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz} + name: array-union + version: 2.1.0 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + dev: true + + registry.npmjs.org/brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmjs.org/balanced-match@1.0.2 + concat-map: registry.npmjs.org/concat-map@0.0.1 + dev: true + + registry.npmjs.org/braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/braces/-/braces-3.0.2.tgz} + name: braces + version: 3.0.2 + engines: {node: '>=8'} + dependencies: + fill-range: registry.npmjs.org/fill-range@7.0.1 + dev: true + + registry.npmjs.org/callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz} + name: callsites + version: 3.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmjs.org/chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz} + name: chalk + version: 4.1.2 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmjs.org/ansi-styles@4.3.0 + supports-color: registry.npmjs.org/supports-color@7.2.0 + dev: true + + registry.npmjs.org/color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz} + name: color-convert + version: 2.0.1 + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmjs.org/color-name@1.1.4 + dev: true + + registry.npmjs.org/color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + dev: true + + registry.npmjs.org/concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz} + name: concat-map + version: 0.0.1 + dev: true + + registry.npmjs.org/cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz} + name: cross-spawn + version: 7.0.3 + engines: {node: '>= 8'} + dependencies: + path-key: registry.npmjs.org/path-key@3.1.1 + shebang-command: registry.npmjs.org/shebang-command@2.0.0 + which: registry.npmjs.org/which@2.0.2 + dev: true + + registry.npmjs.org/debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/debug/-/debug-4.3.4.tgz} + name: debug + version: 4.3.4 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmjs.org/ms@2.1.2 + dev: true + + registry.npmjs.org/deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz} + name: deep-is + version: 0.1.4 + dev: true + + registry.npmjs.org/dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz} + name: dir-glob + version: 3.0.1 + engines: {node: '>=8'} + dependencies: + path-type: registry.npmjs.org/path-type@4.0.0 + dev: true + + registry.npmjs.org/doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz} + name: doctrine + version: 3.0.0 + engines: {node: '>=6.0.0'} + dependencies: + esutils: registry.npmjs.org/esutils@2.0.3 + dev: true + + registry.npmjs.org/dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz} + name: dotenv + version: 16.4.5 + engines: {node: '>=12'} + dev: true + + registry.npmjs.org/enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz} + name: enhanced-resolve + version: 5.15.0 + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 + tapable: registry.npmjs.org/tapable@2.2.1 + dev: true + + registry.npmjs.org/esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz} + name: esbuild + version: 0.19.12 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': registry.npmjs.org/@esbuild/aix-ppc64@0.19.12 + '@esbuild/android-arm': registry.npmjs.org/@esbuild/android-arm@0.19.12 + '@esbuild/android-arm64': registry.npmjs.org/@esbuild/android-arm64@0.19.12 + '@esbuild/android-x64': registry.npmjs.org/@esbuild/android-x64@0.19.12 + '@esbuild/darwin-arm64': registry.npmjs.org/@esbuild/darwin-arm64@0.19.12 + '@esbuild/darwin-x64': registry.npmjs.org/@esbuild/darwin-x64@0.19.12 + '@esbuild/freebsd-arm64': registry.npmjs.org/@esbuild/freebsd-arm64@0.19.12 + '@esbuild/freebsd-x64': registry.npmjs.org/@esbuild/freebsd-x64@0.19.12 + '@esbuild/linux-arm': registry.npmjs.org/@esbuild/linux-arm@0.19.12 + '@esbuild/linux-arm64': registry.npmjs.org/@esbuild/linux-arm64@0.19.12 + '@esbuild/linux-ia32': registry.npmjs.org/@esbuild/linux-ia32@0.19.12 + '@esbuild/linux-loong64': registry.npmjs.org/@esbuild/linux-loong64@0.19.12 + '@esbuild/linux-mips64el': registry.npmjs.org/@esbuild/linux-mips64el@0.19.12 + '@esbuild/linux-ppc64': registry.npmjs.org/@esbuild/linux-ppc64@0.19.12 + '@esbuild/linux-riscv64': registry.npmjs.org/@esbuild/linux-riscv64@0.19.12 + '@esbuild/linux-s390x': registry.npmjs.org/@esbuild/linux-s390x@0.19.12 + '@esbuild/linux-x64': registry.npmjs.org/@esbuild/linux-x64@0.19.12 + '@esbuild/netbsd-x64': registry.npmjs.org/@esbuild/netbsd-x64@0.19.12 + '@esbuild/openbsd-x64': registry.npmjs.org/@esbuild/openbsd-x64@0.19.12 + '@esbuild/sunos-x64': registry.npmjs.org/@esbuild/sunos-x64@0.19.12 + '@esbuild/win32-arm64': registry.npmjs.org/@esbuild/win32-arm64@0.19.12 + '@esbuild/win32-ia32': registry.npmjs.org/@esbuild/win32-ia32@0.19.12 + '@esbuild/win32-x64': registry.npmjs.org/@esbuild/win32-x64@0.19.12 + dev: true + + registry.npmjs.org/escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} + name: escape-string-regexp + version: 4.0.0 + engines: {node: '>=10'} + dev: true + + registry.npmjs.org/eslint-config-prettier@8.9.0(eslint@8.46.0): + resolution: {integrity: sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.9.0.tgz} + id: registry.npmjs.org/eslint-config-prettier/8.9.0 + name: eslint-config-prettier + version: 8.9.0 + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: registry.npmjs.org/eslint@8.46.0 + dev: true + + registry.npmjs.org/eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.9.0)(eslint@8.46.0)(prettier@3.0.0): + resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz} + id: registry.npmjs.org/eslint-plugin-prettier/5.0.0 + name: eslint-plugin-prettier + version: 5.0.0 + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: registry.npmjs.org/eslint@8.46.0 + eslint-config-prettier: registry.npmjs.org/eslint-config-prettier@8.9.0(eslint@8.46.0) + prettier: registry.npmjs.org/prettier@3.0.0 + prettier-linter-helpers: registry.npmjs.org/prettier-linter-helpers@1.0.0 + synckit: registry.npmjs.org/synckit@0.8.8 + dev: true + + registry.npmjs.org/eslint-plugin-simple-import-sort@10.0.0(eslint@8.46.0): + resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz} + id: registry.npmjs.org/eslint-plugin-simple-import-sort/10.0.0 + name: eslint-plugin-simple-import-sort + version: 10.0.0 + peerDependencies: + eslint: '>=5.0.0' + dependencies: + eslint: registry.npmjs.org/eslint@8.46.0 + dev: true + + registry.npmjs.org/eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz} + name: eslint-scope + version: 7.2.2 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: registry.npmjs.org/esrecurse@4.3.0 + estraverse: registry.npmjs.org/estraverse@5.3.0 + dev: true + + registry.npmjs.org/eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz} + name: eslint-visitor-keys + version: 3.4.3 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + registry.npmjs.org/eslint@8.46.0: + resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint/-/eslint-8.46.0.tgz} + name: eslint + version: 8.46.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': registry.npmjs.org/@eslint-community/eslint-utils@4.4.0(eslint@8.46.0) + '@eslint-community/regexpp': registry.npmjs.org/@eslint-community/regexpp@4.10.0 + '@eslint/eslintrc': registry.npmjs.org/@eslint/eslintrc@2.1.4 + '@eslint/js': registry.npmjs.org/@eslint/js@8.57.0 + '@humanwhocodes/config-array': registry.npmjs.org/@humanwhocodes/config-array@0.11.14 + '@humanwhocodes/module-importer': registry.npmjs.org/@humanwhocodes/module-importer@1.0.1 + '@nodelib/fs.walk': registry.npmjs.org/@nodelib/fs.walk@1.2.8 + ajv: registry.npmjs.org/ajv@6.12.6 + chalk: registry.npmjs.org/chalk@4.1.2 + cross-spawn: registry.npmjs.org/cross-spawn@7.0.3 + debug: registry.npmjs.org/debug@4.3.4 + doctrine: registry.npmjs.org/doctrine@3.0.0 + escape-string-regexp: registry.npmjs.org/escape-string-regexp@4.0.0 + eslint-scope: registry.npmjs.org/eslint-scope@7.2.2 + eslint-visitor-keys: registry.npmjs.org/eslint-visitor-keys@3.4.3 + espree: registry.npmjs.org/espree@9.6.1 + esquery: registry.npmjs.org/esquery@1.5.0 + esutils: registry.npmjs.org/esutils@2.0.3 + fast-deep-equal: registry.npmjs.org/fast-deep-equal@3.1.3 + file-entry-cache: registry.npmjs.org/file-entry-cache@6.0.1 + find-up: registry.npmjs.org/find-up@5.0.0 + glob-parent: registry.npmjs.org/glob-parent@6.0.2 + globals: registry.npmjs.org/globals@13.24.0 + graphemer: registry.npmjs.org/graphemer@1.4.0 + ignore: registry.npmjs.org/ignore@5.3.1 + imurmurhash: registry.npmjs.org/imurmurhash@0.1.4 + is-glob: registry.npmjs.org/is-glob@4.0.3 + is-path-inside: registry.npmjs.org/is-path-inside@3.0.3 + js-yaml: registry.npmjs.org/js-yaml@4.1.0 + json-stable-stringify-without-jsonify: registry.npmjs.org/json-stable-stringify-without-jsonify@1.0.1 + levn: registry.npmjs.org/levn@0.4.1 + lodash.merge: registry.npmjs.org/lodash.merge@4.6.2 + minimatch: registry.npmjs.org/minimatch@3.1.2 + natural-compare: registry.npmjs.org/natural-compare@1.4.0 + optionator: registry.npmjs.org/optionator@0.9.3 + strip-ansi: registry.npmjs.org/strip-ansi@6.0.1 + text-table: registry.npmjs.org/text-table@0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmjs.org/espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/espree/-/espree-9.6.1.tgz} + name: espree + version: 9.6.1 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: registry.npmjs.org/acorn@8.11.3 + acorn-jsx: registry.npmjs.org/acorn-jsx@5.3.2(acorn@8.11.3) + eslint-visitor-keys: registry.npmjs.org/eslint-visitor-keys@3.4.3 + dev: true + + registry.npmjs.org/esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz} + name: esquery + version: 1.5.0 + engines: {node: '>=0.10'} + dependencies: + estraverse: registry.npmjs.org/estraverse@5.3.0 + dev: true + + registry.npmjs.org/esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz} + name: esrecurse + version: 4.3.0 + engines: {node: '>=4.0'} + dependencies: + estraverse: registry.npmjs.org/estraverse@5.3.0 + dev: true + + registry.npmjs.org/estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz} + name: estraverse + version: 5.3.0 + engines: {node: '>=4.0'} + dev: true + + registry.npmjs.org/esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz} + name: esutils + version: 2.0.3 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + name: fast-deep-equal + version: 3.1.3 + dev: true + + registry.npmjs.org/fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz} + name: fast-diff + version: 1.3.0 + dev: true + + registry.npmjs.org/fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz} + name: fast-glob + version: 3.3.2 + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': registry.npmjs.org/@nodelib/fs.stat@2.0.5 + '@nodelib/fs.walk': registry.npmjs.org/@nodelib/fs.walk@1.2.8 + glob-parent: registry.npmjs.org/glob-parent@5.1.2 + merge2: registry.npmjs.org/merge2@1.4.1 + micromatch: registry.npmjs.org/micromatch@4.0.5 + dev: true + + registry.npmjs.org/fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + name: fast-json-stable-stringify + version: 2.1.0 + dev: true + + registry.npmjs.org/fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} + name: fast-levenshtein + version: 2.0.6 + dev: true + + registry.npmjs.org/fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz} + name: fastq + version: 1.17.1 + dependencies: + reusify: registry.npmjs.org/reusify@1.0.4 + dev: true + + registry.npmjs.org/file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz} + name: file-entry-cache + version: 6.0.1 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: registry.npmjs.org/flat-cache@3.2.0 + dev: true + + registry.npmjs.org/fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz} + name: fill-range + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + to-regex-range: registry.npmjs.org/to-regex-range@5.0.1 + dev: true + + registry.npmjs.org/find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz} + name: find-up + version: 5.0.0 + engines: {node: '>=10'} + dependencies: + locate-path: registry.npmjs.org/locate-path@6.0.0 + path-exists: registry.npmjs.org/path-exists@4.0.0 + dev: true + + registry.npmjs.org/flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz} + name: flat-cache + version: 3.2.0 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: registry.npmjs.org/flatted@3.3.1 + keyv: registry.npmjs.org/keyv@4.5.4 + rimraf: registry.npmjs.org/rimraf@3.0.2 + dev: true + + registry.npmjs.org/flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz} + name: flatted + version: 3.3.1 + dev: true + + registry.npmjs.org/fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + dev: true + + registry.npmjs.org/fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz} + name: fsevents + version: 2.3.3 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz} + name: function-bind + version: 1.1.2 + dev: true + + registry.npmjs.org/get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz} + name: get-tsconfig + version: 4.7.2 + dependencies: + resolve-pkg-maps: registry.npmjs.org/resolve-pkg-maps@1.0.0 + dev: true + + registry.npmjs.org/glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz} + name: glob-parent + version: 5.1.2 + engines: {node: '>= 6'} + dependencies: + is-glob: registry.npmjs.org/is-glob@4.0.3 + dev: true + + registry.npmjs.org/glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz} + name: glob-parent + version: 6.0.2 + engines: {node: '>=10.13.0'} + dependencies: + is-glob: registry.npmjs.org/is-glob@4.0.3 + dev: true + + registry.npmjs.org/glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/glob/-/glob-7.2.3.tgz} + name: glob + version: 7.2.3 + dependencies: + fs.realpath: registry.npmjs.org/fs.realpath@1.0.0 + inflight: registry.npmjs.org/inflight@1.0.6 + inherits: registry.npmjs.org/inherits@2.0.4 + minimatch: registry.npmjs.org/minimatch@3.1.2 + once: registry.npmjs.org/once@1.4.0 + path-is-absolute: registry.npmjs.org/path-is-absolute@1.0.1 + dev: true + + registry.npmjs.org/globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/globals/-/globals-13.24.0.tgz} + name: globals + version: 13.24.0 + engines: {node: '>=8'} + dependencies: + type-fest: registry.npmjs.org/type-fest@0.20.2 + dev: true + + registry.npmjs.org/globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/globby/-/globby-11.1.0.tgz} + name: globby + version: 11.1.0 + engines: {node: '>=10'} + dependencies: + array-union: registry.npmjs.org/array-union@2.1.0 + dir-glob: registry.npmjs.org/dir-glob@3.0.1 + fast-glob: registry.npmjs.org/fast-glob@3.3.2 + ignore: registry.npmjs.org/ignore@5.3.1 + merge2: registry.npmjs.org/merge2@1.4.1 + slash: registry.npmjs.org/slash@3.0.0 + dev: true + + registry.npmjs.org/graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz} + name: graceful-fs + version: 4.2.11 + dev: true + + registry.npmjs.org/graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz} + name: graphemer + version: 1.4.0 + dev: true + + registry.npmjs.org/has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz} + name: hasown + version: 2.0.1 + engines: {node: '>= 0.4'} + dependencies: + function-bind: registry.npmjs.org/function-bind@1.1.2 + dev: true + + registry.npmjs.org/ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz} + name: ignore + version: 5.3.1 + engines: {node: '>= 4'} + dev: true + + registry.npmjs.org/import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz} + name: import-fresh + version: 3.3.0 + engines: {node: '>=6'} + dependencies: + parent-module: registry.npmjs.org/parent-module@1.0.1 + resolve-from: registry.npmjs.org/resolve-from@4.0.0 + dev: true + + registry.npmjs.org/imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz} + name: imurmurhash + version: 0.1.4 + engines: {node: '>=0.8.19'} + dev: true + + registry.npmjs.org/inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmjs.org/once@1.4.0 + wrappy: registry.npmjs.org/wrappy@1.0.2 + dev: true + + registry.npmjs.org/inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + dev: true + + registry.npmjs.org/is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz} + name: is-core-module + version: 2.13.1 + dependencies: + hasown: registry.npmjs.org/hasown@2.0.1 + dev: true + + registry.npmjs.org/is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz} + name: is-extglob + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz} + name: is-glob + version: 4.0.3 + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: registry.npmjs.org/is-extglob@2.1.1 + dev: true + + registry.npmjs.org/is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz} + name: is-number + version: 7.0.0 + engines: {node: '>=0.12.0'} + dev: true + + registry.npmjs.org/is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz} + name: is-path-inside + version: 3.0.3 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz} + name: isexe + version: 2.0.0 + dev: true + + registry.npmjs.org/js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz} + name: js-yaml + version: 4.1.0 + hasBin: true + dependencies: + argparse: registry.npmjs.org/argparse@2.0.1 + dev: true + + registry.npmjs.org/json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz} + name: json-buffer + version: 3.0.1 + dev: true + + registry.npmjs.org/json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + name: json-schema-traverse + version: 0.4.1 + dev: true + + registry.npmjs.org/json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz} + name: json-stable-stringify-without-jsonify + version: 1.0.1 + dev: true + + registry.npmjs.org/keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz} + name: keyv + version: 4.5.4 + dependencies: + json-buffer: registry.npmjs.org/json-buffer@3.0.1 + dev: true + + registry.npmjs.org/levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/levn/-/levn-0.4.1.tgz} + name: levn + version: 0.4.1 + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: registry.npmjs.org/prelude-ls@1.2.1 + type-check: registry.npmjs.org/type-check@0.4.0 + dev: true + + registry.npmjs.org/locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz} + name: locate-path + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + p-locate: registry.npmjs.org/p-locate@5.0.0 + dev: true + + registry.npmjs.org/lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz} + name: lodash.merge + version: 4.6.2 + dev: true + + registry.npmjs.org/lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz} + name: lodash + version: 4.17.21 + dev: true + + registry.npmjs.org/lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz} + name: lru-cache + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + yallist: registry.npmjs.org/yallist@4.0.0 + dev: true + + registry.npmjs.org/lua-json@1.0.1: + resolution: {integrity: sha512-KLlpjbEMVmQFBo0eg9gCk9Y7ZCFvyHTZj7+AmDdLO1yiVk8JYS8npPW45vvz5Ay0Vt8EMEqYxY5BNEJWakMTLQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/lua-json/-/lua-json-1.0.1.tgz} + name: lua-json + version: 1.0.1 + dependencies: + lodash: registry.npmjs.org/lodash@4.17.21 + luaparse: registry.npmjs.org/luaparse@0.2.1 + dev: true + + registry.npmjs.org/lua-types@2.13.1: + resolution: {integrity: sha512-rRwtvX6kS+5MpuO3xpvKsnYjdSDDI064Qq1OqX8gY+r+0l7m3dFLiZPDFoHqH22jaBpEvcHcPs6+WD7qkdmFsA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/lua-types/-/lua-types-2.13.1.tgz} + name: lua-types + version: 2.13.1 + dev: true + + registry.npmjs.org/luaparse@0.2.1: + resolution: {integrity: sha512-VKBcryd5nJte4ZNR29NOk8F/UkMipjeb4yoxcSS51z6QAzg9DXUC2WsfLniS0J1eh3pr/ZL3e9ha6V8fhoLbBQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/luaparse/-/luaparse-0.2.1.tgz} + name: luaparse + version: 0.2.1 + hasBin: true + dev: true + + registry.npmjs.org/merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz} + name: merge2 + version: 1.4.1 + engines: {node: '>= 8'} + dev: true + + registry.npmjs.org/micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz} + name: micromatch + version: 4.0.5 + engines: {node: '>=8.6'} + dependencies: + braces: registry.npmjs.org/braces@3.0.2 + picomatch: registry.npmjs.org/picomatch@2.3.1 + dev: true + + registry.npmjs.org/minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmjs.org/brace-expansion@1.1.11 + dev: true + + registry.npmjs.org/ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ms/-/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + dev: true + + registry.npmjs.org/natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz} + name: natural-compare + version: 1.4.0 + dev: true + + registry.npmjs.org/once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmjs.org/wrappy@1.0.2 + dev: true + + registry.npmjs.org/optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz} + name: optionator + version: 0.9.3 + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': registry.npmjs.org/@aashutoshrathi/word-wrap@1.2.6 + deep-is: registry.npmjs.org/deep-is@0.1.4 + fast-levenshtein: registry.npmjs.org/fast-levenshtein@2.0.6 + levn: registry.npmjs.org/levn@0.4.1 + prelude-ls: registry.npmjs.org/prelude-ls@1.2.1 + type-check: registry.npmjs.org/type-check@0.4.0 + dev: true + + registry.npmjs.org/p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz} + name: p-limit + version: 3.1.0 + engines: {node: '>=10'} + dependencies: + yocto-queue: registry.npmjs.org/yocto-queue@0.1.0 + dev: true + + registry.npmjs.org/p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz} + name: p-locate + version: 5.0.0 + engines: {node: '>=10'} + dependencies: + p-limit: registry.npmjs.org/p-limit@3.1.0 + dev: true + + registry.npmjs.org/parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz} + name: parent-module + version: 1.0.1 + engines: {node: '>=6'} + dependencies: + callsites: registry.npmjs.org/callsites@3.1.0 + dev: true + + registry.npmjs.org/path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz} + name: path-exists + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz} + name: path-key + version: 3.1.1 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: true + + registry.npmjs.org/path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz} + name: path-type + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz} + name: picomatch + version: 2.3.1 + engines: {node: '>=8.6'} + dev: true + + registry.npmjs.org/prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz} + name: prelude-ls + version: 1.2.1 + engines: {node: '>= 0.8.0'} + dev: true + + registry.npmjs.org/prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz} + name: prettier-linter-helpers + version: 1.0.0 + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: registry.npmjs.org/fast-diff@1.3.0 + dev: true + + registry.npmjs.org/prettier@3.0.0: + resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz} + name: prettier + version: 3.0.0 + engines: {node: '>=14'} + hasBin: true + dev: true + + registry.npmjs.org/punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz} + name: punycode + version: 2.3.1 + engines: {node: '>=6'} + dev: true + + registry.npmjs.org/queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz} + name: queue-microtask + version: 1.2.3 + dev: true + + registry.npmjs.org/resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz} + name: resolve-from + version: 4.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmjs.org/resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz} + name: resolve-pkg-maps + version: 1.0.0 + dev: true + + registry.npmjs.org/resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz} + name: resolve + version: 1.22.8 + hasBin: true + dependencies: + is-core-module: registry.npmjs.org/is-core-module@2.13.1 + path-parse: registry.npmjs.org/path-parse@1.0.7 + supports-preserve-symlinks-flag: registry.npmjs.org/supports-preserve-symlinks-flag@1.0.0 + dev: true + + registry.npmjs.org/reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz} + name: reusify + version: 1.0.4 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + registry.npmjs.org/rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz} + name: rimraf + version: 3.0.2 + hasBin: true + dependencies: + glob: registry.npmjs.org/glob@7.2.3 + dev: true + + registry.npmjs.org/run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz} + name: run-parallel + version: 1.2.0 + dependencies: + queue-microtask: registry.npmjs.org/queue-microtask@1.2.3 + dev: true + + registry.npmjs.org/semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/semver/-/semver-7.6.0.tgz} + name: semver + version: 7.6.0 + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: registry.npmjs.org/lru-cache@6.0.0 + dev: true + + registry.npmjs.org/shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz} + name: shebang-command + version: 2.0.0 + engines: {node: '>=8'} + dependencies: + shebang-regex: registry.npmjs.org/shebang-regex@3.0.0 + dev: true + + registry.npmjs.org/shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz} + name: shebang-regex + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/slash/-/slash-3.0.0.tgz} + name: slash + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz} + name: source-map + version: 0.7.4 + engines: {node: '>= 8'} + dev: true + + registry.npmjs.org/strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz} + name: strip-ansi + version: 6.0.1 + engines: {node: '>=8'} + dependencies: + ansi-regex: registry.npmjs.org/ansi-regex@5.0.1 + dev: true + + registry.npmjs.org/strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz} + name: strip-json-comments + version: 3.1.1 + engines: {node: '>=8'} + dev: true + + registry.npmjs.org/supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmjs.org/has-flag@4.0.0 + dev: true + + registry.npmjs.org/supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + name: supports-preserve-symlinks-flag + version: 1.0.0 + engines: {node: '>= 0.4'} + dev: true + + registry.npmjs.org/synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz} + name: synckit + version: 0.8.8 + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/core': registry.npmjs.org/@pkgr/core@0.1.1 + tslib: registry.npmjs.org/tslib@2.6.2 + dev: true + + registry.npmjs.org/tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz} + name: tapable + version: 2.2.1 + engines: {node: '>=6'} + dev: true + + registry.npmjs.org/text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz} + name: text-table + version: 0.2.0 + dev: true + + registry.npmjs.org/to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz} + name: to-regex-range + version: 5.0.1 + engines: {node: '>=8.0'} + dependencies: + is-number: registry.npmjs.org/is-number@7.0.0 + dev: true + + registry.npmjs.org/ts-api-utils@1.2.1(typescript@5.3.3): + resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz} + id: registry.npmjs.org/ts-api-utils/1.2.1 + name: ts-api-utils + version: 1.2.1 + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: registry.npmjs.org/typescript@5.3.3 + dev: true + + registry.npmjs.org/tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz} + name: tslib + version: 2.6.2 + dev: true + + registry.npmjs.org/tsx@4.7.1: + resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tsx/-/tsx-4.7.1.tgz} + name: tsx + version: 4.7.1 + engines: {node: '>=18.0.0'} + hasBin: true + dependencies: + esbuild: registry.npmjs.org/esbuild@0.19.12 + get-tsconfig: registry.npmjs.org/get-tsconfig@4.7.2 + optionalDependencies: + fsevents: registry.npmjs.org/fsevents@2.3.3 + dev: true + + registry.npmjs.org/type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz} + name: type-check + version: 0.4.0 + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: registry.npmjs.org/prelude-ls@1.2.1 + dev: true + + registry.npmjs.org/type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz} + name: type-fest + version: 0.20.2 + engines: {node: '>=10'} + dev: true + + registry.npmjs.org/typescript-to-lua@1.24.1(typescript@5.3.3): + resolution: {integrity: sha512-IqHKVMkgRk9cd8S8nhu5wKP+AiK9QeCJ9OUphKcNzQMNpEirrQKHvbQwoeVNWNsIaiCUvrdM1SuyxDX1B3TRZw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/typescript-to-lua/-/typescript-to-lua-1.24.1.tgz} + id: registry.npmjs.org/typescript-to-lua/1.24.1 + name: typescript-to-lua + version: 1.24.1 + engines: {node: '>=16.10.0'} + hasBin: true + peerDependencies: + typescript: 5.3.3 + dependencies: + '@typescript-to-lua/language-extensions': registry.npmjs.org/@typescript-to-lua/language-extensions@1.19.0 + enhanced-resolve: registry.npmjs.org/enhanced-resolve@5.15.0 + picomatch: registry.npmjs.org/picomatch@2.3.1 + resolve: registry.npmjs.org/resolve@1.22.8 + source-map: registry.npmjs.org/source-map@0.7.4 + typescript: registry.npmjs.org/typescript@5.3.3 + dev: true + + registry.npmjs.org/typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz} + name: typescript + version: 5.3.3 + engines: {node: '>=14.17'} + hasBin: true + dev: true + + registry.npmjs.org/undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz} + name: undici-types + version: 5.26.5 + dev: true + + registry.npmjs.org/uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz} + name: uri-js + version: 4.4.1 + dependencies: + punycode: registry.npmjs.org/punycode@2.3.1 + dev: true + + registry.npmjs.org/which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/which/-/which-2.0.2.tgz} + name: which + version: 2.0.2 + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: registry.npmjs.org/isexe@2.0.0 + dev: true + + registry.npmjs.org/wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + dev: true + + registry.npmjs.org/yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz} + name: yallist + version: 4.0.0 + dev: true + + registry.npmjs.org/yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz} + name: yocto-queue + version: 0.1.0 + engines: {node: '>=10'} + dev: true diff --git a/sample.env b/sample.env new file mode 100644 index 0000000..3b7e244 --- /dev/null +++ b/sample.env @@ -0,0 +1,3 @@ +# The path to your tinkr scripts folder relative to this directory. +# E.g if you have Mekanome and Tinkr on your desktop, then this would be "../{your tinkr folder name}/scripts" +TINKR_DIR="" \ No newline at end of file diff --git a/scripts/clear-dir/index.ts b/scripts/clear-dir/index.ts new file mode 100644 index 0000000..04b9a73 --- /dev/null +++ b/scripts/clear-dir/index.ts @@ -0,0 +1,17 @@ +import 'dotenv/config' + +import { rm } from 'fs' + +const args = process.argv + +if (args.length < 3) throw new Error('No dir arg') + +const dirType = args[2] + +const dir = dirType === 'dist' ? './dist' : process.env.TINKR_DIR + +if (dir === undefined) throw new Error('Missing tinkr directory config.') + +rm(dir, { recursive: true }, () => { + console.log(`Done clearing directory ${dir}`) +}) diff --git a/scripts/copy-dist/index.ts b/scripts/copy-dist/index.ts new file mode 100644 index 0000000..baa22bf --- /dev/null +++ b/scripts/copy-dist/index.ts @@ -0,0 +1,3 @@ +import { cpSync } from 'fs' + +cpSync('./dist', '../howdy/scripts', { recursive: true }) diff --git a/scripts/gen-types/gen-types.ts b/scripts/gen-types/gen-types.ts new file mode 100644 index 0000000..fbe305d --- /dev/null +++ b/scripts/gen-types/gen-types.ts @@ -0,0 +1,68 @@ +import { writeFile } from 'fs/promises' + +import { getParsedScriptObjects } from './helpers/generate-script-object' +import { getParsedCallbacks } from './helpers/get-parsed-callbacks' +import { getParsedConstants } from './helpers/get-parsed-constants' +import { getParsedEnums } from './helpers/get-parsed-enums' +import { getParsedEventData } from './helpers/get-parsed-event-data' +import { getParsedStructs } from './helpers/get-parsed-structs' +import { getParsedSystems } from './helpers/get-parsed-systems' +import { Doc } from './shared/types/doc-types' + +const data = require('../lua-docs/docs/docs.json') as Doc[] + +const writeDeclaration = (declaration: string, name: string) => { + try { + const decoratedDeclaration = ` + /* eslint-disable @typescript-eslint/no-duplicate-enum-values */ + /* eslint-disable @typescript-eslint/ban-types */ + /** @noSelfInFile **/ + + declare global { + ${declaration} + } + + export {} + ` + + return writeFile(`./src/types/Wow/${name}.d.ts`, decoratedDeclaration) + } catch (error) { + throw error as Error + } +} + +const main = async () => { + try { + const enums = getParsedEnums(data) + const structs = getParsedStructs(data) + const constants = getParsedConstants(data) + const callbacks = getParsedCallbacks(data) + const eventData = getParsedEventData(data) + const systemData = getParsedSystems(data) + const scriptObjects = getParsedScriptObjects(data) + + console.log('Parsed docs, writing declaration.') + + try { + await Promise.all([ + writeDeclaration(structs.join('\n'), 'structs'), + writeDeclaration(scriptObjects.join('\n'), 'scripts'), + writeDeclaration(callbacks.join('\n'), 'callbacks'), + writeDeclaration(enums.join('\n'), 'enums'), + writeDeclaration(constants.join('\n'), 'constants'), + writeDeclaration(eventData, 'events'), + writeDeclaration(systemData.join('\n'), 'systems') + ]) + } catch (error) { + console.log(`Encountered error while writting declarations.`) + console.error(error) + } + + console.log('Done!') + } catch (error) { + console.log('SCRIPT ENDED IN ERROR') + console.log(error) + } +} + +main() diff --git a/scripts/gen-types/helpers/generate-script-object.ts b/scripts/gen-types/helpers/generate-script-object.ts new file mode 100644 index 0000000..94f0c02 --- /dev/null +++ b/scripts/gen-types/helpers/generate-script-object.ts @@ -0,0 +1,71 @@ +import { parseFunction } from '../shared/helpers/parse-function' +import { Doc, DocType } from '../shared/types/doc-types' + +const FRAMES_WITH_FRAMES = [ + 'MessageFrame', + 'Frame', + 'FrameScriptObject', + 'ScrollFrame', + 'FogOfWarFrame', + 'UnitPositionFrame', + 'ArchaeologyDigSiteFrame' +] + +const ANIMS_WITH_ANIM = [ + 'AnimAlpha', + 'AnimFlipBook', + 'AnimPath', + 'AnimRotation', + 'AnimTextureCoordTranslation', + 'AnimTranslation', + 'AnimScale', + 'AnimVertexColor' +] + +const SHOULD_IGNORE = ['Frame'] + +export const getParsedScriptObjects = (data: Doc[]) => { + const PARSED_SCRIPT_OBJECTS: string[] = [] + + for (const segment of data) { + if (segment.Type === DocType.ScriptObject && segment.Name) { + // For some reason the cooldown frame is documented twice + if (segment.Functions?.length && segment.Name !== 'CooldownFrameAPI') { + const PARSED_FUNCTIONS: string[] = [] + + let cleanName = segment.Name.replace(/(API|Simple)/gi, '') + + if (!FRAMES_WITH_FRAMES.includes(cleanName)) { + cleanName = cleanName.replace('Frame', '') + } + + if (cleanName.includes('Anim') && ANIMS_WITH_ANIM.includes(cleanName)) { + cleanName = cleanName.replace('Anim', '') + } + + if (cleanName === 'ModelSceneFrameActorBase') cleanName = 'ModelSceneActorBase' + if (cleanName === 'ModelSceneFrameActor') cleanName = 'ModelSceneActor' + if (cleanName === 'ModelSceneFrame') cleanName = 'ModelScene' + if (cleanName === 'AnimGroup') cleanName = 'AnimationGroup' + if (cleanName === 'Anim') cleanName = 'Animation' + if (cleanName === 'Object') cleanName = 'ScriptObject' + + if (!SHOULD_IGNORE.includes(cleanName)) { + for (const func of segment.Functions) { + PARSED_FUNCTIONS.push(parseFunction(func, cleanName)) + } + + PARSED_SCRIPT_OBJECTS.push(` + interface ${cleanName} { + ${PARSED_FUNCTIONS.join('\n')} + } + `) + } + } + } + } + + console.log(`Parsed ${PARSED_SCRIPT_OBJECTS.length} ScriptObjects`) + + return PARSED_SCRIPT_OBJECTS +} diff --git a/scripts/gen-types/helpers/get-parsed-callbacks.ts b/scripts/gen-types/helpers/get-parsed-callbacks.ts new file mode 100644 index 0000000..9137f5e --- /dev/null +++ b/scripts/gen-types/helpers/get-parsed-callbacks.ts @@ -0,0 +1,42 @@ +import { parseField } from '../shared/helpers/parse-field' +import { Doc, TableType } from '../shared/types/doc-types' +import { CallBackTable } from '../shared/types/doc-types' + +const parseCallback = (callback: CallBackTable) => { + const PARSED_FIELDS: string[] = [] + + if (callback.Arguments) { + for (const field of callback.Arguments) { + PARSED_FIELDS.push(parseField(field)) + } + } + + return ` + type ${callback.Name} = (${PARSED_FIELDS.join(',')}) => void + ` +} + +export const getParsedCallbacks = (data: Doc[]) => { + const CALLBACKS: string[] = [] + const PARSED_CALLBACKS: string[] = [] + + for (const segment of data) { + if (segment.Tables.length > 0) { + for (const table of segment.Tables) { + if ( + table.Type === TableType.CallbackType && + table.Name !== 'PendingPingOffScreenCallback' && + !PARSED_CALLBACKS.includes(table.Name) + ) { + CALLBACKS.push(parseCallback(table)) + PARSED_CALLBACKS.push(table.Name) + } + } + } + } + + // Save Struct declarations + console.log(`Parsed ${CALLBACKS.length} Callbacks`) + + return CALLBACKS +} diff --git a/scripts/gen-types/helpers/get-parsed-constants.ts b/scripts/gen-types/helpers/get-parsed-constants.ts new file mode 100644 index 0000000..d1caa60 --- /dev/null +++ b/scripts/gen-types/helpers/get-parsed-constants.ts @@ -0,0 +1,42 @@ +import { Doc, TableType } from '../shared/types/doc-types' +import { ConstantTable } from '../shared/types/doc-types' + +const parseConstant = (table: ConstantTable) => { + const realValues = table.Values.filter((value) => !!value.Value) + + if (!realValues.length) { + return + } + + return ` + const ${table.Name}: { ${table.Values.map( + (value) => `${value.Name}: ${value.Value}` + )} } + ` +} + +export const getParsedConstants = (data: Doc[]) => { + const CONSTANTS: string[] = [] + const PARSED_CONSTANTS: string[] = [] + + for (const segment of data) { + if (segment.Tables.length > 0) { + for (const table of segment.Tables) { + if ( + table.Type === TableType.Constants && + !PARSED_CONSTANTS.includes(table.Name) + ) { + const constant = parseConstant(table) + + if (constant) { + CONSTANTS.push(constant) + PARSED_CONSTANTS.push(table.Name) + } + } + } + } + } + console.log(`Parsed ${CONSTANTS.length} Constants`) + + return CONSTANTS +} diff --git a/scripts/gen-types/helpers/get-parsed-enums.ts b/scripts/gen-types/helpers/get-parsed-enums.ts new file mode 100644 index 0000000..9692c42 --- /dev/null +++ b/scripts/gen-types/helpers/get-parsed-enums.ts @@ -0,0 +1,28 @@ +import { Doc, EnumTable, TableType } from '../shared/types/doc-types' + +const parseEnum = (value: EnumTable) => { + return `enum ${value.Name} { ${value.Fields.map( + (field) => `${field.Name} = ${field.EnumValue}` + ).join(',')} }` +} + +export const getParsedEnums = (data: Doc[]) => { + const ENUMS: string[] = [] + // The UnitSex enum has a name conflict with a global function so we skip it. + const PARSED_ENUMS: string[] = ['UnitSex'] + + for (const segment of data) { + if (segment.Tables.length > 0) { + for (const table of segment.Tables) { + if (table.Type === TableType.Enumeration && !PARSED_ENUMS.includes(table.Name)) { + ENUMS.push(parseEnum(table)) + PARSED_ENUMS.push(table.Name) + } + } + } + } + + console.log(`Parsed ${ENUMS.length} Enums`) + + return ENUMS +} diff --git a/scripts/gen-types/helpers/get-parsed-event-data.ts b/scripts/gen-types/helpers/get-parsed-event-data.ts new file mode 100644 index 0000000..1d797b8 --- /dev/null +++ b/scripts/gen-types/helpers/get-parsed-event-data.ts @@ -0,0 +1,37 @@ +import { onlyUnique } from '../shared/helpers/only-unique' +import { parseField } from '../shared/helpers/parse-field' +import { Doc } from '../shared/types/doc-types' + +export const getParsedEventData = (data: Doc[]) => { + const EVENT_KEYS: string[] = [] + const PARSED_EVENTS: string[] = [] + + for (const segment of data) { + if (segment.Events?.length) { + for (const event of segment.Events) { + EVENT_KEYS.push(event.LiteralName) + PARSED_EVENTS.push(` + ${event.LiteralName}: ${ + !event.Payload + ? undefined + : `LuaMultiReturn<[${event.Payload.map((payload) => + parseField(payload) + ).join(',')}]>` + } + `) + } + } + } + + const UNIQUE_KEYS = EVENT_KEYS.filter(onlyUnique) + + console.log(`Saving ${UNIQUE_KEYS.length} Events`) + + return ` + interface WowEventPayload { + ${PARSED_EVENTS.join('\n')} + } + + type WoWEventKey = keyof WowEventPayload + ` +} diff --git a/scripts/gen-types/helpers/get-parsed-structs.ts b/scripts/gen-types/helpers/get-parsed-structs.ts new file mode 100644 index 0000000..7093dec --- /dev/null +++ b/scripts/gen-types/helpers/get-parsed-structs.ts @@ -0,0 +1,48 @@ +import { parseField } from '../shared/helpers/parse-field' +import { Doc, TableType } from '../shared/types/doc-types' +import { StructureTable } from '../shared/types/doc-types' + +export const parseStruct = (data: StructureTable) => { + const PARSED_TYPES: string[] = [] + for (const field of data.Fields) { + const parsedField = parseField(field) + + PARSED_TYPES.push(parsedField) + } + if (PARSED_TYPES.length !== 0) { + return ` + interface ${data.Name} { + ${PARSED_TYPES.join(',\n')} + } + ` + } + return undefined +} + +export const getParsedStructs = (data: Doc[]) => { + const STRUCTURES: string[] = [] + const PARSED_STRUCTURES: string[] = [] + + for (const segment of data) { + if (segment.Tables.length > 0) { + for (const table of segment.Tables) { + if ( + table.Type === TableType.Structure && + !PARSED_STRUCTURES.includes(table.Name) + ) { + const struct = parseStruct(table) + + if (struct) { + STRUCTURES.push(struct) + PARSED_STRUCTURES.push(table.Name) + } + } + } + } + } + + // Save Struct declarations + console.log(`Parsed ${STRUCTURES.length} Structures`) + + return STRUCTURES +} diff --git a/scripts/gen-types/helpers/get-parsed-systems.ts b/scripts/gen-types/helpers/get-parsed-systems.ts new file mode 100644 index 0000000..f5a6e72 --- /dev/null +++ b/scripts/gen-types/helpers/get-parsed-systems.ts @@ -0,0 +1,45 @@ +import { parseFunction } from '../shared/helpers/parse-function' +import { Doc, DocType } from '../shared/types/doc-types' + +const SYSTEMS_TO_SKIP = ['C_Timer'] + +export const getParsedSystems = (data: Doc[]) => { + const PARSED_SYSTEMS: string[] = [ + `function CanInspect(token: UnitToken, showError?: boolean): boolean`, + `function GetSpecializationRoleByID(specId: number): "DAMAGER" | "TANK" | "HEALER" | undefined`, + `function IsPlayerSpell(spellId: number): boolean`, + `function GetSpellCooldown(spellId: number): LuaMultiReturn<[number, number, number, number]>`, + `function GetShapeshiftFormID(): number`, + `function UnitHasIncomingResurrection(token: string): boolean`, + `function CreateFrame(type: T, name?: string, parent?: FrameGeneric, template?: string, id?: number): FrameGeneric` + ] + + const systemSegments = data.filter((segment) => segment.Type === DocType.System) + + for (const segment of systemSegments) { + const PARSED_FUNCTIONS: string[] = [] + + if (!segment.Namespace || !SYSTEMS_TO_SKIP.includes(segment.Namespace)) { + if (segment.Functions) { + for (const func of segment.Functions) { + PARSED_FUNCTIONS.push(parseFunction(func)) + } + + if (PARSED_FUNCTIONS.length > 0) { + if (segment.Namespace) { + PARSED_SYSTEMS.push(` + namespace ${segment.Namespace} { + ${PARSED_FUNCTIONS.join('\n')} + } + `) + } else { + PARSED_SYSTEMS.push(PARSED_FUNCTIONS.join('\n')) + } + } + } + } + } + + console.log(`Parsed ${PARSED_SYSTEMS.length} Systems`) + return PARSED_SYSTEMS +} diff --git a/scripts/gen-types/shared/constants.ts b/scripts/gen-types/shared/constants.ts new file mode 100644 index 0000000..276a984 --- /dev/null +++ b/scripts/gen-types/shared/constants.ts @@ -0,0 +1,3 @@ +export const EVENTS_KEY = 'Events' +export const SCRIPT_OBJECTS_KEY = 'ScriptObjects' +export const SYSTEMS_KEY = 'Systems' diff --git a/scripts/gen-types/shared/helpers/only-unique.ts b/scripts/gen-types/shared/helpers/only-unique.ts new file mode 100644 index 0000000..b9c342e --- /dev/null +++ b/scripts/gen-types/shared/helpers/only-unique.ts @@ -0,0 +1,3 @@ +export function onlyUnique(value: unknown, index: number, array: unknown[]) { + return array.indexOf(value) === index +} diff --git a/scripts/gen-types/shared/helpers/parse-field.ts b/scripts/gen-types/shared/helpers/parse-field.ts new file mode 100644 index 0000000..b01062d --- /dev/null +++ b/scripts/gen-types/shared/helpers/parse-field.ts @@ -0,0 +1,43 @@ +import { Doc, Field, TableType } from '../types/doc-types' +import { WOW_TYPE_KEYS, WowTypeKeyAliases } from '../types/wow-type-aliases' + +const data = require('../../../lua-docs/docs/docs.json') as Doc[] + +const NAMES_TO_SKIP = ['PendingPingOffScreenCallback', 'ScriptObject', 'UnitSex'] +const SAFE_TYPES = [TableType.Structure, TableType.Enumeration, TableType.CallbackType] + +export const parseField = (field: Field) => { + const typeName = field.Type + + if (field.Name === 'in') { + field.Name = 'inValue' + } + + const correspondingTypeDef = data + .filter((segment) => segment.Tables.length !== 0) + .flatMap((segment) => segment.Tables) + .find((table) => table.Name === typeName) + + // If we found a type for this name in the data, and its an Enum, Struct, or Callback + // then we can assume its safe to declare without aliasing. + if ( + correspondingTypeDef && + !NAMES_TO_SKIP.includes(typeName) && + SAFE_TYPES.includes(correspondingTypeDef.Type) + ) { + return `${field.Name}: ${typeName}${field.Nilable ? ' | undefined' : ''}` + } + + if (!WOW_TYPE_KEYS.includes(field.Type)) { + throw new Error(`Encountered unknown string type: "${field.Type}"`) + } + + let typeAlias = WowTypeKeyAliases[field.Type] + + // The 'table' type requires a bit of special parsing. + if (typeof typeAlias === 'function') { + typeAlias = typeAlias(field) + } + + return `${field.Name}: ${typeAlias}${field.Nilable ? ' | undefined' : ''}` +} diff --git a/scripts/gen-types/shared/helpers/parse-function.ts b/scripts/gen-types/shared/helpers/parse-function.ts new file mode 100644 index 0000000..c333b66 --- /dev/null +++ b/scripts/gen-types/shared/helpers/parse-function.ts @@ -0,0 +1,41 @@ +import { WowFunction } from '../types/doc-types' +import { parseField } from './parse-field' + +const getReturnString = (toReturn: string[]) => { + if (!toReturn.length) return 'void' + const returnString = toReturn.join(',') + if (toReturn.length > 1) { + return `LuaMultiReturn<[${returnString}]>` + } + + const splitReturn = returnString.split(':') + + return splitReturn[1] +} + +export const parseFunction = (func: WowFunction, fieldParent?: string) => { + const ARGUMENT_FIELDS: string[] = [] + const RETURN_FIELDS: string[] = [] + + if (func.Name === 'SetScript' && fieldParent === 'ScriptRegion') { + return '' + } + + if (func.Arguments?.length) { + for (const arg of func.Arguments) { + ARGUMENT_FIELDS.push(parseField(arg)) + } + } + + if (func.Returns?.length) { + for (const returnField of func.Returns) { + RETURN_FIELDS.push(parseField(returnField)) + } + } + + return ` + ${fieldParent ? '' : 'function '}${func.Name}(${ARGUMENT_FIELDS.join( + ',' + )}): ${getReturnString(RETURN_FIELDS)} + ` +} diff --git a/scripts/gen-types/shared/types/doc-types.ts b/scripts/gen-types/shared/types/doc-types.ts new file mode 100644 index 0000000..be045c5 --- /dev/null +++ b/scripts/gen-types/shared/types/doc-types.ts @@ -0,0 +1,87 @@ +import { WowTypeKeys } from './wow-type-aliases' + +export enum TableType { + Enumeration = 'Enumeration', + Structure = 'Structure', + Constants = 'Constants', + CallbackType = 'CallbackType' +} + +export enum DocType { + System = 'System', + ScriptObject = 'ScriptObject' +} + +export const VALID_TABLE_TYPES = [ + TableType.Enumeration, + TableType.Structure, + TableType.Constants, + TableType.CallbackType +] + +export interface Field { + Name: string + Type: WowTypeKeys + Nilable: boolean + InnerType: WowTypeKeys + Mixin?: string +} + +export interface CallBackTable { + Name: string + Type: TableType.CallbackType + Arguments?: Field[] +} + +export interface EnumTable { + MinValue: number + MaxValue: number + NumValues: number + Name: string + Type: TableType.Enumeration + Fields: { + Name: string + Type: string + EnumValue: number + }[] +} + +export interface ConstantTable { + Name: string + Type: TableType.Constants + Values: { + Name: string + Type: string + Value?: unknown + }[] +} + +export interface StructureTable { + Name: string + Type: TableType.Structure + Fields: Field[] +} + +export interface WoWEvent { + Type: 'Event' + LiteralName: string + Name: string + Payload?: Field[] +} + +export interface WowFunction { + Returns?: Field[] + Arguments?: Field[] + Type: 'Function' + Name: string + Documentation?: string[] +} + +export interface Doc { + Tables: (CallBackTable | EnumTable | ConstantTable | StructureTable)[] + Events?: WoWEvent[] + Type?: DocType + Name?: string + Functions?: WowFunction[] + Namespace?: string +} diff --git a/scripts/gen-types/shared/types/wow-type-aliases.ts b/scripts/gen-types/shared/types/wow-type-aliases.ts new file mode 100644 index 0000000..0e94f69 --- /dev/null +++ b/scripts/gen-types/shared/types/wow-type-aliases.ts @@ -0,0 +1,129 @@ +import { Field } from './doc-types' + +/** + * The wow docs contain a lot of types that dont neatly point to their actual type (e.g "fileID" instead of "number"), + * or in some cases point to a type that we've moved elsewhere in the type heirarchy. + * For this reason we have to take these type names, and map them to one usable by us + */ + +export type WowTypeKeys = (typeof WOW_TYPE_KEYS)[number] + +export const WowTypeKeyAliases: { + [key: string]: string | ((field: Field) => string) +} = { + string: 'string', + number: 'number', + BigInteger: 'number', + FileAsset: 'string', + ArtifactTiers: 'string', + ConnectionIptype: 'string', + ModelAsset: 'number', + GameMode: 'string', + JustifyVertical: 'number', + GameRule: 'number', + SpellIdentifier: 'number', + ItemCreationContext: 'number', + Vocalerrorsounds: 'number', + UnitSex: 'number', + mouseButton: 'unknown', + JustifyHorizontal: 'string', + normalizedValue: 'number', + stringView: 'string', + PendingPingOffScreenCallback: '(() => void)', + UiMapPoint: 'UiMapPoint', + LuaValueVariant: '{}', + ReportInfo: 'ReportInfoMixin', + ItemSoundType: 'ItemSoundType', + SimpleControlPoint: 'unknown', + size: 'number', + ItemInfo: 'string | number', + ScriptObject: 'ScriptObject', + FilterMode: 'FilterMode', + SimpleMaskTexture: 'ScriptObject', + StatusBarFillStyle: 'StatusBarFillStyle', + Orientation: 'Orientation', + uiAddon: 'string | number', + SimpleLine: 'Line', + InsertMode: 'InsertMode', + SimplePathAnim: 'ScriptObject', + BlendMode: 'BlendMode', + SimpleFontString: 'FontString', + PlayerLocation: 'PlayerLocationMixin', + SimpleWindow: 'unknown', + SimpleFont: 'FontInfo', + SimpleButtonStateToken: 'SimpleButtonStateToken', + LoopType: 'LoopType', + TBFFlags: 'FontFlags[]', + SimpleAnim: 'Animation', + CurveType: 'string', + SingleColorValue: 'number', + IDOrLink: 'string | number', + luaFunction: '(() => void)', + uiRect: '[number, number, number, number]', + TextureAssetDisk: 'string', + TextureAsset: 'string', + SmoothingType: 'string', + uiFontHeight: 'number', + CScriptObject: 'ScriptObject', + SimpleAnimGroup: 'AnimationGroup', + SimpleTexture: 'Texture', + DrawLayer: 'DrawLayer', + ModelSceneFrameActor: 'ModelSceneActor', + ItemTransmogInfo: 'ItemTransmogInfo', + TooltipComparisonItem: 'TooltipComparisonItem', + AnimationDataEnum: 'number', + kstringLfgListChat: 'string', + TransmogLocation: 'TransmogLocationMixin', + NamePlateFrame: 'NamePlateFrame', + UnitToken: 'UnitToken', + WeeklyRewardItemDBID: 'string', + CachedRewardType: 'CachedRewardType', + WeeklyRewardChestThresholdType: 'WeeklyRewardChestThresholdType', + RecruitAcceptanceID: 'string', + kstringLfgListSearch: 'string', + kstringLfgListApplicant: 'string', + GarrisonFollower: 'number', + colorRGBA: 'ColorMixin', + kstringClubMessage: 'string', + CalendarEventID: 'string', + bool: 'boolean', + vector2: 'Vector2DMixin', + ClubId: 'string', + EmptiableItemLocation: 'ItemLocationMixin', + AzeriteItemLocation: 'ItemLocationMixin', + luaIndex: 'number', + NotificationDbId: 'string', + fileID: 'number', + cstring: 'string', + ClubStreamId: 'string', + ClubInvitationId: 'string', + textureAtlas: 'string', + table: (field: Field) => { + if (field.InnerType === 'table') { + throw new Error('String type error: Table of a table.') + } + return `${WowTypeKeyAliases[field.InnerType]}[]` + }, + colorRGB: 'ColorMixin', + BigUInteger: 'number', + WOWMONEY: 'number', + TooltipData: 'TooltipData', + time_t: 'number', + AuraData: 'AuraData', + ModelSceneFrame: 'ModelScene', + TransmogPendingInfo: 'TransmogLocationMixin', + WOWGUID: 'string', + textureKit: 'string', + ItemLocation: 'ItemLocationMixin', + vector3: 'Vector3DMixin', + HTMLTextType: 'unknown', + TBFStyleFlags: 'unknown', + FramePoint: 'string', + ScriptRegion: 'unknown', + uiUnit: 'number', + SimpleFrame: 'unknown', + FrameStrata: 'FrameStrata', + AzeriteEmpoweredItemLocation: 'ItemLocationMixin' +} as const + +export const WOW_TYPE_KEYS = Object.keys(WowTypeKeyAliases) diff --git a/scripts/lua-docs/docs/docs.json b/scripts/lua-docs/docs/docs.json new file mode 100644 index 0000000..ed74b69 --- /dev/null +++ b/scripts/lua-docs/docs/docs.json @@ -0,0 +1,70262 @@ +[ + { + "Namespace": "C_AccessibilityOptions", + "Functions": [], + "Type": "System", + "Name": "AccessibilityOptions", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "AccountData", + "Fields": [ + { "EnumValue": 0, "Type": "AccountData", "Name": "Config" }, + { "EnumValue": 1, "Type": "AccountData", "Name": "Config2" }, + { "EnumValue": 2, "Type": "AccountData", "Name": "Bindings" }, + { "EnumValue": 3, "Type": "AccountData", "Name": "Bindings2" }, + { "EnumValue": 4, "Type": "AccountData", "Name": "Macros" }, + { "EnumValue": 5, "Type": "AccountData", "Name": "Macros2" }, + { "EnumValue": 6, "Type": "AccountData", "Name": "UILayout" }, + { "EnumValue": 7, "Type": "AccountData", "Name": "ChatSettings" }, + { "EnumValue": 8, "Type": "AccountData", "Name": "TtsSettings" }, + { "EnumValue": 9, "Type": "AccountData", "Name": "TtsSettings2" }, + { "EnumValue": 10, "Type": "AccountData", "Name": "FlaggedIDs" }, + { "EnumValue": 11, "Type": "AccountData", "Name": "FlaggedIDs2" }, + { "EnumValue": 12, "Type": "AccountData", "Name": "ClickBindings" }, + { "EnumValue": 13, "Type": "AccountData", "Name": "UIEditModeAccount" }, + { "EnumValue": 14, "Type": "AccountData", "Name": "UIEditModeChar" }, + { "EnumValue": 15, "Type": "AccountData", "Name": "FrontendChatSettings" }, + { "EnumValue": 16, "Type": "AccountData", "Name": "CharacterListOrder" } + ], + "MaxValue": 16, + "MinValue": 0, + "NumValues": 17 + }, + { + "Type": "Enumeration", + "Name": "AccountDataUpdateStatus", + "Fields": [ + { + "EnumValue": 0, + "Type": "AccountDataUpdateStatus", + "Name": "AccountDataUpdateSuccess" + }, + { + "EnumValue": 1, + "Type": "AccountDataUpdateStatus", + "Name": "AccountDataUpdateFailed" + }, + { + "EnumValue": 2, + "Type": "AccountDataUpdateStatus", + "Name": "AccountDataUpdateCorrupt" + }, + { + "EnumValue": 3, + "Type": "AccountDataUpdateStatus", + "Name": "AccountDataUpdateToobig" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "AccountExportResult", + "Fields": [ + { "EnumValue": 0, "Type": "AccountExportResult", "Name": "Success" }, + { "EnumValue": 1, "Type": "AccountExportResult", "Name": "UnknownError" }, + { "EnumValue": 2, "Type": "AccountExportResult", "Name": "Cancelled" }, + { "EnumValue": 3, "Type": "AccountExportResult", "Name": "ShuttingDown" }, + { "EnumValue": 4, "Type": "AccountExportResult", "Name": "TimedOut" }, + { "EnumValue": 5, "Type": "AccountExportResult", "Name": "NoAccountFound" }, + { + "EnumValue": 6, + "Type": "AccountExportResult", + "Name": "RequestedInvalidCharacter" + }, + { "EnumValue": 7, "Type": "AccountExportResult", "Name": "RpcError" }, + { "EnumValue": 8, "Type": "AccountExportResult", "Name": "FileInvalid" }, + { "EnumValue": 9, "Type": "AccountExportResult", "Name": "FileWriteFailed" }, + { "EnumValue": 10, "Type": "AccountExportResult", "Name": "Unavailable" }, + { "EnumValue": 11, "Type": "AccountExportResult", "Name": "AlreadyInProgress" }, + { + "EnumValue": 12, + "Type": "AccountExportResult", + "Name": "FailedToLockAccount" + }, + { + "EnumValue": 13, + "Type": "AccountExportResult", + "Name": "FailedToGenerateFile" + } + ], + "MaxValue": 13, + "MinValue": 0, + "NumValues": 14 + }, + { + "Type": "Enumeration", + "Name": "AccountTransType", + "Fields": [ + { "EnumValue": 0, "Type": "AccountTransType", "Name": "ProxyForwarder" }, + { "EnumValue": 1, "Type": "AccountTransType", "Name": "Purchase" }, + { "EnumValue": 2, "Type": "AccountTransType", "Name": "Distribution" }, + { "EnumValue": 3, "Type": "AccountTransType", "Name": "Battlepet" }, + { "EnumValue": 4, "Type": "AccountTransType", "Name": "Achievements" }, + { "EnumValue": 5, "Type": "AccountTransType", "Name": "Criteria" }, + { "EnumValue": 6, "Type": "AccountTransType", "Name": "Mounts" }, + { "EnumValue": 7, "Type": "AccountTransType", "Name": "Characters" }, + { "EnumValue": 8, "Type": "AccountTransType", "Name": "Purchases" }, + { "EnumValue": 9, "Type": "AccountTransType", "Name": "ArchivedPurchases" }, + { "EnumValue": 10, "Type": "AccountTransType", "Name": "Distributions" }, + { "EnumValue": 11, "Type": "AccountTransType", "Name": "CurrencyCaps" }, + { "EnumValue": 12, "Type": "AccountTransType", "Name": "QuestLog" }, + { "EnumValue": 13, "Type": "AccountTransType", "Name": "CriteriaNotif" }, + { "EnumValue": 14, "Type": "AccountTransType", "Name": "Settings" }, + { "EnumValue": 15, "Type": "AccountTransType", "Name": "FixedLicense" }, + { "EnumValue": 16, "Type": "AccountTransType", "Name": "AddLicense" }, + { "EnumValue": 17, "Type": "AccountTransType", "Name": "ItemCollections" }, + { "EnumValue": 18, "Type": "AccountTransType", "Name": "AuctionableToken" }, + { "EnumValue": 19, "Type": "AccountTransType", "Name": "ConsumableToken" }, + { "EnumValue": 20, "Type": "AccountTransType", "Name": "VasTransaction" }, + { "EnumValue": 21, "Type": "AccountTransType", "Name": "Productitem" }, + { "EnumValue": 22, "Type": "AccountTransType", "Name": "TrialBoostHistory" }, + { "EnumValue": 23, "Type": "AccountTransType", "Name": "TrialBoostHistories" }, + { "EnumValue": 24, "Type": "AccountTransType", "Name": "QuestCriteria" }, + { "EnumValue": 25, "Type": "AccountTransType", "Name": "BattlenetAccount" }, + { "EnumValue": 26, "Type": "AccountTransType", "Name": "AccountCurrencies" }, + { + "EnumValue": 27, + "Type": "AccountTransType", + "Name": "RafRecruiterAcceptances" + }, + { "EnumValue": 28, "Type": "AccountTransType", "Name": "RafFriendMonth" }, + { "EnumValue": 29, "Type": "AccountTransType", "Name": "RafReward" }, + { "EnumValue": 30, "Type": "AccountTransType", "Name": "DynamicCriteria" }, + { "EnumValue": 31, "Type": "AccountTransType", "Name": "RafActivity" }, + { "EnumValue": 32, "Type": "AccountTransType", "Name": "CreateOrderInfo" }, + { + "EnumValue": 33, + "Type": "AccountTransType", + "Name": "ProxyHonorInitialConversion" + }, + { + "EnumValue": 34, + "Type": "AccountTransType", + "Name": "ProxyCreateAccountHonor" + }, + { + "EnumValue": 35, + "Type": "AccountTransType", + "Name": "ProxyValidateAccountHonor" + }, + { "EnumValue": 36, "Type": "AccountTransType", "Name": "ProxyGmSetHonor" }, + { "EnumValue": 37, "Type": "AccountTransType", "Name": "ProxyGenerateBpayID" }, + { "EnumValue": 38, "Type": "AccountTransType", "Name": "AccountNotifications" }, + { "EnumValue": 39, "Type": "AccountTransType", "Name": "PerkItemHold" }, + { "EnumValue": 40, "Type": "AccountTransType", "Name": "PerkPendingRewards" }, + { "EnumValue": 41, "Type": "AccountTransType", "Name": "PerkRecentPurchases" }, + { "EnumValue": 42, "Type": "AccountTransType", "Name": "PerkPastRewards" }, + { "EnumValue": 43, "Type": "AccountTransType", "Name": "PerkTransaction" }, + { "EnumValue": 44, "Type": "AccountTransType", "Name": "OutstandingRpc" }, + { "EnumValue": 45, "Type": "AccountTransType", "Name": "LoadWowlabs" }, + { "EnumValue": 46, "Type": "AccountTransType", "Name": "UpgradeAccount" }, + { + "EnumValue": 47, + "Type": "AccountTransType", + "Name": "GetOrderStatusByPurchaseID" + }, + { "EnumValue": 48, "Type": "AccountTransType", "Name": "Items" }, + { "EnumValue": 49, "Type": "AccountTransType", "Name": "BankTab" }, + { "EnumValue": 50, "Type": "AccountTransType", "Name": "Factions" }, + { "EnumValue": 51, "Type": "AccountTransType", "Name": "BitVectors" }, + { "EnumValue": 52, "Type": "AccountTransType", "Name": "CombinedQuestLog" }, + { "EnumValue": 53, "Type": "AccountTransType", "Name": "PlayerDataElements" } + ], + "MaxValue": 53, + "MinValue": 0, + "NumValues": 54 + }, + { + "Type": "Enumeration", + "Name": "BnetAccountFlag", + "Fields": [ + { "EnumValue": 0, "Type": "BnetAccountFlag", "Name": "None" }, + { "EnumValue": 1, "Type": "BnetAccountFlag", "Name": "BattlePetTrainer" }, + { "EnumValue": 2, "Type": "BnetAccountFlag", "Name": "RafVeteranNotified" }, + { "EnumValue": 4, "Type": "BnetAccountFlag", "Name": "TwitterLinked" }, + { "EnumValue": 8, "Type": "BnetAccountFlag", "Name": "TwitterHasTempSecret" }, + { "EnumValue": 16, "Type": "BnetAccountFlag", "Name": "Employee" }, + { "EnumValue": 32, "Type": "BnetAccountFlag", "Name": "EmployeeFlagIsManual" }, + { "EnumValue": 64, "Type": "BnetAccountFlag", "Name": "AccountQuestBitFixUp" }, + { "EnumValue": 128, "Type": "BnetAccountFlag", "Name": "AchievementsToBi" }, + { + "EnumValue": 256, + "Type": "BnetAccountFlag", + "Name": "InvalidTransmogsFixUp" + }, + { + "EnumValue": 512, + "Type": "BnetAccountFlag", + "Name": "InvalidTransmogsFixUp2" + }, + { "EnumValue": 1024, "Type": "BnetAccountFlag", "Name": "GdprErased" }, + { "EnumValue": 2048, "Type": "BnetAccountFlag", "Name": "DarkRealmLightCopy" }, + { "EnumValue": 4096, "Type": "BnetAccountFlag", "Name": "QuestLogFlagsFixUp" }, + { "EnumValue": 8192, "Type": "BnetAccountFlag", "Name": "WasSecured" }, + { "EnumValue": 16384, "Type": "BnetAccountFlag", "Name": "LockedForExport" }, + { + "EnumValue": 32768, + "Type": "BnetAccountFlag", + "Name": "CanBuyAhGameTimeTokens" + }, + { + "EnumValue": 65536, + "Type": "BnetAccountFlag", + "Name": "PetAchievementFixUp" + }, + { "EnumValue": 131072, "Type": "BnetAccountFlag", "Name": "IsLegacy" }, + { + "EnumValue": 262144, + "Type": "BnetAccountFlag", + "Name": "CataLegendaryMountChecked" + }, + { + "EnumValue": 524288, + "Type": "BnetAccountFlag", + "Name": "CataLegendaryMountObtained" + } + ], + "MaxValue": 524288, + "MinValue": 0, + "NumValues": 21 + }, + { + "Type": "Enumeration", + "Name": "DisableAccountProfilesFlags", + "Fields": [ + { "EnumValue": 0, "Type": "DisableAccountProfilesFlags", "Name": "None" }, + { "EnumValue": 1, "Type": "DisableAccountProfilesFlags", "Name": "Document" }, + { + "EnumValue": 2, + "Type": "DisableAccountProfilesFlags", + "Name": "SharedCollections" + }, + { + "EnumValue": 4, + "Type": "DisableAccountProfilesFlags", + "Name": "MountsCollections" + }, + { + "EnumValue": 8, + "Type": "DisableAccountProfilesFlags", + "Name": "PetsCollections" + }, + { + "EnumValue": 16, + "Type": "DisableAccountProfilesFlags", + "Name": "ItemsCollections" + } + ], + "MaxValue": 16, + "MinValue": 0, + "NumValues": 6 + } + ] + }, + { + "Namespace": "C_AccountInfo", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "battleNetAccountID" }], + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "battleNetAccountGUID" } + ], + "Type": "Function", + "Name": "GetIDFromBattleNetAccountGUID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isBNet" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "IsGUIDBattleNetAccountType" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLocalUser" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "IsGUIDRelatedToLocalAccount" + } + ], + "Type": "System", + "Name": "AccountInfo", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_AchievementInfo", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "AreGuildAchievementsEnabled" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "rewardItemID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "achievementID" }], + "Type": "Function", + "Name": "GetRewardItemID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "supercedingAchievements" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "achievementID" }], + "Type": "Function", + "Name": "GetSupercedingAchievements" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isGuild" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "achievementId" }], + "Type": "Function", + "Name": "IsGuildAchievement" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isValidAchievement" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "achievementId" }], + "Type": "Function", + "Name": "IsValidAchievement" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SimpleTexture", "Name": "textureObject" } + ], + "Type": "Function", + "Name": "SetPortraitTexture" + } + ], + "Type": "System", + "Name": "AchievementInfo", + "Events": [ + { + "LiteralName": "ACHIEVEMENT_EARNED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "achievementID" }, + { "Nilable": true, "Type": "bool", "Name": "alreadyEarned" } + ], + "Type": "Event", + "Name": "AchievementEarned" + }, + { + "LiteralName": "ACHIEVEMENT_PLAYER_NAME", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "achievementID" }], + "Type": "Event", + "Name": "AchievementPlayerName" + }, + { + "LiteralName": "ACHIEVEMENT_SEARCH_UPDATED", + "Type": "Event", + "Name": "AchievementSearchUpdated" + }, + { + "LiteralName": "CRITERIA_COMPLETE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "criteriaID" }], + "Type": "Event", + "Name": "CriteriaComplete" + }, + { + "LiteralName": "CRITERIA_EARNED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "achievementID" }, + { "Nilable": false, "Type": "cstring", "Name": "description" } + ], + "Type": "Event", + "Name": "CriteriaEarned" + }, + { "LiteralName": "CRITERIA_UPDATE", "Type": "Event", "Name": "CriteriaUpdate" }, + { + "LiteralName": "INSPECT_ACHIEVEMENT_READY", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Event", + "Name": "InspectAchievementReady" + }, + { + "LiteralName": "RECEIVED_ACHIEVEMENT_LIST", + "Type": "Event", + "Name": "ReceivedAchievementList" + }, + { + "LiteralName": "RECEIVED_ACHIEVEMENT_MEMBER_LIST", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "achievementID" }], + "Type": "Event", + "Name": "ReceivedAchievementMemberList" + }, + { + "LiteralName": "TRACKED_ACHIEVEMENT_LIST_CHANGED", + "Payload": [ + { "Nilable": true, "Type": "number", "Name": "achievementID" }, + { "Nilable": true, "Type": "bool", "Name": "added" } + ], + "Type": "Event", + "Name": "TrackedAchievementListChanged" + }, + { + "LiteralName": "TRACKED_ACHIEVEMENT_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "achievementID" }, + { "Nilable": true, "Type": "number", "Name": "criteriaID" }, + { "Nilable": true, "Type": "time_t", "Name": "elapsed" }, + { "Nilable": true, "Type": "number", "Name": "duration" } + ], + "Type": "Event", + "Name": "TrackedAchievementUpdate" + } + ], + "Tables": [] + }, + { + "Namespace": "C_ActionBar", + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "actionID" }, + { "Nilable": false, "Type": "bool", "Name": "enable" } + ], + "Type": "Function", + "Name": "EnableActionRangeCheck" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "luaIndex", "Type": "table", "Name": "slots" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "flyoutID" }], + "Type": "Function", + "Name": "FindFlyoutActionButtons" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "luaIndex", "Type": "table", "Name": "slots" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "petActionID" }], + "Type": "Function", + "Name": "FindPetActionButtons" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "luaIndex", "Type": "table", "Name": "slots" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "FindSpellActionButtons" + }, + { + "Returns": [{ "Nilable": true, "Type": "luaIndex", "Name": "bonusBarIndex" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slotID" }], + "Type": "Function", + "Name": "GetBonusBarIndexForSlot" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "onEquipSpellID" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "actionID" }], + "Type": "Function", + "Name": "GetItemActionOnEquipSpellID" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "luaIndex", "Type": "table", "Name": "slots" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "petActionID" }], + "Type": "Function", + "Name": "GetPetActionPetBarIndices" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "quality" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "actionID" }], + "Type": "Function", + "Name": "GetProfessionQuality" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "actionID" }], + "Type": "Function", + "Name": "GetSpell" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasFlyoutActionButtons" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "flyoutID" }], + "Type": "Function", + "Name": "HasFlyoutActionButtons" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasPetActionButtons" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "petActionID" }], + "Type": "Function", + "Name": "HasPetActionButtons" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasPetActionPetBarIndices" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "petActionID" }], + "Type": "Function", + "Name": "HasPetActionPetBarIndices" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasSpellActionButtons" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "HasSpellActionButtons" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAutoCastPetAction" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slotID" }], + "Type": "Function", + "Name": "IsAutoCastPetAction" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isEnabledAutoCastPetAction" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slotID" }], + "Type": "Function", + "Name": "IsEnabledAutoCastPetAction" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isHarmful" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "actionID" }, + { "Nilable": false, "Type": "bool", "Name": "useNeutral" } + ], + "Type": "Function", + "Name": "IsHarmfulAction" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isHelpful" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "actionID" }, + { "Nilable": false, "Type": "bool", "Name": "useNeutral" } + ], + "Type": "Function", + "Name": "IsHelpfulAction" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isOnBarOrSpecialBar" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "IsOnBarOrSpecialBar" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slotID" }], + "Type": "Function", + "Name": "PutActionInSlot" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "showHealthBar" }], + "Type": "Function", + "Name": "ShouldOverrideBarShowHealthBar" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "showManaBar" }], + "Type": "Function", + "Name": "ShouldOverrideBarShowManaBar" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slotID" }], + "Type": "Function", + "Name": "ToggleAutoCastPetAction" + } + ], + "Type": "System", + "Name": "ActionBar", + "Events": [ + { + "LiteralName": "ACTION_RANGE_CHECK_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "luaIndex", "Name": "slot" }, + { "Nilable": false, "Type": "bool", "Name": "isInRange" }, + { "Nilable": false, "Type": "bool", "Name": "checksRange" } + ], + "Type": "Event", + "Name": "ActionRangeCheckUpdate" + }, + { + "LiteralName": "ACTION_USABLE_CHANGED", + "Payload": [ + { + "Nilable": false, + "InnerType": "ActionUsableState", + "Type": "table", + "Name": "changes" + } + ], + "Type": "Event", + "Name": "ActionUsableChanged" + }, + { + "LiteralName": "ACTIONBAR_HIDEGRID", + "Type": "Event", + "Name": "ActionbarHidegrid" + }, + { + "LiteralName": "ACTIONBAR_PAGE_CHANGED", + "Type": "Event", + "Name": "ActionbarPageChanged" + }, + { + "LiteralName": "ACTIONBAR_SHOW_BOTTOMLEFT", + "Type": "Event", + "Name": "ActionbarShowBottomleft" + }, + { + "LiteralName": "ACTIONBAR_SHOWGRID", + "Type": "Event", + "Name": "ActionbarShowgrid" + }, + { + "LiteralName": "ACTIONBAR_SLOT_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "slot" }], + "Type": "Event", + "Name": "ActionbarSlotChanged" + }, + { + "LiteralName": "ACTIONBAR_UPDATE_COOLDOWN", + "Type": "Event", + "Name": "ActionbarUpdateCooldown" + }, + { + "LiteralName": "ACTIONBAR_UPDATE_STATE", + "Type": "Event", + "Name": "ActionbarUpdateState" + }, + { + "LiteralName": "ACTIONBAR_UPDATE_USABLE", + "Type": "Event", + "Name": "ActionbarUpdateUsable" + }, + { "LiteralName": "PET_BAR_UPDATE", "Type": "Event", "Name": "PetBarUpdate" }, + { + "LiteralName": "UPDATE_BONUS_ACTIONBAR", + "Type": "Event", + "Name": "UpdateBonusActionbar" + }, + { + "LiteralName": "UPDATE_EXTRA_ACTIONBAR", + "Type": "Event", + "Name": "UpdateExtraActionbar" + }, + { + "LiteralName": "UPDATE_MULTI_CAST_ACTIONBAR", + "Type": "Event", + "Name": "UpdateMultiCastActionbar" + }, + { + "LiteralName": "UPDATE_OVERRIDE_ACTIONBAR", + "Type": "Event", + "Name": "UpdateOverrideActionbar" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "luaIndex", "Name": "slot" }, + { "Nilable": false, "Type": "bool", "Name": "usable" }, + { "Nilable": false, "Type": "bool", "Name": "noMana" } + ], + "Type": "Structure", + "Name": "ActionUsableState" + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_AddOns", + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "uiAddon", "Name": "name" }, + { "Nilable": false, "Default": "0", "Type": "cstring", "Name": "character" } + ], + "Type": "Function", + "Name": "DisableAddOn" + }, + { + "Arguments": [{ "Nilable": true, "Type": "cstring", "Name": "character" }], + "Type": "Function", + "Name": "DisableAllAddOns" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "exists" }], + "Arguments": [{ "Nilable": false, "Type": "uiAddon", "Name": "name" }], + "Type": "Function", + "Name": "DoesAddOnExist" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "uiAddon", "Name": "name" }, + { "Nilable": false, "Default": "0", "Type": "cstring", "Name": "character" } + ], + "Type": "Function", + "Name": "EnableAddOn" + }, + { + "Arguments": [{ "Nilable": true, "Type": "cstring", "Name": "character" }], + "Type": "Function", + "Name": "EnableAllAddOns" + }, + { + "Returns": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "string", + "Name": "unpackedPrimitiveType" + } + ], + "Arguments": [{ "Nilable": false, "Type": "uiAddon", "Name": "name" }], + "Type": "Function", + "Name": "GetAddOnDependencies" + }, + { + "Returns": [{ "Nilable": false, "Type": "AddOnEnableState", "Name": "state" }], + "Arguments": [ + { "Nilable": false, "Type": "uiAddon", "Name": "name" }, + { "Nilable": false, "Default": "0", "Type": "cstring", "Name": "character" } + ], + "Type": "Function", + "Name": "GetAddOnEnableState" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "title" }, + { "Nilable": false, "Type": "cstring", "Name": "notes" }, + { "Nilable": false, "Type": "bool", "Name": "loadable" }, + { "Nilable": false, "Type": "cstring", "Name": "reason" }, + { "Nilable": false, "Type": "cstring", "Name": "security" }, + { "Nilable": false, "Type": "bool", "Name": "updateAvailable" } + ], + "Arguments": [{ "Nilable": false, "Type": "uiAddon", "Name": "name" }], + "Type": "Function", + "Name": "GetAddOnInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "value" }], + "Arguments": [ + { "Nilable": false, "Type": "uiAddon", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "variable" } + ], + "Type": "Function", + "Name": "GetAddOnMetadata" + }, + { + "Returns": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "string", + "Name": "unpackedPrimitiveType" + } + ], + "Arguments": [{ "Nilable": false, "Type": "uiAddon", "Name": "name" }], + "Type": "Function", + "Name": "GetAddOnOptionalDependencies" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numAddOns" }], + "Type": "Function", + "Name": "GetNumAddOns" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "disallowed" }], + "Type": "Function", + "Name": "GetScriptsDisallowedForBeta" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "loadOnDemand" }], + "Arguments": [{ "Nilable": false, "Type": "uiAddon", "Name": "name" }], + "Type": "Function", + "Name": "IsAddOnLoadOnDemand" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "loadable" }, + { "Nilable": false, "Type": "cstring", "Name": "reason" } + ], + "Arguments": [ + { "Nilable": false, "Type": "uiAddon", "Name": "name" }, + { "Nilable": false, "Default": "0", "Type": "cstring", "Name": "character" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "demandLoaded" } + ], + "Type": "Function", + "Name": "IsAddOnLoadable" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "loadedOrLoading" }, + { "Nilable": false, "Type": "bool", "Name": "loaded" } + ], + "Arguments": [{ "Nilable": false, "Type": "uiAddon", "Name": "name" }], + "Type": "Function", + "Name": "IsAddOnLoaded" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEnabled" }], + "Type": "Function", + "Name": "IsAddonVersionCheckEnabled" + }, + { + "Returns": [ + { "Nilable": true, "Type": "bool", "Name": "loaded" }, + { "Nilable": true, "Type": "string", "Name": "value" } + ], + "Arguments": [{ "Nilable": false, "Type": "uiAddon", "Name": "name" }], + "Type": "Function", + "Name": "LoadAddOn" + }, + { "Type": "Function", "Name": "ResetAddOns" }, + { "Type": "Function", "Name": "ResetDisabledAddOns" }, + { "Type": "Function", "Name": "SaveAddOns" }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "SetAddonVersionCheck" + } + ], + "Type": "System", + "Name": "AddOns", + "Events": [ + { + "LiteralName": "ADDON_LOADED", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "addOnName" }, + { "Nilable": false, "Type": "bool", "Name": "containsBindings" } + ], + "Type": "Event", + "Name": "AddonLoaded" + }, + { + "LiteralName": "ADDONS_UNLOADING", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "closingClient" }], + "Type": "Event", + "Name": "AddonsUnloading" + }, + { + "LiteralName": "SAVED_VARIABLES_TOO_LARGE", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "addOnName" }], + "Type": "Event", + "Name": "SavedVariablesTooLarge" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "AddOnEnableState", + "Fields": [ + { "EnumValue": 0, "Type": "AddOnEnableState", "Name": "None" }, + { "EnumValue": 1, "Type": "AddOnEnableState", "Name": "Some" }, + { "EnumValue": 2, "Type": "AddOnEnableState", "Name": "All" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "title" }, + { "Nilable": false, "Type": "cstring", "Name": "notes" }, + { "Nilable": false, "Type": "bool", "Name": "loadable" }, + { "Nilable": false, "Type": "cstring", "Name": "reason" }, + { "Nilable": false, "Type": "cstring", "Name": "security" }, + { "Nilable": false, "Type": "bool", "Name": "updateAvailable" } + ], + "Type": "Structure", + "Name": "AddOnInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "loadable" }, + { "Nilable": false, "Type": "cstring", "Name": "reason" } + ], + "Type": "Structure", + "Name": "AddOnLoadableInfo" + } + ] + }, + { + "Namespace": "C_AdventureJournal", + "Functions": [], + "Type": "System", + "Name": "AdventureJournal", + "Events": [ + { + "LiteralName": "AJ_DUNGEON_ACTION", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "lfgDungeonID" }], + "Type": "Event", + "Name": "AjDungeonAction" + }, + { "LiteralName": "AJ_OPEN", "Type": "Event", "Name": "AjOpen" }, + { + "LiteralName": "AJ_OPEN_COLLECTIONS_ACTION", + "Type": "Event", + "Name": "AjOpenCollectionsAction" + }, + { "LiteralName": "AJ_PVE_LFG_ACTION", "Type": "Event", "Name": "AjPveLfgAction" }, + { + "LiteralName": "AJ_PVP_ACTION", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "battleMasterListID" }], + "Type": "Event", + "Name": "AjPvpAction" + }, + { "LiteralName": "AJ_PVP_LFG_ACTION", "Type": "Event", "Name": "AjPvpLfgAction" }, + { "LiteralName": "AJ_PVP_RBG_ACTION", "Type": "Event", "Name": "AjPvpRbgAction" }, + { + "LiteralName": "AJ_PVP_SKIRMISH_ACTION", + "Type": "Event", + "Name": "AjPvpSkirmishAction" + }, + { + "LiteralName": "AJ_QUEST_LOG_OPEN", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "uiMapID" } + ], + "Type": "Event", + "Name": "AjQuestLogOpen" + }, + { + "LiteralName": "AJ_RAID_ACTION", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "lfgDungeonID" }], + "Type": "Event", + "Name": "AjRaidAction" + }, + { + "LiteralName": "AJ_REFRESH_DISPLAY", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "newAdventureNotice" }], + "Type": "Event", + "Name": "AjRefreshDisplay" + }, + { + "LiteralName": "AJ_REWARD_DATA_RECEIVED", + "Type": "Event", + "Name": "AjRewardDataReceived" + } + ], + "Tables": [] + }, + { + "Namespace": "C_AdventureMap", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "textureKit", "Name": "adventureMapTextureKit" } + ], + "Type": "Function", + "Name": "GetAdventureMapTextureKit" + } + ], + "Type": "System", + "Name": "AdventureMap", + "Events": [ + { + "LiteralName": "ADVENTURE_MAP_CLOSE", + "Type": "Event", + "Name": "AdventureMapClose" + }, + { + "LiteralName": "ADVENTURE_MAP_OPEN", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "followerTypeID" }], + "Type": "Event", + "Name": "AdventureMapOpen" + }, + { + "LiteralName": "ADVENTURE_MAP_QUEST_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Event", + "Name": "AdventureMapQuestUpdate" + }, + { + "LiteralName": "ADVENTURE_MAP_UPDATE_INSETS", + "Type": "Event", + "Name": "AdventureMapUpdateInsets" + }, + { + "LiteralName": "ADVENTURE_MAP_UPDATE_POIS", + "Type": "Event", + "Name": "AdventureMapUpdatePois" + } + ], + "Tables": [] + }, + { + "Namespace": "C_AlliedRaces", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AlliedRaceRacialAbility", + "Type": "table", + "Name": "allDisplayInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "raceID" }], + "Type": "Function", + "Name": "GetAllRacialAbilitiesFromID" + }, + { + "Returns": [{ "Nilable": false, "Type": "AlliedRaceInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "raceID" }], + "Type": "Function", + "Name": "GetRaceInfoByID" + } + ], + "Type": "System", + "Name": "AlliedRaces", + "Events": [ + { "LiteralName": "ALLIED_RACE_CLOSE", "Type": "Event", "Name": "AlliedRaceClose" }, + { + "LiteralName": "ALLIED_RACE_OPEN", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "raceID" }], + "Type": "Event", + "Name": "AlliedRaceOpen" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "raceID" }, + { "Nilable": false, "Type": "number", "Name": "maleModelID" }, + { "Nilable": false, "Type": "number", "Name": "femaleModelID" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "achievementIds" + }, + { "Nilable": false, "Type": "cstring", "Name": "maleName" }, + { "Nilable": false, "Type": "cstring", "Name": "femaleName" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "cstring", "Name": "raceFileString" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "crestAtlas" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "modelBackgroundAtlas" }, + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "bannerColor" + } + ], + "Type": "Structure", + "Name": "AlliedRaceInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" } + ], + "Type": "Structure", + "Name": "AlliedRaceRacialAbility" + } + ] + }, + { + "Namespace": "C_AnimaDiversion", + "Functions": [ + { "Type": "Function", "Name": "CloseUI" }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AnimaDiversionNodeInfo", + "Type": "table", + "Name": "animaNodes" + } + ], + "Type": "Function", + "Name": "GetAnimaDiversionNodes" + }, + { + "Returns": [ + { + "Nilable": true, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "normalizedPosition" + } + ], + "Type": "Function", + "Name": "GetOriginPosition" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "progress" }], + "Type": "Function", + "Name": "GetReinforceProgress" + }, + { + "Returns": [{ "Nilable": false, "Type": "textureKit", "Name": "textureKit" }], + "Type": "Function", + "Name": "GetTextureKit" + }, + { "Type": "Function", "Name": "OpenAnimaDiversionUI" }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "talentID" }, + { "Nilable": false, "Type": "bool", "Name": "temporary" } + ], + "Type": "Function", + "Name": "SelectAnimaNode" + } + ], + "Type": "System", + "Name": "AnimaDiversionInfo", + "Events": [ + { + "LiteralName": "ANIMA_DIVERSION_CLOSE", + "Type": "Event", + "Name": "AnimaDiversionClose" + }, + { + "LiteralName": "ANIMA_DIVERSION_OPEN", + "Payload": [ + { "Nilable": false, "Type": "AnimaDiversionFrameInfo", "Name": "info" } + ], + "Type": "Event", + "Name": "AnimaDiversionOpen" + }, + { + "LiteralName": "ANIMA_DIVERSION_TALENT_UPDATED", + "Type": "Event", + "Name": "AnimaDiversionTalentUpdated" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "AnimaDiversionNodeState", + "Fields": [ + { "EnumValue": 0, "Type": "AnimaDiversionNodeState", "Name": "Unavailable" }, + { "EnumValue": 1, "Type": "AnimaDiversionNodeState", "Name": "Available" }, + { + "EnumValue": 2, + "Type": "AnimaDiversionNodeState", + "Name": "SelectedTemporary" + }, + { + "EnumValue": 3, + "Type": "AnimaDiversionNodeState", + "Name": "SelectedPermanent" + }, + { "EnumValue": 4, "Type": "AnimaDiversionNodeState", "Name": "Cooldown" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Structure", + "Name": "AnimaDiversionCostInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "string", "Name": "title" }, + { "Nilable": false, "Type": "number", "Name": "mapID" } + ], + "Type": "Structure", + "Name": "AnimaDiversionFrameInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "talentID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { + "Nilable": false, + "InnerType": "AnimaDiversionCostInfo", + "Type": "table", + "Name": "costs" + }, + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "icon" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "normalizedPosition" + }, + { "Nilable": false, "Type": "AnimaDiversionNodeState", "Name": "state" } + ], + "Type": "Structure", + "Name": "AnimaDiversionNodeInfo" + } + ] + }, + { + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "visualID" }, + { "Nilable": false, "Type": "number", "Name": "sourceID" }, + { "Nilable": false, "Type": "bool", "Name": "isCollected" }, + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "itemModID" }, + { "Nilable": false, "Default": 0, "Type": "luaIndex", "Name": "invType" }, + { + "Nilable": false, + "Default": "None", + "Type": "TransmogCollectionType", + "Name": "categoryID" + }, + { "Nilable": false, "Type": "bool", "Name": "playerCanCollect" }, + { "Nilable": false, "Type": "bool", "Name": "isValidSourceForPlayer" }, + { "Nilable": true, "Type": "number", "Name": "inventorySlot" }, + { "Nilable": true, "Type": "luaIndex", "Name": "sourceType" }, + { "Nilable": true, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "number", "Name": "quality" }, + { "Nilable": true, "Type": "string", "Name": "useError" }, + { "Nilable": true, "Type": "TransmogUseErrorType", "Name": "useErrorType" }, + { "Nilable": true, "Type": "bool", "Name": "meetsTransmogPlayerCondition" }, + { "Nilable": true, "Type": "bool", "Name": "isHideVisual" } + ], + "Type": "Structure", + "Name": "AppearanceSourceInfo" + } + ] + }, + { + "Namespace": "C_ArdenwealdGardening", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "ArdenwealdGardenData", "Name": "data" }], + "Type": "Function", + "Name": "GetGardenData" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "accessible" }], + "Type": "Function", + "Name": "IsGardenAccessible" + } + ], + "Type": "System", + "Name": "ArdenwealdGardening", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "active" }, + { "Nilable": false, "Type": "number", "Name": "ready" }, + { "Nilable": false, "Type": "time_t", "Name": "remainingSeconds" } + ], + "Type": "Structure", + "Name": "ArdenwealdGardenData" + } + ] + }, + { + "Namespace": "C_AreaPoiInfo", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "areaPoiIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetAreaPOIForMap" + }, + { + "Returns": [{ "Nilable": false, "Type": "AreaPOIInfo", "Name": "poiInfo" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { "Nilable": false, "Type": "number", "Name": "areaPoiID" } + ], + "Type": "Function", + "Name": "GetAreaPOIInfo" + }, + { + "Documentation": ["Returns the number of seconds until the POI expires."], + "Type": "Function", + "Name": "GetAreaPOISecondsLeft", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "secondsLeft" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "areaPoiID" }] + }, + { + "Documentation": [ + "Returns all area POIInfos flagged as delves for the given map." + ], + "Type": "Function", + "Name": "GetDelvesForMap", + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "areaPoiIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }] + }, + { + "Documentation": [ + "Returns all area POIInfos flagged as dragonriding races for the given map." + ], + "Type": "Function", + "Name": "GetDragonridingRacesForMap", + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "areaPoiIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }] + }, + { + "Documentation": [ + "Returns all area POIInfos flagged as events for the given map." + ], + "Type": "Function", + "Name": "GetEventsForMap", + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "areaPoiIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }] + }, + { + "Documentation": [ + "Returns all area POIInfos flagged as quest hubs for the given map." + ], + "Type": "Function", + "Name": "GetQuestHubsForMap", + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "areaPoiIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }] + }, + { + "Documentation": [ + "This statically determines if the POI is timed, GetAreaPOITimeLeft retrieves the value from the server and may return nothing for long intervals" + ], + "Type": "Function", + "Name": "IsAreaPOITimed", + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isTimed" }, + { "Nilable": true, "Type": "bool", "Name": "hideTimerInTooltip" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "areaPoiID" }] + } + ], + "Type": "System", + "Name": "AreaPoiInfo", + "Events": [ + { "LiteralName": "AREA_POIS_UPDATED", "Type": "Event", "Name": "AreaPoisUpdated" } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "areaPoiID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "cstring", "Name": "description" }, + { "Nilable": true, "Type": "number", "Name": "linkedUiMapID" }, + { "Nilable": true, "Type": "number", "Name": "textureIndex" }, + { "Nilable": true, "Type": "number", "Name": "tooltipWidgetSet" }, + { "Nilable": true, "Type": "number", "Name": "iconWidgetSet" }, + { "Nilable": true, "Type": "string", "Name": "atlasName" }, + { "Nilable": true, "Type": "textureKit", "Name": "uiTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "shouldGlow" }, + { "Nilable": true, "Type": "number", "Name": "factionID" }, + { "Nilable": false, "Type": "bool", "Name": "isPrimaryMapForPOI" }, + { "Nilable": false, "Type": "bool", "Name": "isAlwaysOnFlightmap" }, + { "Nilable": true, "Type": "bool", "Name": "addPaddingAboveTooltipWidgets" }, + { "Nilable": false, "Type": "bool", "Name": "highlightWorldQuestsOnHover" }, + { "Nilable": false, "Type": "bool", "Name": "highlightVignettesOnHover" }, + { "Nilable": false, "Type": "bool", "Name": "isCurrentEvent" } + ], + "Type": "Structure", + "Name": "AreaPOIInfo" + } + ] + }, + { + "Functions": [ + { "Type": "Function", "Name": "AcceptArenaTeam" }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "ArenaTeamDisband" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "cstring", "Name": "target" } + ], + "Type": "Function", + "Name": "ArenaTeamInviteByName" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "ArenaTeamLeave" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "cstring", "Name": "target" } + ], + "Type": "Function", + "Name": "ArenaTeamSetLeaderByName" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "cstring", "Name": "target" } + ], + "Type": "Function", + "Name": "ArenaTeamUninviteByName" + }, + { "Type": "Function", "Name": "DeclineArenaTeam" } + ], + "Type": "System", + "Name": "ArenaTeam", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ArrowCalloutDirection", + "Fields": [ + { "EnumValue": 0, "Type": "ArrowCalloutDirection", "Name": "Up" }, + { "EnumValue": 1, "Type": "ArrowCalloutDirection", "Name": "Down" }, + { "EnumValue": 2, "Type": "ArrowCalloutDirection", "Name": "Left" }, + { "EnumValue": 3, "Type": "ArrowCalloutDirection", "Name": "Right" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ArrowCalloutType", + "Fields": [ + { "EnumValue": 0, "Type": "ArrowCalloutType", "Name": "None" }, + { "EnumValue": 1, "Type": "ArrowCalloutType", "Name": "Generic" }, + { "EnumValue": 2, "Type": "ArrowCalloutType", "Name": "WorldLootObject" }, + { "EnumValue": 3, "Type": "ArrowCalloutType", "Name": "Tutorial" }, + { + "EnumValue": 4, + "Type": "ArrowCalloutType", + "Name": "WidgetContainerNoBorder" + } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + } + ] + }, + { + "Namespace": "C_ArtifactUI", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "powerID" }], + "Type": "Function", + "Name": "AddPower" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "relicSlotIndex" }], + "Type": "Function", + "Name": "ApplyCursorRelicToSlot" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canApply" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "relicItemID" }, + { "Nilable": false, "Type": "bool", "Name": "onlyUnlocked" } + ], + "Type": "Function", + "Name": "CanApplyArtifactRelic" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canApply" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "relicSlotIndex" }], + "Type": "Function", + "Name": "CanApplyCursorRelicToSlot" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canApply" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "relicItemID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "relicSlotIndex" } + ], + "Type": "Function", + "Name": "CanApplyRelicItemIDToEquippedArtifactSlot" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canApply" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "relicItemID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "relicSlotIndex" } + ], + "Type": "Function", + "Name": "CanApplyRelicItemIDToSlot" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canRespec" }], + "Type": "Function", + "Name": "CheckRespecNPC" + }, + { "Type": "Function", "Name": "Clear" }, + { "Type": "Function", "Name": "ClearForgeCamera" }, + { "Type": "Function", "Name": "ConfirmRespec" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasAnyRelicsSlotted" }], + "Type": "Function", + "Name": "DoesEquippedArtifactHaveAnyRelicsSlotted" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "artifactAppearanceID" }, + { "Nilable": false, "Type": "string", "Name": "appearanceName" }, + { "Nilable": false, "Type": "number", "Name": "displayIndex" }, + { "Nilable": false, "Type": "bool", "Name": "unlocked" }, + { "Nilable": true, "Type": "string", "Name": "failureDescription" }, + { "Nilable": false, "Type": "number", "Name": "uiCameraID" }, + { "Nilable": true, "Type": "number", "Name": "altHandCameraID" }, + { "Nilable": false, "Type": "number", "Name": "swatchColorR" }, + { "Nilable": false, "Type": "number", "Name": "swatchColorG" }, + { "Nilable": false, "Type": "number", "Name": "swatchColorB" }, + { "Nilable": false, "Type": "number", "Name": "modelOpacity" }, + { "Nilable": false, "Type": "number", "Name": "modelSaturation" }, + { "Nilable": false, "Type": "bool", "Name": "obtainable" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "appearanceSetIndex" }, + { "Nilable": false, "Type": "number", "Name": "appearanceIndex" } + ], + "Type": "Function", + "Name": "GetAppearanceInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "artifactAppearanceSetID" }, + { "Nilable": false, "Type": "number", "Name": "artifactAppearanceID" }, + { "Nilable": false, "Type": "string", "Name": "appearanceName" }, + { "Nilable": false, "Type": "number", "Name": "displayIndex" }, + { "Nilable": false, "Type": "bool", "Name": "unlocked" }, + { "Nilable": true, "Type": "string", "Name": "failureDescription" }, + { "Nilable": false, "Type": "number", "Name": "uiCameraID" }, + { "Nilable": true, "Type": "number", "Name": "altHandCameraID" }, + { "Nilable": false, "Type": "number", "Name": "swatchColorR" }, + { "Nilable": false, "Type": "number", "Name": "swatchColorG" }, + { "Nilable": false, "Type": "number", "Name": "swatchColorB" }, + { "Nilable": false, "Type": "number", "Name": "modelOpacity" }, + { "Nilable": false, "Type": "number", "Name": "modelSaturation" }, + { "Nilable": false, "Type": "bool", "Name": "obtainable" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "artifactAppearanceID" } + ], + "Type": "Function", + "Name": "GetAppearanceInfoByID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "artifactAppearanceSetID" }, + { "Nilable": false, "Type": "string", "Name": "appearanceSetName" }, + { "Nilable": false, "Type": "string", "Name": "appearanceSetDescription" }, + { "Nilable": false, "Type": "number", "Name": "numAppearances" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "appearanceSetIndex" } + ], + "Type": "Function", + "Name": "GetAppearanceSetInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ArtifactArtInfo", "Name": "artifactArtInfo" } + ], + "Type": "Function", + "Name": "GetArtifactArtInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "number", "Name": "altItemID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "xp" }, + { "Nilable": false, "Type": "number", "Name": "pointsSpent" }, + { "Nilable": false, "Type": "number", "Name": "quality" }, + { "Nilable": false, "Type": "number", "Name": "artifactAppearanceID" }, + { "Nilable": false, "Type": "number", "Name": "appearanceModID" }, + { "Nilable": true, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": true, "Type": "number", "Name": "altItemAppearanceID" }, + { "Nilable": false, "Type": "bool", "Name": "altOnTop" }, + { "Nilable": false, "Type": "ArtifactTiers", "Name": "tier" } + ], + "Type": "Function", + "Name": "GetArtifactInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetArtifactItemID" + }, + { + "Returns": [{ "Nilable": true, "Type": "ArtifactTiers", "Name": "tier" }], + "Type": "Function", + "Name": "GetArtifactTier" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "artifactCategoryID" } + ], + "Type": "Function", + "Name": "GetArtifactXPRewardTargetInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "cost" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "rank" }, + { "Nilable": false, "Type": "ArtifactTiers", "Name": "tier" } + ], + "Type": "Function", + "Name": "GetCostForPointAtRank" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ArtifactArtInfo", "Name": "artifactArtInfo" } + ], + "Type": "Function", + "Name": "GetEquippedArtifactArtInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "number", "Name": "altItemID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "xp" }, + { "Nilable": false, "Type": "number", "Name": "pointsSpent" }, + { "Nilable": false, "Type": "number", "Name": "quality" }, + { "Nilable": false, "Type": "number", "Name": "artifactAppearanceID" }, + { "Nilable": false, "Type": "number", "Name": "appearanceModID" }, + { "Nilable": true, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": true, "Type": "number", "Name": "altItemAppearanceID" }, + { "Nilable": false, "Type": "bool", "Name": "altOnTop" }, + { "Nilable": false, "Type": "ArtifactTiers", "Name": "tier" } + ], + "Type": "Function", + "Name": "GetEquippedArtifactInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetEquippedArtifactItemID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numRelicSlots" }], + "Arguments": [ + { + "Default": false, + "Type": "bool", + "Name": "onlyUnlocked", + "Documentation": [ + "If true then only the relic slots that are unlocked will be considered." + ], + "Nilable": false + } + ], + "Type": "Function", + "Name": "GetEquippedArtifactNumRelicSlots" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { + "Nilable": false, + "Documentation": [ + "Matches the socket identifiers used in the socketing system." + ], + "Type": "cstring", + "Name": "slotTypeName" + }, + { "Nilable": false, "Type": "string", "Name": "link" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "relicSlotIndex" }], + "Type": "Function", + "Name": "GetEquippedArtifactRelicInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "lockedReason" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "relicSlotIndex" }], + "Type": "Function", + "Name": "GetEquippedRelicLockedReason" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "forgeRotationX" }, + { "Nilable": false, "Type": "number", "Name": "forgeRotationY" }, + { "Nilable": false, "Type": "number", "Name": "forgeRotationZ" } + ], + "Type": "Function", + "Name": "GetForgeRotation" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "itemIevelIncrease" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemLinkOrID" }], + "Type": "Function", + "Name": "GetItemLevelIncreaseProvidedByRelic" + }, + { + "Returns": [ + { "StrideIndex": 1, "Nilable": false, "Type": "number", "Name": "spellID" }, + { "StrideIndex": 2, "Nilable": false, "Type": "number", "Name": "powerCost" }, + { "StrideIndex": 3, "Nilable": false, "Type": "number", "Name": "currentRank" } + ], + "Type": "Function", + "Name": "GetMetaPowerInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numAppearanceSets" }], + "Type": "Function", + "Name": "GetNumAppearanceSets" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numObtainedArtifacts" } + ], + "Type": "Function", + "Name": "GetNumObtainedArtifacts" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numRelicSlots" }], + "Arguments": [ + { + "Default": false, + "Type": "bool", + "Name": "onlyUnlocked", + "Documentation": [ + "If true then only the relic slots that are unlocked will be considered." + ], + "Nilable": false + } + ], + "Type": "Function", + "Name": "GetNumRelicSlots" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "pointsRemaining" }], + "Type": "Function", + "Name": "GetPointsRemaining" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "link" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "powerID" }], + "Type": "Function", + "Name": "GetPowerHyperlink" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ArtifactPowerInfo", "Name": "powerInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "powerID" }], + "Type": "Function", + "Name": "GetPowerInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "linkingPowerID" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "powerID" }], + "Type": "Function", + "Name": "GetPowerLinks" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "powerID" } + ], + "Type": "Function", + "Name": "GetPowers" + }, + { + "Returns": [ + { "StrideIndex": 1, "Nilable": false, "Type": "number", "Name": "powerIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "relicSlotIndex" }], + "Type": "Function", + "Name": "GetPowersAffectedByRelic" + }, + { + "Returns": [ + { "StrideIndex": 1, "Nilable": false, "Type": "number", "Name": "powerIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "relicItemInfo" }], + "Type": "Function", + "Name": "GetPowersAffectedByRelicItemLink" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "artifactAppearanceID" } + ], + "Type": "Function", + "Name": "GetPreviewAppearance" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { + "Nilable": false, + "Documentation": [ + "Matches the socket identifiers used in the socketing system." + ], + "Type": "cstring", + "Name": "slotTypeName" + }, + { "Nilable": false, "Type": "string", "Name": "link" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "relicSlotIndex" }], + "Type": "Function", + "Name": "GetRelicInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { + "Nilable": false, + "Documentation": [ + "Matches the socket identifiers used in the socketing system." + ], + "Type": "cstring", + "Name": "slotTypeName" + }, + { "Nilable": false, "Type": "string", "Name": "link" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetRelicInfoByItemID" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "lockedReason" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "relicSlotIndex" }], + "Type": "Function", + "Name": "GetRelicLockedReason" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "slotTypeName" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "relicSlotIndex" }], + "Type": "Function", + "Name": "GetRelicSlotType" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ArtifactArtInfo", "Name": "artifactArtInfo" } + ], + "Type": "Function", + "Name": "GetRespecArtifactArtInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "number", "Name": "altItemID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "xp" }, + { "Nilable": false, "Type": "number", "Name": "pointsSpent" }, + { "Nilable": false, "Type": "number", "Name": "quality" }, + { "Nilable": false, "Type": "number", "Name": "artifactAppearanceID" }, + { "Nilable": false, "Type": "number", "Name": "appearanceModID" }, + { "Nilable": true, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": true, "Type": "number", "Name": "altItemAppearanceID" }, + { "Nilable": false, "Type": "bool", "Name": "altOnTop" }, + { "Nilable": false, "Type": "ArtifactTiers", "Name": "tier" } + ], + "Type": "Function", + "Name": "GetRespecArtifactInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "cost" }], + "Type": "Function", + "Name": "GetRespecCost" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "totalArtifactPowerCost" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "startingTrait" }, + { "Nilable": false, "Type": "number", "Name": "numTraits" }, + { "Nilable": false, "Type": "ArtifactTiers", "Name": "artifactTier" } + ], + "Type": "Function", + "Name": "GetTotalPowerCost" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "totalPurchasedRanks" } + ], + "Type": "Function", + "Name": "GetTotalPurchasedRanks" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "artifactDisabled" }], + "Type": "Function", + "Name": "IsArtifactDisabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isArtifact" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "IsArtifactItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAtForge" }], + "Type": "Function", + "Name": "IsAtForge" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "artifactDisabled" }], + "Type": "Function", + "Name": "IsEquippedArtifactDisabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "artifactMaxed" }], + "Type": "Function", + "Name": "IsEquippedArtifactMaxed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEffectivelyMaxed" }], + "Type": "Function", + "Name": "IsMaxedByRulesOrEffect" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "known" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "powerID" }], + "Type": "Function", + "Name": "IsPowerKnown" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isViewedArtifactEquipped" } + ], + "Type": "Function", + "Name": "IsViewedArtifactEquipped" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "artifactAppearanceID" } + ], + "Type": "Function", + "Name": "SetAppearance" + }, + { "Type": "Function", "Name": "SetForgeCamera" }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "forgeRotationX" }, + { "Nilable": false, "Type": "number", "Name": "forgeRotationY" }, + { "Nilable": false, "Type": "number", "Name": "forgeRotationZ" } + ], + "Type": "Function", + "Name": "SetForgeRotation" + }, + { + "Arguments": [ + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "artifactAppearanceID" + } + ], + "Documentation": ["Call without an argument to clear the preview."], + "Type": "Function", + "Name": "SetPreviewAppearance" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "shouldSuppressForgeRotation" } + ], + "Type": "Function", + "Name": "ShouldSuppressForgeRotation" + } + ], + "Type": "System", + "Name": "ArtifactUI", + "Events": [ + { "LiteralName": "ARTIFACT_CLOSE", "Type": "Event", "Name": "ArtifactClose" }, + { + "LiteralName": "ARTIFACT_ENDGAME_REFUND", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "numRefundedPowers" }, + { "Nilable": false, "Type": "ArtifactTiers", "Name": "refundedTier" }, + { "Nilable": false, "Type": "luaIndex", "Name": "bagOrSlotIndex" }, + { "Nilable": true, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Event", + "Name": "ArtifactEndgameRefund" + }, + { + "LiteralName": "ARTIFACT_RELIC_FORGE_CLOSE", + "Type": "Event", + "Name": "ArtifactRelicForgeClose" + }, + { + "LiteralName": "ARTIFACT_RELIC_FORGE_PREVIEW_RELIC_CHANGED", + "Type": "Event", + "Name": "ArtifactRelicForgePreviewRelicChanged" + }, + { + "LiteralName": "ARTIFACT_RELIC_FORGE_UPDATE", + "Type": "Event", + "Name": "ArtifactRelicForgeUpdate" + }, + { + "LiteralName": "ARTIFACT_RELIC_INFO_RECEIVED", + "Type": "Event", + "Name": "ArtifactRelicInfoReceived" + }, + { + "LiteralName": "ARTIFACT_RESPEC_PROMPT", + "Type": "Event", + "Name": "ArtifactRespecPrompt" + }, + { + "LiteralName": "ARTIFACT_TIER_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "luaIndex", "Name": "newTier" }, + { "Nilable": false, "Type": "luaIndex", "Name": "bagOrSlotIndex" }, + { "Nilable": true, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Event", + "Name": "ArtifactTierChanged" + }, + { + "LiteralName": "ARTIFACT_UPDATE", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "newItem" }], + "Type": "Event", + "Name": "ArtifactUpdate" + }, + { "LiteralName": "ARTIFACT_XP_UPDATE", "Type": "Event", "Name": "ArtifactXpUpdate" } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "artifactAppearanceID" }, + { "Nilable": false, "Type": "string", "Name": "appearanceName" }, + { "Nilable": false, "Type": "number", "Name": "displayIndex" }, + { "Nilable": false, "Type": "bool", "Name": "unlocked" }, + { "Nilable": true, "Type": "string", "Name": "failureDescription" }, + { "Nilable": false, "Type": "number", "Name": "uiCameraID" }, + { "Nilable": true, "Type": "number", "Name": "altHandCameraID" }, + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "swatchColor" + }, + { "Nilable": false, "Type": "number", "Name": "modelOpacity" }, + { "Nilable": false, "Type": "number", "Name": "modelSaturation" }, + { "Nilable": false, "Type": "bool", "Name": "obtainable" } + ], + "Type": "Structure", + "Name": "ArtifactAppearanceInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "artifactAppearanceSetID" }, + { "Nilable": false, "Type": "string", "Name": "appearanceSetName" }, + { "Nilable": false, "Type": "string", "Name": "appearanceSetDescription" }, + { "Nilable": false, "Type": "number", "Name": "numAppearances" } + ], + "Type": "Structure", + "Name": "ArtifactAppearanceSetInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "string", "Name": "titleName" }, + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "titleColor" + }, + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "barConnectedColor" + }, + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "barDisconnectedColor" + }, + { "Nilable": false, "Type": "number", "Name": "uiModelSceneID" }, + { "Nilable": false, "Type": "number", "Name": "spellVisualKitID" } + ], + "Type": "Structure", + "Name": "ArtifactArtInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "number", "Name": "altItemID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "xp" }, + { "Nilable": false, "Type": "number", "Name": "pointsSpent" }, + { "Nilable": false, "Type": "number", "Name": "quality" }, + { "Nilable": false, "Type": "number", "Name": "artifactAppearanceID" }, + { "Nilable": false, "Type": "number", "Name": "appearanceModID" }, + { "Nilable": true, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": true, "Type": "number", "Name": "altItemAppearanceID" }, + { "Nilable": false, "Type": "bool", "Name": "altOnTop" }, + { "Nilable": false, "Type": "ArtifactTiers", "Name": "tier" } + ], + "Type": "Structure", + "Name": "ArtifactInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "powerCost" }, + { "Nilable": false, "Type": "number", "Name": "currentRank" } + ], + "Type": "Structure", + "Name": "ArtifactMetaPowerInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "cost" }, + { "Nilable": false, "Type": "number", "Name": "currentRank" }, + { "Nilable": false, "Type": "number", "Name": "maxRank" }, + { "Nilable": false, "Type": "number", "Name": "bonusRanks" }, + { "Nilable": false, "Type": "number", "Name": "numMaxRankBonusFromTier" }, + { "Nilable": false, "Type": "bool", "Name": "prereqsMet" }, + { "Nilable": false, "Type": "bool", "Name": "isStart" }, + { "Nilable": false, "Type": "bool", "Name": "isGoldMedal" }, + { "Nilable": false, "Type": "bool", "Name": "isFinal" }, + { "Nilable": false, "Type": "luaIndex", "Name": "tier" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { + "Nilable": true, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "offset" + }, + { "Nilable": true, "Type": "luaIndex", "Name": "linearIndex" } + ], + "Type": "Structure", + "Name": "ArtifactPowerInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { + "Nilable": false, + "Documentation": [ + "Matches the socket identifiers used in the socketing system." + ], + "Type": "cstring", + "Name": "slotTypeName" + }, + { "Nilable": false, "Type": "string", "Name": "link" } + ], + "Type": "Structure", + "Name": "ArtifactRelicInfo" + } + ] + }, + { + "Tables": [ + { + "Values": [ + { "Value": 1.5, "Type": "number", "Name": "DEFAULT_AUCTION_PRICE_MULTIPLIER" } + ], + "Type": "Constants", + "Name": "AuctionConstants" + } + ] + }, + { + "Namespace": "C_AuctionHouse", + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "depositCost" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "duration" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Function", + "Name": "CalculateCommodityDeposit" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "depositCost" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + }, + { "Nilable": false, "Type": "luaIndex", "Name": "duration" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Function", + "Name": "CalculateItemDeposit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canCancelAuction" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "ownedAuctionID" }], + "Type": "Function", + "Name": "CanCancelAuction" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "ownedAuctionID" }], + "Type": "Function", + "Name": "CancelAuction" + }, + { "Type": "Function", "Name": "CancelCommoditiesPurchase" }, + { "Type": "Function", "Name": "CancelSell" }, + { "Type": "Function", "Name": "CloseAuctionHouse" }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Function", + "Name": "ConfirmCommoditiesPurchase" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + }, + { "Nilable": false, "Type": "luaIndex", "Name": "duration" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "unitPrice" } + ], + "Type": "Function", + "Name": "ConfirmPostCommodity" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + }, + { "Nilable": false, "Type": "luaIndex", "Name": "duration" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "bid" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "buyout" } + ], + "Type": "Function", + "Name": "ConfirmPostItem" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "favoritesAreAvailable" } + ], + "Type": "Function", + "Name": "FavoritesAreAvailable" + }, + { + "Returns": [{ "Nilable": true, "Type": "AuctionInfo", "Name": "priceInfo" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "auctionID" }], + "Type": "Function", + "Name": "GetAuctionInfoByID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "subClasses" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "classID" }], + "Type": "Function", + "Name": "GetAuctionItemSubClasses" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "listCount" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + } + ], + "Type": "Function", + "Name": "GetAvailablePostCount" + }, + { + "Returns": [{ "Nilable": true, "Type": "BidInfo", "Name": "bid" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "bidIndex" }], + "Type": "Function", + "Name": "GetBidInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "ItemKey", "Name": "typeItemKey" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "bidTypeIndex" }], + "Type": "Function", + "Name": "GetBidType" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "BidInfo", "Type": "table", "Name": "bids" } + ], + "Type": "Function", + "Name": "GetBids" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "BrowseResultInfo", + "Type": "table", + "Name": "browseResults" + } + ], + "Type": "Function", + "Name": "GetBrowseResults" + }, + { + "Returns": [{ "Nilable": false, "Type": "BigUInteger", "Name": "cancelCost" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "ownedAuctionID" }], + "Type": "Function", + "Name": "GetCancelCost" + }, + { + "Returns": [ + { "Nilable": true, "Type": "CommoditySearchResultInfo", "Name": "result" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "commoditySearchResultIndex" } + ], + "Type": "Function", + "Name": "GetCommoditySearchResultInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "totalQuantity" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetCommoditySearchResultsQuantity" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "extraInfo" }], + "Arguments": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Type": "Function", + "Name": "GetExtraBrowseInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AuctionHouseFilterGroup", + "Type": "table", + "Name": "filterGroups" + } + ], + "Type": "Function", + "Name": "GetFilterGroups" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ItemCommodityStatus", "Name": "isCommodity" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + } + ], + "Type": "Function", + "Name": "GetItemCommodityStatus" + }, + { + "Returns": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + } + ], + "Type": "Function", + "Name": "GetItemKeyFromItem" + }, + { + "Returns": [{ "Nilable": true, "Type": "ItemKeyInfo", "Name": "itemKeyInfo" }], + "Arguments": [ + { "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "restrictQualityToFilter" + } + ], + "Type": "Function", + "Name": "GetItemKeyInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "requiredLevel" }], + "Arguments": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Type": "Function", + "Name": "GetItemKeyRequiredLevel" + }, + { + "Returns": [ + { "Nilable": true, "Type": "ItemSearchResultInfo", "Name": "result" } + ], + "Arguments": [ + { "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }, + { "Nilable": false, "Type": "luaIndex", "Name": "itemSearchResultIndex" } + ], + "Type": "Function", + "Name": "GetItemSearchResultInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "totalQuantity" }], + "Arguments": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Type": "Function", + "Name": "GetItemSearchResultsQuantity" + }, + { + "Returns": [{ "Nilable": true, "Type": "BigUInteger", "Name": "maxBid" }], + "Type": "Function", + "Name": "GetMaxBidItemBid" + }, + { + "Returns": [{ "Nilable": true, "Type": "BigUInteger", "Name": "maxBuyout" }], + "Type": "Function", + "Name": "GetMaxBidItemBuyout" + }, + { + "Returns": [{ "Nilable": true, "Type": "BigUInteger", "Name": "maxUnitPrice" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetMaxCommoditySearchResultPrice" + }, + { + "Returns": [{ "Nilable": true, "Type": "BigUInteger", "Name": "maxBid" }], + "Arguments": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Type": "Function", + "Name": "GetMaxItemSearchResultBid" + }, + { + "Returns": [{ "Nilable": true, "Type": "BigUInteger", "Name": "maxBuyout" }], + "Arguments": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Type": "Function", + "Name": "GetMaxItemSearchResultBuyout" + }, + { + "Returns": [{ "Nilable": true, "Type": "BigUInteger", "Name": "maxBid" }], + "Type": "Function", + "Name": "GetMaxOwnedAuctionBid" + }, + { + "Returns": [{ "Nilable": true, "Type": "BigUInteger", "Name": "maxBuyout" }], + "Type": "Function", + "Name": "GetMaxOwnedAuctionBuyout" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numBidTypes" }], + "Type": "Function", + "Name": "GetNumBidTypes" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numBids" }], + "Type": "Function", + "Name": "GetNumBids" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numSearchResults" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetNumCommoditySearchResults" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numItemSearchResults" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Type": "Function", + "Name": "GetNumItemSearchResults" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numOwnedAuctionTypes" } + ], + "Type": "Function", + "Name": "GetNumOwnedAuctionTypes" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numOwnedAuctions" }], + "Type": "Function", + "Name": "GetNumOwnedAuctions" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numReplicateItems" }], + "Type": "Function", + "Name": "GetNumReplicateItems" + }, + { + "Returns": [ + { "Nilable": true, "Type": "OwnedAuctionInfo", "Name": "ownedAuction" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "ownedAuctionIndex" } + ], + "Type": "Function", + "Name": "GetOwnedAuctionInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "ItemKey", "Name": "typeItemKey" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "ownedAuctionTypeIndex" } + ], + "Type": "Function", + "Name": "GetOwnedAuctionType" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "OwnedAuctionInfo", + "Type": "table", + "Name": "ownedAuctions" + } + ], + "Type": "Function", + "Name": "GetOwnedAuctions" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "quoteDurationSeconds" } + ], + "Type": "Function", + "Name": "GetQuoteDurationRemaining" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "creatureID" }, + { "Nilable": false, "Type": "number", "Name": "displayID" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "GetReplicateItemBattlePetInfo" + }, + { + "Returns": [ + { "Nilable": true, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "fileID", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "count" }, + { "Nilable": false, "Type": "number", "Name": "qualityID" }, + { "Nilable": true, "Type": "bool", "Name": "usable" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": true, "Type": "string", "Name": "levelType" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "minBid" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "minIncrement" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "buyoutPrice" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "bidAmount" }, + { "Nilable": true, "Type": "string", "Name": "highBidder" }, + { "Nilable": true, "Type": "string", "Name": "bidderFullName" }, + { "Nilable": true, "Type": "string", "Name": "owner" }, + { "Nilable": true, "Type": "string", "Name": "ownerFullName" }, + { "Nilable": false, "Type": "number", "Name": "saleStatus" }, + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "bool", "Name": "hasAllInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "GetReplicateItemInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "itemLink" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "GetReplicateItemLink" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "timeLeft" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "GetReplicateItemTimeLeft" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "timeLeftMinSeconds" }, + { "Nilable": false, "Type": "number", "Name": "timeLeftMaxSeconds" } + ], + "Arguments": [ + { "Nilable": false, "Type": "AuctionHouseTimeLeftBand", "Name": "timeLeftBand" } + ], + "Type": "Function", + "Name": "GetTimeLeftBandInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFavorites" }], + "Type": "Function", + "Name": "HasFavorites" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFullBidResults" }], + "Type": "Function", + "Name": "HasFullBidResults" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFullBrowseResults" }], + "Type": "Function", + "Name": "HasFullBrowseResults" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFullResults" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "HasFullCommoditySearchResults" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFullResults" }], + "Arguments": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Type": "Function", + "Name": "HasFullItemSearchResults" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasFullOwnedAuctionResults" } + ], + "Type": "Function", + "Name": "HasFullOwnedAuctionResults" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasMaxFavorites" }], + "Type": "Function", + "Name": "HasMaxFavorites" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasSearchResults" }], + "Arguments": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Type": "Function", + "Name": "HasSearchResults" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFavorite" }], + "Arguments": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Type": "Function", + "Name": "IsFavoriteItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "valid" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + }, + { "Nilable": false, "Default": true, "Type": "bool", "Name": "displayError" } + ], + "Type": "Function", + "Name": "IsSellItemValid" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canSendThrottledMessage" } + ], + "Type": "Function", + "Name": "IsThrottledMessageSystemReady" + }, + { + "Returns": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "itemLevel" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "itemSuffix" }, + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "battlePetSpeciesID" + } + ], + "Type": "Function", + "Name": "MakeItemKey" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "auctionID" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "bidAmount" } + ], + "Type": "Function", + "Name": "PlaceBid" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "needsConfirmation" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + }, + { "Nilable": false, "Type": "luaIndex", "Name": "duration" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "unitPrice" } + ], + "Type": "Function", + "Name": "PostCommodity" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "needsConfirmation" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + }, + { "Nilable": false, "Type": "luaIndex", "Name": "duration" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "bid" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "buyout" } + ], + "Type": "Function", + "Name": "PostItem" + }, + { + "Arguments": [ + { + "Nilable": false, + "InnerType": "AuctionHouseSortType", + "Type": "table", + "Name": "sorts" + }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "auctionIDs" + } + ], + "Type": "Function", + "Name": "QueryBids" + }, + { + "Arguments": [ + { + "Nilable": false, + "InnerType": "AuctionHouseSortType", + "Type": "table", + "Name": "sorts" + } + ], + "Type": "Function", + "Name": "QueryOwnedAuctions" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "RefreshCommoditySearchResults" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }, + { "Nilable": true, "Type": "number", "Name": "minLevelFilter" }, + { "Nilable": true, "Type": "number", "Name": "maxLevelFilter" } + ], + "Type": "Function", + "Name": "RefreshItemSearchResults" + }, + { + "Documentation": [ + "This function should be used in place of an 'allItem' QueryAuctionItems call to query the entire auction house." + ], + "Type": "Function", + "Name": "ReplicateItems" + }, + { "Type": "Function", "Name": "RequestFavorites" }, + { "Type": "Function", "Name": "RequestMoreBrowseResults" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFullResults" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "RequestMoreCommoditySearchResults" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFullResults" }], + "Arguments": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Type": "Function", + "Name": "RequestMoreItemSearchResults" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "bidderName" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "auctionID" }], + "Type": "Function", + "Name": "RequestOwnedAuctionBidderInfo" + }, + { + "Arguments": [ + { + "Nilable": false, + "InnerType": "AuctionHouseSortType", + "Type": "table", + "Name": "sorts" + } + ], + "Type": "Function", + "Name": "SearchForFavorites" + }, + { + "Arguments": [ + { + "Nilable": false, + "InnerType": "ItemKey", + "Type": "table", + "Name": "itemKeys" + }, + { + "Nilable": false, + "InnerType": "AuctionHouseSortType", + "Type": "table", + "Name": "sorts" + } + ], + "Type": "Function", + "Name": "SearchForItemKeys" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "AuctionHouseBrowseQuery", "Name": "query" } + ], + "Type": "Function", + "Name": "SendBrowseQuery" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }, + { + "Nilable": false, + "InnerType": "AuctionHouseSortType", + "Type": "table", + "Name": "sorts" + }, + { "Nilable": false, "Type": "bool", "Name": "separateOwnerItems" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "minLevelFilter" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "maxLevelFilter" } + ], + "Documentation": [ + "Search queries are restricted to 100 calls per minute. These should not be used to query the entire auction house. See ReplicateItems" + ], + "Type": "Function", + "Name": "SendSearchQuery" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }, + { + "Nilable": false, + "InnerType": "AuctionHouseSortType", + "Type": "table", + "Name": "sorts" + }, + { "Nilable": false, "Type": "bool", "Name": "separateOwnerItems" } + ], + "Documentation": [ + "Search queries are restricted to 100 calls per minute. These should not be used to query the entire auction house. See ReplicateItems. ItemKey should have its iLVL and suffix cleared before calling." + ], + "Type": "Function", + "Name": "SendSellSearchQuery" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }, + { "Nilable": false, "Type": "bool", "Name": "setFavorite" } + ], + "Type": "Function", + "Name": "SetFavoriteItem" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Function", + "Name": "StartCommoditiesPurchase" + } + ], + "Type": "System", + "Name": "AuctionHouse", + "Events": [ + { + "LiteralName": "AUCTION_CANCELED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "auctionID" }], + "Type": "Event", + "Name": "AuctionCanceled" + }, + { + "Documentation": [ + "This signal is not used in the base UI but is included for AddOn ease-of-use." + ], + "Type": "Event", + "Name": "AuctionHouseAuctionCreated", + "LiteralName": "AUCTION_HOUSE_AUCTION_CREATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "auctionID" }] + }, + { + "LiteralName": "AUCTION_HOUSE_AUCTIONS_EXPIRED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "auctionID" }], + "Type": "Event", + "Name": "AuctionHouseAuctionsExpired" + }, + { + "LiteralName": "AUCTION_HOUSE_BROWSE_FAILURE", + "Type": "Event", + "Name": "AuctionHouseBrowseFailure" + }, + { + "LiteralName": "AUCTION_HOUSE_BROWSE_RESULTS_ADDED", + "Payload": [ + { + "Nilable": false, + "InnerType": "BrowseResultInfo", + "Type": "table", + "Name": "addedBrowseResults" + } + ], + "Type": "Event", + "Name": "AuctionHouseBrowseResultsAdded" + }, + { + "LiteralName": "AUCTION_HOUSE_BROWSE_RESULTS_UPDATED", + "Type": "Event", + "Name": "AuctionHouseBrowseResultsUpdated" + }, + { + "LiteralName": "AUCTION_HOUSE_CLOSED", + "Type": "Event", + "Name": "AuctionHouseClosed" + }, + { + "LiteralName": "AUCTION_HOUSE_DISABLED", + "Type": "Event", + "Name": "AuctionHouseDisabled" + }, + { + "LiteralName": "AUCTION_HOUSE_FAVORITES_UPDATED", + "Type": "Event", + "Name": "AuctionHouseFavoritesUpdated" + }, + { + "LiteralName": "AUCTION_HOUSE_ITEM_DELIVERY_DELAY_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "purchasedItemDeliveryDelay" }, + { "Nilable": false, "Type": "number", "Name": "cancelledItemDeliveryDelay" } + ], + "Type": "Event", + "Name": "AuctionHouseItemDeliveryDelayUpdate" + }, + { + "LiteralName": "AUCTION_HOUSE_NEW_BID_RECEIVED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "auctionID" }], + "Type": "Event", + "Name": "AuctionHouseNewBidReceived" + }, + { + "Documentation": [ + "This signal is not used in the base UI but is included for AddOn ease-of-use. Payload is nil for browse queries." + ], + "Type": "Event", + "Name": "AuctionHouseNewResultsReceived", + "LiteralName": "AUCTION_HOUSE_NEW_RESULTS_RECEIVED", + "Payload": [{ "Nilable": true, "Type": "ItemKey", "Name": "itemKey" }] + }, + { + "LiteralName": "AUCTION_HOUSE_POST_ERROR", + "Type": "Event", + "Name": "AuctionHousePostError" + }, + { + "LiteralName": "AUCTION_HOUSE_POST_WARNING", + "Type": "Event", + "Name": "AuctionHousePostWarning" + }, + { + "LiteralName": "AUCTION_HOUSE_PURCHASE_COMPLETED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "auctionID" }], + "Type": "Event", + "Name": "AuctionHousePurchaseCompleted" + }, + { + "LiteralName": "AUCTION_HOUSE_SCRIPT_DEPRECATED", + "Type": "Event", + "Name": "AuctionHouseScriptDeprecated" + }, + { + "LiteralName": "AUCTION_HOUSE_SHOW", + "Type": "Event", + "Name": "AuctionHouseShow" + }, + { + "LiteralName": "AUCTION_HOUSE_SHOW_COMMODITY_WON_NOTIFICATION", + "Payload": [ + { "Nilable": false, "Type": "string", "Name": "commodityName" }, + { "Nilable": false, "Type": "number", "Name": "commodityQuantity" } + ], + "Type": "Event", + "Name": "AuctionHouseShowCommodityWonNotification" + }, + { + "LiteralName": "AUCTION_HOUSE_SHOW_ERROR", + "Payload": [{ "Nilable": false, "Type": "AuctionHouseError", "Name": "error" }], + "Type": "Event", + "Name": "AuctionHouseShowError" + }, + { + "LiteralName": "AUCTION_HOUSE_SHOW_FORMATTED_NOTIFICATION", + "Payload": [ + { + "Nilable": false, + "Type": "AuctionHouseNotification", + "Name": "notification" + }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": true, "Type": "number", "Name": "auctionID" } + ], + "Type": "Event", + "Name": "AuctionHouseShowFormattedNotification" + }, + { + "LiteralName": "AUCTION_HOUSE_SHOW_NOTIFICATION", + "Payload": [ + { "Nilable": false, "Type": "AuctionHouseNotification", "Name": "notification" } + ], + "Type": "Event", + "Name": "AuctionHouseShowNotification" + }, + { + "LiteralName": "AUCTION_HOUSE_THROTTLED_MESSAGE_DROPPED", + "Type": "Event", + "Name": "AuctionHouseThrottledMessageDropped" + }, + { + "LiteralName": "AUCTION_HOUSE_THROTTLED_MESSAGE_QUEUED", + "Type": "Event", + "Name": "AuctionHouseThrottledMessageQueued" + }, + { + "LiteralName": "AUCTION_HOUSE_THROTTLED_MESSAGE_RESPONSE_RECEIVED", + "Type": "Event", + "Name": "AuctionHouseThrottledMessageResponseReceived" + }, + { + "LiteralName": "AUCTION_HOUSE_THROTTLED_MESSAGE_SENT", + "Type": "Event", + "Name": "AuctionHouseThrottledMessageSent" + }, + { + "LiteralName": "AUCTION_HOUSE_THROTTLED_SYSTEM_READY", + "Type": "Event", + "Name": "AuctionHouseThrottledSystemReady" + }, + { + "LiteralName": "AUCTION_MULTISELL_FAILURE", + "Type": "Event", + "Name": "AuctionMultisellFailure" + }, + { + "LiteralName": "AUCTION_MULTISELL_START", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "numRepetitions" }], + "Type": "Event", + "Name": "AuctionMultisellStart" + }, + { + "LiteralName": "AUCTION_MULTISELL_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "createdCount" }, + { "Nilable": false, "Type": "number", "Name": "totalToCreate" } + ], + "Type": "Event", + "Name": "AuctionMultisellUpdate" + }, + { + "LiteralName": "BID_ADDED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "bidID" }], + "Type": "Event", + "Name": "BidAdded" + }, + { "LiteralName": "BIDS_UPDATED", "Type": "Event", "Name": "BidsUpdated" }, + { + "LiteralName": "COMMODITY_PRICE_UNAVAILABLE", + "Type": "Event", + "Name": "CommodityPriceUnavailable" + }, + { + "LiteralName": "COMMODITY_PRICE_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "BigUInteger", "Name": "updatedUnitPrice" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "updatedTotalPrice" } + ], + "Type": "Event", + "Name": "CommodityPriceUpdated" + }, + { + "LiteralName": "COMMODITY_PURCHASE_FAILED", + "Type": "Event", + "Name": "CommodityPurchaseFailed" + }, + { + "LiteralName": "COMMODITY_PURCHASE_SUCCEEDED", + "Type": "Event", + "Name": "CommodityPurchaseSucceeded" + }, + { + "LiteralName": "COMMODITY_PURCHASED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Event", + "Name": "CommodityPurchased" + }, + { + "LiteralName": "COMMODITY_SEARCH_RESULTS_ADDED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Event", + "Name": "CommoditySearchResultsAdded" + }, + { + "LiteralName": "COMMODITY_SEARCH_RESULTS_RECEIVED", + "Type": "Event", + "Name": "CommoditySearchResultsReceived" + }, + { + "LiteralName": "COMMODITY_SEARCH_RESULTS_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Event", + "Name": "CommoditySearchResultsUpdated" + }, + { + "LiteralName": "EXTRA_BROWSE_INFO_RECEIVED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Event", + "Name": "ExtraBrowseInfoReceived" + }, + { + "LiteralName": "ITEM_KEY_ITEM_INFO_RECEIVED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Event", + "Name": "ItemKeyItemInfoReceived" + }, + { + "LiteralName": "ITEM_PURCHASED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Event", + "Name": "ItemPurchased" + }, + { + "LiteralName": "ITEM_SEARCH_RESULTS_ADDED", + "Payload": [{ "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }], + "Type": "Event", + "Name": "ItemSearchResultsAdded" + }, + { + "LiteralName": "ITEM_SEARCH_RESULTS_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }, + { "Nilable": true, "Type": "number", "Name": "newAuctionID" } + ], + "Type": "Event", + "Name": "ItemSearchResultsUpdated" + }, + { + "LiteralName": "OWNED_AUCTION_BIDDER_INFO_RECEIVED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "auctionID" }, + { "Nilable": false, "Type": "cstring", "Name": "bidderName" } + ], + "Type": "Event", + "Name": "OwnedAuctionBidderInfoReceived" + }, + { + "LiteralName": "OWNED_AUCTIONS_UPDATED", + "Type": "Event", + "Name": "OwnedAuctionsUpdated" + }, + { + "LiteralName": "REPLICATE_ITEM_LIST_UPDATE", + "Type": "Event", + "Name": "ReplicateItemListUpdate" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "AuctionHouseFilterCategory", + "Fields": [ + { + "EnumValue": 0, + "Type": "AuctionHouseFilterCategory", + "Name": "Uncategorized" + }, + { "EnumValue": 1, "Type": "AuctionHouseFilterCategory", "Name": "Equipment" }, + { "EnumValue": 2, "Type": "AuctionHouseFilterCategory", "Name": "Rarity" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "AuctionStatus", + "Fields": [ + { "EnumValue": 0, "Type": "AuctionStatus", "Name": "Active" }, + { "EnumValue": 1, "Type": "AuctionStatus", "Name": "Sold" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "ItemCommodityStatus", + "Fields": [ + { "EnumValue": 0, "Type": "ItemCommodityStatus", "Name": "Unknown" }, + { "EnumValue": 1, "Type": "ItemCommodityStatus", "Name": "Item" }, + { "EnumValue": 2, "Type": "ItemCommodityStatus", "Name": "Commodity" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "searchString" }, + { + "Nilable": false, + "InnerType": "AuctionHouseSortType", + "Type": "table", + "Name": "sorts" + }, + { "Nilable": true, "Type": "number", "Name": "minLevel" }, + { "Nilable": true, "Type": "number", "Name": "maxLevel" }, + { + "Nilable": true, + "InnerType": "AuctionHouseFilter", + "Type": "table", + "Name": "filters" + }, + { + "Nilable": true, + "InnerType": "AuctionHouseItemClassFilter", + "Type": "table", + "Name": "itemClassFilters" + } + ], + "Type": "Structure", + "Name": "AuctionHouseBrowseQuery" + }, + { + "Fields": [ + { "Nilable": false, "Type": "AuctionHouseFilterCategory", "Name": "category" }, + { + "Nilable": false, + "InnerType": "AuctionHouseFilter", + "Type": "table", + "Name": "filters" + } + ], + "Type": "Structure", + "Name": "AuctionHouseFilterGroup" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "classID" }, + { "Nilable": true, "Type": "number", "Name": "subClassID" }, + { "Nilable": true, "Type": "InventoryType", "Name": "inventoryType" } + ], + "Type": "Structure", + "Name": "AuctionHouseItemClassFilter" + }, + { + "Fields": [ + { "Nilable": false, "Type": "AuctionHouseSortOrder", "Name": "sortOrder" }, + { "Nilable": false, "Type": "bool", "Name": "reverseSort" } + ], + "Type": "Structure", + "Name": "AuctionHouseSortType" + }, + { + "Fields": [ + { "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }, + { "Nilable": true, "Type": "string", "Name": "itemLink" }, + { "Nilable": true, "Type": "WOWMONEY", "Name": "minBid" }, + { "Nilable": true, "Type": "WOWMONEY", "Name": "bidAmount" }, + { "Nilable": true, "Type": "WOWMONEY", "Name": "buyoutAmount" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "bidder" } + ], + "Type": "Structure", + "Name": "AuctionInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "auctionID" }, + { "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }, + { "Nilable": true, "Type": "string", "Name": "itemLink" }, + { "Nilable": false, "Type": "AuctionHouseTimeLeftBand", "Name": "timeLeft" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "minBid" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "bidAmount" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "buyoutAmount" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "bidder" } + ], + "Type": "Structure", + "Name": "BidInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }, + { "Nilable": true, "Type": "string", "Name": "appearanceLink" }, + { "Nilable": false, "Type": "number", "Name": "totalQuantity" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "minPrice" }, + { "Nilable": false, "Type": "bool", "Name": "containsOwnerItem" } + ], + "Type": "Structure", + "Name": "BrowseResultInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "unitPrice" }, + { "Nilable": false, "Type": "number", "Name": "auctionID" }, + { "Nilable": false, "InnerType": "string", "Type": "table", "Name": "owners" }, + { "Nilable": false, "Type": "number", "Name": "totalNumberOfOwners" }, + { "Nilable": true, "Type": "number", "Name": "timeLeftSeconds" }, + { "Nilable": false, "Type": "number", "Name": "numOwnerItems" }, + { "Nilable": false, "Type": "bool", "Name": "containsOwnerItem" }, + { "Nilable": false, "Type": "bool", "Name": "containsAccountItem" } + ], + "Type": "Structure", + "Name": "CommoditySearchResultInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "itemLevel" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "itemSuffix" }, + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "battlePetSpeciesID" + } + ], + "Type": "Structure", + "Name": "ItemKey" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "battlePetSpeciesID" }, + { "Nilable": false, "Type": "string", "Name": "itemName" }, + { "Nilable": true, "Type": "string", "Name": "battlePetLink" }, + { "Nilable": true, "Type": "string", "Name": "appearanceLink" }, + { "Nilable": false, "Type": "ItemQuality", "Name": "quality" }, + { "Nilable": false, "Type": "number", "Name": "iconFileID" }, + { "Nilable": false, "Type": "bool", "Name": "isPet" }, + { "Nilable": false, "Type": "bool", "Name": "isCommodity" }, + { "Nilable": false, "Type": "bool", "Name": "isEquipment" } + ], + "Type": "Structure", + "Name": "ItemKeyInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }, + { "Nilable": false, "InnerType": "string", "Type": "table", "Name": "owners" }, + { "Nilable": false, "Type": "number", "Name": "totalNumberOfOwners" }, + { "Nilable": false, "Type": "AuctionHouseTimeLeftBand", "Name": "timeLeft" }, + { "Nilable": false, "Type": "number", "Name": "auctionID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": true, "Type": "string", "Name": "itemLink" }, + { "Nilable": false, "Type": "bool", "Name": "containsOwnerItem" }, + { "Nilable": false, "Type": "bool", "Name": "containsAccountItem" }, + { "Nilable": false, "Type": "bool", "Name": "containsSocketedItem" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "bidder" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "minBid" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "bidAmount" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "buyoutAmount" }, + { "Nilable": true, "Type": "number", "Name": "timeLeftSeconds" } + ], + "Type": "Structure", + "Name": "ItemSearchResultInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "auctionID" }, + { "Nilable": false, "Type": "ItemKey", "Name": "itemKey" }, + { "Nilable": true, "Type": "string", "Name": "itemLink" }, + { "Nilable": false, "Type": "AuctionStatus", "Name": "status" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": true, "Type": "number", "Name": "timeLeftSeconds" }, + { "Nilable": true, "Type": "AuctionHouseTimeLeftBand", "Name": "timeLeft" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "bidAmount" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "buyoutAmount" }, + { "Nilable": true, "Type": "string", "Name": "bidder" } + ], + "Type": "Structure", + "Name": "OwnedAuctionInfo" + }, + { + "Fields": [ + { "Nilable": true, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "fileID", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "count" }, + { "Nilable": false, "Type": "number", "Name": "qualityID" }, + { "Nilable": true, "Type": "bool", "Name": "usable" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": true, "Type": "string", "Name": "levelType" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "minBid" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "minIncrement" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "buyoutPrice" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "bidAmount" }, + { "Nilable": true, "Type": "string", "Name": "highBidder" }, + { "Nilable": true, "Type": "string", "Name": "bidderFullName" }, + { "Nilable": true, "Type": "string", "Name": "owner" }, + { "Nilable": true, "Type": "string", "Name": "ownerFullName" }, + { "Nilable": false, "Type": "number", "Name": "saleStatus" }, + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "bool", "Name": "hasAllInfo" } + ], + "Type": "Structure", + "Name": "ReplicateItemInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "AuctionHouseCommoditySortOrder", + "Fields": [ + { + "EnumValue": 0, + "Type": "AuctionHouseCommoditySortOrder", + "Name": "UnitPrice" + }, + { "EnumValue": 1, "Type": "AuctionHouseCommoditySortOrder", "Name": "Quantity" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "AuctionHouseError", + "Fields": [ + { "EnumValue": 0, "Type": "AuctionHouseError", "Name": "NotEnoughMoney" }, + { "EnumValue": 1, "Type": "AuctionHouseError", "Name": "HigherBid" }, + { "EnumValue": 2, "Type": "AuctionHouseError", "Name": "BidIncrement" }, + { "EnumValue": 3, "Type": "AuctionHouseError", "Name": "BidOwn" }, + { "EnumValue": 4, "Type": "AuctionHouseError", "Name": "ItemNotFound" }, + { + "EnumValue": 5, + "Type": "AuctionHouseError", + "Name": "RestrictedAccountTrial" + }, + { "EnumValue": 6, "Type": "AuctionHouseError", "Name": "HasRestriction" }, + { "EnumValue": 7, "Type": "AuctionHouseError", "Name": "IsBusy" }, + { "EnumValue": 8, "Type": "AuctionHouseError", "Name": "Unavailable" }, + { "EnumValue": 9, "Type": "AuctionHouseError", "Name": "ItemHasQuote" }, + { "EnumValue": 10, "Type": "AuctionHouseError", "Name": "DatabaseError" }, + { "EnumValue": 11, "Type": "AuctionHouseError", "Name": "MinBid" }, + { "EnumValue": 12, "Type": "AuctionHouseError", "Name": "NotEnoughItems" }, + { "EnumValue": 13, "Type": "AuctionHouseError", "Name": "RepairItem" }, + { "EnumValue": 14, "Type": "AuctionHouseError", "Name": "UsedCharges" }, + { "EnumValue": 15, "Type": "AuctionHouseError", "Name": "QuestItem" }, + { "EnumValue": 16, "Type": "AuctionHouseError", "Name": "BoundItem" }, + { "EnumValue": 17, "Type": "AuctionHouseError", "Name": "ConjuredItem" }, + { "EnumValue": 18, "Type": "AuctionHouseError", "Name": "LimitedDurationItem" }, + { "EnumValue": 19, "Type": "AuctionHouseError", "Name": "IsBag" }, + { "EnumValue": 20, "Type": "AuctionHouseError", "Name": "EquippedBag" }, + { "EnumValue": 21, "Type": "AuctionHouseError", "Name": "WrappedItem" }, + { "EnumValue": 22, "Type": "AuctionHouseError", "Name": "LootItem" }, + { "EnumValue": 23, "Type": "AuctionHouseError", "Name": "DoubleBid" }, + { "EnumValue": 24, "Type": "AuctionHouseError", "Name": "FavoritesMaxed" }, + { "EnumValue": 25, "Type": "AuctionHouseError", "Name": "ItemNotAvailable" }, + { + "EnumValue": 26, + "Type": "AuctionHouseError", + "Name": "ItemBoundToAccountUntilEquip" + } + ], + "MaxValue": 26, + "MinValue": 0, + "NumValues": 27 + }, + { + "Type": "Enumeration", + "Name": "AuctionHouseExtraColumn", + "Fields": [ + { "EnumValue": 0, "Type": "AuctionHouseExtraColumn", "Name": "None" }, + { "EnumValue": 1, "Type": "AuctionHouseExtraColumn", "Name": "Ilvl" }, + { "EnumValue": 2, "Type": "AuctionHouseExtraColumn", "Name": "Slots" }, + { "EnumValue": 3, "Type": "AuctionHouseExtraColumn", "Name": "Level" }, + { "EnumValue": 4, "Type": "AuctionHouseExtraColumn", "Name": "Skill" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "AuctionHouseFilter", + "Fields": [ + { "EnumValue": 0, "Type": "AuctionHouseFilter", "Name": "None" }, + { "EnumValue": 1, "Type": "AuctionHouseFilter", "Name": "UncollectedOnly" }, + { "EnumValue": 2, "Type": "AuctionHouseFilter", "Name": "UsableOnly" }, + { + "EnumValue": 3, + "Type": "AuctionHouseFilter", + "Name": "CurrentExpansionOnly" + }, + { "EnumValue": 4, "Type": "AuctionHouseFilter", "Name": "UpgradesOnly" }, + { "EnumValue": 5, "Type": "AuctionHouseFilter", "Name": "ExactMatch" }, + { "EnumValue": 6, "Type": "AuctionHouseFilter", "Name": "PoorQuality" }, + { "EnumValue": 7, "Type": "AuctionHouseFilter", "Name": "CommonQuality" }, + { "EnumValue": 8, "Type": "AuctionHouseFilter", "Name": "UncommonQuality" }, + { "EnumValue": 9, "Type": "AuctionHouseFilter", "Name": "RareQuality" }, + { "EnumValue": 10, "Type": "AuctionHouseFilter", "Name": "EpicQuality" }, + { "EnumValue": 11, "Type": "AuctionHouseFilter", "Name": "LegendaryQuality" }, + { "EnumValue": 12, "Type": "AuctionHouseFilter", "Name": "ArtifactQuality" }, + { + "EnumValue": 13, + "Type": "AuctionHouseFilter", + "Name": "LegendaryCraftedItemOnly" + } + ], + "MaxValue": 13, + "MinValue": 0, + "NumValues": 14 + }, + { + "Type": "Enumeration", + "Name": "AuctionHouseItemSortOrder", + "Fields": [ + { "EnumValue": 0, "Type": "AuctionHouseItemSortOrder", "Name": "Bid" }, + { "EnumValue": 1, "Type": "AuctionHouseItemSortOrder", "Name": "Buyout" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "AuctionHouseNotification", + "Fields": [ + { "EnumValue": 0, "Type": "AuctionHouseNotification", "Name": "BidPlaced" }, + { + "EnumValue": 1, + "Type": "AuctionHouseNotification", + "Name": "AuctionRemoved" + }, + { "EnumValue": 2, "Type": "AuctionHouseNotification", "Name": "AuctionWon" }, + { "EnumValue": 3, "Type": "AuctionHouseNotification", "Name": "AuctionOutbid" }, + { "EnumValue": 4, "Type": "AuctionHouseNotification", "Name": "AuctionSold" }, + { "EnumValue": 5, "Type": "AuctionHouseNotification", "Name": "AuctionExpired" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "AuctionHouseSortOrder", + "Fields": [ + { "EnumValue": 0, "Type": "AuctionHouseSortOrder", "Name": "Price" }, + { "EnumValue": 1, "Type": "AuctionHouseSortOrder", "Name": "Name" }, + { "EnumValue": 2, "Type": "AuctionHouseSortOrder", "Name": "Level" }, + { "EnumValue": 3, "Type": "AuctionHouseSortOrder", "Name": "Bid" }, + { "EnumValue": 4, "Type": "AuctionHouseSortOrder", "Name": "Buyout" }, + { "EnumValue": 5, "Type": "AuctionHouseSortOrder", "Name": "TimeRemaining" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "AuctionHouseTimeLeftBand", + "Fields": [ + { "EnumValue": 0, "Type": "AuctionHouseTimeLeftBand", "Name": "Short" }, + { "EnumValue": 1, "Type": "AuctionHouseTimeLeftBand", "Name": "Medium" }, + { "EnumValue": 2, "Type": "AuctionHouseTimeLeftBand", "Name": "Long" }, + { "EnumValue": 3, "Type": "AuctionHouseTimeLeftBand", "Name": "VeryLong" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "AzeriteEssenceSlot", + "Fields": [ + { "EnumValue": 0, "Type": "AzeriteEssenceSlot", "Name": "MainSlot" }, + { "EnumValue": 1, "Type": "AzeriteEssenceSlot", "Name": "PassiveOneSlot" }, + { "EnumValue": 2, "Type": "AzeriteEssenceSlot", "Name": "PassiveTwoSlot" }, + { "EnumValue": 3, "Type": "AzeriteEssenceSlot", "Name": "PassiveThreeSlot" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Namespace": "C_AzeriteEmpoweredItem", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canSelect" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteEmpoweredItemLocation", + "Name": "azeriteEmpoweredItemLocation" + }, + { "Nilable": false, "Type": "number", "Name": "powerID" } + ], + "Type": "Function", + "Name": "CanSelectPower" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteEmpoweredItemLocation", + "Name": "azeriteEmpoweredItemLocation" + } + ], + "Type": "Function", + "Name": "ConfirmAzeriteEmpoweredItemRespec" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AzeriteEmpoweredItemTierInfo", + "Type": "table", + "Name": "tierInfo" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteEmpoweredItemLocation", + "Name": "azeriteEmpoweredItemLocation" + } + ], + "Type": "Function", + "Name": "GetAllTierInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AzeriteEmpoweredItemTierInfo", + "Type": "table", + "Name": "tierInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }, + { + "Nilable": true, + "Documentation": [ + "Specify a class ID to get tier information about that class, otherwise uses the player's class if left nil" + ], + "Type": "number", + "Name": "classID" + } + ], + "Type": "Function", + "Name": "GetAllTierInfoByItemID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "cost" }], + "Type": "Function", + "Name": "GetAzeriteEmpoweredItemRespecCost" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "AzeriteEmpoweredItemPowerInfo", + "Name": "powerInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "powerID" }], + "Type": "Function", + "Name": "GetPowerInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "AzeriteEmpoweredItemPowerText", + "Name": "powerText" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteEmpoweredItemLocation", + "Name": "azeriteEmpoweredItemLocation" + }, + { "Nilable": false, "Type": "number", "Name": "powerID" }, + { "Nilable": false, "Type": "AzeritePowerLevel", "Name": "level" } + ], + "Type": "Function", + "Name": "GetPowerText" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AzeriteSpecInfo", + "Type": "table", + "Name": "specInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "powerID" }], + "Type": "Function", + "Name": "GetSpecsForPower" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasAnyUnselectedPowers" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteEmpoweredItemLocation", + "Name": "azeriteEmpoweredItemLocation" + } + ], + "Type": "Function", + "Name": "HasAnyUnselectedPowers" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasBeenViewed" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteEmpoweredItemLocation", + "Name": "azeriteEmpoweredItemLocation" + } + ], + "Type": "Function", + "Name": "HasBeenViewed" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isAzeriteEmpoweredItem" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "IsAzeriteEmpoweredItem" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isAzeriteEmpoweredItem" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsAzeriteEmpoweredItemByID" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "bool", + "Name": "isAzeritePreviewSourceDisplayable" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }, + { + "Nilable": true, + "Documentation": [ + "Specify a class ID to determine if its displayable for that class, otherwise uses the player's class if left nil" + ], + "Type": "number", + "Name": "classID" + } + ], + "Type": "Function", + "Name": "IsAzeritePreviewSourceDisplayable" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isHeartOfAzerothEquipped" } + ], + "Type": "Function", + "Name": "IsHeartOfAzerothEquipped" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isPowerAvailableForSpec" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "powerID" }, + { "Nilable": false, "Type": "number", "Name": "specID" } + ], + "Type": "Function", + "Name": "IsPowerAvailableForSpec" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSelected" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteEmpoweredItemLocation", + "Name": "azeriteEmpoweredItemLocation" + }, + { "Nilable": false, "Type": "number", "Name": "powerID" } + ], + "Type": "Function", + "Name": "IsPowerSelected" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteEmpoweredItemLocation", + "Name": "azeriteEmpoweredItemLocation" + }, + { "Nilable": false, "Type": "number", "Name": "powerID" } + ], + "Type": "Function", + "Name": "SelectPower" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteEmpoweredItemLocation", + "Name": "azeriteEmpoweredItemLocation" + } + ], + "Type": "Function", + "Name": "SetHasBeenViewed" + } + ], + "Type": "System", + "Name": "AzeriteEmpoweredItem", + "Events": [ + { + "LiteralName": "AZERITE_EMPOWERED_ITEM_EQUIPPED_STATUS_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isHeartEquipped" }], + "Type": "Event", + "Name": "AzeriteEmpoweredItemEquippedStatusChanged" + }, + { + "LiteralName": "AZERITE_EMPOWERED_ITEM_SELECTION_UPDATED", + "Payload": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteEmpoweredItemLocation", + "Name": "azeriteEmpoweredItemLocation" + } + ], + "Type": "Event", + "Name": "AzeriteEmpoweredItemSelectionUpdated" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "AzeritePowerLevel", + "Fields": [ + { "EnumValue": 0, "Type": "AzeritePowerLevel", "Name": "Base" }, + { "EnumValue": 1, "Type": "AzeritePowerLevel", "Name": "Upgraded" }, + { "EnumValue": 2, "Type": "AzeritePowerLevel", "Name": "Downgraded" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "azeritePowerID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Structure", + "Name": "AzeriteEmpoweredItemPowerInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "description" } + ], + "Type": "Structure", + "Name": "AzeriteEmpoweredItemPowerText" + }, + { + "Fields": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "azeritePowerIDs" + }, + { "Nilable": false, "Type": "number", "Name": "unlockLevel" } + ], + "Type": "Structure", + "Name": "AzeriteEmpoweredItemTierInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "classID" }, + { "Nilable": false, "Type": "number", "Name": "specID" } + ], + "Type": "Structure", + "Name": "AzeriteSpecInfo" + } + ] + }, + { + "Namespace": "C_AzeriteEssence", + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "essenceID" }, + { "Nilable": false, "Type": "number", "Name": "milestoneID" } + ], + "Type": "Function", + "Name": "ActivateEssence" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canActivate" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "essenceID" }, + { "Nilable": false, "Type": "number", "Name": "milestoneID" } + ], + "Type": "Function", + "Name": "CanActivateEssence" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canDeactivate" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "milestoneID" }], + "Type": "Function", + "Name": "CanDeactivateEssence" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canOpen" }], + "Type": "Function", + "Name": "CanOpenUI" + }, + { "Type": "Function", "Name": "ClearPendingActivationEssence" }, + { "Type": "Function", "Name": "CloseForge" }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "link" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "essenceID" }, + { "Nilable": false, "Type": "number", "Name": "rank" } + ], + "Type": "Function", + "Name": "GetEssenceHyperlink" + }, + { + "Returns": [{ "Nilable": false, "Type": "AzeriteEssenceInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "essenceID" }], + "Type": "Function", + "Name": "GetEssenceInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AzeriteEssenceInfo", + "Type": "table", + "Name": "essences" + } + ], + "Type": "Function", + "Name": "GetEssences" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "essenceID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "milestoneID" }], + "Type": "Function", + "Name": "GetMilestoneEssence" + }, + { + "Returns": [{ "Nilable": false, "Type": "AzeriteMilestoneInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "milestoneID" }], + "Type": "Function", + "Name": "GetMilestoneInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "milestoneID" }], + "Type": "Function", + "Name": "GetMilestoneSpell" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AzeriteMilestoneInfo", + "Type": "table", + "Name": "milestones" + } + ], + "Type": "Function", + "Name": "GetMilestones" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numUnlockedEssences" } + ], + "Type": "Function", + "Name": "GetNumUnlockedEssences" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numUsableEssences" }], + "Type": "Function", + "Name": "GetNumUsableEssences" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "essenceID" }], + "Type": "Function", + "Name": "GetPendingActivationEssence" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasNeverActivatedAnyEssences" } + ], + "Type": "Function", + "Name": "HasNeverActivatedAnyEssences" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasEssence" }], + "Type": "Function", + "Name": "HasPendingActivationEssence" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAtForge" }], + "Type": "Function", + "Name": "IsAtForge" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "essenceID" }], + "Type": "Function", + "Name": "SetPendingActivationEssence" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "milestoneID" }], + "Type": "Function", + "Name": "UnlockMilestone" + } + ], + "Type": "System", + "Name": "AzeriteEssence", + "Events": [ + { + "LiteralName": "AZERITE_ESSENCE_ACTIVATED", + "Payload": [ + { "Nilable": false, "Type": "AzeriteEssenceSlot", "Name": "slot" }, + { "Nilable": false, "Type": "number", "Name": "essenceID" } + ], + "Type": "Event", + "Name": "AzeriteEssenceActivated" + }, + { + "LiteralName": "AZERITE_ESSENCE_ACTIVATION_FAILED", + "Payload": [ + { "Nilable": false, "Type": "AzeriteEssenceSlot", "Name": "slot" }, + { "Nilable": false, "Type": "number", "Name": "essenceID" } + ], + "Type": "Event", + "Name": "AzeriteEssenceActivationFailed" + }, + { + "LiteralName": "AZERITE_ESSENCE_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "essenceID" }, + { "Nilable": false, "Type": "number", "Name": "newRank" } + ], + "Type": "Event", + "Name": "AzeriteEssenceChanged" + }, + { + "LiteralName": "AZERITE_ESSENCE_FORGE_CLOSE", + "Type": "Event", + "Name": "AzeriteEssenceForgeClose" + }, + { + "LiteralName": "AZERITE_ESSENCE_FORGE_OPEN", + "Type": "Event", + "Name": "AzeriteEssenceForgeOpen" + }, + { + "LiteralName": "AZERITE_ESSENCE_MILESTONE_UNLOCKED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "milestoneID" }], + "Type": "Event", + "Name": "AzeriteEssenceMilestoneUnlocked" + }, + { + "LiteralName": "AZERITE_ESSENCE_UPDATE", + "Type": "Event", + "Name": "AzeriteEssenceUpdate" + }, + { + "LiteralName": "PENDING_AZERITE_ESSENCE_CHANGED", + "Payload": [{ "Nilable": true, "Type": "number", "Name": "essenceID" }], + "Type": "Event", + "Name": "PendingAzeriteEssenceChanged" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "rank" }, + { "Nilable": false, "Type": "bool", "Name": "unlocked" }, + { "Nilable": false, "Type": "bool", "Name": "valid" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" } + ], + "Type": "Structure", + "Name": "AzeriteEssenceInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "number", "Name": "requiredLevel" }, + { "Nilable": false, "Type": "bool", "Name": "canUnlock" }, + { "Nilable": false, "Type": "bool", "Name": "unlocked" }, + { "Nilable": true, "Type": "number", "Name": "rank" }, + { "Nilable": true, "Type": "AzeriteEssenceSlot", "Name": "slot" } + ], + "Type": "Structure", + "Name": "AzeriteMilestoneInfo" + } + ] + }, + { + "Namespace": "C_AzeriteItem", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteItemLocation", + "Name": "activeAzeriteItemLocation" + } + ], + "Type": "Function", + "Name": "FindActiveAzeriteItem" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "xp" }, + { "Nilable": false, "Type": "number", "Name": "totalLevelXP" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteItemLocation", + "Name": "azeriteItemLocation" + } + ], + "Type": "Function", + "Name": "GetAzeriteItemXPInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "powerLevel" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteItemLocation", + "Name": "azeriteItemLocation" + } + ], + "Type": "Function", + "Name": "GetPowerLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "powerLevel" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteItemLocation", + "Name": "azeriteItemLocation" + } + ], + "Type": "Function", + "Name": "GetUnlimitedPowerLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasActiveAzeriteItem" }], + "Type": "Function", + "Name": "HasActiveAzeriteItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAzeriteItem" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "IsAzeriteItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAtMax" }], + "Type": "Function", + "Name": "IsAzeriteItemAtMaxLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAzeriteItem" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsAzeriteItemByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEnabled" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteItemLocation", + "Name": "azeriteItemLocation" + } + ], + "Type": "Function", + "Name": "IsAzeriteItemEnabled" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isUnlimitedLevelingUnlocked" } + ], + "Type": "Function", + "Name": "IsUnlimitedLevelingUnlocked" + } + ], + "Type": "System", + "Name": "AzeriteItem", + "Events": [ + { + "LiteralName": "AZERITE_ITEM_ENABLED_STATE_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Event", + "Name": "AzeriteItemEnabledStateChanged" + }, + { + "LiteralName": "AZERITE_ITEM_EXPERIENCE_CHANGED", + "Payload": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteItemLocation", + "Name": "azeriteItemLocation" + }, + { "Nilable": false, "Type": "number", "Name": "oldExperienceAmount" }, + { "Nilable": false, "Type": "number", "Name": "newExperienceAmount" } + ], + "Type": "Event", + "Name": "AzeriteItemExperienceChanged" + }, + { + "LiteralName": "AZERITE_ITEM_POWER_LEVEL_CHANGED", + "Payload": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteItemLocation", + "Name": "azeriteItemLocation" + }, + { "Nilable": false, "Type": "number", "Name": "oldPowerLevel" }, + { "Nilable": false, "Type": "number", "Name": "newPowerLevel" }, + { + "Nilable": false, + "InnerType": "UnlockedAzeriteEmpoweredItems", + "Type": "table", + "Name": "unlockedEmpoweredItemsInfo" + }, + { "Nilable": false, "Type": "number", "Name": "azeriteItemID" } + ], + "Type": "Event", + "Name": "AzeriteItemPowerLevelChanged" + } + ], + "Tables": [ + { + "Fields": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "AzeriteEmpoweredItemLocation", + "Name": "unlockedItem" + }, + { "Nilable": false, "Type": "luaIndex", "Name": "tierIndex" } + ], + "Type": "Structure", + "Name": "UnlockedAzeriteEmpoweredItems" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "BagFlag", + "Fields": [ + { "EnumValue": 1, "Type": "BagFlag", "Name": "DontFindStack" }, + { "EnumValue": 2, "Type": "BagFlag", "Name": "AlreadyOwner" }, + { "EnumValue": 4, "Type": "BagFlag", "Name": "AlreadyBound" }, + { "EnumValue": 8, "Type": "BagFlag", "Name": "Swap" }, + { "EnumValue": 16, "Type": "BagFlag", "Name": "BagIsEmpty" }, + { "EnumValue": 32, "Type": "BagFlag", "Name": "LookInInventory" }, + { "EnumValue": 64, "Type": "BagFlag", "Name": "IgnoreBoundItemCheck" }, + { "EnumValue": 128, "Type": "BagFlag", "Name": "StackOnly" }, + { "EnumValue": 256, "Type": "BagFlag", "Name": "RecurseQuivers" }, + { "EnumValue": 512, "Type": "BagFlag", "Name": "IgnoreBankcheck" }, + { "EnumValue": 1024, "Type": "BagFlag", "Name": "AllowBagsInNonBagSlots" }, + { "EnumValue": 2048, "Type": "BagFlag", "Name": "PreferQuivers" }, + { "EnumValue": 4096, "Type": "BagFlag", "Name": "SwapBags" }, + { "EnumValue": 8192, "Type": "BagFlag", "Name": "IgnoreExisting" }, + { "EnumValue": 16384, "Type": "BagFlag", "Name": "AllowPartialStack" }, + { "EnumValue": 32768, "Type": "BagFlag", "Name": "LookInBankOnly" }, + { "EnumValue": 65536, "Type": "BagFlag", "Name": "AllowBuyback" }, + { "EnumValue": 131072, "Type": "BagFlag", "Name": "IgnorePetBankcheck" }, + { "EnumValue": 262144, "Type": "BagFlag", "Name": "PreferPriorityBags" }, + { "EnumValue": 524288, "Type": "BagFlag", "Name": "PreferNeutralPriorityBags" }, + { "EnumValue": 1048576, "Type": "BagFlag", "Name": "LookInReagentsBankOnly" }, + { "EnumValue": 2097152, "Type": "BagFlag", "Name": "AsymmetricSwap" }, + { "EnumValue": 4194304, "Type": "BagFlag", "Name": "PreferReagentBags" }, + { "EnumValue": 8388608, "Type": "BagFlag", "Name": "IgnoreSoulbound" }, + { "EnumValue": 16777216, "Type": "BagFlag", "Name": "IgnoreReagentBags" }, + { "EnumValue": 33554432, "Type": "BagFlag", "Name": "LookInAccountBankOnly" }, + { "EnumValue": 67108864, "Type": "BagFlag", "Name": "HasRefund" }, + { "EnumValue": 134217728, "Type": "BagFlag", "Name": "SkipValidCountCheck" } + ], + "MaxValue": 134217728, + "MinValue": 1, + "NumValues": 28 + }, + { + "Type": "Enumeration", + "Name": "BagSlotFlags", + "Fields": [ + { "EnumValue": 1, "Type": "BagSlotFlags", "Name": "DisableAutoSort" }, + { "EnumValue": 2, "Type": "BagSlotFlags", "Name": "ClassEquipment" }, + { "EnumValue": 4, "Type": "BagSlotFlags", "Name": "ClassConsumables" }, + { "EnumValue": 8, "Type": "BagSlotFlags", "Name": "ClassProfessionGoods" }, + { "EnumValue": 16, "Type": "BagSlotFlags", "Name": "ClassJunk" }, + { "EnumValue": 32, "Type": "BagSlotFlags", "Name": "ClassQuestItems" }, + { "EnumValue": 64, "Type": "BagSlotFlags", "Name": "ExcludeJunkSell" }, + { "EnumValue": 128, "Type": "BagSlotFlags", "Name": "ClassReagents" }, + { "EnumValue": 256, "Type": "BagSlotFlags", "Name": "ExpansionCurrent" }, + { "EnumValue": 512, "Type": "BagSlotFlags", "Name": "ExpansionLegacy" } + ], + "MaxValue": 512, + "MinValue": 1, + "NumValues": 10 + } + ] + }, + { + "Functions": [], + "Type": "System", + "Name": "BagIndexConstants", + "Events": [], + "Tables": [ + { + "Type": "Enumeration", + "Name": "BagIndex", + "Fields": [ + { "EnumValue": -5, "Type": "BagIndex", "Name": "Accountbanktab" }, + { "EnumValue": -4, "Type": "BagIndex", "Name": "Bankbag" }, + { "EnumValue": -3, "Type": "BagIndex", "Name": "Reagentbank" }, + { "EnumValue": -2, "Type": "BagIndex", "Name": "Keyring" }, + { "EnumValue": -1, "Type": "BagIndex", "Name": "Bank" }, + { "EnumValue": 0, "Type": "BagIndex", "Name": "Backpack" }, + { "EnumValue": 1, "Type": "BagIndex", "Name": "Bag_1" }, + { "EnumValue": 2, "Type": "BagIndex", "Name": "Bag_2" }, + { "EnumValue": 3, "Type": "BagIndex", "Name": "Bag_3" }, + { "EnumValue": 4, "Type": "BagIndex", "Name": "Bag_4" }, + { "EnumValue": 5, "Type": "BagIndex", "Name": "ReagentBag" }, + { "EnumValue": 6, "Type": "BagIndex", "Name": "BankBag_1" }, + { "EnumValue": 7, "Type": "BagIndex", "Name": "BankBag_2" }, + { "EnumValue": 8, "Type": "BagIndex", "Name": "BankBag_3" }, + { "EnumValue": 9, "Type": "BagIndex", "Name": "BankBag_4" }, + { "EnumValue": 10, "Type": "BagIndex", "Name": "BankBag_5" }, + { "EnumValue": 11, "Type": "BagIndex", "Name": "BankBag_6" }, + { "EnumValue": 12, "Type": "BagIndex", "Name": "BankBag_7" }, + { "EnumValue": 13, "Type": "BagIndex", "Name": "AccountBankTab_1" }, + { "EnumValue": 14, "Type": "BagIndex", "Name": "AccountBankTab_2" }, + { "EnumValue": 15, "Type": "BagIndex", "Name": "AccountBankTab_3" }, + { "EnumValue": 16, "Type": "BagIndex", "Name": "AccountBankTab_4" }, + { "EnumValue": 17, "Type": "BagIndex", "Name": "AccountBankTab_5" } + ], + "MaxValue": 17, + "MinValue": -5, + "NumValues": 23 + } + ] + }, + { + "Namespace": "C_Bank", + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "AutoDepositItemsIntoBank" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canDepositMoney" }], + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "CanDepositMoney" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canPurchaseBankTab" }], + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "CanPurchaseBankTab" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canUseBank" }], + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "CanUseBank" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canViewBank" }], + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "CanViewBank" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canWithdrawMoney" }], + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "CanWithdrawMoney" + }, + { "Type": "Function", "Name": "CloseBankFrame" }, + { + "Arguments": [ + { "Nilable": false, "Type": "BankType", "Name": "bankType" }, + { "Nilable": false, "Type": "WOWMONEY", "Name": "amount" } + ], + "Type": "Function", + "Name": "DepositMoney" + }, + { + "Returns": [{ "Nilable": false, "Type": "WOWMONEY", "Name": "amount" }], + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "FetchDepositedMoney" + }, + { + "Returns": [ + { "Nilable": true, "Type": "BigUInteger", "Name": "nextPurchasableTabCost" } + ], + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "FetchNextPurchasableBankTabCost" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numPurchasedBankTabs" } + ], + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "FetchNumPurchasedBankTabs" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "BankTabData", + "Type": "table", + "Name": "purchasedBankTabData" + } + ], + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "FetchPurchasedBankTabData" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "BagIndex", + "Type": "table", + "Name": "purchasedBankTabIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "FetchPurchasedBankTabIDs" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasMaxBankTabs" }], + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "HasMaxBankTabs" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isItemAllowedInBankType" } + ], + "Arguments": [ + { "Nilable": false, "Type": "BankType", "Name": "bankType" }, + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "IsItemAllowedInBankType" + }, + { + "Arguments": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Function", + "Name": "PurchaseBankTab" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "BankType", "Name": "bankType" }, + { "Nilable": false, "Type": "BagIndex", "Name": "tabID" }, + { "Nilable": false, "Type": "cstring", "Name": "tabName" }, + { "Nilable": false, "Type": "cstring", "Name": "tabIcon" }, + { "Nilable": false, "Type": "BagSlotFlags", "Name": "depositFlags" } + ], + "Type": "Function", + "Name": "UpdateBankTabSettings" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "BankType", "Name": "bankType" }, + { "Nilable": false, "Type": "WOWMONEY", "Name": "amount" } + ], + "Type": "Function", + "Name": "WithdrawMoney" + } + ], + "Type": "System", + "Name": "Bank", + "Events": [ + { + "LiteralName": "BANK_BAG_SLOT_FLAGS_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "slot" }], + "Type": "Event", + "Name": "BankBagSlotFlagsUpdated" + }, + { + "LiteralName": "BANK_TAB_SETTINGS_UPDATED", + "Payload": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Event", + "Name": "BankTabSettingsUpdated" + }, + { + "LiteralName": "BANK_TABS_CHANGED", + "Payload": [{ "Nilable": false, "Type": "BankType", "Name": "bankType" }], + "Type": "Event", + "Name": "BankTabsChanged" + }, + { "LiteralName": "BANKFRAME_CLOSED", "Type": "Event", "Name": "BankframeClosed" }, + { "LiteralName": "BANKFRAME_OPENED", "Type": "Event", "Name": "BankframeOpened" }, + { + "LiteralName": "PLAYER_ACCOUNT_BANK_TAB_SLOTS_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "slot" }], + "Type": "Event", + "Name": "PlayerAccountBankTabSlotsChanged" + }, + { + "LiteralName": "PLAYERBANKBAGSLOTS_CHANGED", + "Type": "Event", + "Name": "PlayerbankbagslotsChanged" + }, + { + "LiteralName": "PLAYERBANKSLOTS_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "slot" }], + "Type": "Event", + "Name": "PlayerbankslotsChanged" + }, + { + "LiteralName": "PLAYERREAGENTBANKSLOTS_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "slot" }], + "Type": "Event", + "Name": "PlayerreagentbankslotsChanged" + }, + { + "LiteralName": "REAGENTBANK_PURCHASED", + "Type": "Event", + "Name": "ReagentbankPurchased" + }, + { + "LiteralName": "REAGENTBANK_UPDATE", + "Type": "Event", + "Name": "ReagentbankUpdate" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "BankType", "Name": "bankType" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "BagSlotFlags", "Name": "depositFlags" } + ], + "Type": "Structure", + "Name": "BankTabData" + } + ] + }, + { + "Namespace": "C_BarberShop", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Type": "Function", + "Name": "ApplyCustomizationChoices" + }, + { "Type": "Function", "Name": "Cancel" }, + { + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "clearSavedChoices" + } + ], + "Type": "Function", + "Name": "ClearPreviewChoices" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CharCustomizationCategory", + "Type": "table", + "Name": "categories" + } + ], + "Type": "Function", + "Name": "GetAvailableCustomizations" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "zoomLevel" }], + "Type": "Function", + "Name": "GetCurrentCameraZoom" + }, + { + "Returns": [ + { "Nilable": false, "Type": "PlayerInfoCharacterData", "Name": "characterData" } + ], + "Type": "Function", + "Name": "GetCurrentCharacterData" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "cost" }], + "Type": "Function", + "Name": "GetCurrentCost" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "customizationScope" }], + "Type": "Function", + "Name": "GetCustomizationScope" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "chrModelID" }], + "Type": "Function", + "Name": "GetViewingChrModel" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasChanges" }], + "Type": "Function", + "Name": "HasAnyChanges" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isViewingAlteredForm" }], + "Type": "Function", + "Name": "IsViewingAlteredForm" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "choiceID" }], + "Type": "Function", + "Name": "MarkCustomizationChoiceAsSeen" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "optionID" }], + "Type": "Function", + "Name": "MarkCustomizationOptionAsSeen" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "optionID" }, + { "Nilable": false, "Type": "number", "Name": "choiceID" } + ], + "Type": "Function", + "Name": "PreviewCustomizationChoice" + }, + { "Type": "Function", "Name": "RandomizeCustomizationChoices" }, + { "Type": "Function", "Name": "ResetCameraRotation" }, + { "Type": "Function", "Name": "ResetCustomizationChoices" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "diffDegrees" }], + "Type": "Function", + "Name": "RotateCamera" + }, + { "Type": "Function", "Name": "SaveSeenChoices" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "offset" }], + "Type": "Function", + "Name": "SetCameraDistanceOffset" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "zoomLevel" }, + { "Nilable": true, "Type": "bool", "Name": "keepCustomZoom" } + ], + "Type": "Function", + "Name": "SetCameraZoomLevel" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "optionID" }, + { "Nilable": false, "Type": "number", "Name": "choiceID" } + ], + "Type": "Function", + "Name": "SetCustomizationChoice" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "dressedState" }], + "Type": "Function", + "Name": "SetModelDressState" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sex" }], + "Type": "Function", + "Name": "SetSelectedSex" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "bool", "Name": "isViewingAlteredForm" } + ], + "Type": "Function", + "Name": "SetViewingAlteredForm" + }, + { + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "chrModelID" }], + "Type": "Function", + "Name": "SetViewingChrModel" + }, + { + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "shapeshiftFormID" }], + "Type": "Function", + "Name": "SetViewingShapeshiftForm" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "zoomAmount" }], + "Type": "Function", + "Name": "ZoomCamera" + } + ], + "Type": "System", + "Name": "BarberShop", + "Events": [ + { + "LiteralName": "BARBER_SHOP_APPEARANCE_APPLIED", + "Type": "Event", + "Name": "BarberShopAppearanceApplied" + }, + { + "LiteralName": "BARBER_SHOP_CAMERA_VALUES_UPDATED", + "Type": "Event", + "Name": "BarberShopCameraValuesUpdated" + }, + { "LiteralName": "BARBER_SHOP_CLOSE", "Type": "Event", "Name": "BarberShopClose" }, + { + "LiteralName": "BARBER_SHOP_COST_UPDATE", + "Type": "Event", + "Name": "BarberShopCostUpdate" + }, + { + "LiteralName": "BARBER_SHOP_FORCE_CUSTOMIZATIONS_UPDATE", + "Type": "Event", + "Name": "BarberShopForceCustomizationsUpdate" + }, + { "LiteralName": "BARBER_SHOP_OPEN", "Type": "Event", "Name": "BarberShopOpen" }, + { + "LiteralName": "BARBER_SHOP_RESULT", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Type": "Event", + "Name": "BarberShopResult" + } + ], + "Tables": [] + }, + { + "Namespace": "C_BarberShopInternal", + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "qaModeEnabled" }], + "Type": "Function", + "Name": "SetQAMode" + } + ], + "Type": "System", + "Name": "BarberShop", + "Events": [], + "Tables": [] + }, + { "Tables": [{ "Fields": [], "Type": "Structure", "Name": "ScriptObject" }] }, + { + "Namespace": "C_BattleNet", + "Functions": [ + { + "Returns": [ + { "Nilable": true, "Type": "BNetAccountInfo", "Name": "accountInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "GetAccountInfoByGUID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "BNetAccountInfo", "Name": "accountInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "wowAccountGUID" } + ], + "Type": "Function", + "Name": "GetAccountInfoByID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "BNetAccountInfo", "Name": "accountInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "friendIndex" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "wowAccountGUID" } + ], + "Type": "Function", + "Name": "GetFriendAccountInfo" + }, + { + "Returns": [ + { "Nilable": true, "Type": "BNetGameAccountInfo", "Name": "gameAccountInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "friendIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "accountIndex" } + ], + "Type": "Function", + "Name": "GetFriendGameAccountInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numGameAccounts" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "friendIndex" }], + "Type": "Function", + "Name": "GetFriendNumGameAccounts" + }, + { + "Returns": [ + { "Nilable": true, "Type": "BNetGameAccountInfo", "Name": "gameAccountInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "GetGameAccountInfoByGUID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "BNetGameAccountInfo", "Name": "gameAccountInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "id" }], + "Type": "Function", + "Name": "GetGameAccountInfoByID" + } + ], + "Type": "System", + "Name": "BattleNet", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "bnetAccountID" }, + { "Nilable": false, "Type": "string", "Name": "accountName" }, + { "Nilable": false, "Type": "string", "Name": "battleTag" }, + { "Nilable": false, "Type": "bool", "Name": "isFriend" }, + { "Nilable": false, "Type": "bool", "Name": "isBattleTagFriend" }, + { "Nilable": false, "Type": "number", "Name": "lastOnlineTime" }, + { "Nilable": false, "Type": "bool", "Name": "isAFK" }, + { "Nilable": false, "Type": "bool", "Name": "isDND" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" }, + { "Nilable": false, "Type": "bool", "Name": "appearOffline" }, + { "Nilable": false, "Type": "string", "Name": "customMessage" }, + { "Nilable": false, "Type": "number", "Name": "customMessageTime" }, + { "Nilable": false, "Type": "string", "Name": "note" }, + { "Nilable": false, "Type": "RafLinkType", "Name": "rafLinkType" }, + { "Nilable": false, "Type": "BNetGameAccountInfo", "Name": "gameAccountInfo" } + ], + "Type": "Structure", + "Name": "BNetAccountInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "gameAccountID" }, + { "Nilable": false, "Type": "string", "Name": "clientProgram" }, + { "Nilable": false, "Type": "bool", "Name": "isOnline" }, + { "Nilable": false, "Type": "bool", "Name": "isGameBusy" }, + { "Nilable": false, "Type": "bool", "Name": "isGameAFK" }, + { "Nilable": true, "Type": "number", "Name": "wowProjectID" }, + { "Nilable": true, "Type": "string", "Name": "characterName" }, + { "Nilable": true, "Type": "string", "Name": "realmName" }, + { "Nilable": true, "Type": "string", "Name": "realmDisplayName" }, + { "Nilable": true, "Type": "number", "Name": "realmID" }, + { "Nilable": true, "Type": "string", "Name": "factionName" }, + { "Nilable": true, "Type": "string", "Name": "raceName" }, + { "Nilable": true, "Type": "string", "Name": "className" }, + { "Nilable": true, "Type": "string", "Name": "areaName" }, + { "Nilable": true, "Type": "number", "Name": "characterLevel" }, + { "Nilable": true, "Type": "string", "Name": "richPresence" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "playerGuid" }, + { "Nilable": false, "Type": "bool", "Name": "isWowMobile" }, + { "Nilable": false, "Type": "bool", "Name": "canSummon" }, + { "Nilable": false, "Type": "bool", "Name": "hasFocus" }, + { "Nilable": false, "Type": "number", "Name": "regionID" }, + { "Nilable": false, "Type": "bool", "Name": "isInCurrentRegion" }, + { "Nilable": true, "Type": "number", "Name": "timerunningSeasonID" } + ], + "Type": "Structure", + "Name": "BNetGameAccountInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "BattlePetAbilityFlag", + "Fields": [ + { + "EnumValue": 1, + "Type": "BattlePetAbilityFlag", + "Name": "DisplayAsHostileDebuff" + }, + { + "EnumValue": 2, + "Type": "BattlePetAbilityFlag", + "Name": "HideStrongWeakHints" + }, + { "EnumValue": 4, "Type": "BattlePetAbilityFlag", "Name": "Passive" }, + { "EnumValue": 8, "Type": "BattlePetAbilityFlag", "Name": "ServerOnlyAura" }, + { "EnumValue": 16, "Type": "BattlePetAbilityFlag", "Name": "ShowCast" }, + { "EnumValue": 32, "Type": "BattlePetAbilityFlag", "Name": "StartOnCooldown" } + ], + "MaxValue": 32, + "MinValue": 1, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "BattlePetAbilitySlot", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetAbilitySlot", "Name": "A" }, + { "EnumValue": 1, "Type": "BattlePetAbilitySlot", "Name": "B" }, + { "EnumValue": 2, "Type": "BattlePetAbilitySlot", "Name": "C" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "BattlePetAbilityTargets", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetAbilityTargets", "Name": "EnemyFrontPet" }, + { + "EnumValue": 1, + "Type": "BattlePetAbilityTargets", + "Name": "FriendlyFrontPet" + }, + { "EnumValue": 2, "Type": "BattlePetAbilityTargets", "Name": "Weather" }, + { "EnumValue": 3, "Type": "BattlePetAbilityTargets", "Name": "EnemyPad" }, + { "EnumValue": 4, "Type": "BattlePetAbilityTargets", "Name": "FriendlyPad" }, + { "EnumValue": 5, "Type": "BattlePetAbilityTargets", "Name": "EnemyBackPet_1" }, + { "EnumValue": 6, "Type": "BattlePetAbilityTargets", "Name": "EnemyBackPet_2" }, + { + "EnumValue": 7, + "Type": "BattlePetAbilityTargets", + "Name": "FriendlyBackPet_1" + }, + { + "EnumValue": 8, + "Type": "BattlePetAbilityTargets", + "Name": "FriendlyBackPet_2" + }, + { "EnumValue": 9, "Type": "BattlePetAbilityTargets", "Name": "Caster" }, + { "EnumValue": 10, "Type": "BattlePetAbilityTargets", "Name": "Owner" }, + { "EnumValue": 11, "Type": "BattlePetAbilityTargets", "Name": "Specific" }, + { "EnumValue": 12, "Type": "BattlePetAbilityTargets", "Name": "ProcTarget" } + ], + "MaxValue": 12, + "MinValue": 0, + "NumValues": 13 + }, + { + "Type": "Enumeration", + "Name": "BattlePetAbilityTurnFlag", + "Fields": [ + { + "EnumValue": 1, + "Type": "BattlePetAbilityTurnFlag", + "Name": "CanProcFromProc" + }, + { "EnumValue": 2, "Type": "BattlePetAbilityTurnFlag", "Name": "TriggerBySelf" }, + { + "EnumValue": 4, + "Type": "BattlePetAbilityTurnFlag", + "Name": "TriggerByFriend" + }, + { + "EnumValue": 8, + "Type": "BattlePetAbilityTurnFlag", + "Name": "TriggerByEnemy" + }, + { + "EnumValue": 16, + "Type": "BattlePetAbilityTurnFlag", + "Name": "TriggerByWeather" + }, + { + "EnumValue": 32, + "Type": "BattlePetAbilityTurnFlag", + "Name": "TriggerByAuraCaster" + } + ], + "MaxValue": 32, + "MinValue": 1, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "BattlePetAbilityTurnType", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetAbilityTurnType", "Name": "Normal" }, + { + "EnumValue": 1, + "Type": "BattlePetAbilityTurnType", + "Name": "TriggeredEffect" + } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "BattlePetAbilityType", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetAbilityType", "Name": "Ability" }, + { "EnumValue": 1, "Type": "BattlePetAbilityType", "Name": "Aura" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "BattlePetAction", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetAction", "Name": "None" }, + { "EnumValue": 1, "Type": "BattlePetAction", "Name": "Ability" }, + { "EnumValue": 2, "Type": "BattlePetAction", "Name": "SwitchPet" }, + { "EnumValue": 3, "Type": "BattlePetAction", "Name": "Trap" }, + { "EnumValue": 4, "Type": "BattlePetAction", "Name": "Skip" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "BattlePetBreedQuality", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetBreedQuality", "Name": "Poor" }, + { "EnumValue": 1, "Type": "BattlePetBreedQuality", "Name": "Common" }, + { "EnumValue": 2, "Type": "BattlePetBreedQuality", "Name": "Uncommon" }, + { "EnumValue": 3, "Type": "BattlePetBreedQuality", "Name": "Rare" }, + { "EnumValue": 4, "Type": "BattlePetBreedQuality", "Name": "Epic" }, + { "EnumValue": 5, "Type": "BattlePetBreedQuality", "Name": "Legendary" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "BattlePetEffectFlags", + "Fields": [ + { + "EnumValue": 1, + "Type": "BattlePetEffectFlags", + "Name": "EnableAbilityPicker" + }, + { "EnumValue": 2, "Type": "BattlePetEffectFlags", "Name": "LuaNeedsAllPets" } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "BattlePetEffectParamType", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetEffectParamType", "Name": "Int" }, + { "EnumValue": 1, "Type": "BattlePetEffectParamType", "Name": "Ability" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "BattlePetEvent", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetEvent", "Name": "OnAuraApplied" }, + { "EnumValue": 1, "Type": "BattlePetEvent", "Name": "OnDamageTaken" }, + { "EnumValue": 2, "Type": "BattlePetEvent", "Name": "OnDamageDealt" }, + { "EnumValue": 3, "Type": "BattlePetEvent", "Name": "OnHealTaken" }, + { "EnumValue": 4, "Type": "BattlePetEvent", "Name": "OnHealDealt" }, + { "EnumValue": 5, "Type": "BattlePetEvent", "Name": "OnAuraRemoved" }, + { "EnumValue": 6, "Type": "BattlePetEvent", "Name": "OnRoundStart" }, + { "EnumValue": 7, "Type": "BattlePetEvent", "Name": "OnRoundEnd" }, + { "EnumValue": 8, "Type": "BattlePetEvent", "Name": "OnTurn" }, + { "EnumValue": 9, "Type": "BattlePetEvent", "Name": "OnAbility" }, + { "EnumValue": 10, "Type": "BattlePetEvent", "Name": "OnSwapIn" }, + { "EnumValue": 11, "Type": "BattlePetEvent", "Name": "OnSwapOut" }, + { "EnumValue": 12, "Type": "BattlePetEvent", "Name": "PostAuraTicks" } + ], + "MaxValue": 12, + "MinValue": 0, + "NumValues": 13 + }, + { + "Type": "Enumeration", + "Name": "BattlePetNpcEmote", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetNpcEmote", "Name": "BattleUnused" }, + { "EnumValue": 1, "Type": "BattlePetNpcEmote", "Name": "BattleStart" }, + { "EnumValue": 2, "Type": "BattlePetNpcEmote", "Name": "BattleWin" }, + { "EnumValue": 3, "Type": "BattlePetNpcEmote", "Name": "BattleLose" }, + { "EnumValue": 4, "Type": "BattlePetNpcEmote", "Name": "PetSwap" }, + { "EnumValue": 5, "Type": "BattlePetNpcEmote", "Name": "PetKill" }, + { "EnumValue": 6, "Type": "BattlePetNpcEmote", "Name": "PetDie" }, + { "EnumValue": 7, "Type": "BattlePetNpcEmote", "Name": "PetAbility" } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + }, + { + "Type": "Enumeration", + "Name": "BattlePetNpcTeamFlag", + "Fields": [ + { + "EnumValue": 1, + "Type": "BattlePetNpcTeamFlag", + "Name": "MatchPlayerHighPetLevel" + }, + { "EnumValue": 2, "Type": "BattlePetNpcTeamFlag", "Name": "NoPlayerXP" } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "BattlePetOwner", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetOwner", "Name": "Weather" }, + { "EnumValue": 1, "Type": "BattlePetOwner", "Name": "Ally" }, + { "EnumValue": 2, "Type": "BattlePetOwner", "Name": "Enemy" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "BattlePetSources", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetSources", "Name": "Drop" }, + { "EnumValue": 1, "Type": "BattlePetSources", "Name": "Quest" }, + { "EnumValue": 2, "Type": "BattlePetSources", "Name": "Vendor" }, + { "EnumValue": 3, "Type": "BattlePetSources", "Name": "Profession" }, + { "EnumValue": 4, "Type": "BattlePetSources", "Name": "WildPet" }, + { "EnumValue": 5, "Type": "BattlePetSources", "Name": "Achievement" }, + { "EnumValue": 6, "Type": "BattlePetSources", "Name": "WorldEvent" }, + { "EnumValue": 7, "Type": "BattlePetSources", "Name": "Promotion" }, + { "EnumValue": 8, "Type": "BattlePetSources", "Name": "Tcg" }, + { "EnumValue": 9, "Type": "BattlePetSources", "Name": "PetStore" }, + { "EnumValue": 10, "Type": "BattlePetSources", "Name": "Discovery" }, + { "EnumValue": 11, "Type": "BattlePetSources", "Name": "TradingPost" } + ], + "MaxValue": 11, + "MinValue": 0, + "NumValues": 12 + }, + { + "Type": "Enumeration", + "Name": "BattlePetSpeciesFlags", + "Fields": [ + { "EnumValue": 1, "Type": "BattlePetSpeciesFlags", "Name": "NoRename" }, + { "EnumValue": 2, "Type": "BattlePetSpeciesFlags", "Name": "WellKnown" }, + { "EnumValue": 4, "Type": "BattlePetSpeciesFlags", "Name": "NotAcccountwide" }, + { "EnumValue": 8, "Type": "BattlePetSpeciesFlags", "Name": "Capturable" }, + { "EnumValue": 16, "Type": "BattlePetSpeciesFlags", "Name": "NotTradable" }, + { "EnumValue": 32, "Type": "BattlePetSpeciesFlags", "Name": "HideFromJournal" }, + { + "EnumValue": 64, + "Type": "BattlePetSpeciesFlags", + "Name": "LegacyAccountUnique" + }, + { "EnumValue": 128, "Type": "BattlePetSpeciesFlags", "Name": "CantBattle" }, + { "EnumValue": 256, "Type": "BattlePetSpeciesFlags", "Name": "HordeOnly" }, + { "EnumValue": 512, "Type": "BattlePetSpeciesFlags", "Name": "AllianceOnly" }, + { "EnumValue": 1024, "Type": "BattlePetSpeciesFlags", "Name": "Boss" }, + { "EnumValue": 2048, "Type": "BattlePetSpeciesFlags", "Name": "RandomDisplay" }, + { + "EnumValue": 4096, + "Type": "BattlePetSpeciesFlags", + "Name": "NoLicenseRequired" + }, + { + "EnumValue": 8192, + "Type": "BattlePetSpeciesFlags", + "Name": "AddsAllowedWithBoss" + }, + { + "EnumValue": 16384, + "Type": "BattlePetSpeciesFlags", + "Name": "HideUntilLearned" + }, + { + "EnumValue": 32768, + "Type": "BattlePetSpeciesFlags", + "Name": "MatchPlayerHighPetLevel" + }, + { + "EnumValue": 65536, + "Type": "BattlePetSpeciesFlags", + "Name": "NoWildPetAddsAllowed" + } + ], + "MaxValue": 65536, + "MinValue": 1, + "NumValues": 17 + }, + { + "Type": "Enumeration", + "Name": "BattlePetStateFlag", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetStateFlag", "Name": "None" }, + { "EnumValue": 1, "Type": "BattlePetStateFlag", "Name": "SwapOutLock" }, + { "EnumValue": 2, "Type": "BattlePetStateFlag", "Name": "TurnLock" }, + { "EnumValue": 4, "Type": "BattlePetStateFlag", "Name": "SpeedBonus" }, + { "EnumValue": 8, "Type": "BattlePetStateFlag", "Name": "Client" }, + { "EnumValue": 16, "Type": "BattlePetStateFlag", "Name": "MaxHealthBonus" }, + { "EnumValue": 32, "Type": "BattlePetStateFlag", "Name": "Stamina" }, + { + "EnumValue": 64, + "Type": "BattlePetStateFlag", + "Name": "QualityDoesNotEffect" + }, + { "EnumValue": 128, "Type": "BattlePetStateFlag", "Name": "DynamicScaling" }, + { "EnumValue": 256, "Type": "BattlePetStateFlag", "Name": "Power" }, + { "EnumValue": 512, "Type": "BattlePetStateFlag", "Name": "SpeedMult" }, + { "EnumValue": 1024, "Type": "BattlePetStateFlag", "Name": "SwapInLock" }, + { "EnumValue": 2048, "Type": "BattlePetStateFlag", "Name": "ServerOnly" } + ], + "MaxValue": 2048, + "MinValue": 0, + "NumValues": 13 + }, + { + "Type": "Enumeration", + "Name": "BattlePetTypes", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetTypes", "Name": "Humanoid" }, + { "EnumValue": 1, "Type": "BattlePetTypes", "Name": "Dragonkin" }, + { "EnumValue": 2, "Type": "BattlePetTypes", "Name": "Flying" }, + { "EnumValue": 3, "Type": "BattlePetTypes", "Name": "Undead" }, + { "EnumValue": 4, "Type": "BattlePetTypes", "Name": "Critter" }, + { "EnumValue": 5, "Type": "BattlePetTypes", "Name": "Magic" }, + { "EnumValue": 6, "Type": "BattlePetTypes", "Name": "Elemental" }, + { "EnumValue": 7, "Type": "BattlePetTypes", "Name": "Beast" }, + { "EnumValue": 8, "Type": "BattlePetTypes", "Name": "Aquatic" }, + { "EnumValue": 9, "Type": "BattlePetTypes", "Name": "Mechanical" } + ], + "MaxValue": 9, + "MinValue": 0, + "NumValues": 10 + }, + { + "Type": "Enumeration", + "Name": "BattlePetVisualFlag", + "Fields": [ + { "EnumValue": 1, "Type": "BattlePetVisualFlag", "Name": "Test1" }, + { "EnumValue": 2, "Type": "BattlePetVisualFlag", "Name": "Test2" }, + { "EnumValue": 4, "Type": "BattlePetVisualFlag", "Name": "Test3" } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "BattlePetVisualRange", + "Fields": [ + { "EnumValue": 0, "Type": "BattlePetVisualRange", "Name": "Melee" }, + { "EnumValue": 1, "Type": "BattlePetVisualRange", "Name": "Ranged" }, + { "EnumValue": 2, "Type": "BattlePetVisualRange", "Name": "InPlace" }, + { "EnumValue": 3, "Type": "BattlePetVisualRange", "Name": "PointBlank" }, + { "EnumValue": 4, "Type": "BattlePetVisualRange", "Name": "BehindMelee" }, + { "EnumValue": 5, "Type": "BattlePetVisualRange", "Name": "BehindRanged" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "BattlepetDbFlags", + "Fields": [ + { "EnumValue": 0, "Type": "BattlepetDbFlags", "Name": "None" }, + { "EnumValue": 1, "Type": "BattlepetDbFlags", "Name": "Favorite" }, + { "EnumValue": 2, "Type": "BattlepetDbFlags", "Name": "Converted" }, + { "EnumValue": 4, "Type": "BattlepetDbFlags", "Name": "Revoked" }, + { "EnumValue": 8, "Type": "BattlepetDbFlags", "Name": "LockedForConvert" }, + { "EnumValue": 16, "Type": "BattlepetDbFlags", "Name": "Ability0Selection" }, + { "EnumValue": 32, "Type": "BattlepetDbFlags", "Name": "Ability1Selection" }, + { "EnumValue": 64, "Type": "BattlepetDbFlags", "Name": "Ability2Selection" }, + { "EnumValue": 128, "Type": "BattlepetDbFlags", "Name": "FanfareNeeded" }, + { "EnumValue": 256, "Type": "BattlepetDbFlags", "Name": "DisplayOverridden" }, + { "EnumValue": 512, "Type": "BattlepetDbFlags", "Name": "AcquiredViaLicense" }, + { "EnumValue": 1024, "Type": "BattlepetDbFlags", "Name": "TradingPost" }, + { "EnumValue": 12, "Type": "BattlepetDbFlags", "Name": "LockMask" } + ], + "MaxValue": 1024, + "MinValue": 0, + "NumValues": 13 + }, + { + "Type": "Enumeration", + "Name": "BattlepetDeletedReason", + "Fields": [ + { "EnumValue": 0, "Type": "BattlepetDeletedReason", "Name": "Unknown" }, + { "EnumValue": 1, "Type": "BattlepetDeletedReason", "Name": "PlayerReleased" }, + { "EnumValue": 2, "Type": "BattlepetDeletedReason", "Name": "PlayerCaged" }, + { "EnumValue": 3, "Type": "BattlepetDeletedReason", "Name": "Gm" }, + { "EnumValue": 4, "Type": "BattlepetDeletedReason", "Name": "CageError" }, + { "EnumValue": 5, "Type": "BattlepetDeletedReason", "Name": "DelJournal" }, + { "EnumValue": 6, "Type": "BattlepetDeletedReason", "Name": "TradingPost" } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "BattlepetSlotLockCheat", + "Fields": [ + { "EnumValue": -3, "Type": "BattlepetSlotLockCheat", "Name": "Cheat_2_Locked" }, + { "EnumValue": -2, "Type": "BattlepetSlotLockCheat", "Name": "Cheat_1_Locked" }, + { "EnumValue": -1, "Type": "BattlepetSlotLockCheat", "Name": "Cheat_0_Locked" }, + { "EnumValue": 0, "Type": "BattlepetSlotLockCheat", "Name": "CheatOff" }, + { "EnumValue": 1, "Type": "BattlepetSlotLockCheat", "Name": "UnlockAll" } + ], + "MaxValue": 1, + "MinValue": -3, + "NumValues": 5 + } + ] + }, + { + "Namespace": "C_BattlePet", + "Functions": [], + "Type": "System", + "Name": "BattlePet", + "Events": [ + { + "LiteralName": "PET_BATTLE_ABILITY_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "owner" }, + { "Nilable": false, "Type": "number", "Name": "petIndex" }, + { "Nilable": false, "Type": "number", "Name": "abilityID" } + ], + "Type": "Event", + "Name": "PetBattleAbilityChanged" + }, + { + "LiteralName": "PET_BATTLE_ACTION_SELECTED", + "Type": "Event", + "Name": "PetBattleActionSelected" + }, + { + "LiteralName": "PET_BATTLE_AURA_APPLIED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "owner" }, + { "Nilable": false, "Type": "number", "Name": "petIndex" }, + { "Nilable": false, "Type": "number", "Name": "auraInstanceID" } + ], + "Type": "Event", + "Name": "PetBattleAuraApplied" + }, + { + "LiteralName": "PET_BATTLE_AURA_CANCELED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "owner" }, + { "Nilable": false, "Type": "number", "Name": "petIndex" }, + { "Nilable": false, "Type": "number", "Name": "auraInstanceID" } + ], + "Type": "Event", + "Name": "PetBattleAuraCanceled" + }, + { + "LiteralName": "PET_BATTLE_AURA_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "owner" }, + { "Nilable": false, "Type": "number", "Name": "petIndex" }, + { "Nilable": false, "Type": "number", "Name": "auraInstanceID" } + ], + "Type": "Event", + "Name": "PetBattleAuraChanged" + }, + { + "LiteralName": "PET_BATTLE_CAPTURED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "owner" }, + { "Nilable": false, "Type": "number", "Name": "petIndex" } + ], + "Type": "Event", + "Name": "PetBattleCaptured" + }, + { "LiteralName": "PET_BATTLE_CLOSE", "Type": "Event", "Name": "PetBattleClose" }, + { + "LiteralName": "PET_BATTLE_FINAL_ROUND", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "owner" }], + "Type": "Event", + "Name": "PetBattleFinalRound" + }, + { + "LiteralName": "PET_BATTLE_HEALTH_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "owner" }, + { "Nilable": false, "Type": "number", "Name": "petIndex" }, + { "Nilable": false, "Type": "number", "Name": "healthChange" } + ], + "Type": "Event", + "Name": "PetBattleHealthChanged" + }, + { + "LiteralName": "PET_BATTLE_LEVEL_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "owner" }, + { "Nilable": false, "Type": "number", "Name": "petIndex" }, + { "Nilable": false, "Type": "number", "Name": "newLevel" } + ], + "Type": "Event", + "Name": "PetBattleLevelChanged" + }, + { + "LiteralName": "PET_BATTLE_MAX_HEALTH_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "owner" }, + { "Nilable": false, "Type": "number", "Name": "petIndex" }, + { "Nilable": false, "Type": "number", "Name": "healthChange" } + ], + "Type": "Event", + "Name": "PetBattleMaxHealthChanged" + }, + { + "LiteralName": "PET_BATTLE_OPENING_DONE", + "Type": "Event", + "Name": "PetBattleOpeningDone" + }, + { + "LiteralName": "PET_BATTLE_OPENING_START", + "Type": "Event", + "Name": "PetBattleOpeningStart" + }, + { "LiteralName": "PET_BATTLE_OVER", "Type": "Event", "Name": "PetBattleOver" }, + { + "LiteralName": "PET_BATTLE_OVERRIDE_ABILITY", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "abilityIndex" }], + "Type": "Event", + "Name": "PetBattleOverrideAbility" + }, + { + "LiteralName": "PET_BATTLE_PET_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "owner" }], + "Type": "Event", + "Name": "PetBattlePetChanged" + }, + { + "LiteralName": "PET_BATTLE_PET_ROUND_PLAYBACK_COMPLETE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "roundNumber" }], + "Type": "Event", + "Name": "PetBattlePetRoundPlaybackComplete" + }, + { + "LiteralName": "PET_BATTLE_PET_ROUND_RESULTS", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "roundNumber" }], + "Type": "Event", + "Name": "PetBattlePetRoundResults" + }, + { + "LiteralName": "PET_BATTLE_PET_TYPE_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "owner" }, + { "Nilable": false, "Type": "number", "Name": "petIndex" }, + { "Nilable": false, "Type": "number", "Name": "stateValue" } + ], + "Type": "Event", + "Name": "PetBattlePetTypeChanged" + }, + { + "LiteralName": "PET_BATTLE_PVP_DUEL_REQUEST_CANCEL", + "Type": "Event", + "Name": "PetBattlePvpDuelRequestCancel" + }, + { + "LiteralName": "PET_BATTLE_PVP_DUEL_REQUESTED", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "fullName" }], + "Type": "Event", + "Name": "PetBattlePvpDuelRequested" + }, + { + "LiteralName": "PET_BATTLE_QUEUE_PROPOSAL_ACCEPTED", + "Type": "Event", + "Name": "PetBattleQueueProposalAccepted" + }, + { + "LiteralName": "PET_BATTLE_QUEUE_PROPOSAL_DECLINED", + "Type": "Event", + "Name": "PetBattleQueueProposalDeclined" + }, + { + "LiteralName": "PET_BATTLE_QUEUE_PROPOSE_MATCH", + "Type": "Event", + "Name": "PetBattleQueueProposeMatch" + }, + { + "LiteralName": "PET_BATTLE_QUEUE_STATUS", + "Type": "Event", + "Name": "PetBattleQueueStatus" + }, + { + "LiteralName": "PET_BATTLE_XP_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "owner" }, + { "Nilable": false, "Type": "number", "Name": "petIndex" }, + { "Nilable": false, "Type": "number", "Name": "xpChange" } + ], + "Type": "Event", + "Name": "PetBattleXpChanged" + } + ], + "Tables": [] + }, + { + "Namespace": "C_BehavioralMessaging", + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "NotificationDbId", "Name": "dbId" }, + { "Nilable": false, "Type": "number", "Name": "openTimeSeconds" }, + { "Nilable": false, "Type": "number", "Name": "readTimeSeconds" } + ], + "Type": "Function", + "Name": "SendNotificationReceipt" + } + ], + "Type": "System", + "Name": "BehavioralMessaging", + "Events": [ + { + "LiteralName": "BEHAVIORAL_NOTIFICATION", + "Payload": [ + { "Nilable": false, "Type": "string", "Name": "notificationType" }, + { "Nilable": false, "Type": "NotificationDbId", "Name": "dbId" } + ], + "Type": "Event", + "Name": "BehavioralNotification" + } + ], + "Tables": [] + }, + { + "Namespace": "C_BlackMarketInfo", + "Functions": [], + "Type": "System", + "Name": "BlackMarketInfo", + "Events": [ + { + "LiteralName": "BLACK_MARKET_BID_RESULT", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "marketID" }, + { "Nilable": false, "Type": "number", "Name": "resultCode" } + ], + "Type": "Event", + "Name": "BlackMarketBidResult" + }, + { + "LiteralName": "BLACK_MARKET_CLOSE", + "Type": "Event", + "Name": "BlackMarketClose" + }, + { + "LiteralName": "BLACK_MARKET_ITEM_UPDATE", + "Type": "Event", + "Name": "BlackMarketItemUpdate" + }, + { "LiteralName": "BLACK_MARKET_OPEN", "Type": "Event", "Name": "BlackMarketOpen" }, + { + "LiteralName": "BLACK_MARKET_OUTBID", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "marketID" }, + { "Nilable": false, "Type": "number", "Name": "itemID" } + ], + "Type": "Event", + "Name": "BlackMarketOutbid" + }, + { + "LiteralName": "BLACK_MARKET_UNAVAILABLE", + "Type": "Event", + "Name": "BlackMarketUnavailable" + }, + { + "LiteralName": "BLACK_MARKET_WON", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "marketID" }, + { "Nilable": false, "Type": "number", "Name": "itemID" } + ], + "Type": "Event", + "Name": "BlackMarketWon" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "factionID" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "numObjectives" }, + { "Nilable": true, "Type": "cstring", "Name": "turninRequirementText" } + ], + "Type": "Structure", + "Name": "BountyInfo" + } + ] + }, + { + "Namespace": "C_Browser", + "Functions": [], + "Type": "System", + "Name": "Browser", + "Events": [ + { + "LiteralName": "SIMPLE_BROWSER_WEB_ERROR", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "errorCode" }], + "Type": "Event", + "Name": "SimpleBrowserWebError" + }, + { + "LiteralName": "SIMPLE_BROWSER_WEB_PROXY_FAILED", + "Type": "Event", + "Name": "SimpleBrowserWebProxyFailed" + }, + { + "LiteralName": "SIMPLE_CHECKOUT_CLOSED", + "Type": "Event", + "Name": "SimpleCheckoutClosed" + } + ], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "buildVersion" }, + { "Nilable": false, "Type": "cstring", "Name": "buildNumber" }, + { "Nilable": false, "Type": "cstring", "Name": "buildDate" }, + { "Nilable": false, "Type": "number", "Name": "interfaceVersion" }, + { "Nilable": false, "Type": "cstring", "Name": "localizedVersion" }, + { "Nilable": false, "Type": "string", "Name": "buildInfo" } + ], + "Type": "Function", + "Name": "GetBuildInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "is64Bit" }], + "Type": "Function", + "Name": "Is64BitClient" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isBetaBuild" }], + "Type": "Function", + "Name": "IsBetaBuild" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDebugBuild" }], + "Type": "Function", + "Name": "IsDebugBuild" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLinux" }], + "Type": "Function", + "Name": "IsLinuxClient" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isMac" }], + "Type": "Function", + "Name": "IsMacClient" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPublicBuild" }], + "Type": "Function", + "Name": "IsPublicBuild" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTestBuild" }], + "Type": "Function", + "Name": "IsTestBuild" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isWindows" }], + "Type": "Function", + "Name": "IsWindowsClient" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "supportsClipCursor" }], + "Type": "Function", + "Name": "SupportsClipCursor" + } + ], + "Type": "System", + "Name": "Build", + "Events": [], + "Tables": [] + }, + { "Tables": [] }, + { + "Namespace": "C_CVar", + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "value" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "GetCVar" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "value" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" } + ], + "Type": "Function", + "Name": "GetCVarBitfield" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "value" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "GetCVarBool" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "defaultValue" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "GetCVarDefault" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "value" }, + { "Nilable": false, "Type": "cstring", "Name": "defaultValue" }, + { "Nilable": false, "Type": "bool", "Name": "isStoredServerAccount" }, + { "Nilable": false, "Type": "bool", "Name": "isStoredServerCharacter" }, + { "Nilable": false, "Type": "bool", "Name": "isLockedFromUser" }, + { "Nilable": false, "Type": "bool", "Name": "isSecure" }, + { "Nilable": false, "Type": "bool", "Name": "isReadOnly" } + ], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "GetCVarInfo" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "cstring", "Name": "value" } + ], + "Type": "Function", + "Name": "RegisterCVar" + }, + { "Type": "Function", "Name": "ResetTestCVars" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "cstring", "Name": "value" } + ], + "Type": "Function", + "Name": "SetCVar" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "bool", "Name": "value" } + ], + "Type": "Function", + "Name": "SetCVarBitfield" + } + ], + "Type": "System", + "Name": "CVarScripts", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "value" }, + { "Nilable": false, "Type": "cstring", "Name": "defaultValue" }, + { "Nilable": false, "Type": "bool", "Name": "isStoredServerAccount" }, + { "Nilable": false, "Type": "bool", "Name": "isStoredServerCharacter" }, + { "Nilable": false, "Type": "bool", "Name": "isLockedFromUser" }, + { "Nilable": false, "Type": "bool", "Name": "isSecure" }, + { "Nilable": false, "Type": "bool", "Name": "isReadOnly" } + ], + "Type": "Structure", + "Name": "CVarInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "CalendarCommandType", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarCommandType", "Name": "Create" }, + { "EnumValue": 1, "Type": "CalendarCommandType", "Name": "Invite" }, + { "EnumValue": 2, "Type": "CalendarCommandType", "Name": "Rsvp" }, + { "EnumValue": 3, "Type": "CalendarCommandType", "Name": "RemoveInvite" }, + { "EnumValue": 4, "Type": "CalendarCommandType", "Name": "RemoveEvent" }, + { "EnumValue": 5, "Type": "CalendarCommandType", "Name": "Status" }, + { "EnumValue": 6, "Type": "CalendarCommandType", "Name": "ModeratorStatus" }, + { "EnumValue": 7, "Type": "CalendarCommandType", "Name": "GetCalendar" }, + { "EnumValue": 8, "Type": "CalendarCommandType", "Name": "GetEvent" }, + { "EnumValue": 9, "Type": "CalendarCommandType", "Name": "UpdateEvent" }, + { "EnumValue": 10, "Type": "CalendarCommandType", "Name": "Complain" }, + { "EnumValue": 11, "Type": "CalendarCommandType", "Name": "Notes" } + ], + "MaxValue": 11, + "MinValue": 0, + "NumValues": 12 + }, + { + "Type": "Enumeration", + "Name": "CalendarErrorType", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarErrorType", "Name": "Success" }, + { + "EnumValue": 1, + "Type": "CalendarErrorType", + "Name": "CommunityEventsExceeded" + }, + { "EnumValue": 2, "Type": "CalendarErrorType", "Name": "EventsExceeded" }, + { "EnumValue": 3, "Type": "CalendarErrorType", "Name": "SelfInvitesExceeded" }, + { "EnumValue": 4, "Type": "CalendarErrorType", "Name": "OtherInvitesExceeded" }, + { "EnumValue": 5, "Type": "CalendarErrorType", "Name": "NoPermission" }, + { "EnumValue": 6, "Type": "CalendarErrorType", "Name": "EventInvalid" }, + { "EnumValue": 7, "Type": "CalendarErrorType", "Name": "NotInvited" }, + { "EnumValue": 8, "Type": "CalendarErrorType", "Name": "UnknownError" }, + { "EnumValue": 9, "Type": "CalendarErrorType", "Name": "NotInGuild" }, + { "EnumValue": 10, "Type": "CalendarErrorType", "Name": "NotInCommunity" }, + { + "EnumValue": 11, + "Type": "CalendarErrorType", + "Name": "TargetAlreadyInvited" + }, + { "EnumValue": 12, "Type": "CalendarErrorType", "Name": "NameNotFound" }, + { "EnumValue": 13, "Type": "CalendarErrorType", "Name": "WrongFaction" }, + { "EnumValue": 14, "Type": "CalendarErrorType", "Name": "Ignored" }, + { "EnumValue": 15, "Type": "CalendarErrorType", "Name": "InvitesExceeded" }, + { "EnumValue": 16, "Type": "CalendarErrorType", "Name": "InvalidMaxSize" }, + { "EnumValue": 17, "Type": "CalendarErrorType", "Name": "InvalidDate" }, + { "EnumValue": 18, "Type": "CalendarErrorType", "Name": "InvalidTime" }, + { "EnumValue": 19, "Type": "CalendarErrorType", "Name": "NoInvites" }, + { "EnumValue": 20, "Type": "CalendarErrorType", "Name": "NeedsTitle" }, + { "EnumValue": 21, "Type": "CalendarErrorType", "Name": "EventPassed" }, + { "EnumValue": 22, "Type": "CalendarErrorType", "Name": "EventLocked" }, + { "EnumValue": 23, "Type": "CalendarErrorType", "Name": "DeleteCreatorFailed" }, + { "EnumValue": 24, "Type": "CalendarErrorType", "Name": "DataAlreadySet" }, + { "EnumValue": 25, "Type": "CalendarErrorType", "Name": "CalendarDisabled" }, + { "EnumValue": 26, "Type": "CalendarErrorType", "Name": "RestrictedAccount" }, + { "EnumValue": 27, "Type": "CalendarErrorType", "Name": "ArenaEventsExceeded" }, + { "EnumValue": 28, "Type": "CalendarErrorType", "Name": "RestrictedLevel" }, + { "EnumValue": 29, "Type": "CalendarErrorType", "Name": "Squelched" }, + { "EnumValue": 30, "Type": "CalendarErrorType", "Name": "NoInvite" }, + { "EnumValue": 31, "Type": "CalendarErrorType", "Name": "ComplaintDisabled" }, + { "EnumValue": 32, "Type": "CalendarErrorType", "Name": "ComplaintSelf" }, + { "EnumValue": 33, "Type": "CalendarErrorType", "Name": "ComplaintSameGuild" }, + { "EnumValue": 34, "Type": "CalendarErrorType", "Name": "ComplaintGm" }, + { "EnumValue": 35, "Type": "CalendarErrorType", "Name": "ComplaintLimit" }, + { "EnumValue": 36, "Type": "CalendarErrorType", "Name": "ComplaintNotFound" }, + { "EnumValue": 37, "Type": "CalendarErrorType", "Name": "EventWrongServer" }, + { "EnumValue": 38, "Type": "CalendarErrorType", "Name": "NoCommunityInvites" }, + { "EnumValue": 39, "Type": "CalendarErrorType", "Name": "InvalidSignup" }, + { "EnumValue": 40, "Type": "CalendarErrorType", "Name": "NoModerator" }, + { "EnumValue": 41, "Type": "CalendarErrorType", "Name": "ModeratorRestricted" }, + { "EnumValue": 42, "Type": "CalendarErrorType", "Name": "InvalidNotes" }, + { "EnumValue": 43, "Type": "CalendarErrorType", "Name": "InvalidTitle" }, + { "EnumValue": 44, "Type": "CalendarErrorType", "Name": "InvalidDescription" }, + { "EnumValue": 45, "Type": "CalendarErrorType", "Name": "InvalidClub" }, + { "EnumValue": 46, "Type": "CalendarErrorType", "Name": "CreatorNotFound" }, + { "EnumValue": 47, "Type": "CalendarErrorType", "Name": "EventThrottled" }, + { "EnumValue": 48, "Type": "CalendarErrorType", "Name": "InviteThrottled" }, + { "EnumValue": 49, "Type": "CalendarErrorType", "Name": "Internal" }, + { "EnumValue": 50, "Type": "CalendarErrorType", "Name": "ComplaintAdded" } + ], + "MaxValue": 50, + "MinValue": 0, + "NumValues": 51 + }, + { + "Type": "Enumeration", + "Name": "CalendarEventBits", + "Fields": [ + { "EnumValue": 1, "Type": "CalendarEventBits", "Name": "Player" }, + { "EnumValue": 2, "Type": "CalendarEventBits", "Name": "GuildDeprecated" }, + { "EnumValue": 4, "Type": "CalendarEventBits", "Name": "System" }, + { "EnumValue": 8, "Type": "CalendarEventBits", "Name": "Holiday" }, + { "EnumValue": 16, "Type": "CalendarEventBits", "Name": "Locked" }, + { "EnumValue": 32, "Type": "CalendarEventBits", "Name": "AutoApprove" }, + { + "EnumValue": 64, + "Type": "CalendarEventBits", + "Name": "CommunityAnnouncement" + }, + { "EnumValue": 128, "Type": "CalendarEventBits", "Name": "RaidLockout" }, + { "EnumValue": 256, "Type": "CalendarEventBits", "Name": "ArenaDeprecated" }, + { + "EnumValue": 512, + "Type": "CalendarEventBits", + "Name": "RaidResetDeprecated" + }, + { "EnumValue": 1024, "Type": "CalendarEventBits", "Name": "CommunitySignup" }, + { "EnumValue": 2048, "Type": "CalendarEventBits", "Name": "GuildSignup" }, + { "EnumValue": 3136, "Type": "CalendarEventBits", "Name": "CommunityWide" }, + { "EnumValue": 3395, "Type": "CalendarEventBits", "Name": "PlayerCreated" }, + { "EnumValue": 3788, "Type": "CalendarEventBits", "Name": "CantComplain" } + ], + "MaxValue": 3788, + "MinValue": 1, + "NumValues": 15 + }, + { + "Type": "Enumeration", + "Name": "CalendarEventRepeatOptions", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarEventRepeatOptions", "Name": "Never" }, + { "EnumValue": 1, "Type": "CalendarEventRepeatOptions", "Name": "Weekly" }, + { "EnumValue": 2, "Type": "CalendarEventRepeatOptions", "Name": "Biweekly" }, + { "EnumValue": 3, "Type": "CalendarEventRepeatOptions", "Name": "Monthly" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "CalendarEventType", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarEventType", "Name": "Raid" }, + { "EnumValue": 1, "Type": "CalendarEventType", "Name": "Dungeon" }, + { "EnumValue": 2, "Type": "CalendarEventType", "Name": "PvP" }, + { "EnumValue": 3, "Type": "CalendarEventType", "Name": "Meeting" }, + { "EnumValue": 4, "Type": "CalendarEventType", "Name": "Other" }, + { "EnumValue": 5, "Type": "CalendarEventType", "Name": "HeroicDeprecated" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "CalendarFilterFlags", + "Fields": [ + { "EnumValue": 1, "Type": "CalendarFilterFlags", "Name": "WeeklyHoliday" }, + { "EnumValue": 2, "Type": "CalendarFilterFlags", "Name": "Darkmoon" }, + { "EnumValue": 4, "Type": "CalendarFilterFlags", "Name": "Battleground" }, + { "EnumValue": 8, "Type": "CalendarFilterFlags", "Name": "RaidLockout" }, + { "EnumValue": 16, "Type": "CalendarFilterFlags", "Name": "RaidReset" } + ], + "MaxValue": 16, + "MinValue": 1, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "CalendarGetEventType", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarGetEventType", "Name": "Get" }, + { "EnumValue": 1, "Type": "CalendarGetEventType", "Name": "Add" }, + { "EnumValue": 2, "Type": "CalendarGetEventType", "Name": "Copy" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "CalendarHolidayFilterType", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarHolidayFilterType", "Name": "Weekly" }, + { "EnumValue": 1, "Type": "CalendarHolidayFilterType", "Name": "Darkmoon" }, + { "EnumValue": 2, "Type": "CalendarHolidayFilterType", "Name": "Battleground" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "CalendarInviteBits", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarInviteBits", "Name": "None" }, + { "EnumValue": 1, "Type": "CalendarInviteBits", "Name": "PendingInvite" }, + { "EnumValue": 2, "Type": "CalendarInviteBits", "Name": "Moderator" }, + { "EnumValue": 4, "Type": "CalendarInviteBits", "Name": "Creator" }, + { "EnumValue": 8, "Type": "CalendarInviteBits", "Name": "Signup" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "CalendarInviteSortType", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarInviteSortType", "Name": "Name" }, + { "EnumValue": 1, "Type": "CalendarInviteSortType", "Name": "Level" }, + { "EnumValue": 2, "Type": "CalendarInviteSortType", "Name": "Class" }, + { "EnumValue": 3, "Type": "CalendarInviteSortType", "Name": "Status" }, + { "EnumValue": 4, "Type": "CalendarInviteSortType", "Name": "Party" }, + { "EnumValue": 5, "Type": "CalendarInviteSortType", "Name": "Notes" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "CalendarInviteType", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarInviteType", "Name": "Normal" }, + { "EnumValue": 1, "Type": "CalendarInviteType", "Name": "Signup" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "CalendarModeratorStatus", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarModeratorStatus", "Name": "None" }, + { "EnumValue": 1, "Type": "CalendarModeratorStatus", "Name": "Moderator" }, + { "EnumValue": 2, "Type": "CalendarModeratorStatus", "Name": "Creator" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "CalendarStatus", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarStatus", "Name": "Invited" }, + { "EnumValue": 1, "Type": "CalendarStatus", "Name": "Available" }, + { "EnumValue": 2, "Type": "CalendarStatus", "Name": "Declined" }, + { "EnumValue": 3, "Type": "CalendarStatus", "Name": "Confirmed" }, + { "EnumValue": 4, "Type": "CalendarStatus", "Name": "Out" }, + { "EnumValue": 5, "Type": "CalendarStatus", "Name": "Standby" }, + { "EnumValue": 6, "Type": "CalendarStatus", "Name": "Signedup" }, + { "EnumValue": 7, "Type": "CalendarStatus", "Name": "NotSignedup" }, + { "EnumValue": 8, "Type": "CalendarStatus", "Name": "Tentative" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "CalendarTexturesType", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarTexturesType", "Name": "Dungeons" }, + { "EnumValue": 1, "Type": "CalendarTexturesType", "Name": "Raid" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "CalendarType", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarType", "Name": "Player" }, + { "EnumValue": 1, "Type": "CalendarType", "Name": "Community" }, + { "EnumValue": 2, "Type": "CalendarType", "Name": "RaidLockout" }, + { "EnumValue": 3, "Type": "CalendarType", "Name": "RaidResetDeprecated" }, + { "EnumValue": 4, "Type": "CalendarType", "Name": "Holiday" }, + { "EnumValue": 5, "Type": "CalendarType", "Name": "HolidayWeekly" }, + { "EnumValue": 6, "Type": "CalendarType", "Name": "HolidayDarkmoon" }, + { "EnumValue": 7, "Type": "CalendarType", "Name": "HolidayBattleground" } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + }, + { + "Type": "Enumeration", + "Name": "CalendarWebActionType", + "Fields": [ + { "EnumValue": 0, "Type": "CalendarWebActionType", "Name": "Accept" }, + { "EnumValue": 1, "Type": "CalendarWebActionType", "Name": "Decline" }, + { "EnumValue": 2, "Type": "CalendarWebActionType", "Name": "Remove" }, + { "EnumValue": 3, "Type": "CalendarWebActionType", "Name": "ReportSpam" }, + { "EnumValue": 4, "Type": "CalendarWebActionType", "Name": "Signup" }, + { "EnumValue": 5, "Type": "CalendarWebActionType", "Name": "Tentative" }, + { "EnumValue": 6, "Type": "CalendarWebActionType", "Name": "TentativeSignup" } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "HolidayCalendarFlags", + "Fields": [ + { "EnumValue": 1, "Type": "HolidayCalendarFlags", "Name": "Alliance" }, + { "EnumValue": 2, "Type": "HolidayCalendarFlags", "Name": "Horde" } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "HolidayFlags", + "Fields": [ + { "EnumValue": 1, "Type": "HolidayFlags", "Name": "IsRegionwide" }, + { "EnumValue": 2, "Type": "HolidayFlags", "Name": "DontShowInCalendar" }, + { "EnumValue": 4, "Type": "HolidayFlags", "Name": "DontDisplayEnd" }, + { "EnumValue": 8, "Type": "HolidayFlags", "Name": "DontDisplayBanner" }, + { "EnumValue": 16, "Type": "HolidayFlags", "Name": "NotAvailableClientSide" }, + { "EnumValue": 32, "Type": "HolidayFlags", "Name": "DurationUseMinutes" }, + { + "EnumValue": 64, + "Type": "HolidayFlags", + "Name": "BeginEventOnlyOnStageChange" + } + ], + "MaxValue": 64, + "MinValue": 1, + "NumValues": 7 + }, + { + "Values": [ + { "Type": "CalendarGetEventType", "Name": "DEFAULT_CALENDAR_GET_EVENT_TYPE" } + ], + "Type": "Constants", + "Name": "CalendarGetEventTypeConstants" + } + ] + }, + { + "Namespace": "C_Calendar", + "Functions": [ + { "Type": "Function", "Name": "AddEvent" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "ready" }], + "Type": "Function", + "Name": "AreNamesReady" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canAddEvent" }], + "Type": "Function", + "Name": "CanAddEvent" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canSendInvite" }], + "Type": "Function", + "Name": "CanSendInvite" + }, + { "Type": "Function", "Name": "CloseEvent" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canComplain" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetMonths" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" }, + { "Nilable": false, "Type": "luaIndex", "Name": "eventIndex" } + ], + "Type": "Function", + "Name": "ContextMenuEventCanComplain" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canEdit" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetMonths" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" }, + { "Nilable": false, "Type": "luaIndex", "Name": "eventIndex" } + ], + "Type": "Function", + "Name": "ContextMenuEventCanEdit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canRemove" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetMonths" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" }, + { "Nilable": false, "Type": "luaIndex", "Name": "eventIndex" } + ], + "Type": "Function", + "Name": "ContextMenuEventCanRemove" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "exists" }], + "Type": "Function", + "Name": "ContextMenuEventClipboard" + }, + { "Type": "Function", "Name": "ContextMenuEventCopy" }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "calendarType" }], + "Type": "Function", + "Name": "ContextMenuEventGetCalendarType" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetMonths" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" } + ], + "Type": "Function", + "Name": "ContextMenuEventPaste" + }, + { "Type": "Function", "Name": "ContextMenuEventRemove" }, + { "Type": "Function", "Name": "ContextMenuEventSignUp" }, + { + "Returns": [ + { "Nilable": false, "Type": "CalendarEventIndexInfo", "Name": "info" } + ], + "Type": "Function", + "Name": "ContextMenuGetEventIndex" + }, + { "Type": "Function", "Name": "ContextMenuInviteAvailable" }, + { "Type": "Function", "Name": "ContextMenuInviteDecline" }, + { "Type": "Function", "Name": "ContextMenuInviteRemove" }, + { "Type": "Function", "Name": "ContextMenuInviteTentative" }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetMonths" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" }, + { "Nilable": false, "Type": "luaIndex", "Name": "eventIndex" } + ], + "Type": "Function", + "Name": "ContextMenuSelectEvent" + }, + { "Type": "Function", "Name": "CreateCommunitySignUpEvent" }, + { "Type": "Function", "Name": "CreateGuildAnnouncementEvent" }, + { "Type": "Function", "Name": "CreateGuildSignUpEvent" }, + { "Type": "Function", "Name": "CreatePlayerEvent" }, + { "Type": "Function", "Name": "EventAvailable" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canEdit" }], + "Type": "Function", + "Name": "EventCanEdit" + }, + { "Type": "Function", "Name": "EventClearAutoApprove" }, + { "Type": "Function", "Name": "EventClearLocked" }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "inviteIndex" }], + "Type": "Function", + "Name": "EventClearModerator" + }, + { "Type": "Function", "Name": "EventDecline" }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "calendarType" }], + "Type": "Function", + "Name": "EventGetCalendarType" + }, + { + "Returns": [{ "Nilable": true, "Type": "ClubId", "Name": "info" }], + "Type": "Function", + "Name": "EventGetClubId" + }, + { + "Returns": [ + { "Nilable": false, "Type": "CalendarEventInviteInfo", "Name": "info" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "eventIndex" }], + "Type": "Function", + "Name": "EventGetInvite" + }, + { + "Returns": [{ "Nilable": false, "Type": "CalendarTime", "Name": "time" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "eventIndex" }], + "Type": "Function", + "Name": "EventGetInviteResponseTime" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "criterion" }, + { "Nilable": false, "Type": "bool", "Name": "reverse" } + ], + "Type": "Function", + "Name": "EventGetInviteSortCriterion" + }, + { + "Returns": [{ "Nilable": true, "Type": "luaIndex", "Name": "inviteIndex" }], + "Type": "Function", + "Name": "EventGetSelectedInvite" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CalendarEventStatusOption", + "Type": "table", + "Name": "options" + } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "eventIndex" }], + "Type": "Function", + "Name": "EventGetStatusOptions" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CalendarEventTextureInfo", + "Type": "table", + "Name": "textures" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "CalendarEventType", "Name": "eventType" } + ], + "Type": "Function", + "Name": "EventGetTextures" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "string", "Type": "table", "Name": "types" } + ], + "Type": "Function", + "Name": "EventGetTypes" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CalendarEventTypeDisplayInfo", + "Type": "table", + "Name": "infos" + } + ], + "Type": "Function", + "Name": "EventGetTypesDisplayOrdered" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasPendingInvite" }], + "Type": "Function", + "Name": "EventHasPendingInvite" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "haveSettingsChanged" }], + "Type": "Function", + "Name": "EventHaveSettingsChanged" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "EventInvite" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "inviteIndex" }], + "Type": "Function", + "Name": "EventRemoveInvite" + }, + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "EventRemoveInviteByGuid" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "inviteIndex" }], + "Type": "Function", + "Name": "EventSelectInvite" + }, + { "Type": "Function", "Name": "EventSetAutoApprove" }, + { + "Arguments": [{ "Nilable": true, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "EventSetClubId" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "month" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" }, + { "Nilable": false, "Type": "number", "Name": "year" } + ], + "Type": "Function", + "Name": "EventSetDate" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "description" }], + "Type": "Function", + "Name": "EventSetDescription" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "eventIndex" }, + { "Nilable": false, "Type": "CalendarStatus", "Name": "status" } + ], + "Type": "Function", + "Name": "EventSetInviteStatus" + }, + { "Type": "Function", "Name": "EventSetLocked" }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "inviteIndex" }], + "Type": "Function", + "Name": "EventSetModerator" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "textureIndex" }], + "Type": "Function", + "Name": "EventSetTextureID" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "hour" }, + { "Nilable": false, "Type": "number", "Name": "minute" } + ], + "Type": "Function", + "Name": "EventSetTime" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "title" }], + "Type": "Function", + "Name": "EventSetTitle" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "CalendarEventType", "Name": "typeIndex" } + ], + "Type": "Function", + "Name": "EventSetType" + }, + { "Type": "Function", "Name": "EventSignUp" }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "criterion" }, + { "Nilable": false, "Type": "bool", "Name": "reverse" } + ], + "Type": "Function", + "Name": "EventSortInvites" + }, + { "Type": "Function", "Name": "EventTentative" }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CalendarDayEvent", + "Type": "table", + "Name": "events" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "CalendarTime", "Name": "startTime" }, + { "Nilable": false, "Type": "CalendarTime", "Name": "endTime" } + ], + "Type": "Function", + "Name": "GetClubCalendarEvents" + }, + { + "Returns": [{ "Nilable": false, "Type": "CalendarDayEvent", "Name": "event" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "monthOffset" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" } + ], + "Type": "Function", + "Name": "GetDayEvent" + }, + { + "Returns": [ + { "Nilable": false, "Type": "CalendarGuildFilterInfo", "Name": "info" } + ], + "Type": "Function", + "Name": "GetDefaultGuildFilter" + }, + { + "Returns": [ + { "Nilable": false, "Type": "CalendarEventIndexInfo", "Name": "info" } + ], + "Type": "Function", + "Name": "GetEventIndex" + }, + { + "Returns": [ + { "Nilable": true, "Type": "CalendarEventIndexInfo", "Name": "eventIndexInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "CalendarEventID", "Name": "eventID" }, + { "Nilable": true, "Type": "number", "Name": "monthOffset" }, + { "Nilable": true, "Type": "number", "Name": "monthDay" } + ], + "Type": "Function", + "Name": "GetEventIndexInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "CalendarEventInfo", "Name": "info" }], + "Type": "Function", + "Name": "GetEventInfo" + }, + { + "Returns": [ + { "Nilable": true, "Type": "luaIndex", "Name": "firstPendingInvite" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetMonths" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" } + ], + "Type": "Function", + "Name": "GetFirstPendingInvite" + }, + { + "Returns": [ + { "Nilable": false, "Type": "CalendarGuildEventInfo", "Name": "info" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetGuildEventInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "CalendarEventIndexInfo", "Name": "info" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetGuildEventSelectionInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "CalendarHolidayInfo", "Name": "event" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "monthOffset" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" } + ], + "Type": "Function", + "Name": "GetHolidayInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "CalendarTime", "Name": "maxCreateDate" } + ], + "Type": "Function", + "Name": "GetMaxCreateDate" + }, + { + "Returns": [{ "Nilable": false, "Type": "CalendarTime", "Name": "minDate" }], + "Type": "Function", + "Name": "GetMinDate" + }, + { + "Returns": [ + { "Nilable": false, "Type": "CalendarMonthInfo", "Name": "monthInfo" } + ], + "Arguments": [ + { "Nilable": false, "Default": 0, "Type": "number", "Name": "offsetMonths" } + ], + "Type": "Function", + "Name": "GetMonthInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "GetNextClubId" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numDayEvents" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetMonths" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" } + ], + "Type": "Function", + "Name": "GetNumDayEvents" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numGuildEvents" }], + "Type": "Function", + "Name": "GetNumGuildEvents" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "num" }], + "Type": "Function", + "Name": "GetNumInvites" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "num" }], + "Type": "Function", + "Name": "GetNumPendingInvites" + }, + { + "Returns": [{ "Nilable": false, "Type": "CalendarRaidInfo", "Name": "info" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetMonths" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" }, + { "Nilable": false, "Type": "luaIndex", "Name": "eventIndex" } + ], + "Type": "Function", + "Name": "GetRaidInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "actionPending" }], + "Type": "Function", + "Name": "IsActionPending" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isOpen" }], + "Type": "Function", + "Name": "IsEventOpen" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "minLevel" }, + { "Nilable": false, "Type": "number", "Name": "maxLevel" }, + { "Nilable": true, "Type": "luaIndex", "Name": "maxRankOrder" } + ], + "Type": "Function", + "Name": "MassInviteCommunity" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "minLevel" }, + { "Nilable": false, "Type": "number", "Name": "maxLevel" }, + { "Nilable": false, "Type": "luaIndex", "Name": "maxRankOrder" } + ], + "Type": "Function", + "Name": "MassInviteGuild" + }, + { "Type": "Function", "Name": "OpenCalendar" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetMonths" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" } + ], + "Type": "Function", + "Name": "OpenEvent" + }, + { "Type": "Function", "Name": "RemoveEvent" }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "month" }, + { "Nilable": false, "Type": "number", "Name": "year" } + ], + "Type": "Function", + "Name": "SetAbsMonth" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "offsetMonths" }], + "Type": "Function", + "Name": "SetMonth" + }, + { + "Arguments": [{ "Nilable": true, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "SetNextClubId" + }, + { "Type": "Function", "Name": "UpdateEvent" } + ], + "Type": "System", + "Name": "Calendar", + "Events": [ + { + "LiteralName": "CALENDAR_ACTION_PENDING", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "pending" }], + "Type": "Event", + "Name": "CalendarActionPending" + }, + { + "LiteralName": "CALENDAR_CLOSE_EVENT", + "Type": "Event", + "Name": "CalendarCloseEvent" + }, + { + "LiteralName": "CALENDAR_EVENT_ALARM", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "title" }, + { "Nilable": false, "Type": "number", "Name": "hour" }, + { "Nilable": false, "Type": "number", "Name": "minute" } + ], + "Type": "Event", + "Name": "CalendarEventAlarm" + }, + { + "LiteralName": "CALENDAR_NEW_EVENT", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isCopy" }], + "Type": "Event", + "Name": "CalendarNewEvent" + }, + { + "LiteralName": "CALENDAR_OPEN_EVENT", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "calendarType" }], + "Type": "Event", + "Name": "CalendarOpenEvent" + }, + { + "LiteralName": "CALENDAR_UPDATE_ERROR", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "errorReason" }], + "Type": "Event", + "Name": "CalendarUpdateError" + }, + { + "LiteralName": "CALENDAR_UPDATE_ERROR_WITH_COUNT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "errorReason" }, + { "Nilable": false, "Type": "number", "Name": "count" } + ], + "Type": "Event", + "Name": "CalendarUpdateErrorWithCount" + }, + { + "LiteralName": "CALENDAR_UPDATE_ERROR_WITH_PLAYER_NAME", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "errorReason" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" } + ], + "Type": "Event", + "Name": "CalendarUpdateErrorWithPlayerName" + }, + { + "LiteralName": "CALENDAR_UPDATE_EVENT", + "Type": "Event", + "Name": "CalendarUpdateEvent" + }, + { + "LiteralName": "CALENDAR_UPDATE_EVENT_LIST", + "Type": "Event", + "Name": "CalendarUpdateEventList" + }, + { + "LiteralName": "CALENDAR_UPDATE_GUILD_EVENTS", + "Type": "Event", + "Name": "CalendarUpdateGuildEvents" + }, + { + "LiteralName": "CALENDAR_UPDATE_INVITE_LIST", + "Payload": [{ "Nilable": true, "Type": "bool", "Name": "hasCompleteList" }], + "Type": "Event", + "Name": "CalendarUpdateInviteList" + }, + { + "LiteralName": "CALENDAR_UPDATE_PENDING_INVITES", + "Type": "Event", + "Name": "CalendarUpdatePendingInvites" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "CalendarEventID", "Name": "eventID" }, + { "Nilable": false, "Type": "string", "Name": "title" }, + { "Nilable": false, "Type": "bool", "Name": "isCustomTitle" }, + { "Nilable": false, "Type": "CalendarTime", "Name": "startTime" }, + { "Nilable": false, "Type": "CalendarTime", "Name": "endTime" }, + { "Nilable": false, "Type": "cstring", "Name": "calendarType" }, + { "Nilable": false, "Type": "cstring", "Name": "sequenceType" }, + { "Nilable": false, "Type": "CalendarEventType", "Name": "eventType" }, + { "Nilable": true, "Type": "fileID", "Name": "iconTexture" }, + { "Nilable": false, "Type": "cstring", "Name": "modStatus" }, + { "Nilable": false, "Type": "CalendarStatus", "Name": "inviteStatus" }, + { "Nilable": false, "Type": "string", "Name": "invitedBy" }, + { "Nilable": false, "Type": "number", "Name": "difficulty" }, + { "Nilable": false, "Type": "CalendarInviteType", "Name": "inviteType" }, + { "Nilable": false, "Type": "luaIndex", "Name": "sequenceIndex" }, + { "Nilable": false, "Type": "number", "Name": "numSequenceDays" }, + { "Nilable": false, "Type": "cstring", "Name": "difficultyName" }, + { "Nilable": false, "Type": "bool", "Name": "dontDisplayBanner" }, + { "Nilable": false, "Type": "bool", "Name": "dontDisplayEnd" }, + { "Nilable": false, "Type": "ClubId", "Name": "clubID" }, + { "Nilable": false, "Type": "bool", "Name": "isLocked" } + ], + "Type": "Structure", + "Name": "CalendarDayEvent" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "offsetMonths" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" }, + { "Nilable": false, "Type": "luaIndex", "Name": "eventIndex" } + ], + "Type": "Structure", + "Name": "CalendarEventIndexInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "title" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": true, "Type": "string", "Name": "creator" }, + { "Nilable": false, "Type": "CalendarEventType", "Name": "eventType" }, + { + "Nilable": false, + "Type": "CalendarEventRepeatOptions", + "Name": "repeatOption" + }, + { "Nilable": false, "Type": "number", "Name": "maxSize" }, + { "Nilable": true, "Type": "luaIndex", "Name": "textureIndex" }, + { "Nilable": false, "Type": "CalendarTime", "Name": "time" }, + { "Nilable": false, "Type": "CalendarTime", "Name": "lockoutTime" }, + { "Nilable": false, "Type": "bool", "Name": "isLocked" }, + { "Nilable": false, "Type": "bool", "Name": "isAutoApprove" }, + { "Nilable": false, "Type": "bool", "Name": "hasPendingInvite" }, + { "Nilable": true, "Type": "CalendarStatus", "Name": "inviteStatus" }, + { "Nilable": true, "Type": "CalendarInviteType", "Name": "inviteType" }, + { "Nilable": false, "Type": "string", "Name": "calendarType" }, + { "Nilable": true, "Type": "string", "Name": "communityName" } + ], + "Type": "Structure", + "Name": "CalendarEventInfo" + }, + { + "Fields": [ + { "Nilable": true, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": true, "Type": "string", "Name": "className" }, + { "Nilable": true, "Type": "string", "Name": "classFilename" }, + { "Nilable": true, "Type": "CalendarStatus", "Name": "inviteStatus" }, + { "Nilable": true, "Type": "string", "Name": "modStatus" }, + { "Nilable": false, "Type": "bool", "Name": "inviteIsMine" }, + { "Nilable": false, "Type": "CalendarInviteType", "Name": "type" }, + { "Nilable": false, "Type": "string", "Name": "notes" }, + { "Nilable": true, "Type": "number", "Name": "classID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" } + ], + "Type": "Structure", + "Name": "CalendarEventInviteInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "CalendarStatus", "Name": "status" }, + { "Nilable": false, "Type": "string", "Name": "statusString" } + ], + "Type": "Structure", + "Name": "CalendarEventStatusOption" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "title" }, + { "Nilable": false, "Type": "fileID", "Name": "iconTexture" }, + { "Nilable": false, "Type": "number", "Name": "expansionLevel" }, + { "Nilable": true, "Type": "number", "Name": "difficultyId" }, + { "Nilable": true, "Type": "number", "Name": "mapId" }, + { "Nilable": true, "Type": "bool", "Name": "isLfr" } + ], + "Type": "Structure", + "Name": "CalendarEventTextureInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "displayString" }, + { "Nilable": false, "Type": "CalendarEventType", "Name": "eventType" } + ], + "Type": "Structure", + "Name": "CalendarEventTypeDisplayInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "CalendarEventID", "Name": "eventID" }, + { "Nilable": false, "Type": "number", "Name": "year" }, + { "Nilable": false, "Type": "luaIndex", "Name": "month" }, + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" }, + { "Nilable": false, "Type": "luaIndex", "Name": "weekday" }, + { "Nilable": false, "Type": "number", "Name": "hour" }, + { "Nilable": false, "Type": "number", "Name": "minute" }, + { "Nilable": false, "Type": "CalendarEventType", "Name": "eventType" }, + { "Nilable": false, "Type": "string", "Name": "title" }, + { "Nilable": false, "Type": "string", "Name": "calendarType" }, + { "Nilable": false, "Type": "fileID", "Name": "texture" }, + { "Nilable": false, "Type": "CalendarStatus", "Name": "inviteStatus" }, + { "Nilable": false, "Type": "ClubId", "Name": "clubID" } + ], + "Type": "Structure", + "Name": "CalendarGuildEventInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "minLevel" }, + { "Nilable": false, "Type": "number", "Name": "maxLevel" }, + { "Nilable": false, "Type": "number", "Name": "rank" } + ], + "Type": "Structure", + "Name": "CalendarGuildFilterInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "fileID", "Name": "texture" }, + { "Nilable": true, "Type": "CalendarTime", "Name": "startTime" }, + { "Nilable": true, "Type": "CalendarTime", "Name": "endTime" } + ], + "Type": "Structure", + "Name": "CalendarHolidayInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "luaIndex", "Name": "month" }, + { "Nilable": false, "Type": "number", "Name": "year" }, + { "Nilable": false, "Type": "number", "Name": "numDays" }, + { "Nilable": false, "Type": "luaIndex", "Name": "firstWeekday" } + ], + "Type": "Structure", + "Name": "CalendarMonthInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "calendarType" }, + { "Nilable": false, "Type": "number", "Name": "raidID" }, + { "Nilable": false, "Type": "CalendarTime", "Name": "time" }, + { "Nilable": false, "Type": "number", "Name": "difficulty" }, + { "Nilable": true, "Type": "string", "Name": "difficultyName" } + ], + "Type": "Structure", + "Name": "CalendarRaidInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "CameraModeAspectRatio", + "Fields": [ + { "EnumValue": 0, "Type": "CameraModeAspectRatio", "Name": "Default" }, + { "EnumValue": 1, "Type": "CameraModeAspectRatio", "Name": "LegacyLetterbox" }, + { + "EnumValue": 2, + "Type": "CameraModeAspectRatio", + "Name": "HighDefinition_16_X_9" + }, + { + "EnumValue": 3, + "Type": "CameraModeAspectRatio", + "Name": "Cinemascope_2_Dot_4_X_1" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "fieldOfViewDegreesDefault" }, + { "Nilable": false, "Type": "number", "Name": "fieldOfViewDegreesPlayerMin" }, + { "Nilable": false, "Type": "number", "Name": "fieldOfViewDegreesPlayerMax" } + ], + "Type": "Function", + "Name": "GetCameraFOVDefaults" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "posX" }, + { "Nilable": false, "Type": "number", "Name": "posY" }, + { "Nilable": false, "Type": "number", "Name": "posZ" }, + { "Nilable": false, "Type": "number", "Name": "lookAtX" }, + { "Nilable": false, "Type": "number", "Name": "lookAtY" }, + { "Nilable": false, "Type": "number", "Name": "lookAtZ" }, + { "Nilable": false, "Type": "number", "Name": "animID" }, + { "Nilable": false, "Type": "number", "Name": "animVariation" }, + { "Nilable": false, "Type": "number", "Name": "animFrame" }, + { "Nilable": false, "Type": "bool", "Name": "useModelCenter" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiCameraID" }], + "Type": "Function", + "Name": "GetUICameraInfo" + } + ], + "Type": "System", + "Name": "Camera", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_ChallengeMode", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canUse" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "CanUseKeystoneInCurrentMap" + }, + { "Type": "Function", "Name": "ClearKeystone" }, + { "Type": "Function", "Name": "CloseKeystoneFrame" }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "mapChallengeModeID" }], + "Type": "Function", + "Name": "GetActiveChallengeMapID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "activeKeystoneLevel" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "activeAffixIDs" + }, + { "Nilable": false, "Type": "bool", "Name": "wasActiveKeystoneCharged" } + ], + "Type": "Function", + "Name": "GetActiveKeystoneInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "filedataid" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "affixID" }], + "Type": "Function", + "Name": "GetAffixInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "mapChallengeModeID" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "number", "Name": "time" }, + { "Nilable": false, "Type": "bool", "Name": "onTime" }, + { "Nilable": false, "Type": "number", "Name": "keystoneUpgradeLevels" }, + { "Nilable": false, "Type": "bool", "Name": "practiceRun" }, + { "Nilable": true, "Type": "number", "Name": "oldOverallDungeonScore" }, + { "Nilable": true, "Type": "number", "Name": "newOverallDungeonScore" }, + { "Nilable": false, "Type": "bool", "Name": "IsMapRecord" }, + { "Nilable": false, "Type": "bool", "Name": "IsAffixRecord" }, + { "Nilable": false, "Type": "number", "Name": "PrimaryAffix" }, + { "Nilable": false, "Type": "bool", "Name": "isEligibleForScore" }, + { + "Nilable": false, + "InnerType": "ChallengeModeCompletionMemberInfo", + "Type": "table", + "Name": "members" + } + ], + "Type": "Function", + "Name": "GetCompletionInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numDeaths" }, + { "Nilable": false, "Type": "number", "Name": "timeLost" } + ], + "Type": "Function", + "Name": "GetDeathCount" + }, + { + "Documentation": [ + "Returns a color value from the passed in overall season M+ rating." + ], + "Type": "Function", + "Name": "GetDungeonScoreRarityColor", + "Returns": [ + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "scoreColor" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "dungeonScore" }] + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ChallengeModeGuildTopAttempt", + "Type": "table", + "Name": "topAttempt" + } + ], + "Type": "Function", + "Name": "GetGuildLeaders" + }, + { + "Documentation": ["Returns a color value from the passed in keystone level."], + "Type": "Function", + "Name": "GetKeystoneLevelRarityColor", + "Returns": [ + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "levelScore" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "level" }] + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "MythicPlusRatingLinkInfo", + "Type": "table", + "Name": "displayScores" + } + ], + "Type": "Function", + "Name": "GetMapScoreInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "mapChallengeModeIDs" + } + ], + "Type": "Function", + "Name": "GetMapTable" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "number", "Name": "timeLimit" }, + { "Nilable": true, "Type": "number", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "backgroundTexture" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "mapChallengeModeID" } + ], + "Type": "Function", + "Name": "GetMapUIInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "overallDungeonScore" } + ], + "Documentation": ["Gets the overall season mythic+ rating for the player."], + "Type": "Function", + "Name": "GetOverallDungeonScore" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "damageMod" }, + { "Nilable": false, "Type": "number", "Name": "healthMod" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "powerLevel" }], + "Type": "Function", + "Name": "GetPowerLevelDamageHealthMod" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "mapChallengeModeID" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "affixIDs" + }, + { "Nilable": false, "Type": "number", "Name": "keystoneLevel" } + ], + "Type": "Function", + "Name": "GetSlottedKeystoneInfo" + }, + { + "Documentation": [ + "Returns a color value from the passed in mythic+ rating from the combined affix scores for a specific dungeon" + ], + "Type": "Function", + "Name": "GetSpecificDungeonOverallScoreRarityColor", + "Returns": [ + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "specificDungeonOverallScoreColor" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "specificDungeonOverallScore" } + ] + }, + { + "Documentation": [ + "Returns a color value from the passed in mythic+ rating for a specific dungeon." + ], + "Type": "Function", + "Name": "GetSpecificDungeonScoreRarityColor", + "Returns": [ + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "specificDungeonScoreColor" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "specificDungeonScore" } + ] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasSlottedKeystone" }], + "Type": "Function", + "Name": "HasSlottedKeystone" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "challengeModeActive" }], + "Type": "Function", + "Name": "IsChallengeModeActive" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "removalSuccessful" }], + "Type": "Function", + "Name": "RemoveKeystone" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "mapChallengeModeID" } + ], + "Type": "Function", + "Name": "RequestLeaders" + }, + { "Type": "Function", "Name": "Reset" }, + { "Type": "Function", "Name": "SlotKeystone" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Type": "Function", + "Name": "StartChallengeMode" + } + ], + "Type": "System", + "Name": "ChallengeModeInfo", + "Events": [ + { + "LiteralName": "CHALLENGE_MODE_COMPLETED", + "Type": "Event", + "Name": "ChallengeModeCompleted" + }, + { + "LiteralName": "CHALLENGE_MODE_DEATH_COUNT_UPDATED", + "Type": "Event", + "Name": "ChallengeModeDeathCountUpdated" + }, + { + "LiteralName": "CHALLENGE_MODE_KEYSTONE_RECEPTABLE_OPEN", + "Type": "Event", + "Name": "ChallengeModeKeystoneReceptableOpen" + }, + { + "LiteralName": "CHALLENGE_MODE_KEYSTONE_SLOTTED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "keystoneID" }], + "Type": "Event", + "Name": "ChallengeModeKeystoneSlotted" + }, + { + "LiteralName": "CHALLENGE_MODE_LEADERS_UPDATE", + "Type": "Event", + "Name": "ChallengeModeLeadersUpdate" + }, + { + "LiteralName": "CHALLENGE_MODE_MAPS_UPDATE", + "Type": "Event", + "Name": "ChallengeModeMapsUpdate" + }, + { + "LiteralName": "CHALLENGE_MODE_MEMBER_INFO_UPDATED", + "Type": "Event", + "Name": "ChallengeModeMemberInfoUpdated" + }, + { + "LiteralName": "CHALLENGE_MODE_RESET", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "mapID" }], + "Type": "Event", + "Name": "ChallengeModeReset" + }, + { + "LiteralName": "CHALLENGE_MODE_START", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "mapID" }], + "Type": "Event", + "Name": "ChallengeModeStart" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "memberGUID" }, + { "Nilable": false, "Type": "string", "Name": "name" } + ], + "Type": "Structure", + "Name": "ChallengeModeCompletionMemberInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "classFileName" } + ], + "Type": "Structure", + "Name": "ChallengeModeGuildAttemptMember" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "classFileName" }, + { "Nilable": false, "Type": "number", "Name": "keystoneLevel" }, + { "Nilable": false, "Type": "number", "Name": "mapChallengeModeID" }, + { "Nilable": false, "Type": "bool", "Name": "isYou" }, + { + "Nilable": false, + "InnerType": "ChallengeModeGuildAttemptMember", + "Type": "table", + "Name": "members" + } + ], + "Type": "Structure", + "Name": "ChallengeModeGuildTopAttempt" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "CharCustomizationType", + "Fields": [ + { "EnumValue": 0, "Type": "CharCustomizationType", "Name": "Skin" }, + { "EnumValue": 1, "Type": "CharCustomizationType", "Name": "Face" }, + { "EnumValue": 2, "Type": "CharCustomizationType", "Name": "Hair" }, + { "EnumValue": 3, "Type": "CharCustomizationType", "Name": "HairColor" }, + { "EnumValue": 4, "Type": "CharCustomizationType", "Name": "FacialHair" }, + { + "EnumValue": 5, + "Type": "CharCustomizationType", + "Name": "CustomOptionTattoo" + }, + { "EnumValue": 6, "Type": "CharCustomizationType", "Name": "CustomOptionHorn" }, + { + "EnumValue": 7, + "Type": "CharCustomizationType", + "Name": "CustomOptionFacewear" + }, + { + "EnumValue": 8, + "Type": "CharCustomizationType", + "Name": "CustomOptionTattooColor" + }, + { "EnumValue": 9, "Type": "CharCustomizationType", "Name": "Outfit" }, + { "EnumValue": 10, "Type": "CharCustomizationType", "Name": "Facepaint" }, + { "EnumValue": 11, "Type": "CharCustomizationType", "Name": "FacepaintColor" } + ], + "MaxValue": 11, + "MinValue": 0, + "NumValues": 12 + }, + { + "Type": "Enumeration", + "Name": "ChrCustomizationCategoryFlag", + "Fields": [ + { + "EnumValue": 1, + "Type": "ChrCustomizationCategoryFlag", + "Name": "UndressModel" + }, + { + "EnumValue": 2, + "Type": "ChrCustomizationCategoryFlag", + "Name": "Subcategory" + } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "ChrCustomizationOptionType", + "Fields": [ + { "EnumValue": 0, "Type": "ChrCustomizationOptionType", "Name": "Dropdown" }, + { "EnumValue": 1, "Type": "ChrCustomizationOptionType", "Name": "Checkbox" }, + { "EnumValue": 2, "Type": "ChrCustomizationOptionType", "Name": "Slider" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ChrModelFeatureFlags", + "Fields": [ + { "EnumValue": 1, "Type": "ChrModelFeatureFlags", "Name": "Summons" }, + { "EnumValue": 2, "Type": "ChrModelFeatureFlags", "Name": "Forms" }, + { "EnumValue": 4, "Type": "ChrModelFeatureFlags", "Name": "Identity" }, + { "EnumValue": 8, "Type": "ChrModelFeatureFlags", "Name": "DragonCompanions" }, + { "EnumValue": 16, "Type": "ChrModelFeatureFlags", "Name": "Mounts" }, + { "EnumValue": 32, "Type": "ChrModelFeatureFlags", "Name": "HunterPets" } + ], + "MaxValue": 32, + "MinValue": 1, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "CustomizationScope", + "Fields": [ + { "EnumValue": 0, "Type": "CustomizationScope", "Name": "Player" }, + { "EnumValue": 1, "Type": "CustomizationScope", "Name": "DragonCompanion" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "icon" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "selectedIcon" }, + { "Nilable": false, "Type": "bool", "Name": "undressModel" }, + { "Nilable": false, "Type": "bool", "Name": "subcategory" }, + { "Nilable": false, "Type": "number", "Name": "cameraZoomLevel" }, + { "Nilable": false, "Type": "number", "Name": "cameraDistanceOffset" }, + { "Nilable": true, "Type": "number", "Name": "spellShapeshiftFormID" }, + { "Nilable": true, "Type": "number", "Name": "chrModelID" }, + { + "Nilable": false, + "InnerType": "CharCustomizationOption", + "Type": "table", + "Name": "options" + }, + { "Nilable": false, "Type": "bool", "Name": "hasNewChoices" }, + { "Nilable": false, "Type": "bool", "Name": "needsNativeFormCategory" } + ], + "Type": "Structure", + "Name": "CharCustomizationCategory" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "bool", "Name": "ineligibleChoice" }, + { "Nilable": false, "Type": "bool", "Name": "isNew" }, + { + "Nilable": true, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "swatchColor1" + }, + { + "Nilable": true, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "swatchColor2" + }, + { "Nilable": true, "Type": "number", "Name": "soundKit" }, + { "Nilable": false, "Type": "bool", "Name": "isLocked" }, + { "Nilable": true, "Type": "string", "Name": "lockedText" } + ], + "Type": "Structure", + "Name": "CharCustomizationChoice" + }, + { + "Values": [ + { + "Value": 0, + "Type": "CharCustomizationType", + "Name": "CHAR_CUSTOMIZE_CUSTOM_DISPLAY_OPTION_FIRST" + }, + { + "Value": 0, + "Type": "CharCustomizationType", + "Name": "CHAR_CUSTOMIZE_CUSTOM_DISPLAY_OPTION_LAST" + }, + { "Value": 1, "Type": "number", "Name": "NUM_CUSTOM_DISPLAY" } + ], + "Type": "Constants", + "Name": "CharCustomizationConstants" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { + "Nilable": false, + "Type": "ChrCustomizationOptionType", + "Name": "optionType" + }, + { + "Nilable": false, + "InnerType": "CharCustomizationChoice", + "Type": "table", + "Name": "choices" + }, + { "Nilable": true, "Type": "luaIndex", "Name": "currentChoiceIndex" }, + { "Nilable": false, "Type": "bool", "Name": "hasNewChoices" }, + { "Nilable": false, "Type": "bool", "Name": "isSound" } + ], + "Type": "Structure", + "Name": "CharCustomizationOption" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "WarbandEventState", + "Fields": [ + { "EnumValue": 0, "Type": "WarbandEventState", "Name": "None" }, + { "EnumValue": 1, "Type": "WarbandEventState", "Name": "DelayingEvent" }, + { "EnumValue": 2, "Type": "WarbandEventState", "Name": "SheathingWeapon" }, + { + "EnumValue": 3, + "Type": "WarbandEventState", + "Name": "DelayingStandStateTransition" + }, + { + "EnumValue": 4, + "Type": "WarbandEventState", + "Name": "StandStateTransitioning" + }, + { "EnumValue": 5, "Type": "WarbandEventState", "Name": "ShowingWeapon" }, + { "EnumValue": 6, "Type": "WarbandEventState", "Name": "StandStateLooping" }, + { "EnumValue": 7, "Type": "WarbandEventState", "Name": "NumWarbandEventStates" } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + }, + { + "Type": "Enumeration", + "Name": "WarbandGroupFlags", + "Fields": [ + { "EnumValue": 0, "Type": "WarbandGroupFlags", "Name": "None" }, + { "EnumValue": 1, "Type": "WarbandGroupFlags", "Name": "Collapsed" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "WarbandSceneAnimationEvent", + "Fields": [ + { + "EnumValue": 0, + "Type": "WarbandSceneAnimationEvent", + "Name": "StartingPose" + }, + { "EnumValue": 1, "Type": "WarbandSceneAnimationEvent", "Name": "Idle" }, + { "EnumValue": 2, "Type": "WarbandSceneAnimationEvent", "Name": "Mouseover" }, + { "EnumValue": 3, "Type": "WarbandSceneAnimationEvent", "Name": "Select" }, + { "EnumValue": 4, "Type": "WarbandSceneAnimationEvent", "Name": "Deselect" }, + { "EnumValue": 5, "Type": "WarbandSceneAnimationEvent", "Name": "Insert" }, + { "EnumValue": 6, "Type": "WarbandSceneAnimationEvent", "Name": "EnterWorld" }, + { "EnumValue": 7, "Type": "WarbandSceneAnimationEvent", "Name": "Spin" }, + { "EnumValue": 8, "Type": "WarbandSceneAnimationEvent", "Name": "Poke" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "WarbandSceneAnimationSheatheState", + "Fields": [ + { + "EnumValue": 0, + "Type": "WarbandSceneAnimationSheatheState", + "Name": "Maintain" + }, + { + "EnumValue": 1, + "Type": "WarbandSceneAnimationSheatheState", + "Name": "SheatheWeapons" + }, + { + "EnumValue": 2, + "Type": "WarbandSceneAnimationSheatheState", + "Name": "ShowWeapons" + } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "WarbandSceneAnimationStandState", + "Fields": [ + { + "EnumValue": 0, + "Type": "WarbandSceneAnimationStandState", + "Name": "Maintain" + }, + { "EnumValue": 1, "Type": "WarbandSceneAnimationStandState", "Name": "Stand" }, + { + "EnumValue": 2, + "Type": "WarbandSceneAnimationStandState", + "Name": "SitOnGround" + }, + { "EnumValue": 3, "Type": "WarbandSceneAnimationStandState", "Name": "Kneel" }, + { + "EnumValue": 4, + "Type": "WarbandSceneAnimationStandState", + "Name": "ReadyStance" + }, + { "EnumValue": 5, "Type": "WarbandSceneAnimationStandState", "Name": "Sleep" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "WarbandSceneSlotType", + "Fields": [ + { "EnumValue": 0, "Type": "WarbandSceneSlotType", "Name": "Character" }, + { "EnumValue": 1, "Type": "WarbandSceneSlotType", "Name": "Pet" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + } + ] + }, + { + "Namespace": "C_ChatBubbles", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ChatBubbleFrame", + "Type": "table", + "Name": "chatBubbles" + } + ], + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "includeForbidden" + } + ], + "Type": "Function", + "Name": "GetAllChatBubbles" + } + ], + "Type": "System", + "Name": "ChatBubbles", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ChatChannelRuleset", + "Fields": [ + { "EnumValue": 0, "Type": "ChatChannelRuleset", "Name": "None" }, + { "EnumValue": 1, "Type": "ChatChannelRuleset", "Name": "Mentor" }, + { "EnumValue": 2, "Type": "ChatChannelRuleset", "Name": "Disabled" }, + { + "EnumValue": 3, + "Type": "ChatChannelRuleset", + "Name": "ChromieTimeCataclysm" + }, + { + "EnumValue": 4, + "Type": "ChatChannelRuleset", + "Name": "ChromieTimeBuringCrusade" + }, + { "EnumValue": 5, "Type": "ChatChannelRuleset", "Name": "ChromieTimeWrath" }, + { "EnumValue": 6, "Type": "ChatChannelRuleset", "Name": "ChromieTimeMists" }, + { "EnumValue": 7, "Type": "ChatChannelRuleset", "Name": "ChromieTimeWoD" }, + { "EnumValue": 8, "Type": "ChatChannelRuleset", "Name": "ChromieTimeLegion" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "ChatChannelType", + "Fields": [ + { "EnumValue": 0, "Type": "ChatChannelType", "Name": "None" }, + { "EnumValue": 1, "Type": "ChatChannelType", "Name": "Custom" }, + { "EnumValue": 2, "Type": "ChatChannelType", "Name": "PrivateParty" }, + { "EnumValue": 3, "Type": "ChatChannelType", "Name": "PublicParty" }, + { "EnumValue": 4, "Type": "ChatChannelType", "Name": "Communities" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "ChatToxityFilterOptOut", + "Fields": [ + { "EnumValue": 0, "Type": "ChatToxityFilterOptOut", "Name": "FilterAll" }, + { + "EnumValue": 1, + "Type": "ChatToxityFilterOptOut", + "Name": "ExcludeFilterFriend" + }, + { + "EnumValue": 2, + "Type": "ChatToxityFilterOptOut", + "Name": "ExcludeFilterGuild" + }, + { + "EnumValue": 4294967295, + "Type": "ChatToxityFilterOptOut", + "Name": "ExcludeFilterAll" + } + ], + "MaxValue": 4294967295, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ChatWhisperTargetStatus", + "Fields": [ + { "EnumValue": 0, "Type": "ChatWhisperTargetStatus", "Name": "CanWhisper" }, + { + "EnumValue": 1, + "Type": "ChatWhisperTargetStatus", + "Name": "CanWhisperGuild" + }, + { "EnumValue": 2, "Type": "ChatWhisperTargetStatus", "Name": "Offline" }, + { "EnumValue": 3, "Type": "ChatWhisperTargetStatus", "Name": "WrongFaction" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ExcludedCensorSources", + "Fields": [ + { "EnumValue": 0, "Type": "ExcludedCensorSources", "Name": "None" }, + { "EnumValue": 1, "Type": "ExcludedCensorSources", "Name": "Friends" }, + { "EnumValue": 2, "Type": "ExcludedCensorSources", "Name": "Guild" }, + { "EnumValue": 4, "Type": "ExcludedCensorSources", "Name": "Reserve1" }, + { "EnumValue": 8, "Type": "ExcludedCensorSources", "Name": "Reserve2" }, + { "EnumValue": 16, "Type": "ExcludedCensorSources", "Name": "Reserve3" }, + { "EnumValue": 32, "Type": "ExcludedCensorSources", "Name": "Reserve4" }, + { "EnumValue": 64, "Type": "ExcludedCensorSources", "Name": "Reserve5" }, + { "EnumValue": 128, "Type": "ExcludedCensorSources", "Name": "Reserve6" }, + { "EnumValue": 255, "Type": "ExcludedCensorSources", "Name": "All" } + ], + "MaxValue": 255, + "MinValue": 0, + "NumValues": 10 + }, + { + "Type": "Enumeration", + "Name": "LanguageFlag", + "Fields": [ + { "EnumValue": 1, "Type": "LanguageFlag", "Name": "IsExotic" }, + { "EnumValue": 2, "Type": "LanguageFlag", "Name": "HiddenFromPlayer" }, + { "EnumValue": 4, "Type": "LanguageFlag", "Name": "HideLanguageNameInChat" } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "PermanentChatChannelType", + "Fields": [ + { "EnumValue": 0, "Type": "PermanentChatChannelType", "Name": "None" }, + { "EnumValue": 1, "Type": "PermanentChatChannelType", "Name": "Zone" }, + { "EnumValue": 2, "Type": "PermanentChatChannelType", "Name": "Communities" }, + { "EnumValue": 3, "Type": "PermanentChatChannelType", "Name": "Custom" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "TtsBoolSetting", + "Fields": [ + { + "EnumValue": 0, + "Type": "TtsBoolSetting", + "Name": "PlaySoundSeparatingChatLineBreaks" + }, + { + "EnumValue": 1, + "Type": "TtsBoolSetting", + "Name": "AddCharacterNameToSpeech" + }, + { + "EnumValue": 2, + "Type": "TtsBoolSetting", + "Name": "PlayActivitySoundWhenNotFocused" + }, + { "EnumValue": 3, "Type": "TtsBoolSetting", "Name": "AlternateSystemVoice" }, + { "EnumValue": 4, "Type": "TtsBoolSetting", "Name": "NarrateMyMessages" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "TtsVoiceType", + "Fields": [ + { "EnumValue": 0, "Type": "TtsVoiceType", "Name": "Standard" }, + { "EnumValue": 1, "Type": "TtsVoiceType", "Name": "Alternate" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "shortcut" }, + { "Nilable": false, "Type": "number", "Name": "localID" }, + { "Nilable": false, "Type": "number", "Name": "instanceID" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "PermanentChatChannelType", "Name": "channelType" } + ], + "Type": "Structure", + "Name": "ChatChannelInfo" + } + ] + }, + { + "Namespace": "C_ChatInfo", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canSpeakLanguage" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "languageId" }], + "Type": "Function", + "Name": "CanPlayerSpeakLanguage" + }, + { + "Returns": [{ "Nilable": true, "Type": "ChatChannelInfo", "Name": "info" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "channelIdentifier" } + ], + "Type": "Function", + "Name": "GetChannelInfoFromIdentifier" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "bool", "Name": "owner" }, + { "Nilable": false, "Type": "bool", "Name": "moderator" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "channelIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "rosterIndex" } + ], + "Type": "Function", + "Name": "GetChannelRosterInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ChatChannelRuleset", "Name": "ruleset" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "channelIndex" }], + "Type": "Function", + "Name": "GetChannelRuleset" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ChatChannelRuleset", "Name": "ruleset" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "GetChannelRulesetForChannelID" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "shortcut" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "channelIndex" }], + "Type": "Function", + "Name": "GetChannelShortcut" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "shortcut" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "GetChannelShortcutForChannelID" + }, + { + "Returns": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "chatLine" }], + "Type": "Function", + "Name": "GetChatLineSenderGUID" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "name" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "chatLine" }], + "Type": "Function", + "Name": "GetChatLineSenderName" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "text" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "chatLine" }], + "Type": "Function", + "Name": "GetChatLineText" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "name" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "typeID" }], + "Type": "Function", + "Name": "GetChatTypeName" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubStreamId", + "Type": "table", + "Name": "ids" + } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubID" }], + "Type": "Function", + "Name": "GetClubStreamIDs" + }, + { + "Returns": [ + { "Nilable": true, "Mixin": "ColorMixin", "Type": "colorRGB", "Name": "color" } + ], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "chatType" }], + "Type": "Function", + "Name": "GetColorForChatType" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "GetGeneralChannelID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "localID" }], + "Type": "Function", + "Name": "GetGeneralChannelLocalID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "GetMentorChannelID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numChannels" }], + "Type": "Function", + "Name": "GetNumActiveChannels" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numReserved" }], + "Type": "Function", + "Name": "GetNumReservedChatWindows" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "cstring", + "Type": "table", + "Name": "registeredPrefixes" + } + ], + "Type": "Function", + "Name": "GetRegisteredAddonMessagePrefixes" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRegistered" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "prefix" }], + "Type": "Function", + "Name": "IsAddonMessagePrefixRegistered" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRegional" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "channelIndex" }], + "Type": "Function", + "Name": "IsChannelRegional" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRegional" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "IsChannelRegionalForChannelID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCensored" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "chatLine" }], + "Type": "Function", + "Name": "IsChatLineCensored" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPartyChannelType" }], + "Arguments": [ + { "Nilable": false, "Type": "ChatChannelType", "Name": "channelType" } + ], + "Type": "Function", + "Name": "IsPartyChannelType" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "available" }], + "Type": "Function", + "Name": "IsRegionalServiceAvailable" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTimerunning" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "playerGUID" }], + "Type": "Function", + "Name": "IsTimerunningPlayer" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isValid" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "chatLine" }], + "Type": "Function", + "Name": "IsValidChatLine" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isApproved" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "IsValidCombatFilterName" + }, + { + "Documentation": [ + "Registers interest in addon messages with this prefix, cannot be an empty string." + ], + "Type": "Function", + "Name": "RegisterAddonMessagePrefix", + "Returns": [ + { + "Nilable": false, + "Type": "RegisterAddonMessagePrefixResult", + "Name": "result" + } + ], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "prefix" }] + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "output" }], + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "input" }, + { "Nilable": true, "Type": "bool", "Name": "noIconReplacement" }, + { "Nilable": true, "Type": "bool", "Name": "noGroupReplacement" } + ], + "Type": "Function", + "Name": "ReplaceIconAndGroupExpressions" + }, + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "whisperTarget" }], + "Type": "Function", + "Name": "RequestCanLocalWhisperTarget" + }, + { "Type": "Function", "Name": "ResetDefaultZoneChannels" }, + { + "Documentation": [ + "Sends a text payload to other clients specified by chatChannel and target which are registered to listen for prefix." + ], + "Type": "Function", + "Name": "SendAddonMessage", + "Returns": [ + { "Nilable": false, "Type": "SendAddonMessageResult", "Name": "result" } + ], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "prefix" }, + { "Nilable": false, "Type": "cstring", "Name": "message" }, + { + "Nilable": true, + "Documentation": ["ChatType, defaults to SLASH_CMD_PARTY."], + "Type": "cstring", + "Name": "chatType" + }, + { + "Nilable": true, + "Documentation": ["Only applies for targeted channels"], + "Type": "cstring", + "Name": "target" + } + ] + }, + { + "Documentation": [ + "Sends a text payload to other clients specified by chatChannel and target which are registered to listen for prefix. Intended for plain text payloads; logged and throttled." + ], + "Type": "Function", + "Name": "SendAddonMessageLogged", + "Returns": [ + { "Nilable": true, "Type": "SendAddonMessageResult", "Name": "result" } + ], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "prefix" }, + { "Nilable": false, "Type": "cstring", "Name": "message" }, + { + "Nilable": true, + "Documentation": ["ChatType, defaults to SLASH_CMD_PARTY."], + "Type": "cstring", + "Name": "chatType" + }, + { + "Nilable": true, + "Documentation": ["Only applies for targeted channels"], + "Type": "cstring", + "Name": "target" + } + ] + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "firstChannelIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "secondChannelIndex" } + ], + "Type": "Function", + "Name": "SwapChatChannelsByChannelIndex" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "chatLine" }], + "Type": "Function", + "Name": "UncensorChatLine" + } + ], + "Type": "System", + "Name": "ChatInfo", + "Events": [ + { + "LiteralName": "ALTERNATIVE_DEFAULT_LANGUAGE_CHANGED", + "Type": "Event", + "Name": "AlternativeDefaultLanguageChanged" + }, + { + "LiteralName": "BN_CHAT_MSG_ADDON", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "prefix" }, + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "channel" }, + { "Nilable": false, "Type": "number", "Name": "senderID" } + ], + "Type": "Event", + "Name": "BnChatMsgAddon" + }, + { + "LiteralName": "CAN_LOCAL_WHISPER_TARGET_RESPONSE", + "Payload": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "whisperTarget" }, + { "Nilable": false, "Type": "ChatWhisperTargetStatus", "Name": "status" } + ], + "Type": "Event", + "Name": "CanLocalWhisperTargetResponse" + }, + { + "LiteralName": "CAN_PLAYER_SPEAK_LANGUAGE_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "languageId" }, + { "Nilable": false, "Type": "bool", "Name": "canSpeakLanguage" } + ], + "Type": "Event", + "Name": "CanPlayerSpeakLanguageChanged" + }, + { + "LiteralName": "CHANNEL_COUNT_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "displayIndex" }, + { "Nilable": false, "Type": "number", "Name": "count" } + ], + "Type": "Event", + "Name": "ChannelCountUpdate" + }, + { + "LiteralName": "CHANNEL_FLAGS_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "displayIndex" }], + "Type": "Event", + "Name": "ChannelFlagsUpdated" + }, + { + "LiteralName": "CHANNEL_INVITE_REQUEST", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "channelID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" } + ], + "Type": "Event", + "Name": "ChannelInviteRequest" + }, + { + "LiteralName": "CHANNEL_LEFT", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "chatChannelID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" } + ], + "Type": "Event", + "Name": "ChannelLeft" + }, + { + "LiteralName": "CHANNEL_PASSWORD_REQUEST", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "channelID" }], + "Type": "Event", + "Name": "ChannelPasswordRequest" + }, + { + "LiteralName": "CHANNEL_ROSTER_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "displayIndex" }, + { "Nilable": false, "Type": "number", "Name": "count" } + ], + "Type": "Event", + "Name": "ChannelRosterUpdate" + }, + { "LiteralName": "CHANNEL_UI_UPDATE", "Type": "Event", "Name": "ChannelUiUpdate" }, + { + "LiteralName": "CHAT_COMBAT_MSG_ARENA_POINTS_GAIN", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatCombatMsgArenaPointsGain" + }, + { + "LiteralName": "CHAT_MSG_ACHIEVEMENT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgAchievement" + }, + { + "LiteralName": "CHAT_MSG_ADDON", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "prefix" }, + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "channel" }, + { "Nilable": false, "Type": "cstring", "Name": "sender" }, + { "Nilable": false, "Type": "cstring", "Name": "target" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "localID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "instanceID" } + ], + "Type": "Event", + "Name": "ChatMsgAddon" + }, + { + "LiteralName": "CHAT_MSG_ADDON_LOGGED", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "prefix" }, + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "channel" }, + { "Nilable": false, "Type": "cstring", "Name": "sender" }, + { "Nilable": false, "Type": "cstring", "Name": "target" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "localID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "instanceID" } + ], + "Type": "Event", + "Name": "ChatMsgAddonLogged" + }, + { + "LiteralName": "CHAT_MSG_AFK", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgAfk" + }, + { + "LiteralName": "CHAT_MSG_BG_SYSTEM_ALLIANCE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgBgSystemAlliance" + }, + { + "LiteralName": "CHAT_MSG_BG_SYSTEM_HORDE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgBgSystemHorde" + }, + { + "LiteralName": "CHAT_MSG_BG_SYSTEM_NEUTRAL", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgBgSystemNeutral" + }, + { + "LiteralName": "CHAT_MSG_BN", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgBn" + }, + { + "LiteralName": "CHAT_MSG_BN_INLINE_TOAST_ALERT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgBnInlineToastAlert" + }, + { + "LiteralName": "CHAT_MSG_BN_INLINE_TOAST_BROADCAST", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgBnInlineToastBroadcast" + }, + { + "LiteralName": "CHAT_MSG_BN_INLINE_TOAST_BROADCAST_INFORM", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgBnInlineToastBroadcastInform" + }, + { + "LiteralName": "CHAT_MSG_BN_INLINE_TOAST_CONVERSATION", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgBnInlineToastConversation" + }, + { + "LiteralName": "CHAT_MSG_BN_WHISPER", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgBnWhisper" + }, + { + "LiteralName": "CHAT_MSG_BN_WHISPER_INFORM", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgBnWhisperInform" + }, + { + "LiteralName": "CHAT_MSG_BN_WHISPER_PLAYER_OFFLINE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgBnWhisperPlayerOffline" + }, + { + "LiteralName": "CHAT_MSG_CHANNEL", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgChannel" + }, + { + "LiteralName": "CHAT_MSG_CHANNEL_JOIN", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgChannelJoin" + }, + { + "LiteralName": "CHAT_MSG_CHANNEL_LEAVE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgChannelLeave" + }, + { + "LiteralName": "CHAT_MSG_CHANNEL_LEAVE_PREVENTED", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "channelName" }], + "Type": "Event", + "Name": "ChatMsgChannelLeavePrevented" + }, + { + "LiteralName": "CHAT_MSG_CHANNEL_LIST", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgChannelList" + }, + { + "LiteralName": "CHAT_MSG_CHANNEL_NOTICE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgChannelNotice" + }, + { + "LiteralName": "CHAT_MSG_CHANNEL_NOTICE_USER", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgChannelNoticeUser" + }, + { + "LiteralName": "CHAT_MSG_COMBAT_FACTION_CHANGE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgCombatFactionChange" + }, + { + "LiteralName": "CHAT_MSG_COMBAT_HONOR_GAIN", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgCombatHonorGain" + }, + { + "LiteralName": "CHAT_MSG_COMBAT_MISC_INFO", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgCombatMiscInfo" + }, + { + "LiteralName": "CHAT_MSG_COMBAT_XP_GAIN", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgCombatXpGain" + }, + { + "LiteralName": "CHAT_MSG_COMMUNITIES_CHANNEL", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgCommunitiesChannel" + }, + { + "LiteralName": "CHAT_MSG_CURRENCY", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgCurrency" + }, + { + "LiteralName": "CHAT_MSG_DND", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgDnd" + }, + { + "LiteralName": "CHAT_MSG_EMOTE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgEmote" + }, + { + "LiteralName": "CHAT_MSG_FILTERED", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgFiltered" + }, + { + "LiteralName": "CHAT_MSG_GUILD", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgGuild" + }, + { + "LiteralName": "CHAT_MSG_GUILD_ACHIEVEMENT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgGuildAchievement" + }, + { + "LiteralName": "CHAT_MSG_GUILD_ITEM_LOOTED", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgGuildItemLooted" + }, + { + "LiteralName": "CHAT_MSG_IGNORED", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgIgnored" + }, + { + "LiteralName": "CHAT_MSG_INSTANCE_CHAT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgInstanceChat" + }, + { + "LiteralName": "CHAT_MSG_INSTANCE_CHAT_LEADER", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgInstanceChatLeader" + }, + { + "LiteralName": "CHAT_MSG_LOOT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgLoot" + }, + { + "LiteralName": "CHAT_MSG_MONEY", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgMoney" + }, + { + "LiteralName": "CHAT_MSG_MONSTER_EMOTE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgMonsterEmote" + }, + { + "LiteralName": "CHAT_MSG_MONSTER_PARTY", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgMonsterParty" + }, + { + "LiteralName": "CHAT_MSG_MONSTER_SAY", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgMonsterSay" + }, + { + "LiteralName": "CHAT_MSG_MONSTER_WHISPER", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgMonsterWhisper" + }, + { + "LiteralName": "CHAT_MSG_MONSTER_YELL", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgMonsterYell" + }, + { + "LiteralName": "CHAT_MSG_OFFICER", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgOfficer" + }, + { + "LiteralName": "CHAT_MSG_OPENING", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgOpening" + }, + { + "LiteralName": "CHAT_MSG_PARTY", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgParty" + }, + { + "LiteralName": "CHAT_MSG_PARTY_LEADER", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgPartyLeader" + }, + { + "LiteralName": "CHAT_MSG_PET_BATTLE_COMBAT_LOG", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgPetBattleCombatLog" + }, + { + "LiteralName": "CHAT_MSG_PET_BATTLE_INFO", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgPetBattleInfo" + }, + { + "LiteralName": "CHAT_MSG_PET_INFO", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgPetInfo" + }, + { + "LiteralName": "CHAT_MSG_PING", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgPing" + }, + { + "LiteralName": "CHAT_MSG_RAID", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgRaid" + }, + { + "LiteralName": "CHAT_MSG_RAID_BOSS_EMOTE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgRaidBossEmote" + }, + { + "LiteralName": "CHAT_MSG_RAID_BOSS_WHISPER", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgRaidBossWhisper" + }, + { + "LiteralName": "CHAT_MSG_RAID_LEADER", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgRaidLeader" + }, + { + "LiteralName": "CHAT_MSG_RAID_WARNING", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgRaidWarning" + }, + { + "LiteralName": "CHAT_MSG_RESTRICTED", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgRestricted" + }, + { + "LiteralName": "CHAT_MSG_SAY", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgSay" + }, + { + "LiteralName": "CHAT_MSG_SKILL", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgSkill" + }, + { + "LiteralName": "CHAT_MSG_SYSTEM", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgSystem" + }, + { + "LiteralName": "CHAT_MSG_TARGETICONS", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgTargeticons" + }, + { + "LiteralName": "CHAT_MSG_TEXT_EMOTE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgTextEmote" + }, + { + "LiteralName": "CHAT_MSG_TRADESKILLS", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgTradeskills" + }, + { + "LiteralName": "CHAT_MSG_VOICE_TEXT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgVoiceText" + }, + { + "LiteralName": "CHAT_MSG_WHISPER", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgWhisper" + }, + { + "LiteralName": "CHAT_MSG_WHISPER_INFORM", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgWhisperInform" + }, + { + "LiteralName": "CHAT_MSG_YELL", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "cstring", "Name": "languageName" }, + { "Nilable": false, "Type": "cstring", "Name": "channelName" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName2" }, + { "Nilable": false, "Type": "cstring", "Name": "specialFlags" }, + { "Nilable": false, "Type": "number", "Name": "zoneChannelID" }, + { "Nilable": false, "Type": "number", "Name": "channelIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "channelBaseName" }, + { "Nilable": false, "Type": "number", "Name": "languageID" }, + { "Nilable": false, "Type": "number", "Name": "lineID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "bnSenderID" }, + { "Nilable": false, "Type": "bool", "Name": "isMobile" }, + { "Nilable": false, "Type": "bool", "Name": "isSubtitle" }, + { "Nilable": false, "Type": "bool", "Name": "hideSenderInLetterbox" }, + { "Nilable": false, "Type": "bool", "Name": "supressRaidIcons" } + ], + "Type": "Event", + "Name": "ChatMsgYell" + }, + { + "LiteralName": "CHAT_REGIONAL_SEND_FAILED", + "Type": "Event", + "Name": "ChatRegionalSendFailed" + }, + { + "LiteralName": "CHAT_REGIONAL_STATUS_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isServiceAvailable" }], + "Type": "Event", + "Name": "ChatRegionalStatusChanged" + }, + { + "LiteralName": "CHAT_SERVER_DISCONNECTED", + "Payload": [{ "Nilable": true, "Type": "bool", "Name": "isInitialMessage" }], + "Type": "Event", + "Name": "ChatServerDisconnected" + }, + { + "LiteralName": "CHAT_SERVER_RECONNECTED", + "Type": "Event", + "Name": "ChatServerReconnected" + }, + { "LiteralName": "CLEAR_BOSS_EMOTES", "Type": "Event", "Name": "ClearBossEmotes" }, + { + "LiteralName": "DAILY_RESET_INSTANCE_WELCOME", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "mapname" }, + { "Nilable": false, "Type": "number", "Name": "timeLeft" } + ], + "Type": "Event", + "Name": "DailyResetInstanceWelcome" + }, + { + "LiteralName": "INSTANCE_RESET_WARNING", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "warningMessage" }, + { "Nilable": false, "Type": "number", "Name": "timeLeft" } + ], + "Type": "Event", + "Name": "InstanceResetWarning" + }, + { + "LiteralName": "LANGUAGE_LIST_CHANGED", + "Type": "Event", + "Name": "LanguageListChanged" + }, + { + "LiteralName": "NOTIFY_CHAT_SUPPRESSED", + "Type": "Event", + "Name": "NotifyChatSuppressed" + }, + { + "LiteralName": "QUEST_BOSS_EMOTE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "number", "Name": "displayTime" }, + { "Nilable": false, "Type": "bool", "Name": "enableBossEmoteWarningSound" } + ], + "Type": "Event", + "Name": "QuestBossEmote" + }, + { + "LiteralName": "RAID_BOSS_EMOTE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "number", "Name": "displayTime" }, + { "Nilable": false, "Type": "bool", "Name": "enableBossEmoteWarningSound" } + ], + "Type": "Event", + "Name": "RaidBossEmote" + }, + { + "LiteralName": "RAID_BOSS_WHISPER", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "playerName" }, + { "Nilable": false, "Type": "number", "Name": "displayTime" }, + { "Nilable": false, "Type": "bool", "Name": "enableBossEmoteWarningSound" } + ], + "Type": "Event", + "Name": "RaidBossWhisper" + }, + { + "LiteralName": "RAID_INSTANCE_WELCOME", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "mapname" }, + { "Nilable": false, "Type": "number", "Name": "timeLeft" }, + { "Nilable": false, "Type": "number", "Name": "locked" }, + { "Nilable": false, "Type": "number", "Name": "extended" } + ], + "Type": "Event", + "Name": "RaidInstanceWelcome" + }, + { + "LiteralName": "UPDATE_CHAT_COLOR", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "r" }, + { "Nilable": false, "Type": "number", "Name": "g" }, + { "Nilable": false, "Type": "number", "Name": "b" } + ], + "Type": "Event", + "Name": "UpdateChatColor" + }, + { + "LiteralName": "UPDATE_CHAT_COLOR_NAME_BY_CLASS", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "bool", "Name": "colorNameByClass" } + ], + "Type": "Event", + "Name": "UpdateChatColorNameByClass" + }, + { + "LiteralName": "UPDATE_CHAT_WINDOWS", + "Type": "Event", + "Name": "UpdateChatWindows" + }, + { + "LiteralName": "UPDATE_FLOATING_CHAT_WINDOWS", + "Type": "Event", + "Name": "UpdateFloatingChatWindows" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "RegisterAddonMessagePrefixResult", + "Fields": [ + { + "EnumValue": 0, + "Type": "RegisterAddonMessagePrefixResult", + "Name": "Success" + }, + { + "EnumValue": 1, + "Type": "RegisterAddonMessagePrefixResult", + "Name": "DuplicatePrefix" + }, + { + "EnumValue": 2, + "Type": "RegisterAddonMessagePrefixResult", + "Name": "InvalidPrefix" + }, + { + "EnumValue": 3, + "Type": "RegisterAddonMessagePrefixResult", + "Name": "MaxPrefixes" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "SendAddonMessageResult", + "Fields": [ + { "EnumValue": 0, "Type": "SendAddonMessageResult", "Name": "Success" }, + { "EnumValue": 1, "Type": "SendAddonMessageResult", "Name": "InvalidPrefix" }, + { "EnumValue": 2, "Type": "SendAddonMessageResult", "Name": "InvalidMessage" }, + { + "EnumValue": 3, + "Type": "SendAddonMessageResult", + "Name": "AddonMessageThrottle" + }, + { "EnumValue": 4, "Type": "SendAddonMessageResult", "Name": "InvalidChatType" }, + { "EnumValue": 5, "Type": "SendAddonMessageResult", "Name": "NotInGroup" }, + { "EnumValue": 6, "Type": "SendAddonMessageResult", "Name": "TargetRequired" }, + { "EnumValue": 7, "Type": "SendAddonMessageResult", "Name": "InvalidChannel" }, + { "EnumValue": 8, "Type": "SendAddonMessageResult", "Name": "ChannelThrottle" }, + { "EnumValue": 9, "Type": "SendAddonMessageResult", "Name": "GeneralError" } + ], + "MaxValue": 9, + "MinValue": 0, + "NumValues": 10 + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "prefix" }, + { "Nilable": false, "Type": "cstring", "Name": "message" }, + { + "Nilable": true, + "Documentation": ["ChatType, defaults to SLASH_CMD_PARTY."], + "Type": "cstring", + "Name": "chatType" + }, + { + "Nilable": true, + "Documentation": ["Only applies for targeted channels"], + "Type": "cstring", + "Name": "target" + } + ], + "Type": "Structure", + "Name": "AddonMessageParams" + } + ] + }, + { + "Namespace": "C_ChromieTime", + "Functions": [ + { "Type": "Function", "Name": "CloseUI" }, + { + "Returns": [ + { "Nilable": true, "Type": "ChromieTimeExpansionInfo", "Name": "info" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "expansionRecID" }], + "Type": "Function", + "Name": "GetChromieTimeExpansionOption" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ChromieTimeExpansionInfo", + "Type": "table", + "Name": "expansionOptions" + } + ], + "Type": "Function", + "Name": "GetChromieTimeExpansionOptions" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "chromieTimeExpansionInfoId" } + ], + "Type": "Function", + "Name": "SelectChromieTimeOption" + } + ], + "Type": "System", + "Name": "ChromieTimeInfo", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "mapAtlas" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "previewAtlas" }, + { "Nilable": false, "Type": "bool", "Name": "completed" }, + { "Nilable": false, "Type": "bool", "Name": "alreadyOn" }, + { "Nilable": false, "Type": "bool", "Name": "recommended" }, + { "Nilable": false, "Type": "number", "Name": "sortPriority" } + ], + "Type": "Structure", + "Name": "ChromieTimeExpansionInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "CinematicType", + "Fields": [ + { "EnumValue": 0, "Type": "CinematicType", "Name": "GlueMovie" }, + { "EnumValue": 1, "Type": "CinematicType", "Name": "GameMovie" }, + { "EnumValue": 2, "Type": "CinematicType", "Name": "GameClientScene" }, + { "EnumValue": 3, "Type": "CinematicType", "Name": "GameCinematicSequence" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "CinematicType", "Name": "movieType" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "userCanceled" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "didError" } + ], + "Type": "Function", + "Name": "CinematicFinished" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "CinematicType", "Name": "movieType" }, + { "Nilable": false, "Type": "number", "Name": "movieID" }, + { "Nilable": false, "Default": true, "Type": "bool", "Name": "canCancel" } + ], + "Type": "Function", + "Name": "CinematicStarted" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "inCinematic" }], + "Type": "Function", + "Name": "InCinematic" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "doOverride" } + ], + "Type": "Function", + "Name": "MouseOverrideCinematicDisable" + }, + { "Type": "Function", "Name": "OpeningCinematic" }, + { "Type": "Function", "Name": "StopCinematic" } + ], + "Type": "System", + "Name": "Cinematic", + "Events": [ + { + "LiteralName": "CINEMATIC_START", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "canBeCancelled" }, + { + "Nilable": false, + "Type": "CameraModeAspectRatio", + "Name": "forcedAspectRatio" + } + ], + "Type": "Event", + "Name": "CinematicStart" + }, + { "LiteralName": "CINEMATIC_STOP", "Type": "Event", "Name": "CinematicStop" }, + { "LiteralName": "HIDE_SUBTITLE", "Type": "Event", "Name": "HideSubtitle" }, + { + "LiteralName": "PLAY_MOVIE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "movieID" }], + "Type": "Event", + "Name": "PlayMovie" + }, + { + "LiteralName": "SHOW_SUBTITLE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "subtitle" }, + { "Nilable": true, "Type": "cstring", "Name": "sender" } + ], + "Type": "Event", + "Name": "ShowSubtitle" + }, + { "LiteralName": "STOP_MOVIE", "Type": "Event", "Name": "StopMovie" } + ], + "Tables": [] + }, + { + "Namespace": "C_ClassColor", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "classColor" + } + ], + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "className" }], + "Type": "Function", + "Name": "GetClassColor" + } + ], + "Type": "System", + "Name": "ClassColor", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_ClassTalents", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canChange" }, + { "Nilable": false, "Type": "bool", "Name": "canAdd" }, + { "Nilable": true, "Type": "string", "Name": "changeError" } + ], + "Documentation": [ + "Returns true only if the player has staged changes and can commit their talents in their current state." + ], + "Type": "Function", + "Name": "CanChangeTalents" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canCreate" }], + "Type": "Function", + "Name": "CanCreateNewConfig" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canEdit" }, + { "Nilable": false, "Type": "cstring", "Name": "changeError" } + ], + "Documentation": [ + "Returns true if the player could switch talents if they staged a proper loadout." + ], + "Type": "Function", + "Name": "CanEditTalents" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "savedConfigID" }], + "Type": "Function", + "Name": "CommitConfig" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Function", + "Name": "DeleteConfig" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "activeConfigID" }], + "Type": "Function", + "Name": "GetActiveConfigID" + }, + { + "Returns": [ + { + "Nilable": true, + "Documentation": [ + "SubTreeID of the player's active Hero Talent Specialization or nil if no Specialization is active." + ], + "Type": "number", + "Name": "heroSpecID" + } + ], + "Documentation": [ + "Returns the SubTreeID of the player's active Hero Talent Specialization SubTree." + ], + "Type": "Function", + "Name": "GetActiveHeroTalentSpec" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "configIDs" + } + ], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "specID" }], + "Type": "Function", + "Name": "GetConfigIDsBySpecID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasStarterBuild" }], + "Type": "Function", + "Name": "GetHasStarterBuild" + }, + { + "Documentation": [ + "Returns the SubTreeIDs of the Hero Talent Specializations available to a Class Specialization and config; Returns nothing if none available" + ], + "Type": "Function", + "Name": "GetHeroTalentSpecsForClassSpec", + "Returns": [ + { + "Documentation": ["SubTreeIDs of each Hero Talent Specialization"], + "Type": "table", + "Name": "subTreeIDs", + "Nilable": true, + "InnerType": "number" + }, + { + "Nilable": true, + "Documentation": [ + "The player level at which one of the Hero Talent Specializations can be activated" + ], + "Type": "number", + "Name": "requiredPlayerLevel" + } + ], + "Arguments": [ + { + "Nilable": true, + "Documentation": ["If not supplied, defaults to the player's active config"], + "Type": "number", + "Name": "configID" + }, + { + "Nilable": true, + "Documentation": ["If not supplied, defaults to the player's active spec"], + "Type": "number", + "Name": "classSpecID" + } + ] + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "configID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "specID" }], + "Type": "Function", + "Name": "GetLastSelectedSavedConfigID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "nodeID" }, + { "Nilable": true, "Type": "number", "Name": "entryID" } + ], + "Type": "Function", + "Name": "GetNextStarterBuildPurchase" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isActive" }], + "Type": "Function", + "Name": "GetStarterBuildActive" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "treeID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "specID" }], + "Type": "Function", + "Name": "GetTraitTreeForSpec" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasUnspentPoints" }, + { "Nilable": false, "Type": "number", "Name": "numHeroPoints" } + ], + "Documentation": [ + "Returns whether the player has any unspent talent points in their active hero talent tree. If hasUnspentPoints is true, numHeroPoints will be greater than zero." + ], + "Type": "Function", + "Name": "HasUnspentHeroTalentPoints" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasUnspentPoints" }, + { "Nilable": false, "Type": "number", "Name": "numClassPoints" }, + { "Nilable": false, "Type": "number", "Name": "numSpecPoints" } + ], + "Documentation": [ + "Returns whether the player has any unspent talent points in their class or spec talent trees. If hasUnspentPoints is true, the number of unspent points for at least one of the trees will be greater than zero. Hero talent points are not included by this function." + ], + "Type": "Function", + "Name": "HasUnspentTalentPoints" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "success" }, + { "Nilable": false, "Type": "cstring", "Name": "importError" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { + "Nilable": false, + "InnerType": "ImportLoadoutEntryInfo", + "Type": "table", + "Name": "entries" + }, + { "Nilable": false, "Type": "string", "Name": "name" } + ], + "Type": "Function", + "Name": "ImportLoadout" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "Type": "number", "Name": "level" } + ], + "Type": "Function", + "Name": "InitializeViewLoadout" + }, + { + "Documentation": [ + "New configs may or may not be populated and ready to load immediately after creation. Avoid calling for configs intentionally created empty." + ], + "Type": "Function", + "Name": "IsConfigPopulated", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPopulated" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }] + }, + { + "Returns": [ + { "Nilable": false, "Type": "LoadConfigResult", "Name": "result" }, + { "Nilable": true, "Type": "string", "Name": "changeError" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "newLearnedNodeIDs" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "bool", "Name": "autoApply" } + ], + "Type": "Function", + "Name": "LoadConfig" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "string", "Name": "name" } + ], + "Type": "Function", + "Name": "RenameConfig" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "name" }], + "Type": "Function", + "Name": "RequestNewConfig" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Function", + "Name": "SaveConfig" + }, + { + "Returns": [{ "Nilable": false, "Type": "LoadConfigResult", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "active" }], + "Type": "Function", + "Name": "SetStarterBuildActive" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "bool", "Name": "usesShared" } + ], + "Type": "Function", + "Name": "SetUsesSharedActionBars" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": true, "Type": "number", "Name": "configID" } + ], + "Type": "Function", + "Name": "UpdateLastSelectedSavedConfigID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { + "Nilable": false, + "InnerType": "ImportLoadoutEntryInfo", + "Type": "table", + "Name": "entries" + } + ], + "Type": "Function", + "Name": "ViewLoadout" + } + ], + "Type": "System", + "Name": "ClassTalents", + "Events": [ + { + "LiteralName": "ACTIVE_COMBAT_CONFIG_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Event", + "Name": "ActiveCombatConfigChanged" + }, + { + "LiteralName": "SELECTED_LOADOUT_CHANGED", + "Type": "Event", + "Name": "SelectedLoadoutChanged" + }, + { + "LiteralName": "SPECIALIZATION_CHANGE_CAST_FAILED", + "Type": "Event", + "Name": "SpecializationChangeCastFailed" + }, + { + "LiteralName": "STARTER_BUILD_ACTIVATION_FAILED", + "Type": "Event", + "Name": "StarterBuildActivationFailed" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "LoadConfigResult", + "Fields": [ + { "EnumValue": 0, "Type": "LoadConfigResult", "Name": "Error" }, + { "EnumValue": 1, "Type": "LoadConfigResult", "Name": "NoChangesNecessary" }, + { "EnumValue": 2, "Type": "LoadConfigResult", "Name": "LoadInProgress" }, + { "EnumValue": 3, "Type": "LoadConfigResult", "Name": "Ready" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "nodeID" }, + { "Nilable": false, "Type": "number", "Name": "ranksGranted" }, + { "Nilable": false, "Type": "number", "Name": "ranksPurchased" }, + { "Nilable": false, "Type": "number", "Name": "selectionEntryID" } + ], + "Type": "Structure", + "Name": "ImportLoadoutEntryInfo" + } + ] + }, + { + "Namespace": "C_ClassTrial", + "Functions": [], + "Type": "System", + "Name": "ClassTrial", + "Events": [ + { + "LiteralName": "CLASS_TRIAL_TIMER_START", + "Type": "Event", + "Name": "ClassTrialTimerStart" + }, + { + "LiteralName": "CLASS_TRIAL_UPGRADE_COMPLETE", + "Type": "Event", + "Name": "ClassTrialUpgradeComplete" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ClickBindingInteraction", + "Fields": [ + { "EnumValue": 1, "Type": "ClickBindingInteraction", "Name": "Target" }, + { "EnumValue": 2, "Type": "ClickBindingInteraction", "Name": "OpenContextMenu" } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "ClickBindingType", + "Fields": [ + { "EnumValue": 0, "Type": "ClickBindingType", "Name": "None" }, + { "EnumValue": 1, "Type": "ClickBindingType", "Name": "Spell" }, + { "EnumValue": 2, "Type": "ClickBindingType", "Name": "Macro" }, + { "EnumValue": 3, "Type": "ClickBindingType", "Name": "Interaction" }, + { "EnumValue": 4, "Type": "ClickBindingType", "Name": "PetAction" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Fields": [ + { "Nilable": false, "Type": "ClickBindingType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "actionID" }, + { "Nilable": false, "Type": "cstring", "Name": "button" }, + { "Nilable": false, "Type": "number", "Name": "modifiers" } + ], + "Type": "Structure", + "Name": "ClickBindingInfo" + } + ] + }, + { + "Namespace": "C_ClickBindings", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canBeBound" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "CanSpellBeClickBound" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "targetToken" }, + { "Nilable": false, "Type": "cstring", "Name": "button" }, + { "Nilable": false, "Type": "number", "Name": "modifiers" } + ], + "Type": "Function", + "Name": "ExecuteBinding" + }, + { + "Returns": [{ "Nilable": false, "Type": "ClickBindingType", "Name": "type" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "button" }, + { "Nilable": false, "Type": "number", "Name": "modifiers" } + ], + "Type": "Function", + "Name": "GetBindingType" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "effectiveButton" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "button" }, + { "Nilable": false, "Type": "number", "Name": "modifiers" } + ], + "Type": "Function", + "Name": "GetEffectiveInteractionButton" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ClickBindingInfo", + "Type": "table", + "Name": "infoVec" + } + ], + "Type": "Function", + "Name": "GetProfileInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "modifierString" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "modifiers" }], + "Type": "Function", + "Name": "GetStringFromModifiers" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "tutorialShown" }], + "Type": "Function", + "Name": "GetTutorialShown" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "modifiers" }], + "Type": "Function", + "Name": "MakeModifiers" + }, + { "Type": "Function", "Name": "ResetCurrentProfile" }, + { + "Arguments": [ + { + "Nilable": false, + "InnerType": "ClickBindingInfo", + "Type": "table", + "Name": "infoVec" + } + ], + "Type": "Function", + "Name": "SetProfileByInfo" + }, + { "Type": "Function", "Name": "SetTutorialShown" } + ], + "Type": "System", + "Name": "ClickBindings", + "Events": [ + { + "LiteralName": "CLICKBINDINGS_SET_HIGHLIGHTS_SHOWN", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "showHighlights" }], + "Type": "Event", + "Name": "ClickbindingsSetHighlightsShown" + } + ], + "Tables": [] + }, + { + "Functions": [ + { "Type": "Function", "Name": "FlashClientIcon" }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "billingTimeRested" }], + "Type": "Function", + "Name": "GetBillingTimeRested" + }, + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "fileID" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "filePath" }], + "Type": "Function", + "Name": "GetFileIDFromPath" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "framerate" }], + "Type": "Function", + "Name": "GetFramerate" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "description" }], + "Type": "Function", + "Name": "ReportBug" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "description" }], + "Type": "Function", + "Name": "ReportSuggestion" + }, + { "Type": "Function", "Name": "RestartGx" }, + { "Type": "Function", "Name": "Screenshot" }, + { "Type": "Function", "Name": "UpdateWindow" } + ], + "Type": "System", + "Name": "Client", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_ClientScene", + "Functions": [], + "Type": "System", + "Name": "ClientScene", + "Events": [ + { + "LiteralName": "CLIENT_SCENE_CLOSED", + "Type": "Event", + "Name": "ClientSceneClosed" + }, + { + "LiteralName": "CLIENT_SCENE_OPENED", + "Payload": [{ "Nilable": false, "Type": "ClientSceneType", "Name": "sceneType" }], + "Type": "Event", + "Name": "ClientSceneOpened" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "ClientSceneType", + "Fields": [ + { "EnumValue": 0, "Type": "ClientSceneType", "Name": "DefaultSceneType" }, + { "EnumValue": 1, "Type": "ClientSceneType", "Name": "MinigameSceneType" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ClientSettingsConfigFlag", + "Fields": [ + { + "EnumValue": 1, + "Type": "ClientSettingsConfigFlag", + "Name": "ClientSettingsConfigDebug" + }, + { + "EnumValue": 2, + "Type": "ClientSettingsConfigFlag", + "Name": "ClientSettingsConfigInternal" + }, + { + "EnumValue": 4, + "Type": "ClientSettingsConfigFlag", + "Name": "ClientSettingsConfigPerf" + }, + { + "EnumValue": 8, + "Type": "ClientSettingsConfigFlag", + "Name": "ClientSettingsConfigGm" + }, + { + "EnumValue": 16, + "Type": "ClientSettingsConfigFlag", + "Name": "ClientSettingsConfigTest" + }, + { + "EnumValue": 32, + "Type": "ClientSettingsConfigFlag", + "Name": "ClientSettingsConfigTestRetail" + }, + { + "EnumValue": 64, + "Type": "ClientSettingsConfigFlag", + "Name": "ClientSettingsConfigBeta" + }, + { + "EnumValue": 128, + "Type": "ClientSettingsConfigFlag", + "Name": "ClientSettingsConfigBetaRetail" + }, + { + "EnumValue": 256, + "Type": "ClientSettingsConfigFlag", + "Name": "ClientSettingsConfigRetail" + } + ], + "MaxValue": 256, + "MinValue": 1, + "NumValues": 9 + } + ] + }, + { + "Namespace": "C_Club", + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "AcceptInvitation" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Function", + "Name": "AddClubStreamChatChannel" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Function", + "Name": "AdvanceStreamViewMarker" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" }, + { "Nilable": false, "Type": "ClubRoleIdentifier", "Name": "roleId" } + ], + "Type": "Function", + "Name": "AssignMemberRole" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canResolve" }], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "epoch" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "position" } + ], + "Type": "Function", + "Name": "CanResolvePlayerLocationFromClubMessageData" + }, + { "Type": "Function", "Name": "ClearAutoAdvanceStreamViewMarker" }, + { "Type": "Function", "Name": "ClearClubPresenceSubscription" }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "comparison" }], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "lhsMemberId" }, + { "Nilable": false, "Type": "number", "Name": "rhsMemberId" } + ], + "Type": "Function", + "Name": "CompareBattleNetDisplayName" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "string", "Name": "shortName" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { + "Nilable": false, + "Documentation": ["Valid types are BattleNet or Character"], + "Type": "ClubType", + "Name": "clubType" + }, + { "Nilable": false, "Type": "number", "Name": "avatarId" }, + { "Nilable": true, "Type": "bool", "Name": "isCrossFaction" } + ], + "Type": "Function", + "Name": "CreateClub" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "subject" }, + { "Nilable": false, "Type": "bool", "Name": "leadersAndModeratorsOnly" } + ], + "Documentation": ["Check the canCreateStream privilege."], + "Type": "Function", + "Name": "CreateStream" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { + "Nilable": true, + "Documentation": ["Number of uses. nil means unlimited"], + "Type": "number", + "Name": "allowedRedeemCount" + }, + { + "Nilable": true, + "Documentation": ["Duration in seconds. nil never expires"], + "Type": "number", + "Name": "duration" + }, + { "Nilable": true, "Type": "ClubStreamId", "Name": "defaultStreamId" }, + { "Nilable": true, "Type": "bool", "Name": "isCrossFaction" } + ], + "Documentation": ["Check canCreateTicket privilege."], + "Type": "Function", + "Name": "CreateTicket" + }, + { + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "DeclineInvitation" + }, + { + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Documentation": ["Check the canDestroy privilege."], + "Type": "Function", + "Name": "DestroyClub" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "ClubMessageIdentifier", "Name": "messageId" } + ], + "Type": "Function", + "Name": "DestroyMessage" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Documentation": ["Check canDestroyStream privilege."], + "Type": "Function", + "Name": "DestroyStream" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "string", "Name": "ticketId" } + ], + "Documentation": ["Check canDestroyTicket privilege."], + "Type": "Function", + "Name": "DestroyTicket" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasUnreadMessages" }], + "Type": "Function", + "Name": "DoesAnyCommunityHaveUnreadMessages" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasMembersOfOppositeFaction" } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "DoesCommunityHaveMembersOfTheOppositeFaction" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": true, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "string", "Name": "shortName" }, + { "Nilable": true, "Type": "string", "Name": "description" }, + { "Nilable": true, "Type": "number", "Name": "avatarId" }, + { "Nilable": true, "Type": "string", "Name": "broadcast" }, + { "Nilable": true, "Type": "bool", "Name": "crossFaction" } + ], + "Documentation": ["nil arguments will not change existing club data"], + "Type": "Function", + "Name": "EditClub" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "ClubMessageIdentifier", "Name": "messageId" }, + { "Nilable": false, "Type": "string", "Name": "message" } + ], + "Type": "Function", + "Name": "EditMessage" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": true, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "string", "Name": "subject" }, + { "Nilable": true, "Type": "bool", "Name": "leadersAndModeratorsOnly" } + ], + "Documentation": [ + "Check the canSetStreamName, canSetStreamSubject, canSetStreamAccess privileges. nil arguments will not change existing stream data." + ], + "Type": "Function", + "Name": "EditStream" + }, + { "Type": "Function", "Name": "Flush" }, + { "Type": "Function", "Name": "FocusCommunityStreams" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "focused" }], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Function", + "Name": "FocusStream" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubRoleIdentifier", + "Type": "table", + "Name": "assignableRoles" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" } + ], + "Type": "Function", + "Name": "GetAssignableRoles" + }, + { + "Documentation": [ + "listen for AVATAR_LIST_UPDATED event. This can happen if we haven't downloaded the battle.net avatar list yet" + ], + "Type": "Function", + "Name": "GetAvatarIdList", + "Returns": [ + { "Nilable": true, "InnerType": "number", "Type": "table", "Name": "avatarIds" } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubType", "Name": "clubType" }] + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "capacity" }], + "Type": "Function", + "Name": "GetClubCapacity" + }, + { + "Returns": [{ "Nilable": true, "Type": "ClubInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "GetClubInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "ClubLimits", "Name": "clubLimits" }], + "Arguments": [{ "Nilable": false, "Type": "ClubType", "Name": "clubType" }], + "Type": "Function", + "Name": "GetClubLimits" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "members" } + ], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": true, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Function", + "Name": "GetClubMembers" + }, + { + "Documentation": ["The privileges for the logged in user for this club"], + "Type": "Function", + "Name": "GetClubPrivileges", + "Returns": [ + { "Nilable": false, "Type": "ClubPrivilegeInfo", "Name": "privilegeInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }] + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubStreamNotificationSetting", + "Type": "table", + "Name": "settings" + } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "GetClubStreamNotificationSettings" + }, + { + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "errorCode" }], + "Arguments": [ + { "Nilable": false, "Type": "ValidateNameResult", "Name": "result" } + ], + "Type": "Function", + "Name": "GetCommunityNameResultText" + }, + { + "Returns": [{ "Nilable": true, "Type": "ClubId", "Name": "guildClubId" }], + "Type": "Function", + "Name": "GetGuildClubId" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ClubMessageInfo", "Name": "messageInfo" }, + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "ClubType", "Name": "clubType" } + ], + "Type": "Function", + "Name": "GetInfoFromLastCommunityChatLine" + }, + { + "Documentation": [ + "Returns a list of players that you can send a request to a Battle.net club. Returns an empty list for Character based clubs" + ], + "Type": "Function", + "Name": "GetInvitationCandidates", + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubInvitationCandidateInfo", + "Type": "table", + "Name": "candidates" + } + ], + "Arguments": [ + { "Nilable": true, "Type": "string", "Name": "filter" }, + { "Nilable": true, "Type": "number", "Name": "maxResults" }, + { "Nilable": true, "Type": "number", "Name": "cursorPosition" }, + { "Nilable": true, "Type": "bool", "Name": "allowFullMatch" }, + { "Nilable": false, "Type": "ClubId", "Name": "clubId" } + ] + }, + { + "Documentation": [ + "Get info about a specific club the active player has been invited to." + ], + "Type": "Function", + "Name": "GetInvitationInfo", + "Returns": [ + { "Nilable": true, "Type": "ClubSelfInvitationInfo", "Name": "invitation" } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }] + }, + { + "Documentation": [ + "Get the pending invitations for this club. Call RequestInvitationsForClub() to retrieve invitations from server." + ], + "Type": "Function", + "Name": "GetInvitationsForClub", + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubInvitationInfo", + "Type": "table", + "Name": "invitations" + } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }] + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubSelfInvitationInfo", + "Type": "table", + "Name": "invitations" + } + ], + "Documentation": ["These are the clubs the active player has been invited to."], + "Type": "Function", + "Name": "GetInvitationsForSelf" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ClubErrorType", "Name": "error" }, + { "Nilable": true, "Type": "ClubInfo", "Name": "info" }, + { "Nilable": false, "Type": "bool", "Name": "showError" } + ], + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "ticket" }], + "Type": "Function", + "Name": "GetLastTicketResponse" + }, + { + "Returns": [{ "Nilable": true, "Type": "ClubMemberInfo", "Name": "info" }], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" } + ], + "Type": "Function", + "Name": "GetMemberInfo" + }, + { + "Documentation": ["Info for the logged in user for this club"], + "Type": "Function", + "Name": "GetMemberInfoForSelf", + "Returns": [{ "Nilable": true, "Type": "ClubMemberInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }] + }, + { + "Documentation": ["Get info about a particular message."], + "Type": "Function", + "Name": "GetMessageInfo", + "Returns": [{ "Nilable": true, "Type": "ClubMessageInfo", "Name": "message" }], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "ClubMessageIdentifier", "Name": "messageId" } + ] + }, + { + "Documentation": ["Get the ranges of the messages currently downloaded."], + "Type": "Function", + "Name": "GetMessageRanges", + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubMessageRange", + "Type": "table", + "Name": "ranges" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ] + }, + { + "Documentation": [ + "Get downloaded messages before (and including) the specified messageId limited by count. These are filtered by ignored players" + ], + "Type": "Function", + "Name": "GetMessagesBefore", + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubMessageInfo", + "Type": "table", + "Name": "messages" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "ClubMessageIdentifier", "Name": "newest" }, + { "Nilable": false, "Type": "number", "Name": "count" } + ] + }, + { + "Documentation": [ + "Get downloaded messages in the given range. These are filtered by ignored players" + ], + "Type": "Function", + "Name": "GetMessagesInRange", + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubMessageInfo", + "Type": "table", + "Name": "messages" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "ClubMessageIdentifier", "Name": "oldest" }, + { "Nilable": false, "Type": "ClubMessageIdentifier", "Name": "newest" } + ] + }, + { + "Returns": [{ "Nilable": true, "Type": "ClubStreamInfo", "Name": "streamInfo" }], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Function", + "Name": "GetStreamInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Documentation": ["nil if stream view is at current"], + "Type": "BigUInteger", + "Name": "lastReadTime" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Function", + "Name": "GetStreamViewMarker" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubStreamInfo", + "Type": "table", + "Name": "streams" + } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "GetStreams" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "ClubInfo", "Type": "table", "Name": "clubs" } + ], + "Type": "Function", + "Name": "GetSubscribedClubs" + }, + { + "Documentation": [ + "Get the existing tickets for this club. Call RequestTickets() to retrieve tickets from server." + ], + "Type": "Function", + "Name": "GetTickets", + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubTicketInfo", + "Type": "table", + "Name": "tickets" + } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "accountMuted" }], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "IsAccountMuted" + }, + { + "Documentation": [ + "Returns whether the given message is the first message in the stream, taking into account ignored messages" + ], + "Type": "Function", + "Name": "IsBeginningOfStream", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isBeginningOfStream" }], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "ClubMessageIdentifier", "Name": "messageId" } + ] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "clubsEnabled" }], + "Type": "Function", + "Name": "IsEnabled" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "ClubRestrictionReason", + "Name": "restrictionReason" + } + ], + "Type": "Function", + "Name": "IsRestricted" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "subscribed" }], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Function", + "Name": "IsSubscribedToStream" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" } + ], + "Documentation": ["Check kickableRoleIds privilege."], + "Type": "Function", + "Name": "KickMember" + }, + { + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "LeaveClub" + }, + { + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "ticketId" }], + "Type": "Function", + "Name": "RedeemTicket" + }, + { + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Documentation": [ + "Request invitations for this club from server. Check canGetInvitation privilege." + ], + "Type": "Function", + "Name": "RequestInvitationsForClub" + }, + { + "Documentation": [ + "Call this when the user scrolls near the top of the message view, and more need to be displayed. The history will be downloaded backwards (newest to oldest)." + ], + "Type": "Function", + "Name": "RequestMoreMessagesBefore", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "alreadyHasMessages" }], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": true, "Type": "ClubMessageIdentifier", "Name": "messageId" }, + { "Nilable": true, "Type": "number", "Name": "count" } + ] + }, + { + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "ticketId" }], + "Type": "Function", + "Name": "RequestTicket" + }, + { + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Documentation": ["Request tickets from server. Check canGetTicket privilege."], + "Type": "Function", + "Name": "RequestTickets" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" } + ], + "Documentation": ["Check canRevokeOwnInvitation or canRevokeOtherInvitation"], + "Type": "Function", + "Name": "RevokeInvitation" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "guildClubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" } + ], + "Type": "Function", + "Name": "SendBattleTagFriendRequest" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "string", "Name": "character" } + ], + "Type": "Function", + "Name": "SendCharacterInvitation" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" } + ], + "Documentation": ["Check the canSendInvitation privilege."], + "Type": "Function", + "Name": "SendInvitation" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "string", "Name": "message" } + ], + "Type": "Function", + "Name": "SendMessage" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Documentation": [ + "Only one stream can be set for auto-advance at a time. Focused streams will have their view times advanced automatically." + ], + "Type": "Function", + "Name": "SetAutoAdvanceStreamViewMarker" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "avatarId" }, + { "Nilable": false, "Type": "ClubType", "Name": "clubType" } + ], + "Type": "Function", + "Name": "SetAvatarTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" }, + { "Nilable": false, "Type": "string", "Name": "note" } + ], + "Documentation": [ + "Check the canSetOwnMemberNote and canSetOtherMemberNote privileges." + ], + "Type": "Function", + "Name": "SetClubMemberNote" + }, + { + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Documentation": [ + "You can only be subscribed to 0 or 1 clubs for presence. Subscribing to a new club automatically unsuscribes you to existing subscription." + ], + "Type": "Function", + "Name": "SetClubPresenceSubscription" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { + "Nilable": false, + "InnerType": "ClubStreamNotificationSetting", + "Type": "table", + "Name": "settings" + } + ], + "Type": "Function", + "Name": "SetClubStreamNotificationSettings" + }, + { + "Arguments": [{ "Nilable": false, "Type": "BigUInteger", "Name": "communityID" }], + "Type": "Function", + "Name": "SetCommunityID" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" } + ], + "Type": "Function", + "Name": "SetFavorite" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetSocialQueueingEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "clubTypeIsAllowed" }], + "Arguments": [{ "Nilable": false, "Type": "ClubType", "Name": "clubType" }], + "Type": "Function", + "Name": "ShouldAllowClubType" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "unsubscribe" }], + "Type": "Function", + "Name": "UnfocusAllStreams" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Function", + "Name": "UnfocusStream" + }, + { + "Returns": [{ "Nilable": false, "Type": "ValidateNameResult", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "ClubType", "Name": "clubType" }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "ClubFieldType", "Name": "clubFieldType" } + ], + "Type": "Function", + "Name": "ValidateText" + } + ], + "Type": "System", + "Name": "Club", + "Events": [ + { + "LiteralName": "AVATAR_LIST_UPDATED", + "Payload": [{ "Nilable": false, "Type": "ClubType", "Name": "clubType" }], + "Type": "Event", + "Name": "AvatarListUpdated" + }, + { + "LiteralName": "CLUB_ADDED", + "Payload": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Event", + "Name": "ClubAdded" + }, + { + "LiteralName": "CLUB_ERROR", + "Payload": [ + { "Nilable": false, "Type": "ClubActionType", "Name": "action" }, + { "Nilable": false, "Type": "ClubErrorType", "Name": "error" }, + { "Nilable": false, "Type": "ClubType", "Name": "clubType" } + ], + "Type": "Event", + "Name": "ClubError" + }, + { + "LiteralName": "CLUB_INVITATION_ADDED_FOR_SELF", + "Payload": [ + { "Nilable": false, "Type": "ClubSelfInvitationInfo", "Name": "invitation" } + ], + "Type": "Event", + "Name": "ClubInvitationAddedForSelf" + }, + { + "LiteralName": "CLUB_INVITATION_REMOVED_FOR_SELF", + "Payload": [ + { "Nilable": false, "Type": "ClubInvitationId", "Name": "invitationId" } + ], + "Type": "Event", + "Name": "ClubInvitationRemovedForSelf" + }, + { + "LiteralName": "CLUB_INVITATIONS_RECEIVED_FOR_CLUB", + "Payload": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Event", + "Name": "ClubInvitationsReceivedForClub" + }, + { + "LiteralName": "CLUB_MEMBER_ADDED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" } + ], + "Type": "Event", + "Name": "ClubMemberAdded" + }, + { + "LiteralName": "CLUB_MEMBER_PRESENCE_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" }, + { "Nilable": false, "Type": "ClubMemberPresence", "Name": "presence" } + ], + "Type": "Event", + "Name": "ClubMemberPresenceUpdated" + }, + { + "LiteralName": "CLUB_MEMBER_REMOVED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" } + ], + "Type": "Event", + "Name": "ClubMemberRemoved" + }, + { + "LiteralName": "CLUB_MEMBER_ROLE_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" }, + { "Nilable": false, "Type": "number", "Name": "roleId" } + ], + "Type": "Event", + "Name": "ClubMemberRoleUpdated" + }, + { + "LiteralName": "CLUB_MEMBER_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "memberId" } + ], + "Type": "Event", + "Name": "ClubMemberUpdated" + }, + { + "LiteralName": "CLUB_MESSAGE_ADDED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "ClubMessageIdentifier", "Name": "messageId" } + ], + "Type": "Event", + "Name": "ClubMessageAdded" + }, + { + "LiteralName": "CLUB_MESSAGE_HISTORY_RECEIVED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { + "Nilable": false, + "Documentation": ["Range of history messages received."], + "Type": "ClubMessageRange", + "Name": "downloadedRange" + }, + { + "Nilable": false, + "Documentation": [ + "Range of contiguous messages that the received messages are in." + ], + "Type": "ClubMessageRange", + "Name": "contiguousRange" + } + ], + "Type": "Event", + "Name": "ClubMessageHistoryReceived" + }, + { + "LiteralName": "CLUB_MESSAGE_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "ClubMessageIdentifier", "Name": "messageId" } + ], + "Type": "Event", + "Name": "ClubMessageUpdated" + }, + { + "LiteralName": "CLUB_REMOVED", + "Payload": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Event", + "Name": "ClubRemoved" + }, + { + "LiteralName": "CLUB_REMOVED_MESSAGE", + "Payload": [ + { "Nilable": false, "Type": "string", "Name": "clubName" }, + { "Nilable": false, "Type": "ClubRemovedReason", "Name": "clubRemovedReason" } + ], + "Type": "Event", + "Name": "ClubRemovedMessage" + }, + { + "LiteralName": "CLUB_SELF_MEMBER_ROLE_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "roleId" } + ], + "Type": "Event", + "Name": "ClubSelfMemberRoleUpdated" + }, + { + "LiteralName": "CLUB_STREAM_ADDED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Event", + "Name": "ClubStreamAdded" + }, + { + "LiteralName": "CLUB_STREAM_REMOVED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Event", + "Name": "ClubStreamRemoved" + }, + { + "LiteralName": "CLUB_STREAM_SUBSCRIBED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Event", + "Name": "ClubStreamSubscribed" + }, + { + "LiteralName": "CLUB_STREAM_UNSUBSCRIBED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Event", + "Name": "ClubStreamUnsubscribed" + }, + { + "LiteralName": "CLUB_STREAM_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Event", + "Name": "ClubStreamUpdated" + }, + { + "LiteralName": "CLUB_STREAMS_LOADED", + "Payload": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Event", + "Name": "ClubStreamsLoaded" + }, + { + "LiteralName": "CLUB_TICKET_CREATED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubTicketInfo", "Name": "ticketInfo" } + ], + "Type": "Event", + "Name": "ClubTicketCreated" + }, + { + "LiteralName": "CLUB_TICKET_RECEIVED", + "Payload": [{ "Nilable": false, "Type": "string", "Name": "ticket" }], + "Type": "Event", + "Name": "ClubTicketReceived" + }, + { + "LiteralName": "CLUB_TICKETS_RECEIVED", + "Payload": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Event", + "Name": "ClubTicketsReceived" + }, + { + "LiteralName": "CLUB_UPDATED", + "Payload": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Event", + "Name": "ClubUpdated" + }, + { + "LiteralName": "INITIAL_CLUBS_LOADED", + "Type": "Event", + "Name": "InitialClubsLoaded" + }, + { + "LiteralName": "STREAM_VIEW_MARKER_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { + "Nilable": true, + "Documentation": ["nil if stream view is at current"], + "Type": "BigUInteger", + "Name": "lastReadTime" + } + ], + "Type": "Event", + "Name": "StreamViewMarkerUpdated" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "ClubActionType", + "Fields": [ + { + "EnumValue": 0, + "Type": "ClubActionType", + "Name": "ErrorClubActionSubscribe" + }, + { "EnumValue": 1, "Type": "ClubActionType", "Name": "ErrorClubActionCreate" }, + { "EnumValue": 2, "Type": "ClubActionType", "Name": "ErrorClubActionEdit" }, + { "EnumValue": 3, "Type": "ClubActionType", "Name": "ErrorClubActionDestroy" }, + { "EnumValue": 4, "Type": "ClubActionType", "Name": "ErrorClubActionLeave" }, + { + "EnumValue": 5, + "Type": "ClubActionType", + "Name": "ErrorClubActionCreateTicket" + }, + { + "EnumValue": 6, + "Type": "ClubActionType", + "Name": "ErrorClubActionDestroyTicket" + }, + { + "EnumValue": 7, + "Type": "ClubActionType", + "Name": "ErrorClubActionRedeemTicket" + }, + { + "EnumValue": 8, + "Type": "ClubActionType", + "Name": "ErrorClubActionGetTicket" + }, + { + "EnumValue": 9, + "Type": "ClubActionType", + "Name": "ErrorClubActionGetTickets" + }, + { "EnumValue": 10, "Type": "ClubActionType", "Name": "ErrorClubActionGetBans" }, + { + "EnumValue": 11, + "Type": "ClubActionType", + "Name": "ErrorClubActionGetInvitations" + }, + { + "EnumValue": 12, + "Type": "ClubActionType", + "Name": "ErrorClubActionRevokeInvitation" + }, + { + "EnumValue": 13, + "Type": "ClubActionType", + "Name": "ErrorClubActionAcceptInvitation" + }, + { + "EnumValue": 14, + "Type": "ClubActionType", + "Name": "ErrorClubActionDeclineInvitation" + }, + { + "EnumValue": 15, + "Type": "ClubActionType", + "Name": "ErrorClubActionCreateStream" + }, + { + "EnumValue": 16, + "Type": "ClubActionType", + "Name": "ErrorClubActionEditStream" + }, + { + "EnumValue": 17, + "Type": "ClubActionType", + "Name": "ErrorClubActionDestroyStream" + }, + { + "EnumValue": 18, + "Type": "ClubActionType", + "Name": "ErrorClubActionInviteMember" + }, + { + "EnumValue": 19, + "Type": "ClubActionType", + "Name": "ErrorClubActionEditMember" + }, + { + "EnumValue": 20, + "Type": "ClubActionType", + "Name": "ErrorClubActionEditMemberNote" + }, + { + "EnumValue": 21, + "Type": "ClubActionType", + "Name": "ErrorClubActionKickMember" + }, + { "EnumValue": 22, "Type": "ClubActionType", "Name": "ErrorClubActionAddBan" }, + { + "EnumValue": 23, + "Type": "ClubActionType", + "Name": "ErrorClubActionRemoveBan" + }, + { + "EnumValue": 24, + "Type": "ClubActionType", + "Name": "ErrorClubActionCreateMessage" + }, + { + "EnumValue": 25, + "Type": "ClubActionType", + "Name": "ErrorClubActionEditMessage" + }, + { + "EnumValue": 26, + "Type": "ClubActionType", + "Name": "ErrorClubActionDestroyMessage" + } + ], + "MaxValue": 26, + "MinValue": 0, + "NumValues": 27 + }, + { + "Type": "Enumeration", + "Name": "ClubErrorType", + "Fields": [ + { "EnumValue": 0, "Type": "ClubErrorType", "Name": "ErrorCommunitiesNone" }, + { "EnumValue": 1, "Type": "ClubErrorType", "Name": "ErrorCommunitiesUnknown" }, + { + "EnumValue": 2, + "Type": "ClubErrorType", + "Name": "ErrorCommunitiesNeutralFaction" + }, + { + "EnumValue": 3, + "Type": "ClubErrorType", + "Name": "ErrorCommunitiesUnknownRealm" + }, + { + "EnumValue": 4, + "Type": "ClubErrorType", + "Name": "ErrorCommunitiesBadTarget" + }, + { + "EnumValue": 5, + "Type": "ClubErrorType", + "Name": "ErrorCommunitiesWrongFaction" + }, + { + "EnumValue": 6, + "Type": "ClubErrorType", + "Name": "ErrorCommunitiesRestricted" + }, + { "EnumValue": 7, "Type": "ClubErrorType", "Name": "ErrorCommunitiesIgnored" }, + { "EnumValue": 8, "Type": "ClubErrorType", "Name": "ErrorCommunitiesGuild" }, + { + "EnumValue": 9, + "Type": "ClubErrorType", + "Name": "ErrorCommunitiesWrongRegion" + }, + { + "EnumValue": 10, + "Type": "ClubErrorType", + "Name": "ErrorCommunitiesUnknownTicket" + }, + { + "EnumValue": 11, + "Type": "ClubErrorType", + "Name": "ErrorCommunitiesMissingShortName" + }, + { + "EnumValue": 12, + "Type": "ClubErrorType", + "Name": "ErrorCommunitiesProfanity" + }, + { "EnumValue": 13, "Type": "ClubErrorType", "Name": "ErrorCommunitiesTrial" }, + { + "EnumValue": 14, + "Type": "ClubErrorType", + "Name": "ErrorCommunitiesVeteranTrial" + }, + { + "EnumValue": 15, + "Type": "ClubErrorType", + "Name": "ErrorCommunitiesChatMute" + }, + { "EnumValue": 16, "Type": "ClubErrorType", "Name": "ErrorClubFull" }, + { "EnumValue": 17, "Type": "ClubErrorType", "Name": "ErrorClubNoClub" }, + { "EnumValue": 18, "Type": "ClubErrorType", "Name": "ErrorClubNotMember" }, + { "EnumValue": 19, "Type": "ClubErrorType", "Name": "ErrorClubAlreadyMember" }, + { "EnumValue": 20, "Type": "ClubErrorType", "Name": "ErrorClubNoSuchMember" }, + { + "EnumValue": 21, + "Type": "ClubErrorType", + "Name": "ErrorClubNoSuchInvitation" + }, + { + "EnumValue": 22, + "Type": "ClubErrorType", + "Name": "ErrorClubInvitationAlreadyExists" + }, + { "EnumValue": 23, "Type": "ClubErrorType", "Name": "ErrorClubInvalidRoleID" }, + { + "EnumValue": 24, + "Type": "ClubErrorType", + "Name": "ErrorClubInsufficientPrivileges" + }, + { + "EnumValue": 25, + "Type": "ClubErrorType", + "Name": "ErrorClubTooManyClubsJoined" + }, + { "EnumValue": 26, "Type": "ClubErrorType", "Name": "ErrorClubVoiceFull" }, + { "EnumValue": 27, "Type": "ClubErrorType", "Name": "ErrorClubStreamNoStream" }, + { + "EnumValue": 28, + "Type": "ClubErrorType", + "Name": "ErrorClubStreamInvalidName" + }, + { + "EnumValue": 29, + "Type": "ClubErrorType", + "Name": "ErrorClubStreamCountAtMin" + }, + { + "EnumValue": 30, + "Type": "ClubErrorType", + "Name": "ErrorClubStreamCountAtMax" + }, + { + "EnumValue": 31, + "Type": "ClubErrorType", + "Name": "ErrorClubMemberHasRequiredRole" + }, + { + "EnumValue": 32, + "Type": "ClubErrorType", + "Name": "ErrorClubSentInvitationCountAtMax" + }, + { + "EnumValue": 33, + "Type": "ClubErrorType", + "Name": "ErrorClubReceivedInvitationCountAtMax" + }, + { "EnumValue": 34, "Type": "ClubErrorType", "Name": "ErrorClubTargetIsBanned" }, + { + "EnumValue": 35, + "Type": "ClubErrorType", + "Name": "ErrorClubBanAlreadyExists" + }, + { "EnumValue": 36, "Type": "ClubErrorType", "Name": "ErrorClubBanCountAtMax" }, + { + "EnumValue": 37, + "Type": "ClubErrorType", + "Name": "ErrorClubTicketCountAtMax" + }, + { + "EnumValue": 38, + "Type": "ClubErrorType", + "Name": "ErrorClubTicketNoSuchTicket" + }, + { + "EnumValue": 39, + "Type": "ClubErrorType", + "Name": "ErrorClubTicketHasConsumedAllowedRedeemCount" + }, + { + "EnumValue": 40, + "Type": "ClubErrorType", + "Name": "ErrorClubDoesntAllowCrossFaction" + }, + { + "EnumValue": 41, + "Type": "ClubErrorType", + "Name": "ErrorClubEditHasCrossFactionMembers" + } + ], + "MaxValue": 41, + "MinValue": 0, + "NumValues": 42 + }, + { + "Type": "Enumeration", + "Name": "ClubFieldType", + "Fields": [ + { "EnumValue": 0, "Type": "ClubFieldType", "Name": "ClubName" }, + { "EnumValue": 1, "Type": "ClubFieldType", "Name": "ClubShortName" }, + { "EnumValue": 2, "Type": "ClubFieldType", "Name": "ClubDescription" }, + { "EnumValue": 3, "Type": "ClubFieldType", "Name": "ClubBroadcast" }, + { "EnumValue": 4, "Type": "ClubFieldType", "Name": "ClubStreamName" }, + { "EnumValue": 5, "Type": "ClubFieldType", "Name": "ClubStreamSubject" }, + { "EnumValue": 6, "Type": "ClubFieldType", "Name": "NumTypes" } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "ClubInvitationCandidateStatus", + "Fields": [ + { + "EnumValue": 0, + "Type": "ClubInvitationCandidateStatus", + "Name": "Available" + }, + { + "EnumValue": 1, + "Type": "ClubInvitationCandidateStatus", + "Name": "InvitePending" + }, + { + "EnumValue": 2, + "Type": "ClubInvitationCandidateStatus", + "Name": "AlreadyMember" + } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ClubMemberPresence", + "Fields": [ + { "EnumValue": 0, "Type": "ClubMemberPresence", "Name": "Unknown" }, + { "EnumValue": 1, "Type": "ClubMemberPresence", "Name": "Online" }, + { "EnumValue": 2, "Type": "ClubMemberPresence", "Name": "OnlineMobile" }, + { "EnumValue": 3, "Type": "ClubMemberPresence", "Name": "Offline" }, + { "EnumValue": 4, "Type": "ClubMemberPresence", "Name": "Away" }, + { "EnumValue": 5, "Type": "ClubMemberPresence", "Name": "Busy" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "ClubRemovedReason", + "Fields": [ + { "EnumValue": 0, "Type": "ClubRemovedReason", "Name": "None" }, + { "EnumValue": 1, "Type": "ClubRemovedReason", "Name": "Banned" }, + { "EnumValue": 2, "Type": "ClubRemovedReason", "Name": "Removed" }, + { "EnumValue": 3, "Type": "ClubRemovedReason", "Name": "ClubDestroyed" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ClubRestrictionReason", + "Fields": [ + { "EnumValue": 0, "Type": "ClubRestrictionReason", "Name": "None" }, + { "EnumValue": 1, "Type": "ClubRestrictionReason", "Name": "Unavailable" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "ClubStreamNotificationFilter", + "Fields": [ + { "EnumValue": 0, "Type": "ClubStreamNotificationFilter", "Name": "None" }, + { "EnumValue": 1, "Type": "ClubStreamNotificationFilter", "Name": "Mention" }, + { "EnumValue": 2, "Type": "ClubStreamNotificationFilter", "Name": "All" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ClubStreamType", + "Fields": [ + { "EnumValue": 0, "Type": "ClubStreamType", "Name": "General" }, + { "EnumValue": 1, "Type": "ClubStreamType", "Name": "Guild" }, + { "EnumValue": 2, "Type": "ClubStreamType", "Name": "Officer" }, + { "EnumValue": 3, "Type": "ClubStreamType", "Name": "Other" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ClubType", + "Fields": [ + { "EnumValue": 0, "Type": "ClubType", "Name": "BattleNet" }, + { "EnumValue": 1, "Type": "ClubType", "Name": "Character" }, + { "EnumValue": 2, "Type": "ClubType", "Name": "Guild" }, + { "EnumValue": 3, "Type": "ClubType", "Name": "Other" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Fields": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "string", "Name": "shortName" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "string", "Name": "broadcast" }, + { "Nilable": false, "Type": "ClubType", "Name": "clubType" }, + { "Nilable": false, "Type": "number", "Name": "avatarId" }, + { "Nilable": true, "Type": "number", "Name": "memberCount" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "favoriteTimeStamp" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "joinTime" }, + { "Nilable": true, "Type": "bool", "Name": "socialQueueingEnabled" }, + { "Nilable": true, "Type": "bool", "Name": "crossFaction" } + ], + "Type": "Structure", + "Name": "ClubInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "memberId" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "luaIndex", "Name": "priority" }, + { "Nilable": false, "Type": "ClubInvitationCandidateStatus", "Name": "status" } + ], + "Type": "Structure", + "Name": "ClubInvitationCandidateInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "ClubInvitationId", "Name": "invitationId" }, + { "Nilable": false, "Type": "bool", "Name": "isMyInvitation" }, + { "Nilable": false, "Type": "ClubMemberInfo", "Name": "invitee" } + ], + "Type": "Structure", + "Name": "ClubInvitationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "maximumNumberOfStreams" } + ], + "Type": "Structure", + "Name": "ClubLimits" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "isSelf" }, + { "Nilable": false, "Type": "number", "Name": "memberId" }, + { + "Nilable": true, + "Documentation": ["name may be encoded as a Kstring"], + "Type": "string", + "Name": "name" + }, + { "Nilable": true, "Type": "ClubRoleIdentifier", "Name": "role" }, + { "Nilable": false, "Type": "ClubMemberPresence", "Name": "presence" }, + { "Nilable": true, "Type": "ClubType", "Name": "clubType" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": true, "Type": "number", "Name": "bnetAccountId" }, + { "Nilable": true, "Type": "string", "Name": "memberNote" }, + { "Nilable": true, "Type": "string", "Name": "officerNote" }, + { "Nilable": true, "Type": "number", "Name": "classID" }, + { "Nilable": true, "Type": "number", "Name": "race" }, + { "Nilable": true, "Type": "number", "Name": "level" }, + { "Nilable": true, "Type": "string", "Name": "zone" }, + { "Nilable": true, "Type": "number", "Name": "achievementPoints" }, + { "Nilable": true, "Type": "number", "Name": "profession1ID" }, + { "Nilable": true, "Type": "number", "Name": "profession1Rank" }, + { "Nilable": true, "Type": "string", "Name": "profession1Name" }, + { "Nilable": true, "Type": "number", "Name": "profession2ID" }, + { "Nilable": true, "Type": "number", "Name": "profession2Rank" }, + { "Nilable": true, "Type": "string", "Name": "profession2Name" }, + { "Nilable": true, "Type": "number", "Name": "lastOnlineYear" }, + { "Nilable": true, "Type": "number", "Name": "lastOnlineMonth" }, + { "Nilable": true, "Type": "number", "Name": "lastOnlineDay" }, + { "Nilable": true, "Type": "number", "Name": "lastOnlineHour" }, + { "Nilable": true, "Type": "string", "Name": "guildRank" }, + { "Nilable": true, "Type": "luaIndex", "Name": "guildRankOrder" }, + { "Nilable": true, "Type": "bool", "Name": "isRemoteChat" }, + { "Nilable": true, "Type": "number", "Name": "overallDungeonScore" }, + { "Nilable": true, "Type": "PvPFaction", "Name": "faction" }, + { "Nilable": true, "Type": "number", "Name": "timerunningSeasonID" } + ], + "Type": "Structure", + "Name": "ClubMemberInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "Documentation": ["number of microseconds since the UNIX epoch."], + "Type": "BigUInteger", + "Name": "epoch" + }, + { + "Nilable": false, + "Documentation": ["sort order for messages at the same time"], + "Type": "BigUInteger", + "Name": "position" + } + ], + "Type": "Structure", + "Name": "ClubMessageIdentifier" + }, + { + "Fields": [ + { "Nilable": false, "Type": "ClubMessageIdentifier", "Name": "messageId" }, + { "Nilable": false, "Type": "kstringClubMessage", "Name": "content" }, + { "Nilable": false, "Type": "ClubMemberInfo", "Name": "author" }, + { + "Nilable": true, + "Documentation": ["May be nil even if the message has been destroyed"], + "Type": "ClubMemberInfo", + "Name": "destroyer" + }, + { "Nilable": false, "Type": "bool", "Name": "destroyed" }, + { "Nilable": false, "Type": "bool", "Name": "edited" } + ], + "Type": "Structure", + "Name": "ClubMessageInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "Type": "ClubMessageIdentifier", + "Name": "oldestMessageId" + }, + { "Nilable": false, "Type": "ClubMessageIdentifier", "Name": "newestMessageId" } + ], + "Type": "Structure", + "Name": "ClubMessageRange" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "canDestroy" }, + { "Nilable": false, "Type": "bool", "Name": "canSetAttribute" }, + { "Nilable": false, "Type": "bool", "Name": "canSetName" }, + { "Nilable": false, "Type": "bool", "Name": "canSetDescription" }, + { "Nilable": false, "Type": "bool", "Name": "canSetAvatar" }, + { "Nilable": false, "Type": "bool", "Name": "canSetBroadcast" }, + { "Nilable": false, "Type": "bool", "Name": "canSetPrivacyLevel" }, + { "Nilable": false, "Type": "bool", "Name": "canSetOwnMemberAttribute" }, + { "Nilable": false, "Type": "bool", "Name": "canSetOtherMemberAttribute" }, + { "Nilable": false, "Type": "bool", "Name": "canSetOwnMemberNote" }, + { "Nilable": false, "Type": "bool", "Name": "canSetOtherMemberNote" }, + { "Nilable": false, "Type": "bool", "Name": "canSetOwnVoiceState" }, + { "Nilable": false, "Type": "bool", "Name": "canSetOwnPresenceLevel" }, + { "Nilable": false, "Type": "bool", "Name": "canUseVoice" }, + { "Nilable": false, "Type": "bool", "Name": "canVoiceMuteMemberForAll" }, + { "Nilable": false, "Type": "bool", "Name": "canGetInvitation" }, + { "Nilable": false, "Type": "bool", "Name": "canSendInvitation" }, + { "Nilable": false, "Type": "bool", "Name": "canSendGuestInvitation" }, + { "Nilable": false, "Type": "bool", "Name": "canRevokeOwnInvitation" }, + { "Nilable": false, "Type": "bool", "Name": "canRevokeOtherInvitation" }, + { "Nilable": false, "Type": "bool", "Name": "canGetBan" }, + { "Nilable": false, "Type": "bool", "Name": "canGetSuggestion" }, + { "Nilable": false, "Type": "bool", "Name": "canSuggestMember" }, + { "Nilable": false, "Type": "bool", "Name": "canGetTicket" }, + { "Nilable": false, "Type": "bool", "Name": "canCreateTicket" }, + { "Nilable": false, "Type": "bool", "Name": "canDestroyTicket" }, + { "Nilable": false, "Type": "bool", "Name": "canAddBan" }, + { "Nilable": false, "Type": "bool", "Name": "canRemoveBan" }, + { "Nilable": false, "Type": "bool", "Name": "canCreateStream" }, + { "Nilable": false, "Type": "bool", "Name": "canDestroyStream" }, + { "Nilable": false, "Type": "bool", "Name": "canSetStreamPosition" }, + { "Nilable": false, "Type": "bool", "Name": "canSetStreamAttribute" }, + { "Nilable": false, "Type": "bool", "Name": "canSetStreamName" }, + { "Nilable": false, "Type": "bool", "Name": "canSetStreamSubject" }, + { "Nilable": false, "Type": "bool", "Name": "canSetStreamAccess" }, + { "Nilable": false, "Type": "bool", "Name": "canSetStreamVoiceLevel" }, + { "Nilable": false, "Type": "bool", "Name": "canCreateMessage" }, + { "Nilable": false, "Type": "bool", "Name": "canDestroyOwnMessage" }, + { "Nilable": false, "Type": "bool", "Name": "canDestroyOtherMessage" }, + { "Nilable": false, "Type": "bool", "Name": "canEditOwnMessage" }, + { "Nilable": false, "Type": "bool", "Name": "canPinMessage" }, + { + "Documentation": ["Roles that can be kicked and banned"], + "Type": "table", + "Name": "kickableRoleIds", + "Nilable": false, + "InnerType": "number" + } + ], + "Type": "Structure", + "Name": "ClubPrivilegeInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "roleId" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { + "Nilable": false, + "Documentation": ["At least one user must be in this role"], + "Type": "bool", + "Name": "required" + }, + { + "Nilable": false, + "Documentation": ["At most one user can be in this role"], + "Type": "bool", + "Name": "unique" + } + ], + "Type": "Structure", + "Name": "ClubRoleInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "ClubInvitationId", "Name": "invitationId" }, + { "Nilable": false, "Type": "ClubInfo", "Name": "club" }, + { "Nilable": false, "Type": "ClubMemberInfo", "Name": "inviter" }, + { + "Nilable": false, + "InnerType": "ClubMemberInfo", + "Type": "table", + "Name": "leaders" + } + ], + "Type": "Structure", + "Name": "ClubSelfInvitationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "subject" }, + { "Nilable": false, "Type": "bool", "Name": "leadersAndModeratorsOnly" }, + { "Nilable": false, "Type": "ClubStreamType", "Name": "streamType" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "creationTime" } + ], + "Type": "Structure", + "Name": "ClubStreamInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "ClubStreamNotificationFilter", "Name": "filter" } + ], + "Type": "Structure", + "Name": "ClubStreamNotificationSetting" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "ticketId" }, + { "Nilable": false, "Type": "number", "Name": "allowedRedeemCount" }, + { "Nilable": false, "Type": "number", "Name": "currentRedeemCount" }, + { + "Nilable": false, + "Documentation": ["Creation time in microseconds since the UNIX epoch."], + "Type": "BigUInteger", + "Name": "creationTime" + }, + { + "Nilable": false, + "Documentation": ["Expiration time in microseconds since the UNIX epoch."], + "Type": "BigUInteger", + "Name": "expirationTime" + }, + { "Nilable": true, "Type": "ClubStreamId", "Name": "defaultStreamId" }, + { "Nilable": false, "Type": "ClubMemberInfo", "Name": "creator" } + ], + "Type": "Structure", + "Name": "ClubTicketInfo" + } + ] + }, + { + "Namespace": "C_ClubFinder", + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }], + "Type": "Function", + "Name": "ApplicantAcceptClubInvite" + }, + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }], + "Type": "Function", + "Name": "ApplicantDeclineClubInvite" + }, + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }], + "Type": "Function", + "Name": "CancelMembershipRequest" + }, + { "Type": "Function", "Name": "CheckAllPlayerApplicantSettings" }, + { "Type": "Function", "Name": "ClearAllFinderCache" }, + { "Type": "Function", "Name": "ClearClubApplicantsCache" }, + { "Type": "Function", "Name": "ClearClubFinderPostingsCache" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "belongsToClub" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }], + "Type": "Function", + "Name": "DoesPlayerBelongToClubFromClubGUID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "ClubFinderDisableReason", "Name": "disableReason" } + ], + "Type": "Function", + "Name": "GetClubFinderDisableReason" + }, + { + "Returns": [{ "Nilable": false, "Type": "ClubSettingsInfo", "Name": "settings" }], + "Type": "Function", + "Name": "GetClubRecruitmentSettings" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ClubFinderRequestType", "Name": "clubType" } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }], + "Type": "Function", + "Name": "GetClubTypeFromFinderGUID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "flags" }], + "Type": "Function", + "Name": "GetFocusIndexFromFlag" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "localeFlags" }], + "Type": "Function", + "Name": "GetPlayerApplicantLocaleFlags" + }, + { + "Returns": [{ "Nilable": false, "Type": "ClubSettingsInfo", "Name": "settings" }], + "Type": "Function", + "Name": "GetPlayerApplicantSettings" + }, + { + "Returns": [ + { "Nilable": false, "Type": "PlayerClubRequestStatus", "Name": "clubStatus" } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }], + "Type": "Function", + "Name": "GetPlayerClubApplicationStatus" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "focusCount" }], + "Type": "Function", + "Name": "GetPlayerSettingsFocusFlagsSelectedCount" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "postingID" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }], + "Type": "Function", + "Name": "GetPostingIDFromClubFinderGUID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "RecruitingClubInfo", "Name": "clubInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "GetRecruitingClubInfoFromClubID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "RecruitingClubInfo", "Name": "clubInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }], + "Type": "Function", + "Name": "GetRecruitingClubInfoFromFinderGUID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubFinderClubPostingStatusFlags", + "Type": "table", + "Name": "postingFlags" + } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "postingID" }], + "Type": "Function", + "Name": "GetStatusOfPostingFromClubId" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "totalSize" }], + "Type": "Function", + "Name": "GetTotalMatchingCommunityListSize" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "totalSize" }], + "Type": "Function", + "Name": "GetTotalMatchingGuildListSize" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasAlreadyApplied" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }], + "Type": "Function", + "Name": "HasAlreadyAppliedToLinkedPosting" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "postingDelisted" }], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "postingID" }], + "Type": "Function", + "Name": "HasPostingBeenDelisted" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEnabled" }], + "Type": "Function", + "Name": "IsCommunityFinderEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEnabled" }], + "Type": "Function", + "Name": "IsEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isListed" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "flags" }], + "Type": "Function", + "Name": "IsListingEnabledFromFlags" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "postingBanned" }], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "postingID" }], + "Type": "Function", + "Name": "IsPostingBanned" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }, + { "Nilable": false, "Type": "bool", "Name": "isLinkedPosting" } + ], + "Type": "Function", + "Name": "LookupClubPostingFromClubFinderGUID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "RecruitingClubInfo", + "Type": "table", + "Name": "inviteList" + } + ], + "Type": "Function", + "Name": "PlayerGetClubInvitationList" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubFinderRequestType", "Name": "type" } + ], + "Type": "Function", + "Name": "PlayerRequestPendingClubsList" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "RecruitingClubInfo", + "Type": "table", + "Name": "info" + } + ], + "Type": "Function", + "Name": "PlayerReturnPendingCommunitiesList" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "RecruitingClubInfo", + "Type": "table", + "Name": "info" + } + ], + "Type": "Function", + "Name": "PlayerReturnPendingGuildsList" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "succesful" }], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "number", "Name": "itemLevelRequirement" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "avatarId" }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "specs" }, + { "Nilable": false, "Type": "ClubFinderRequestType", "Name": "type" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "crossFaction" } + ], + "Type": "Function", + "Name": "PostClub" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubFinderRequestType", "Name": "type" } + ], + "Type": "Function", + "Name": "RequestApplicantList" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "bool", "Name": "guildListRequested" }, + { "Nilable": false, "Type": "string", "Name": "searchString" }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "specIDs" } + ], + "Type": "Function", + "Name": "RequestClubsList" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }, + { "Nilable": false, "Type": "string", "Name": "comment" }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "specIDs" } + ], + "Type": "Function", + "Name": "RequestMembershipToClub" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "startingIndex" }, + { "Nilable": false, "Type": "number", "Name": "pageSize" } + ], + "Type": "Function", + "Name": "RequestNextCommunityPage" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "startingIndex" }, + { "Nilable": false, "Type": "number", "Name": "pageSize" } + ], + "Type": "Function", + "Name": "RequestNextGuildPage" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "RequestPostingInformationFromClubId" + }, + { "Type": "Function", "Name": "RequestSubscribedClubPostingIDs" }, + { "Type": "Function", "Name": "ResetClubPostingMapCache" }, + { + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "playerGUID" }, + { "Nilable": false, "Type": "bool", "Name": "shouldAccept" }, + { "Nilable": false, "Type": "ClubFinderRequestType", "Name": "requestType" }, + { "Nilable": false, "Type": "string", "Name": "playerName" }, + { "Nilable": false, "Type": "bool", "Name": "forceAccept" }, + { "Nilable": true, "Type": "bool", "Name": "reported" } + ], + "Type": "Function", + "Name": "RespondToApplicant" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubFinderApplicantInfo", + "Type": "table", + "Name": "info" + } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "ReturnClubApplicantList" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "RecruitingClubInfo", + "Type": "table", + "Name": "recruitingClubs" + } + ], + "Type": "Function", + "Name": "ReturnMatchingCommunityList" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "RecruitingClubInfo", + "Type": "table", + "Name": "recruitingClubs" + } + ], + "Type": "Function", + "Name": "ReturnMatchingGuildList" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ClubFinderApplicantInfo", + "Type": "table", + "Name": "info" + } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "ReturnPendingClubApplicantList" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "playerGUID" }, + { "Nilable": false, "Type": "ClubFinderRequestType", "Name": "applicantType" }, + { "Nilable": false, "Type": "string", "Name": "name" } + ], + "Type": "Function", + "Name": "SendChatWhisper" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "value" }], + "Type": "Function", + "Name": "SetAllRecruitmentSettings" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "localeFlags" }], + "Type": "Function", + "Name": "SetPlayerApplicantLocaleFlags" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "index" }, + { "Nilable": false, "Type": "bool", "Name": "checked" } + ], + "Type": "Function", + "Name": "SetPlayerApplicantSettings" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "locale" }], + "Type": "Function", + "Name": "SetRecruitmentLocale" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "index" }, + { "Nilable": false, "Type": "bool", "Name": "checked" } + ], + "Type": "Function", + "Name": "SetRecruitmentSettings" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "shouldShow" }], + "Type": "Function", + "Name": "ShouldShowClubFinder" + } + ], + "Type": "System", + "Name": "ClubFinderInfo", + "Events": [ + { + "LiteralName": "CLUB_FINDER_APPLICANT_INVITE_RECIEVED", + "Payload": [ + { + "Nilable": false, + "InnerType": "WOWGUID", + "Type": "table", + "Name": "clubFinderGUIDs" + } + ], + "Type": "Event", + "Name": "ClubFinderApplicantInviteRecieved" + }, + { + "LiteralName": "CLUB_FINDER_APPLICATIONS_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "ClubFinderRequestType", "Name": "type" }, + { + "Nilable": false, + "InnerType": "WOWGUID", + "Type": "table", + "Name": "clubFinderGUIDs" + } + ], + "Type": "Event", + "Name": "ClubFinderApplicationsUpdated" + }, + { + "LiteralName": "CLUB_FINDER_CAN_WHISPER_APPLICANT", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "applicant" }], + "Type": "Event", + "Name": "ClubFinderCanWhisperApplicant" + }, + { + "Documentation": ["Signals when we recieve club data that can be used"], + "Type": "Event", + "Name": "ClubFinderClubListReturned", + "LiteralName": "CLUB_FINDER_CLUB_LIST_RETURNED", + "Payload": [{ "Nilable": false, "Type": "ClubFinderRequestType", "Name": "type" }] + }, + { + "Documentation": [ + "Sends an update to the UI about a reported guild or community." + ], + "Type": "Event", + "Name": "ClubFinderClubReported", + "LiteralName": "CLUB_FINDER_CLUB_REPORTED", + "Payload": [ + { "Nilable": false, "Type": "ClubFinderRequestType", "Name": "type" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" } + ] + }, + { + "Documentation": [ + "Signals to the UI that you (the player) have joined a community offline." + ], + "Type": "Event", + "Name": "ClubFinderCommunityOfflineJoin", + "LiteralName": "CLUB_FINDER_COMMUNITY_OFFLINE_JOIN", + "Payload": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }] + }, + { + "LiteralName": "CLUB_FINDER_ENABLED_OR_DISABLED", + "Documentation": [ + "Sends an update to the UI that the club finder feature has been enabled or disabled." + ], + "Type": "Event", + "Name": "ClubFinderEnabledOrDisabled" + }, + { + "Documentation": [ + "Sends an update to the UI if the realm name of a guild was found asynchronously." + ], + "Type": "Event", + "Name": "ClubFinderGuildRealmNameUpdated", + "LiteralName": "CLUB_FINDER_GUILD_REALM_NAME_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }, + { "Nilable": false, "Type": "string", "Name": "realmName" } + ] + }, + { + "Documentation": [ + "When a player clicks a club link, this returns that information back about the club they clicked on" + ], + "Type": "Event", + "Name": "ClubFinderLinkedClubReturned", + "LiteralName": "CLUB_FINDER_LINKED_CLUB_RETURNED", + "Payload": [ + { "Nilable": false, "Type": "RecruitingClubInfo", "Name": "clubInfo" } + ] + }, + { + "LiteralName": "CLUB_FINDER_MEMBERSHIP_LIST_CHANGED", + "Type": "Event", + "Name": "ClubFinderMembershipListChanged" + }, + { + "LiteralName": "CLUB_FINDER_PLAYER_PENDING_LIST_RECIEVED", + "Payload": [ + { "Nilable": false, "Type": "ClubFinderRequestType", "Name": "type" } + ], + "Type": "Event", + "Name": "ClubFinderPlayerPendingListRecieved" + }, + { + "LiteralName": "CLUB_FINDER_POST_UPDATED", + "Payload": [ + { + "Nilable": false, + "InnerType": "WOWGUID", + "Type": "table", + "Name": "clubFinderGUIDs" + } + ], + "Type": "Event", + "Name": "ClubFinderPostUpdated" + }, + { + "LiteralName": "CLUB_FINDER_RECRUIT_LIST_CHANGED", + "Type": "Event", + "Name": "ClubFinderRecruitListChanged" + }, + { + "Documentation": [ + "Signals when our recruitment post we just requested is returned back to us" + ], + "Type": "Event", + "Name": "ClubFinderRecruitmentPostReturned", + "LiteralName": "CLUB_FINDER_RECRUITMENT_POST_RETURNED", + "Payload": [{ "Nilable": false, "Type": "ClubFinderRequestType", "Name": "type" }] + }, + { + "Documentation": ["Signals when we recieve the recruits list"], + "Type": "Event", + "Name": "ClubFinderRecruitsUpdated", + "LiteralName": "CLUB_FINDER_RECRUITS_UPDATED", + "Payload": [{ "Nilable": false, "Type": "ClubFinderRequestType", "Name": "type" }] + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "ClubFinderApplicationUpdateType", + "Fields": [ + { "EnumValue": 0, "Type": "ClubFinderApplicationUpdateType", "Name": "None" }, + { + "EnumValue": 1, + "Type": "ClubFinderApplicationUpdateType", + "Name": "AcceptInvite" + }, + { + "EnumValue": 2, + "Type": "ClubFinderApplicationUpdateType", + "Name": "DeclineInvite" + }, + { "EnumValue": 3, "Type": "ClubFinderApplicationUpdateType", "Name": "Cancel" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ClubFinderClubPostingStatusFlags", + "Fields": [ + { "EnumValue": 0, "Type": "ClubFinderClubPostingStatusFlags", "Name": "None" }, + { + "EnumValue": 1, + "Type": "ClubFinderClubPostingStatusFlags", + "Name": "NeedsCacheUpdate" + }, + { + "EnumValue": 2, + "Type": "ClubFinderClubPostingStatusFlags", + "Name": "ForceDescriptionChange" + }, + { + "EnumValue": 3, + "Type": "ClubFinderClubPostingStatusFlags", + "Name": "ForceNameChange" + }, + { + "EnumValue": 4, + "Type": "ClubFinderClubPostingStatusFlags", + "Name": "UnderReview" + }, + { + "EnumValue": 5, + "Type": "ClubFinderClubPostingStatusFlags", + "Name": "Banned" + }, + { + "EnumValue": 6, + "Type": "ClubFinderClubPostingStatusFlags", + "Name": "FakePost" + }, + { + "EnumValue": 7, + "Type": "ClubFinderClubPostingStatusFlags", + "Name": "PendingDelete" + }, + { + "EnumValue": 8, + "Type": "ClubFinderClubPostingStatusFlags", + "Name": "PostDelisted" + } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "ClubFinderDisableReason", + "Fields": [ + { "EnumValue": 0, "Type": "ClubFinderDisableReason", "Name": "Muted" }, + { "EnumValue": 1, "Type": "ClubFinderDisableReason", "Name": "Silenced" }, + { "EnumValue": 2, "Type": "ClubFinderDisableReason", "Name": "VeteranTrial" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ClubFinderPostingReportType", + "Fields": [ + { + "EnumValue": 0, + "Type": "ClubFinderPostingReportType", + "Name": "PostersName" + }, + { "EnumValue": 1, "Type": "ClubFinderPostingReportType", "Name": "ClubName" }, + { + "EnumValue": 2, + "Type": "ClubFinderPostingReportType", + "Name": "PostingDescription" + }, + { + "EnumValue": 3, + "Type": "ClubFinderPostingReportType", + "Name": "ApplicantsName" + }, + { "EnumValue": 4, "Type": "ClubFinderPostingReportType", "Name": "JoinNote" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "ClubFinderRequestType", + "Fields": [ + { "EnumValue": 0, "Type": "ClubFinderRequestType", "Name": "None" }, + { "EnumValue": 1, "Type": "ClubFinderRequestType", "Name": "Guild" }, + { "EnumValue": 2, "Type": "ClubFinderRequestType", "Name": "Community" }, + { "EnumValue": 3, "Type": "ClubFinderRequestType", "Name": "All" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ClubFinderSettingFlags", + "Fields": [ + { "EnumValue": 0, "Type": "ClubFinderSettingFlags", "Name": "None" }, + { "EnumValue": 1, "Type": "ClubFinderSettingFlags", "Name": "Dungeons" }, + { "EnumValue": 2, "Type": "ClubFinderSettingFlags", "Name": "Raids" }, + { "EnumValue": 3, "Type": "ClubFinderSettingFlags", "Name": "PvP" }, + { "EnumValue": 4, "Type": "ClubFinderSettingFlags", "Name": "RP" }, + { "EnumValue": 5, "Type": "ClubFinderSettingFlags", "Name": "Social" }, + { "EnumValue": 6, "Type": "ClubFinderSettingFlags", "Name": "Small" }, + { "EnumValue": 7, "Type": "ClubFinderSettingFlags", "Name": "Medium" }, + { "EnumValue": 8, "Type": "ClubFinderSettingFlags", "Name": "Large" }, + { "EnumValue": 9, "Type": "ClubFinderSettingFlags", "Name": "Tank" }, + { "EnumValue": 10, "Type": "ClubFinderSettingFlags", "Name": "Healer" }, + { "EnumValue": 11, "Type": "ClubFinderSettingFlags", "Name": "Damage" }, + { "EnumValue": 12, "Type": "ClubFinderSettingFlags", "Name": "EnableListing" }, + { "EnumValue": 13, "Type": "ClubFinderSettingFlags", "Name": "MaxLevelOnly" }, + { "EnumValue": 14, "Type": "ClubFinderSettingFlags", "Name": "AutoAccept" }, + { "EnumValue": 15, "Type": "ClubFinderSettingFlags", "Name": "FactionHorde" }, + { + "EnumValue": 16, + "Type": "ClubFinderSettingFlags", + "Name": "FactionAlliance" + }, + { "EnumValue": 17, "Type": "ClubFinderSettingFlags", "Name": "FactionNeutral" }, + { "EnumValue": 18, "Type": "ClubFinderSettingFlags", "Name": "SortRelevance" }, + { + "EnumValue": 19, + "Type": "ClubFinderSettingFlags", + "Name": "SortMemberCount" + }, + { "EnumValue": 20, "Type": "ClubFinderSettingFlags", "Name": "SortNewest" }, + { + "EnumValue": 21, + "Type": "ClubFinderSettingFlags", + "Name": "LanguageReserved1" + }, + { + "EnumValue": 22, + "Type": "ClubFinderSettingFlags", + "Name": "LanguageReserved2" + }, + { + "EnumValue": 23, + "Type": "ClubFinderSettingFlags", + "Name": "LanguageReserved3" + }, + { + "EnumValue": 24, + "Type": "ClubFinderSettingFlags", + "Name": "LanguageReserved4" + }, + { + "EnumValue": 25, + "Type": "ClubFinderSettingFlags", + "Name": "LanguageReserved5" + } + ], + "MaxValue": 25, + "MinValue": 0, + "NumValues": 26 + }, + { + "Type": "Enumeration", + "Name": "PlayerClubRequestStatus", + "Fields": [ + { "EnumValue": 0, "Type": "PlayerClubRequestStatus", "Name": "None" }, + { "EnumValue": 1, "Type": "PlayerClubRequestStatus", "Name": "Pending" }, + { "EnumValue": 2, "Type": "PlayerClubRequestStatus", "Name": "AutoApproved" }, + { "EnumValue": 3, "Type": "PlayerClubRequestStatus", "Name": "Declined" }, + { "EnumValue": 4, "Type": "PlayerClubRequestStatus", "Name": "Approved" }, + { "EnumValue": 5, "Type": "PlayerClubRequestStatus", "Name": "Joined" }, + { "EnumValue": 6, "Type": "PlayerClubRequestStatus", "Name": "JoinedAnother" }, + { "EnumValue": 7, "Type": "PlayerClubRequestStatus", "Name": "Canceled" } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + }, + { + "Fields": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "playerGUID" }, + { "Nilable": false, "Type": "number", "Name": "closed" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "message" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "number", "Name": "classID" }, + { "Nilable": false, "Type": "number", "Name": "ilvl" }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "specIds" }, + { + "Nilable": false, + "Type": "PlayerClubRequestStatus", + "Name": "requestStatus" + }, + { "Nilable": false, "Type": "bool", "Name": "lookupSuccess" }, + { "Nilable": false, "Type": "BigInteger", "Name": "lastUpdatedTime" }, + { "Nilable": false, "Type": "number", "Name": "faction" } + ], + "Type": "Structure", + "Name": "ClubFinderApplicantInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "playStyleDungeon" }, + { "Nilable": false, "Type": "bool", "Name": "playStyleRaids" }, + { "Nilable": false, "Type": "bool", "Name": "playStylePvp" }, + { "Nilable": false, "Type": "bool", "Name": "playStyleRP" }, + { "Nilable": false, "Type": "bool", "Name": "playStyleSocial" }, + { "Nilable": false, "Type": "bool", "Name": "roleTank" }, + { "Nilable": false, "Type": "bool", "Name": "roleHealer" }, + { "Nilable": false, "Type": "bool", "Name": "roleDps" }, + { "Nilable": false, "Type": "bool", "Name": "sizeSmall" }, + { "Nilable": false, "Type": "bool", "Name": "sizeMedium" }, + { "Nilable": false, "Type": "bool", "Name": "sizeLarge" }, + { "Nilable": false, "Type": "bool", "Name": "maxLevelOnly" }, + { "Nilable": false, "Type": "bool", "Name": "enableListing" }, + { "Nilable": false, "Type": "bool", "Name": "sortRelevance" }, + { "Nilable": false, "Type": "bool", "Name": "sortMembers" }, + { "Nilable": false, "Type": "bool", "Name": "sortNewest" }, + { "Nilable": false, "Type": "bool", "Name": "autoAccept" }, + { "Nilable": false, "Type": "bool", "Name": "crossFaction" } + ], + "Type": "Structure", + "Name": "ClubSettingsInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "clubFinderGUID" }, + { "Nilable": false, "Type": "number", "Name": "numActiveMembers" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "comment" }, + { "Nilable": false, "Type": "string", "Name": "guildLeader" }, + { "Nilable": false, "Type": "bool", "Name": "isGuild" }, + { "Nilable": false, "Type": "number", "Name": "emblemInfo" }, + { "Nilable": true, "Type": "GuildTabardInfo", "Name": "tabardInfo" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "recruitingSpecIds" + }, + { "Nilable": false, "Type": "number", "Name": "recruitmentFlags" }, + { "Nilable": false, "Type": "bool", "Name": "localeSet" }, + { "Nilable": false, "Type": "number", "Name": "recruitmentLocale" }, + { "Nilable": false, "Type": "number", "Name": "minILvl" }, + { "Nilable": false, "Type": "number", "Name": "cached" }, + { "Nilable": false, "Type": "number", "Name": "cacheRequested" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "lastPosterGUID" }, + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "BigInteger", "Name": "lastUpdatedTime" }, + { "Nilable": false, "Type": "bool", "Name": "isCrossFaction" }, + { "Nilable": true, "Type": "string", "Name": "realmName" } + ], + "Type": "Structure", + "Name": "RecruitingClubInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ClubRoleIdentifier", + "Fields": [ + { "EnumValue": 1, "Type": "ClubRoleIdentifier", "Name": "Owner" }, + { "EnumValue": 2, "Type": "ClubRoleIdentifier", "Name": "Leader" }, + { "EnumValue": 3, "Type": "ClubRoleIdentifier", "Name": "Moderator" }, + { "EnumValue": 4, "Type": "ClubRoleIdentifier", "Name": "Member" } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 4 + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_CombatLog", + "Functions": [], + "Type": "System", + "Name": "CombatLog", + "Events": [ + { "LiteralName": "COMBAT_LOG_EVENT", "Type": "Event", "Name": "CombatLogEvent" }, + { + "LiteralName": "COMBAT_LOG_EVENT_UNFILTERED", + "Type": "Event", + "Name": "CombatLogEventUnfiltered" + }, + { + "LiteralName": "COMBAT_TEXT_UPDATE", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "combatTextType" }], + "Type": "Event", + "Name": "CombatTextUpdate" + } + ], + "Tables": [] + }, + { + "Namespace": "C_Commentator", + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "playerName" }, + { "Nilable": false, "Type": "string", "Name": "overrideName" } + ], + "Type": "Function", + "Name": "AddPlayerOverrideName" + }, + { + "Arguments": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "spellIDs" } + ], + "Type": "Function", + "Name": "AddTrackedDefensiveAuras" + }, + { + "Arguments": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "spellIDs" } + ], + "Type": "Function", + "Name": "AddTrackedOffensiveAuras" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "teamsAreSwapped" }], + "Type": "Function", + "Name": "AreTeamsSwapped" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "playerName" }, + { "Nilable": false, "Type": "string", "Name": "teamName" } + ], + "Type": "Function", + "Name": "AssignPlayerToTeam" + }, + { + "Arguments": [ + { + "Nilable": false, + "InnerType": "string", + "Type": "table", + "Name": "playerName" + }, + { "Nilable": false, "Type": "string", "Name": "teamName" } + ], + "Type": "Function", + "Name": "AssignPlayersToTeam" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "string", "Name": "teamName" } + ], + "Type": "Function", + "Name": "AssignPlayersToTeamInCurrentInstance" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canUseCommentatorCheats" } + ], + "Type": "Function", + "Name": "CanUseCommentatorCheats" + }, + { "Type": "Function", "Name": "ClearCameraTarget" }, + { "Type": "Function", "Name": "ClearFollowTarget" }, + { + "Arguments": [{ "Nilable": true, "Type": "luaIndex", "Name": "lookAtIndex" }], + "Type": "Function", + "Name": "ClearLookAtTarget" + }, + { "Type": "Function", "Name": "EnterInstance" }, + { "Type": "Function", "Name": "ExitInstance" }, + { + "Returns": [ + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "bool", "Name": "isPet" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "FindSpectatedUnit" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "teamName" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }], + "Type": "Function", + "Name": "FindTeamNameInCurrentInstance" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "teamName" }], + "Arguments": [ + { + "Nilable": false, + "InnerType": "string", + "Type": "table", + "Name": "playerNames" + } + ], + "Type": "Function", + "Name": "FindTeamNameInDirectory" + }, + { "Type": "Function", "Name": "FlushCommentatorHistory" }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "factionIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" }, + { "Nilable": true, "Type": "bool", "Name": "forceInstantTransition" } + ], + "Type": "Function", + "Name": "FollowPlayer" + }, + { + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "token" }], + "Type": "Function", + "Name": "FollowUnit" + }, + { "Type": "Function", "Name": "ForceFollowTransition" }, + { + "Returns": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" } + ], + "Type": "Function", + "Name": "GetAdditionalCameraWeight" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "weight" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "GetAdditionalCameraWeightByToken" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "NameOverrideEntry", + "Type": "table", + "Name": "nameEntries" + } + ], + "Type": "Function", + "Name": "GetAllPlayerOverrideNames" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "xPos" }, + { "Nilable": false, "Type": "number", "Name": "yPos" }, + { "Nilable": false, "Type": "number", "Name": "zPos" }, + { "Nilable": false, "Type": "number", "Name": "yaw" }, + { "Nilable": false, "Type": "number", "Name": "pitch" }, + { "Nilable": false, "Type": "number", "Name": "roll" }, + { "Nilable": false, "Type": "number", "Name": "fov" } + ], + "Type": "Function", + "Name": "GetCamera" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isColliding" }], + "Type": "Function", + "Name": "GetCameraCollision" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "xPos" }, + { "Nilable": false, "Type": "number", "Name": "yPos" }, + { "Nilable": false, "Type": "number", "Name": "zPos" } + ], + "Type": "Function", + "Name": "GetCameraPosition" + }, + { + "Returns": [ + { "Nilable": false, "Type": "CommentatorHistory", "Name": "history" } + ], + "Type": "Function", + "Name": "GetCommentatorHistory" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "mapID" }], + "Type": "Function", + "Name": "GetCurrentMapID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "percentage" }], + "Type": "Function", + "Name": "GetDampeningPercent" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "distance" }], + "Type": "Function", + "Name": "GetDistanceBeforeForcedHorizontalConvergence" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "ms" }], + "Type": "Function", + "Name": "GetDurationToForceHorizontalConvergence" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "excludeDistance" }], + "Type": "Function", + "Name": "GetExcludeDistance" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "weight" }], + "Type": "Function", + "Name": "GetHardlockWeight" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "angle" }], + "Type": "Function", + "Name": "GetHorizontalAngleThresholdToSmooth" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "indirectSpellID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "trackedSpellID" }], + "Type": "Function", + "Name": "GetIndirectSpellID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "mapID" }, + { "Nilable": true, "Type": "string", "Name": "mapName" }, + { "Nilable": false, "Type": "number", "Name": "status" }, + { "Nilable": false, "Type": "number", "Name": "instanceIDLow" }, + { "Nilable": false, "Type": "number", "Name": "instanceIDHigh" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "mapIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "instanceIndex" } + ], + "Type": "Function", + "Name": "GetInstanceInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "amount" }], + "Type": "Function", + "Name": "GetLookAtLerpAmount" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "teamSize" }, + { "Nilable": false, "Type": "number", "Name": "minLevel" }, + { "Nilable": false, "Type": "number", "Name": "maxLevel" }, + { "Nilable": false, "Type": "number", "Name": "numInstances" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "mapIndex" }], + "Type": "Function", + "Name": "GetMapInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "time_t", "Name": "seconds" }], + "Type": "Function", + "Name": "GetMatchDuration" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "maxNumPlayersPerTeam" } + ], + "Type": "Function", + "Name": "GetMaxNumPlayersPerTeam" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxNumTeams" }], + "Type": "Function", + "Name": "GetMaxNumTeams" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "commentatorMode" }], + "Type": "Function", + "Name": "GetMode" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "ms" }], + "Type": "Function", + "Name": "GetMsToHoldForHorizontalMovement" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "ms" }], + "Type": "Function", + "Name": "GetMsToHoldForVerticalMovement" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "ms" }], + "Type": "Function", + "Name": "GetMsToSmoothHorizontalChange" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "ms" }], + "Type": "Function", + "Name": "GetMsToSmoothVerticalChange" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numMaps" }], + "Type": "Function", + "Name": "GetNumMaps" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numPlayers" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "factionIndex" }], + "Type": "Function", + "Name": "GetNumPlayers" + }, + { + "Returns": [{ "Nilable": false, "Type": "CommentatorSeries", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "teamName1" }, + { "Nilable": false, "Type": "string", "Name": "teamName2" } + ], + "Type": "Function", + "Name": "GetOrCreateSeries" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "bool", "Name": "enable" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Function", + "Name": "GetPlayerAuraInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "bool", "Name": "enable" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "token" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Function", + "Name": "GetPlayerAuraInfoByUnit" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "bool", "Name": "enable" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Function", + "Name": "GetPlayerCooldownInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "bool", "Name": "enable" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Function", + "Name": "GetPlayerCooldownInfoByUnit" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "expiration" }, + { "Nilable": false, "Type": "number", "Name": "duration" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" } + ], + "Type": "Function", + "Name": "GetPlayerCrowdControlInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "expiration" }, + { "Nilable": false, "Type": "number", "Name": "duration" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "token" }], + "Type": "Function", + "Name": "GetPlayerCrowdControlInfoByUnit" + }, + { + "Returns": [{ "Nilable": true, "Type": "CommentatorPlayerData", "Name": "info" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" } + ], + "Type": "Function", + "Name": "GetPlayerData" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFlag" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" } + ], + "Type": "Function", + "Name": "GetPlayerFlagInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFlag" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "GetPlayerFlagInfoByUnit" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "bool", "Name": "enable" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" }, + { "Nilable": false, "Type": "number", "Name": "itemID" } + ], + "Type": "Function", + "Name": "GetPlayerItemCooldownInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "bool", "Name": "enable" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": false, "Type": "number", "Name": "itemID" } + ], + "Type": "Function", + "Name": "GetPlayerItemCooldownInfoByUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "overrideName" }], + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "originalName" }], + "Type": "Function", + "Name": "GetPlayerOverrideName" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "charges" }, + { "Nilable": false, "Type": "number", "Name": "maxCharges" }, + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Function", + "Name": "GetPlayerSpellCharges" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "charges" }, + { "Nilable": false, "Type": "number", "Name": "maxCharges" }, + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Function", + "Name": "GetPlayerSpellChargesByUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "amount" }], + "Type": "Function", + "Name": "GetPositionLerpAmount" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "GetSmoothFollowTransitioning" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "weight" }], + "Type": "Function", + "Name": "GetSoftlockWeight" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "factor" }], + "Type": "Function", + "Name": "GetSpeedFactor" + }, + { + "Returns": [ + { "Nilable": false, "Mixin": "Vector3DMixin", "Type": "vector3", "Name": "pos" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mapID" }], + "Type": "Function", + "Name": "GetStartLocation" + }, + { + "Returns": [ + { "Nilable": false, "Mixin": "ColorMixin", "Type": "colorRGB", "Name": "color" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }], + "Type": "Function", + "Name": "GetTeamColor" + }, + { + "Returns": [ + { "Nilable": false, "Mixin": "ColorMixin", "Type": "colorRGB", "Name": "color" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "GetTeamColorByUnit" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "timeLeft" }], + "Type": "Function", + "Name": "GetTimeLeftInMatch" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "trackedSpellID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "indirectSpellID" }], + "Type": "Function", + "Name": "GetTrackedSpellID" + }, + { + "Returns": [ + { "Nilable": true, "InnerType": "number", "Type": "table", "Name": "spells" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" }, + { "Nilable": false, "Type": "TrackedSpellCategory", "Name": "category" } + ], + "Type": "Function", + "Name": "GetTrackedSpells" + }, + { + "Returns": [ + { "Nilable": true, "InnerType": "number", "Type": "table", "Name": "spells" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": false, "Type": "TrackedSpellCategory", "Name": "category" } + ], + "Type": "Function", + "Name": "GetTrackedSpellsByUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "CommentatorUnitData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "GetUnitData" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "minPlayers" }, + { "Nilable": false, "Type": "number", "Name": "maxPlayers" }, + { "Nilable": false, "Type": "bool", "Name": "isArena" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "listID" }], + "Type": "Function", + "Name": "GetWargameInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasOffensiveAura" }, + { "Nilable": false, "Type": "bool", "Name": "hasDefensiveAura" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "token" }], + "Type": "Function", + "Name": "HasTrackedAuras" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSmartCameraLocked" }], + "Type": "Function", + "Name": "IsSmartCameraLocked" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSpectating" }], + "Type": "Function", + "Name": "IsSpectating" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDefensiveTrigger" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "IsTrackedDefensiveAura" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isOffensiveTrigger" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "IsTrackedOffensiveAura" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTracked" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "TrackedSpellCategory", "Name": "category" } + ], + "Type": "Function", + "Name": "IsTrackedSpell" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTracked" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "TrackedSpellCategory", "Name": "category" } + ], + "Type": "Function", + "Name": "IsTrackedSpellByUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isUsingSmartCamera" }], + "Type": "Function", + "Name": "IsUsingSmartCamera" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "factionIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" }, + { "Nilable": true, "Type": "luaIndex", "Name": "lookAtIndex" } + ], + "Type": "Function", + "Name": "LookAtPlayer" + }, + { "Type": "Function", "Name": "RemoveAllOverrideNames" }, + { + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "originalPlayerName" } + ], + "Type": "Function", + "Name": "RemovePlayerOverrideName" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" } + ], + "Type": "Function", + "Name": "RequestPlayerCooldownInfo" + }, + { "Type": "Function", "Name": "ResetFoVTarget" }, + { + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "teamName1" }, + { "Nilable": false, "Type": "string", "Name": "teamName2" } + ], + "Type": "Function", + "Name": "ResetSeriesScores" + }, + { "Type": "Function", "Name": "ResetSettings" }, + { "Type": "Function", "Name": "ResetTrackedAuras" }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "teamIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "playerIndex" }, + { "Nilable": false, "Type": "number", "Name": "weight" } + ], + "Type": "Function", + "Name": "SetAdditionalCameraWeight" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": false, "Type": "number", "Name": "weight" } + ], + "Type": "Function", + "Name": "SetAdditionalCameraWeightByToken" + }, + { + "Arguments": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "spellIDs" } + ], + "Type": "Function", + "Name": "SetBlocklistedAuras" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "spellIDs" } + ], + "Type": "Function", + "Name": "SetBlocklistedCooldowns" + }, + { + "Arguments": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "itemIDs" } + ], + "Type": "Function", + "Name": "SetBlocklistedItemCooldowns" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "xPos" }, + { "Nilable": false, "Type": "number", "Name": "yPos" }, + { "Nilable": false, "Type": "number", "Name": "zPos" }, + { "Nilable": false, "Type": "number", "Name": "yaw" }, + { "Nilable": false, "Type": "number", "Name": "pitch" }, + { "Nilable": false, "Type": "number", "Name": "roll" }, + { "Nilable": false, "Type": "number", "Name": "fov" } + ], + "Type": "Function", + "Name": "SetCamera" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "collide" }], + "Type": "Function", + "Name": "SetCameraCollision" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "xPos" }, + { "Nilable": false, "Type": "number", "Name": "yPos" }, + { "Nilable": false, "Type": "number", "Name": "zPos" }, + { "Nilable": false, "Type": "bool", "Name": "snapToLocation" } + ], + "Type": "Function", + "Name": "SetCameraPosition" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "enableCheats" }], + "Type": "Function", + "Name": "SetCheatsEnabled" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "CommentatorHistory", "Name": "history" } + ], + "Type": "Function", + "Name": "SetCommentatorHistory" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "distance" }], + "Type": "Function", + "Name": "SetDistanceBeforeForcedHorizontalConvergence" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "ms" }], + "Type": "Function", + "Name": "SetDurationToForceHorizontalConvergence" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "excludeDistance" }], + "Type": "Function", + "Name": "SetExcludeDistance" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "elasticSpeed" }, + { "Nilable": false, "Type": "number", "Name": "minSpeed" } + ], + "Type": "Function", + "Name": "SetFollowCameraSpeeds" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "weight" }], + "Type": "Function", + "Name": "SetHardlockWeight" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "angle" }], + "Type": "Function", + "Name": "SetHorizontalAngleThresholdToSmooth" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "amount" }], + "Type": "Function", + "Name": "SetLookAtLerpAmount" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "mapIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "instanceIndex" } + ], + "Type": "Function", + "Name": "SetMapAndInstanceIndex" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "disabled" }], + "Type": "Function", + "Name": "SetMouseDisabled" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "newSpeed" }], + "Type": "Function", + "Name": "SetMoveSpeed" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "ms" }], + "Type": "Function", + "Name": "SetMsToHoldForHorizontalMovement" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "ms" }], + "Type": "Function", + "Name": "SetMsToHoldForVerticalMovement" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "ms" }], + "Type": "Function", + "Name": "SetMsToSmoothHorizontalChange" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "ms" }], + "Type": "Function", + "Name": "SetMsToSmoothVerticalChange" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "amount" }], + "Type": "Function", + "Name": "SetPositionLerpAmount" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "spellIDs" } + ], + "Type": "Function", + "Name": "SetRequestedDebuffCooldowns" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "spellIDs" } + ], + "Type": "Function", + "Name": "SetRequestedDefensiveCooldowns" + }, + { + "Arguments": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "itemIDs" } + ], + "Type": "Function", + "Name": "SetRequestedItemCooldowns" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "spellIDs" } + ], + "Type": "Function", + "Name": "SetRequestedOffensiveCooldowns" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "teamName1" }, + { "Nilable": false, "Type": "string", "Name": "teamName2" }, + { "Nilable": false, "Type": "string", "Name": "scoringTeamName" }, + { "Nilable": false, "Type": "number", "Name": "score" } + ], + "Type": "Function", + "Name": "SetSeriesScore" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "teamName1" }, + { "Nilable": false, "Type": "string", "Name": "teamName2" }, + { "Nilable": false, "Type": "number", "Name": "score1" }, + { "Nilable": false, "Type": "number", "Name": "score2" } + ], + "Type": "Function", + "Name": "SetSeriesScores" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "locked" }], + "Type": "Function", + "Name": "SetSmartCameraLocked" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "SetSmoothFollowTransitioning" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "weight" }], + "Type": "Function", + "Name": "SetSoftlockWeight" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "factor" }], + "Type": "Function", + "Name": "SetSpeedFactor" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "offset" }], + "Type": "Function", + "Name": "SetTargetHeightOffset" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "useSmartCamera" }], + "Type": "Function", + "Name": "SetUseSmartCamera" + }, + { "Type": "Function", "Name": "SnapCameraLookAtPoint" }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "listID" }, + { "Nilable": false, "Type": "number", "Name": "teamSize" }, + { "Nilable": false, "Type": "bool", "Name": "tournamentRules" }, + { "Nilable": false, "Type": "string", "Name": "teamOneCaptain" }, + { "Nilable": false, "Type": "string", "Name": "teamTwoCaptain" } + ], + "Type": "Function", + "Name": "StartWargame" + }, + { "Type": "Function", "Name": "SwapTeamSides" }, + { "Type": "Function", "Name": "ToggleCheats" }, + { + "Arguments": [{ "Nilable": true, "Type": "string", "Name": "targetPlayer" }], + "Type": "Function", + "Name": "UpdateMapInfo" + }, + { "Type": "Function", "Name": "UpdatePlayerInfo" }, + { "Type": "Function", "Name": "ZoomIn" }, + { + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "zoomAmount" }], + "Type": "Function", + "Name": "ZoomIn_Position" + }, + { "Type": "Function", "Name": "ZoomOut" }, + { + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "zoomAmount" }], + "Type": "Function", + "Name": "ZoomOut_Position" + } + ], + "Type": "System", + "Name": "CommentatorFrame", + "Events": [ + { + "LiteralName": "COMMENTATOR_ENTER_WORLD", + "Type": "Event", + "Name": "CommentatorEnterWorld" + }, + { + "LiteralName": "COMMENTATOR_HISTORY_FLUSHED", + "Type": "Event", + "Name": "CommentatorHistoryFlushed" + }, + { + "LiteralName": "COMMENTATOR_IMMEDIATE_FOV_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "fov" }], + "Type": "Event", + "Name": "CommentatorImmediateFovUpdate" + }, + { + "LiteralName": "COMMENTATOR_MAP_UPDATE", + "Type": "Event", + "Name": "CommentatorMapUpdate" + }, + { + "LiteralName": "COMMENTATOR_PLAYER_NAME_OVERRIDE_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "nameToOverride" }, + { "Nilable": true, "Type": "cstring", "Name": "overrideName" } + ], + "Type": "Event", + "Name": "CommentatorPlayerNameOverrideUpdate" + }, + { + "LiteralName": "COMMENTATOR_PLAYER_UPDATE", + "Type": "Event", + "Name": "CommentatorPlayerUpdate" + }, + { + "LiteralName": "COMMENTATOR_RESET_SETTINGS", + "Type": "Event", + "Name": "CommentatorResetSettings" + }, + { + "LiteralName": "COMMENTATOR_TEAM_NAME_UPDATE", + "Payload": [{ "Nilable": false, "Type": "string", "Name": "teamName" }], + "Type": "Event", + "Name": "CommentatorTeamNameUpdate" + }, + { + "LiteralName": "COMMENTATOR_TEAMS_SWAPPED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "swapped" }], + "Type": "Event", + "Name": "CommentatorTeamsSwapped" + } + ], + "Tables": [ + { + "Fields": [ + { + "Nilable": false, + "InnerType": "CommentatorSeries", + "Type": "table", + "Name": "series" + }, + { + "Nilable": false, + "InnerType": "CommentatorTeamDirectoryEntry", + "Type": "table", + "Name": "teamDirectory" + }, + { + "Nilable": false, + "InnerType": "CommentatorOverrideNameEntry", + "Type": "table", + "Name": "overrideNameDirectory" + } + ], + "Type": "Structure", + "Name": "CommentatorHistory" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "originalName" }, + { "Nilable": false, "Type": "string", "Name": "newName" } + ], + "Type": "Structure", + "Name": "CommentatorOverrideNameEntry" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "unitToken" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "faction" }, + { "Nilable": false, "Type": "number", "Name": "specialization" }, + { "Nilable": false, "Type": "number", "Name": "damageDone" }, + { "Nilable": false, "Type": "number", "Name": "damageTaken" }, + { "Nilable": false, "Type": "number", "Name": "healingDone" }, + { "Nilable": false, "Type": "number", "Name": "healingTaken" }, + { "Nilable": false, "Type": "number", "Name": "kills" }, + { "Nilable": false, "Type": "number", "Name": "deaths" }, + { "Nilable": false, "Type": "number", "Name": "soloShuffleRoundWins" }, + { "Nilable": false, "Type": "number", "Name": "soloShuffleRoundLosses" } + ], + "Type": "Structure", + "Name": "CommentatorPlayerData" + }, + { + "Fields": [ + { + "Nilable": false, + "InnerType": "CommentatorSeriesTeam", + "Type": "table", + "Name": "teams" + } + ], + "Type": "Structure", + "Name": "CommentatorSeries" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "score" } + ], + "Type": "Structure", + "Name": "CommentatorSeriesTeam" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "playerName" }, + { "Nilable": false, "Type": "string", "Name": "teamName" } + ], + "Type": "Structure", + "Name": "CommentatorTeamDirectoryEntry" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "TrackedSpellCategory", "Name": "category" } + ], + "Type": "Structure", + "Name": "CommentatorTrackedItemCooldown" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "healthMax" }, + { "Nilable": false, "Type": "number", "Name": "health" }, + { "Nilable": false, "Type": "number", "Name": "absorbTotal" }, + { "Nilable": false, "Type": "bool", "Name": "isDeadOrGhost" }, + { "Nilable": false, "Type": "bool", "Name": "isFeignDeath" }, + { "Nilable": false, "Type": "string", "Name": "powerTypeToken" }, + { "Nilable": false, "Type": "number", "Name": "power" }, + { "Nilable": false, "Type": "number", "Name": "powerMax" } + ], + "Type": "Structure", + "Name": "CommentatorUnitData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "originalName" }, + { "Nilable": false, "Type": "string", "Name": "overrideName" } + ], + "Type": "Structure", + "Name": "NameOverrideEntry" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "TrackedSpellCategory", + "Fields": [ + { "EnumValue": 0, "Type": "TrackedSpellCategory", "Name": "None" }, + { "EnumValue": 1, "Type": "TrackedSpellCategory", "Name": "Offensive" }, + { "EnumValue": 2, "Type": "TrackedSpellCategory", "Name": "Defensive" }, + { "EnumValue": 3, "Type": "TrackedSpellCategory", "Name": "Debuff" }, + { "EnumValue": 4, "Type": "TrackedSpellCategory", "Name": "RacialAbility" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + } + ] + }, + { + "Namespace": "C_CompactUnitFrames", + "Functions": [], + "Type": "System", + "Name": "CompactUnitFrames", + "Events": [ + { + "LiteralName": "COMPACT_UNIT_FRAME_PROFILES_LOADED", + "Type": "Event", + "Name": "CompactUnitFrameProfilesLoaded" + } + ], + "Tables": [] + }, + { + "Namespace": "C_ConfigurationWarnings", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasSeenConfigurationWarning" } + ], + "Arguments": [ + { + "Nilable": false, + "Type": "ConfigurationWarning", + "Name": "configurationWarning" + } + ], + "Type": "Function", + "Name": "GetConfigurationWarningSeen" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "configurationWarningString" } + ], + "Arguments": [ + { + "Nilable": false, + "Type": "ConfigurationWarning", + "Name": "configurationWarning" + } + ], + "Type": "Function", + "Name": "GetConfigurationWarningString" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ConfigurationWarning", + "Type": "table", + "Name": "configurationWarnings" + } + ], + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "includeSeenWarnings" + } + ], + "Type": "Function", + "Name": "GetConfigurationWarnings" + }, + { + "Arguments": [ + { + "Nilable": false, + "Type": "ConfigurationWarning", + "Name": "configurationWarning" + } + ], + "Type": "Function", + "Name": "SetConfigurationWarningSeen" + } + ], + "Type": "System", + "Name": "ConfigurationWarnings", + "Events": [], + "Tables": [ + { + "Type": "Enumeration", + "Name": "ConfigurationWarning", + "Fields": [ + { + "EnumValue": 0, + "Type": "ConfigurationWarning", + "Name": "ShaderModelWillBeOutdated" + }, + { + "EnumValue": 1, + "Type": "ConfigurationWarning", + "Name": "ShaderModelIsOutdated" + }, + { + "EnumValue": 2, + "Type": "ConfigurationWarning", + "Name": "ConsoleDeviceSseOutdated" + }, + { "EnumValue": 3, "Type": "ConfigurationWarning", "Name": "DriverBlocklisted" }, + { "EnumValue": 4, "Type": "ConfigurationWarning", "Name": "DriverOutOfDate" }, + { "EnumValue": 5, "Type": "ConfigurationWarning", "Name": "DeviceBlocklisted" }, + { + "EnumValue": 6, + "Type": "ConfigurationWarning", + "Name": "GraphicsApiWillBeOutdated" + }, + { + "EnumValue": 7, + "Type": "ConfigurationWarning", + "Name": "OsBitsWillBeOutdated" + } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + } + ] + }, + { + "Functions": [ + { "Type": "Function", "Name": "CancelLogout" }, + { "Type": "Function", "Name": "ForceLogout" }, + { "Type": "Function", "Name": "ForceQuit" }, + { + "Returns": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "ConnectionIptype", + "Name": "ipTypes" + } + ], + "Type": "Function", + "Name": "GetNetIpTypes" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "in" }, + { "Nilable": false, "Type": "number", "Name": "out" }, + { "StrideIndex": 1, "Nilable": false, "Type": "number", "Name": "latencyList" } + ], + "Type": "Function", + "Name": "GetNetStats" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "realmID" }], + "Type": "Function", + "Name": "GetRealmID" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "realmName" }], + "Type": "Function", + "Name": "GetRealmName" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsOnTournamentRealm" + }, + { "Type": "Function", "Name": "Logout" }, + { "Type": "Function", "Name": "Quit" }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "selectedRealmName" }], + "Type": "Function", + "Name": "SelectedRealmName" + } + ], + "Type": "System", + "Name": "ConnectionScript", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "distance" }], + "Arguments": [ + { "Nilable": false, "Type": "stringView", "Name": "firstString" }, + { "Nilable": false, "Type": "stringView", "Name": "secondString" } + ], + "Type": "Function", + "Name": "CalculateStringEditDistance" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "message" }], + "Type": "Function", + "Name": "ConsoleAddMessage" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "command" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "addToHistory" } + ], + "Type": "Function", + "Name": "ConsoleExec" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ConsoleCommandInfo", + "Type": "table", + "Name": "commands" + } + ], + "Type": "Function", + "Name": "ConsoleGetAllCommands" + }, + { + "Returns": [ + { "Nilable": false, "Mixin": "ColorMixin", "Type": "colorRGB", "Name": "color" } + ], + "Arguments": [ + { "Nilable": false, "Type": "ConsoleColorType", "Name": "colorType" } + ], + "Type": "Function", + "Name": "ConsoleGetColorFromType" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "fontHeightInPixels" }], + "Type": "Function", + "Name": "ConsoleGetFontHeight" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "consoleIsActive" }], + "Type": "Function", + "Name": "ConsoleIsActive" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "partialCommandText" } + ], + "Type": "Function", + "Name": "ConsolePrintAllMatchingCommands" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "fontHeightInPixels" } + ], + "Type": "Function", + "Name": "ConsoleSetFontHeight" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "keystring" }], + "Type": "Function", + "Name": "SetConsoleKey" + } + ], + "Type": "System", + "Name": "Console", + "Events": [ + { "LiteralName": "CONSOLE_CLEAR", "Type": "Event", "Name": "ConsoleClear" }, + { + "LiteralName": "CONSOLE_COLORS_CHANGED", + "Type": "Event", + "Name": "ConsoleColorsChanged" + }, + { + "LiteralName": "CONSOLE_FONT_SIZE_CHANGED", + "Type": "Event", + "Name": "ConsoleFontSizeChanged" + }, + { + "LiteralName": "CONSOLE_LOG", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "message" }], + "Type": "Event", + "Name": "ConsoleLog" + }, + { + "LiteralName": "CONSOLE_MESSAGE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "message" }, + { "Nilable": false, "Type": "number", "Name": "colorType" } + ], + "Type": "Event", + "Name": "ConsoleMessage" + }, + { + "LiteralName": "CVAR_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "eventName" }, + { "Nilable": false, "Type": "cstring", "Name": "value" } + ], + "Type": "Event", + "Name": "CvarUpdate" + }, + { + "LiteralName": "GLUE_CONSOLE_LOG", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "message" }], + "Type": "Event", + "Name": "GlueConsoleLog" + }, + { + "LiteralName": "TOGGLE_CONSOLE", + "Payload": [{ "Nilable": true, "Type": "bool", "Name": "showConsole" }], + "Type": "Event", + "Name": "ToggleConsole" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "ConsoleCategory", + "Fields": [ + { "EnumValue": 0, "Type": "ConsoleCategory", "Name": "Debug" }, + { "EnumValue": 1, "Type": "ConsoleCategory", "Name": "Graphics" }, + { "EnumValue": 2, "Type": "ConsoleCategory", "Name": "Console" }, + { "EnumValue": 3, "Type": "ConsoleCategory", "Name": "Combat" }, + { "EnumValue": 4, "Type": "ConsoleCategory", "Name": "Game" }, + { "EnumValue": 5, "Type": "ConsoleCategory", "Name": "Default" }, + { "EnumValue": 6, "Type": "ConsoleCategory", "Name": "Net" }, + { "EnumValue": 7, "Type": "ConsoleCategory", "Name": "Sound" }, + { "EnumValue": 8, "Type": "ConsoleCategory", "Name": "Gm" }, + { "EnumValue": 9, "Type": "ConsoleCategory", "Name": "Reveal" }, + { "EnumValue": 10, "Type": "ConsoleCategory", "Name": "None" } + ], + "MaxValue": 10, + "MinValue": 0, + "NumValues": 11 + }, + { + "Type": "Enumeration", + "Name": "ConsoleColorType", + "Fields": [ + { "EnumValue": 0, "Type": "ConsoleColorType", "Name": "DefaultColor" }, + { "EnumValue": 1, "Type": "ConsoleColorType", "Name": "InputColor" }, + { "EnumValue": 2, "Type": "ConsoleColorType", "Name": "EchoColor" }, + { "EnumValue": 3, "Type": "ConsoleColorType", "Name": "ErrorColor" }, + { "EnumValue": 4, "Type": "ConsoleColorType", "Name": "WarningColor" }, + { "EnumValue": 5, "Type": "ConsoleColorType", "Name": "GlobalColor" }, + { "EnumValue": 6, "Type": "ConsoleColorType", "Name": "AdminColor" }, + { "EnumValue": 7, "Type": "ConsoleColorType", "Name": "HighlightColor" }, + { "EnumValue": 8, "Type": "ConsoleColorType", "Name": "BackgroundColor" }, + { "EnumValue": 9, "Type": "ConsoleColorType", "Name": "ClickbufferColor" }, + { "EnumValue": 10, "Type": "ConsoleColorType", "Name": "PrivateColor" }, + { "EnumValue": 11, "Type": "ConsoleColorType", "Name": "DefaultGreen" } + ], + "MaxValue": 11, + "MinValue": 0, + "NumValues": 12 + }, + { + "Type": "Enumeration", + "Name": "ConsoleCommandType", + "Fields": [ + { "EnumValue": 0, "Type": "ConsoleCommandType", "Name": "Cvar" }, + { "EnumValue": 1, "Type": "ConsoleCommandType", "Name": "Command" }, + { "EnumValue": 2, "Type": "ConsoleCommandType", "Name": "Macro" }, + { "EnumValue": 3, "Type": "ConsoleCommandType", "Name": "Script" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "command" }, + { "Nilable": false, "Type": "cstring", "Name": "help" }, + { "Nilable": false, "Type": "ConsoleCategory", "Name": "category" }, + { "Nilable": false, "Type": "ConsoleCommandType", "Name": "commandType" }, + { "Nilable": false, "Type": "cstring", "Name": "scriptContents" }, + { "Nilable": false, "Type": "cstring", "Name": "scriptParameters" } + ], + "Type": "Structure", + "Name": "ConsoleCommandInfo" + } + ] + }, + { + "Namespace": "C_ConsoleScriptCollection", + "Functions": [ + { + "Returns": [ + { "Nilable": true, "Type": "ConsoleScriptCollectionData", "Name": "data" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "collectionID" }], + "Type": "Function", + "Name": "GetCollectionDataByID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "ConsoleScriptCollectionData", "Name": "data" } + ], + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "collectionTag" }], + "Type": "Function", + "Name": "GetCollectionDataByTag" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ConsoleScriptCollectionElementData", + "Type": "table", + "Name": "elementIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "collectionID" }], + "Type": "Function", + "Name": "GetElements" + }, + { + "Returns": [{ "Nilable": false, "Type": "ConsoleScriptData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "consoleScriptID" }], + "Type": "Function", + "Name": "GetScriptData" + } + ], + "Type": "System", + "Name": "ConsoleScriptCollection", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" } + ], + "Type": "Structure", + "Name": "ConsoleScriptCollectionData" + }, + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "collectionID" }, + { "Nilable": true, "Type": "number", "Name": "consoleScriptID" } + ], + "Type": "Structure", + "Name": "ConsoleScriptCollectionElementData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "help" }, + { "Nilable": false, "Type": "cstring", "Name": "script" }, + { "Nilable": false, "Type": "cstring", "Name": "params" }, + { "Nilable": false, "Type": "bool", "Name": "isLuaScript" } + ], + "Type": "Structure", + "Name": "ConsoleScriptData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "description" } + ], + "Type": "Structure", + "Name": "ConsoleScriptParameter" + } + ] + }, + { + "Namespace": "C_Container", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "luaIndex", "Name": "inventoryID" }], + "Arguments": [{ "Nilable": false, "Type": "BagIndex", "Name": "containerID" }], + "Type": "Function", + "Name": "ContainerIDToInventoryID" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isEquipped" } + ], + "Type": "Function", + "Name": "ContainerRefundItemPurchase" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDisabled" }], + "Type": "Function", + "Name": "GetBackpackAutosortDisabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDisabled" }], + "Type": "Function", + "Name": "GetBackpackSellJunkDisabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Arguments": [{ "Nilable": false, "Type": "BagIndex", "Name": "bagIndex" }], + "Type": "Function", + "Name": "GetBagName" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSet" }], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "bagIndex" }, + { "Nilable": false, "Type": "BagSlotFlags", "Name": "flag" } + ], + "Type": "Function", + "Name": "GetBagSlotFlag" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDisabled" }], + "Type": "Function", + "Name": "GetBankAutosortDisabled" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "luaIndex", + "Type": "table", + "Name": "freeSlots" + } + ], + "Arguments": [{ "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }], + "Type": "Function", + "Name": "GetContainerFreeSlots" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "number", "Name": "enable" } + ], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "GetContainerItemCooldown" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "durability" }, + { "Nilable": false, "Type": "number", "Name": "maxDurability" } + ], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "GetContainerItemDurability" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "inSet" }, + { "Nilable": false, "Type": "cstring", "Name": "setList" } + ], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "GetContainerItemEquipmentSetInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "containerID" }], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "GetContainerItemID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ContainerItemInfo", "Name": "containerInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "GetContainerItemInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "itemLink" }], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "GetContainerItemLink" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ItemPurchaseCurrency", "Name": "currencyInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "itemIndex" }, + { "Nilable": false, "Type": "bool", "Name": "isEquipped" } + ], + "Type": "Function", + "Name": "GetContainerItemPurchaseCurrency" + }, + { + "Returns": [{ "Nilable": false, "Type": "ItemPurchaseInfo", "Name": "info" }], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" }, + { "Nilable": false, "Type": "bool", "Name": "isEquipped" } + ], + "Type": "Function", + "Name": "GetContainerItemPurchaseInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "ItemPurchaseItem", "Name": "itemInfo" }], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "itemIndex" }, + { "Nilable": false, "Type": "bool", "Name": "isEquipped" } + ], + "Type": "Function", + "Name": "GetContainerItemPurchaseItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "ItemQuestInfo", "Name": "questInfo" }], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "GetContainerItemQuestInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numFreeSlots" }, + { "Nilable": true, "Type": "number", "Name": "bagFamily" } + ], + "Arguments": [{ "Nilable": false, "Type": "BagIndex", "Name": "bagIndex" }], + "Type": "Function", + "Name": "GetContainerNumFreeSlots" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numSlots" }], + "Arguments": [{ "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }], + "Type": "Function", + "Name": "GetContainerNumSlots" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEnabled" }], + "Type": "Function", + "Name": "GetInsertItemsLeftToRight" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "number", "Name": "enable" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetItemCooldown" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxCurrency" }], + "Type": "Function", + "Name": "GetMaxArenaCurrency" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEnabled" }], + "Type": "Function", + "Name": "GetSortBagsRightToLeft" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isBattlePayItem" }], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "IsBattlePayItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFiltered" }], + "Arguments": [{ "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }], + "Type": "Function", + "Name": "IsContainerFiltered" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "PickupContainerItem" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "PlayerHasHearthstone" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "disable" }], + "Type": "Function", + "Name": "SetBackpackAutosortDisabled" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "disable" }], + "Type": "Function", + "Name": "SetBackpackSellJunkDisabled" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }, + { "Nilable": false, "Type": "BagIndex", "Name": "bagIndex" } + ], + "Type": "Function", + "Name": "SetBagPortraitTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "bagIndex" }, + { "Nilable": false, "Type": "BagSlotFlags", "Name": "flag" }, + { "Nilable": false, "Type": "bool", "Name": "isSet" } + ], + "Type": "Function", + "Name": "SetBagSlotFlag" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "disable" }], + "Type": "Function", + "Name": "SetBankAutosortDisabled" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "enable" }], + "Type": "Function", + "Name": "SetInsertItemsLeftToRight" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "searchString" }], + "Type": "Function", + "Name": "SetItemSearch" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "enable" }], + "Type": "Function", + "Name": "SetSortBagsRightToLeft" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "ShowContainerSellCursor" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "SocketContainerItem" + }, + { "Type": "Function", "Name": "SortAccountBankBags" }, + { "Type": "Function", "Name": "SortBags" }, + { "Type": "Function", "Name": "SortBankBags" }, + { "Type": "Function", "Name": "SortReagentBankBags" }, + { + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" }, + { "Nilable": false, "Type": "number", "Name": "amount" } + ], + "Type": "Function", + "Name": "SplitContainerItem" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" }, + { "Nilable": true, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": true, "Type": "BankType", "Name": "bankType" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "reagentBankOpen" + } + ], + "Type": "Function", + "Name": "UseContainerItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "used" }], + "Type": "Function", + "Name": "UseHearthstone" + } + ], + "Type": "System", + "Name": "Container", + "Events": [ + { + "LiteralName": "BAG_CLOSED", + "Payload": [{ "Nilable": false, "Type": "BagIndex", "Name": "bagID" }], + "Type": "Event", + "Name": "BagClosed" + }, + { + "LiteralName": "BAG_CONTAINER_UPDATE", + "Type": "Event", + "Name": "BagContainerUpdate" + }, + { + "LiteralName": "BAG_NEW_ITEMS_UPDATED", + "Type": "Event", + "Name": "BagNewItemsUpdated" + }, + { + "LiteralName": "BAG_OPEN", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "bagID" }], + "Type": "Event", + "Name": "BagOpen" + }, + { + "LiteralName": "BAG_OVERFLOW_WITH_FULL_INVENTORY", + "Type": "Event", + "Name": "BagOverflowWithFullInventory" + }, + { + "LiteralName": "BAG_SLOT_FLAGS_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "slot" }], + "Type": "Event", + "Name": "BagSlotFlagsUpdated" + }, + { + "LiteralName": "BAG_UPDATE", + "Payload": [{ "Nilable": false, "Type": "BagIndex", "Name": "bagID" }], + "Type": "Event", + "Name": "BagUpdate" + }, + { + "LiteralName": "BAG_UPDATE_COOLDOWN", + "Type": "Event", + "Name": "BagUpdateCooldown" + }, + { + "LiteralName": "BAG_UPDATE_DELAYED", + "Type": "Event", + "Name": "BagUpdateDelayed" + }, + { + "LiteralName": "EQUIP_BIND_REFUNDABLE_CONFIRM", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "slot" }, + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Event", + "Name": "EquipBindRefundableConfirm" + }, + { + "LiteralName": "EQUIP_BIND_TRADEABLE_CONFIRM", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "slot" }, + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Event", + "Name": "EquipBindTradeableConfirm" + }, + { + "LiteralName": "EXPAND_BAG_BAR_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "expandBagBar" }], + "Type": "Event", + "Name": "ExpandBagBarChanged" + }, + { + "LiteralName": "INVENTORY_SEARCH_UPDATE", + "Type": "Event", + "Name": "InventorySearchUpdate" + }, + { + "LiteralName": "ITEM_LOCK_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "BagIndex", "Name": "bagOrSlotIndex" }, + { "Nilable": true, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Event", + "Name": "ItemLockChanged" + }, + { + "LiteralName": "ITEM_LOCKED", + "Payload": [ + { "Nilable": false, "Type": "BagIndex", "Name": "bagOrSlotIndex" }, + { "Nilable": true, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Event", + "Name": "ItemLocked" + }, + { + "LiteralName": "ITEM_UNLOCKED", + "Payload": [ + { "Nilable": false, "Type": "BagIndex", "Name": "bagOrSlotIndex" }, + { "Nilable": true, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Event", + "Name": "ItemUnlocked" + }, + { + "LiteralName": "USE_COMBINED_BAGS_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "useCombinedBags" }], + "Type": "Event", + "Name": "UseCombinedBagsChanged" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "fileID", "Name": "iconFileID" }, + { "Nilable": false, "Type": "number", "Name": "stackCount" }, + { "Nilable": false, "Type": "bool", "Name": "isLocked" }, + { "Nilable": true, "Type": "ItemQuality", "Name": "quality" }, + { "Nilable": false, "Type": "bool", "Name": "isReadable" }, + { "Nilable": false, "Type": "bool", "Name": "hasLoot" }, + { "Nilable": false, "Type": "string", "Name": "hyperlink" }, + { "Nilable": false, "Type": "bool", "Name": "isFiltered" }, + { "Nilable": false, "Type": "bool", "Name": "hasNoValue" }, + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "bool", "Name": "isBound" }, + { "Nilable": false, "Type": "string", "Name": "itemName" } + ], + "Type": "Structure", + "Name": "ContainerItemInfo" + }, + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "iconFileID" }, + { "Nilable": false, "Type": "number", "Name": "currencyCount" }, + { "Nilable": false, "Type": "cstring", "Name": "name" } + ], + "Type": "Structure", + "Name": "ItemPurchaseCurrency" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WOWMONEY", "Name": "money" }, + { "Nilable": false, "Type": "number", "Name": "itemCount" }, + { "Nilable": false, "Type": "time_t", "Name": "refundSeconds" }, + { "Nilable": false, "Type": "number", "Name": "currencyCount" }, + { "Nilable": false, "Type": "bool", "Name": "hasEnchants" } + ], + "Type": "Structure", + "Name": "ItemPurchaseInfo" + }, + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "iconFileID" }, + { "Nilable": false, "Type": "number", "Name": "itemCount" }, + { "Nilable": false, "Type": "string", "Name": "hyperlink" } + ], + "Type": "Structure", + "Name": "ItemPurchaseItem" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "isQuestItem" }, + { "Nilable": true, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "bool", "Name": "isActive" } + ], + "Type": "Structure", + "Name": "ItemQuestInfo" + } + ] + }, + { + "Namespace": "C_ContentTracking", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "ContentTrackingResult", "Name": "result" }, + { "Nilable": true, "Type": "number", "Name": "mapID" } + ], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "trackableType" }, + { "Nilable": false, "Type": "number", "Name": "trackableID" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "ignoreWaypoint" } + ], + "Type": "Function", + "Name": "GetBestMapForTrackable" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEnabled" }], + "Type": "Function", + "Name": "GetCollectableSourceTrackingEnabled" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ContentTrackingType", + "Type": "table", + "Name": "collectableSourceTypes" + } + ], + "Type": "Function", + "Name": "GetCollectableSourceTypes" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ContentTrackingTargetType", "Name": "targetType" }, + { "Nilable": false, "Type": "number", "Name": "targetID" } + ], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "id" } + ], + "Type": "Function", + "Name": "GetCurrentTrackingTarget" + }, + { + "Returns": [ + { "Nilable": false, "Type": "EncounterTrackingInfo", "Name": "trackingInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "journalEncounterID" } + ], + "Type": "Function", + "Name": "GetEncounterTrackingInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ContentTrackingResult", "Name": "result" }, + { "Nilable": true, "Type": "ContentTrackingMapInfo", "Name": "mapInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "trackableType" }, + { "Nilable": false, "Type": "number", "Name": "trackableID" }, + { "Nilable": false, "Type": "number", "Name": "uiMapID" } + ], + "Type": "Function", + "Name": "GetNextWaypointForTrackable" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "objectiveText" }], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingTargetType", "Name": "targetType" }, + { "Nilable": false, "Type": "number", "Name": "targetID" }, + { + "Nilable": false, + "Default": true, + "Type": "bool", + "Name": "includeHyperlinks" + } + ], + "Type": "Function", + "Name": "GetObjectiveText" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "title" }], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "trackableType" }, + { "Nilable": false, "Type": "number", "Name": "trackableID" } + ], + "Type": "Function", + "Name": "GetTitle" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ContentTrackingResult", "Name": "result" }, + { + "Nilable": false, + "InnerType": "ContentTrackingMapInfo", + "Type": "table", + "Name": "trackableMapInfos" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "trackableType" }, + { "Nilable": false, "Type": "number", "Name": "uiMapID" } + ], + "Type": "Function", + "Name": "GetTrackablesOnMap" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "entryIDs" } + ], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "trackableType" } + ], + "Type": "Function", + "Name": "GetTrackedIDs" + }, + { + "Returns": [ + { "Nilable": false, "Type": "VendorTrackingInfo", "Name": "vendorTrackingInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "collectableEntryID" } + ], + "Type": "Function", + "Name": "GetVendorTrackingInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "waypointText" }], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "trackableType" }, + { "Nilable": false, "Type": "number", "Name": "trackableID" } + ], + "Type": "Function", + "Name": "GetWaypointText" + }, + { + "Documentation": [ + "If successful, returns if the trackable is either on your current map, or if we're able to determine a route to that map from your location via waypoints." + ], + "Type": "Function", + "Name": "IsNavigable", + "Returns": [ + { "Nilable": false, "Type": "ContentTrackingResult", "Name": "result" }, + { "Nilable": false, "Type": "bool", "Name": "isNavigable" } + ], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "trackableType" }, + { "Nilable": false, "Type": "number", "Name": "trackableID" } + ] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTrackable" }], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "id" } + ], + "Type": "Function", + "Name": "IsTrackable" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTracking" }], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "id" } + ], + "Type": "Function", + "Name": "IsTracking" + }, + { + "Returns": [{ "Nilable": true, "Type": "ContentTrackingError", "Name": "error" }], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "id" } + ], + "Type": "Function", + "Name": "StartTracking" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "ContentTrackingStopType", "Name": "stopType" } + ], + "Type": "Function", + "Name": "StopTracking" + }, + { + "Returns": [{ "Nilable": true, "Type": "ContentTrackingError", "Name": "error" }], + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "ContentTrackingStopType", "Name": "stopType" } + ], + "Type": "Function", + "Name": "ToggleTracking" + } + ], + "Type": "System", + "Name": "ContentTracking", + "Events": [ + { + "LiteralName": "CONTENT_TRACKING_IS_ENABLED_UPDATE", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isEnabled" }], + "Type": "Event", + "Name": "ContentTrackingIsEnabledUpdate" + }, + { + "LiteralName": "CONTENT_TRACKING_LIST_UPDATE", + "Type": "Event", + "Name": "ContentTrackingListUpdate" + }, + { + "LiteralName": "CONTENT_TRACKING_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "bool", "Name": "isTracked" } + ], + "Type": "Event", + "Name": "ContentTrackingUpdate" + }, + { + "LiteralName": "TRACKABLE_INFO_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "id" } + ], + "Type": "Event", + "Name": "TrackableInfoUpdate" + }, + { + "LiteralName": "TRACKING_TARGET_INFO_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "ContentTrackingTargetType", "Name": "targetType" }, + { "Nilable": false, "Type": "number", "Name": "targetID" } + ], + "Type": "Event", + "Name": "TrackingTargetInfoUpdate" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ContentTrackingError", + "Fields": [ + { "EnumValue": 0, "Type": "ContentTrackingError", "Name": "Untrackable" }, + { "EnumValue": 1, "Type": "ContentTrackingError", "Name": "MaxTracked" }, + { "EnumValue": 2, "Type": "ContentTrackingError", "Name": "AlreadyTracked" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ContentTrackingResult", + "Fields": [ + { "EnumValue": 0, "Type": "ContentTrackingResult", "Name": "Success" }, + { "EnumValue": 1, "Type": "ContentTrackingResult", "Name": "DataPending" }, + { "EnumValue": 2, "Type": "ContentTrackingResult", "Name": "Failure" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ContentTrackingStopType", + "Fields": [ + { "EnumValue": 0, "Type": "ContentTrackingStopType", "Name": "Invalidated" }, + { "EnumValue": 1, "Type": "ContentTrackingStopType", "Name": "Collected" }, + { "EnumValue": 2, "Type": "ContentTrackingStopType", "Name": "Manual" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ContentTrackingTargetType", + "Fields": [ + { + "EnumValue": 0, + "Type": "ContentTrackingTargetType", + "Name": "JournalEncounter" + }, + { "EnumValue": 1, "Type": "ContentTrackingTargetType", "Name": "Vendor" }, + { "EnumValue": 2, "Type": "ContentTrackingTargetType", "Name": "Achievement" }, + { "EnumValue": 3, "Type": "ContentTrackingTargetType", "Name": "Profession" }, + { "EnumValue": 4, "Type": "ContentTrackingTargetType", "Name": "Quest" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "ContentTrackingType", + "Fields": [ + { "EnumValue": 0, "Type": "ContentTrackingType", "Name": "Appearance" }, + { "EnumValue": 1, "Type": "ContentTrackingType", "Name": "Mount" }, + { "EnumValue": 2, "Type": "ContentTrackingType", "Name": "Achievement" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Values": [ + { "Value": 15, "Type": "number", "Name": "MaxTrackedCollectableSources" }, + { "Value": 10, "Type": "number", "Name": "MaxTrackedAchievements" } + ], + "Type": "Constants", + "Name": "ContentTrackingConsts" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" }, + { "Nilable": false, "Type": "ContentTrackingType", "Name": "trackableType" }, + { "Nilable": false, "Type": "number", "Name": "trackableID" }, + { "Nilable": false, "Type": "ContentTrackingTargetType", "Name": "targetType" }, + { "Nilable": false, "Type": "number", "Name": "targetID" }, + { "Nilable": false, "Type": "string", "Name": "waypointText" } + ], + "Type": "Structure", + "Name": "ContentTrackingMapInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "encounterName" }, + { "Nilable": true, "Type": "number", "Name": "journalEncounterID" }, + { "Nilable": true, "Type": "number", "Name": "journalInstanceID" }, + { "Nilable": false, "Type": "cstring", "Name": "instanceName" }, + { "Nilable": true, "Type": "cstring", "Name": "subText" }, + { "Nilable": true, "Type": "number", "Name": "difficultyID" }, + { "Nilable": true, "Type": "number", "Name": "lfgDungeonID" }, + { "Nilable": true, "Type": "number", "Name": "groupFinderActivityID" } + ], + "Type": "Structure", + "Name": "EncounterTrackingInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "creatureName" }, + { "Nilable": true, "Type": "string", "Name": "zoneName" }, + { "Nilable": true, "Type": "number", "Name": "currencyType" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "cost" } + ], + "Type": "Structure", + "Name": "VendorTrackingInfo" + } + ] + }, + { + "Namespace": "C_ContributionCollector", + "Functions": [ + { "Type": "Function", "Name": "Close" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "Contribute" + }, + { + "Returns": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "number", + "Name": "contributionID" + } + ], + "Type": "Function", + "Name": "GetActive" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "textureAtlas", + "Type": "table", + "Name": "atlasName" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "GetAtlases" + }, + { + "Returns": [ + { "StrideIndex": 1, "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "GetBuffs" + }, + { + "Returns": [ + { "Nilable": true, "Type": "ContributionAppearance", "Name": "appearance" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "contributionID" }, + { "Nilable": false, "Type": "ContributionState", "Name": "contributionState" } + ], + "Type": "Function", + "Name": "GetContributionAppearance" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ContributionMapInfo", + "Type": "table", + "Name": "contributionCollectors" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetContributionCollectorsForMap" + }, + { + "Returns": [{ "Nilable": false, "Type": "ContributionResult", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "GetContributionResult" + }, + { + "Returns": [ + { "Nilable": false, "Default": "", "Type": "cstring", "Name": "description" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "GetDescription" + }, + { + "Returns": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "number", + "Name": "contributionID" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "creatureID" }], + "Type": "Function", + "Name": "GetManagedContributionsForCreatureID" + }, + { + "Returns": [ + { "Nilable": false, "Default": "", "Type": "cstring", "Name": "name" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "GetName" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "orderIndex" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "GetOrderIndex" + }, + { + "Returns": [ + { "Nilable": false, "Default": 0, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "currencyAmount" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "GetRequiredContributionCurrency" + }, + { + "Returns": [ + { "Nilable": false, "Default": 0, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "itemCount" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "GetRequiredContributionItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "GetRewardQuestID" + }, + { + "Returns": [ + { + "Nilable": false, + "Default": "None", + "Type": "ContributionState", + "Name": "contributionState" + }, + { + "Nilable": false, + "Type": "number", + "Name": "contributionPercentageComplete" + }, + { "Nilable": true, "Type": "time_t", "Name": "timeOfNextStateChange" }, + { "Nilable": false, "Type": "time_t", "Name": "startTime" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "GetState" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasPending" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "HasPendingContribution" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "awaitingData" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Function", + "Name": "IsAwaitingRewardQuestData" + } + ], + "Type": "System", + "Name": "ContributionCollector", + "Events": [ + { + "LiteralName": "CONTRIBUTION_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "ContributionState", "Name": "state" }, + { "Nilable": false, "Type": "ContributionResult", "Name": "result" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { + "StrideIndex": 1, + "Nilable": false, + "Type": "number", + "Name": "contributionID" + } + ], + "Type": "Event", + "Name": "ContributionChanged" + }, + { + "LiteralName": "CONTRIBUTION_COLLECTOR_PENDING", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "contributionID" }, + { "Nilable": false, "Type": "bool", "Name": "isPending" }, + { "Nilable": false, "Type": "number", "Name": "result" } + ], + "Type": "Event", + "Name": "ContributionCollectorPending" + }, + { + "LiteralName": "CONTRIBUTION_COLLECTOR_UPDATE", + "Type": "Event", + "Name": "ContributionCollectorUpdate" + }, + { + "LiteralName": "CONTRIBUTION_COLLECTOR_UPDATE_SINGLE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "contributionID" }], + "Type": "Event", + "Name": "ContributionCollectorUpdateSingle" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "ContributionAppearanceFlags", + "Fields": [ + { + "EnumValue": 0, + "Type": "ContributionAppearanceFlags", + "Name": "TooltipUseTimeRemaining" + } + ], + "MaxValue": 0, + "MinValue": 0, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "ContributionResult", + "Fields": [ + { "EnumValue": 0, "Type": "ContributionResult", "Name": "Success" }, + { "EnumValue": 1, "Type": "ContributionResult", "Name": "MustBeNearNpc" }, + { "EnumValue": 2, "Type": "ContributionResult", "Name": "IncorrectState" }, + { "EnumValue": 3, "Type": "ContributionResult", "Name": "InvalidID" }, + { "EnumValue": 4, "Type": "ContributionResult", "Name": "QuestDataMissing" }, + { + "EnumValue": 5, + "Type": "ContributionResult", + "Name": "FailedConditionCheck" + }, + { + "EnumValue": 6, + "Type": "ContributionResult", + "Name": "UnableToCompleteTurnIn" + }, + { "EnumValue": 7, "Type": "ContributionResult", "Name": "InternalError" } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "stateName" }, + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "stateColor" + }, + { "Nilable": false, "Type": "cstring", "Name": "tooltipLine" }, + { "Nilable": false, "Type": "bool", "Name": "tooltipUseTimeRemaining" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "statusBarAtlas" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "borderAtlas" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "bannerAtlas" } + ], + "Type": "Structure", + "Name": "ContributionAppearance" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "areaPoiID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "atlasName" }, + { "Nilable": false, "Type": "number", "Name": "collectorCreatureID" } + ], + "Type": "Structure", + "Name": "ContributionMapInfo" + } + ] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "Clear" }, + { + "Documentation": [ + "The returned duration unit is milliseconds, unaffected by modRate." + ], + "Type": "Function", + "Name": "GetCooldownDisplayDuration", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "duration" }], + "Arguments": [] + }, + { + "Documentation": [ + "The returned duration unit is milliseconds and is multiplied by the modRate." + ], + "Type": "Function", + "Name": "GetCooldownDuration", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "duration" }], + "Arguments": [] + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "start" }, + { "Nilable": false, "Type": "number", "Name": "duration" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetCooldownTimes" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "drawBling" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDrawBling" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "drawEdge" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDrawEdge" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "drawSwipe" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDrawSwipe" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "edgeScale" }], + "Arguments": [], + "Type": "Function", + "Name": "GetEdgeScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "reverse" }], + "Arguments": [], + "Type": "Function", + "Name": "GetReverse" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "rotationRadians" }], + "Arguments": [], + "Type": "Function", + "Name": "GetRotation" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPaused" }], + "Arguments": [], + "Type": "Function", + "Name": "IsPaused" + }, + { "Arguments": [], "Type": "Function", "Name": "Pause" }, + { "Arguments": [], "Type": "Function", "Name": "Resume" }, + { + "Arguments": [ + { "Nilable": false, "Type": "FileAsset", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Type": "Function", + "Name": "SetBlingTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "start" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Default": 1, "Type": "number", "Name": "modRate" } + ], + "Type": "Function", + "Name": "SetCooldown" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Default": 1, "Type": "number", "Name": "modRate" } + ], + "Type": "Function", + "Name": "SetCooldownDuration" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "start" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Default": 1, "Type": "number", "Name": "modRate" } + ], + "Type": "Function", + "Name": "SetCooldownUNIX" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "seconds" }], + "Type": "Function", + "Name": "SetCountdownAbbrevThreshold" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "fontName" }], + "Type": "Function", + "Name": "SetCountdownFont" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "drawBling" } + ], + "Type": "Function", + "Name": "SetDrawBling" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "drawEdge" } + ], + "Type": "Function", + "Name": "SetDrawEdge" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "drawSwipe" } + ], + "Type": "Function", + "Name": "SetDrawSwipe" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "SetEdgeScale" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "FileAsset", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Type": "Function", + "Name": "SetEdgeTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "hideNumbers" } + ], + "Type": "Function", + "Name": "SetHideCountdownNumbers" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "reverse" } + ], + "Type": "Function", + "Name": "SetReverse" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "rotationRadians" }], + "Type": "Function", + "Name": "SetRotation" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetSwipeColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "FileAsset", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Type": "Function", + "Name": "SetSwipeTexture" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "low" + }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "high" + } + ], + "Type": "Function", + "Name": "SetTexCoordRange" + }, + { + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "useCircularEdge" + } + ], + "Type": "Function", + "Name": "SetUseCircularEdge" + } + ], + "Type": "ScriptObject", + "Name": "CooldownFrameAPI", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "CallingStates", + "Fields": [ + { "EnumValue": 0, "Type": "CallingStates", "Name": "QuestOffer" }, + { "EnumValue": 1, "Type": "CallingStates", "Name": "QuestActive" }, + { "EnumValue": 2, "Type": "CallingStates", "Name": "QuestCompleted" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Values": [{ "Value": 3, "Type": "number", "Name": "MaxCallings" }], + "Type": "Constants", + "Name": "Callings" + } + ] + }, + { + "Namespace": "C_CovenantCallings", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "unlocked" }], + "Type": "Function", + "Name": "AreCallingsUnlocked" + }, + { "Type": "Function", "Name": "RequestCallings" } + ], + "Type": "System", + "Name": "CovenantCallings", + "Events": [ + { + "LiteralName": "COVENANT_CALLINGS_UPDATED", + "Payload": [ + { + "Nilable": false, + "InnerType": "BountyInfo", + "Type": "table", + "Name": "callings" + } + ], + "Type": "Event", + "Name": "CovenantCallingsUpdated" + } + ], + "Tables": [] + }, + { + "Namespace": "C_CovenantPreview", + "Functions": [ + { "Type": "Function", "Name": "CloseFromUI" }, + { + "Returns": [ + { "Nilable": false, "Type": "CovenantPreviewInfo", "Name": "previewInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "playerChoiceResponseID" } + ], + "Type": "Function", + "Name": "GetCovenantInfoForPlayerChoiceResponseID" + } + ], + "Type": "System", + "Name": "CovenantPreview", + "Events": [ + { + "LiteralName": "COVENANT_PREVIEW_CLOSE", + "Type": "Event", + "Name": "CovenantPreviewClose" + }, + { + "LiteralName": "COVENANT_PREVIEW_OPEN", + "Payload": [ + { "Nilable": false, "Type": "CovenantPreviewInfo", "Name": "previewInfo" } + ], + "Type": "Event", + "Name": "CovenantPreviewOpen" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "CovenantAbilityType", + "Fields": [ + { "EnumValue": 0, "Type": "CovenantAbilityType", "Name": "Class" }, + { "EnumValue": 1, "Type": "CovenantAbilityType", "Name": "Signature" }, + { "EnumValue": 2, "Type": "CovenantAbilityType", "Name": "Soulbind" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "CovenantAbilityType", "Name": "type" } + ], + "Type": "Structure", + "Name": "CovenantAbilityInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "texture" } + ], + "Type": "Structure", + "Name": "CovenantFeatureInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "number", "Name": "transmogSetID" }, + { "Nilable": false, "Type": "number", "Name": "mountID" }, + { "Nilable": false, "Type": "string", "Name": "covenantName" }, + { "Nilable": false, "Type": "string", "Name": "covenantZone" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "covenantCrest" }, + { + "Nilable": false, + "InnerType": "CovenantAbilityInfo", + "Type": "table", + "Name": "covenantAbilities" + }, + { "Nilable": false, "Type": "bool", "Name": "fromPlayerChoice" }, + { + "Nilable": false, + "InnerType": "CovenantSoulbindInfo", + "Type": "table", + "Name": "covenantSoulbinds" + }, + { "Nilable": false, "Type": "CovenantFeatureInfo", "Name": "featureInfo" } + ], + "Type": "Structure", + "Name": "CovenantPreviewInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "textureKit", "Name": "uiTextureKit" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "sortOrder" } + ], + "Type": "Structure", + "Name": "CovenantSoulbindInfo" + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_CovenantSanctumUI", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canAccess" }], + "Type": "Function", + "Name": "CanAccessReservoir" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canDeposit" }], + "Type": "Function", + "Name": "CanDepositAnima" + }, + { "Type": "Function", "Name": "DepositAnima" }, + { "Type": "Function", "Name": "EndInteraction" }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "maxDisplayableValue" } + ], + "Type": "Function", + "Name": "GetAnimaInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "currentTalentTreeID" }], + "Type": "Function", + "Name": "GetCurrentTalentTreeID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CovenantSanctumFeatureInfo", + "Type": "table", + "Name": "features" + } + ], + "Type": "Function", + "Name": "GetFeatures" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "level" }], + "Type": "Function", + "Name": "GetRenownLevel" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CovenantSanctumRenownLevelInfo", + "Type": "table", + "Name": "levels" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "covenantID" }], + "Type": "Function", + "Name": "GetRenownLevels" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CovenantSanctumRenownRewardInfo", + "Type": "table", + "Name": "rewards" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "covenantID" }, + { "Nilable": false, "Type": "number", "Name": "renownLevel" } + ], + "Type": "Function", + "Name": "GetRenownRewardsForLevel" + }, + { + "Returns": [ + { "Nilable": true, "Type": "GarrTalentFeatureSubtype", "Name": "sanctumType" } + ], + "Type": "Function", + "Name": "GetSanctumType" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "currencyIDs" + } + ], + "Type": "Function", + "Name": "GetSoulCurrencies" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasMaxRenown" }], + "Type": "Function", + "Name": "HasMaximumRenown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isInCatchUpMode" }], + "Type": "Function", + "Name": "IsPlayerInRenownCatchUpMode" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isWeeklyCapped" }], + "Type": "Function", + "Name": "IsWeeklyRenownCapped" + }, + { "Type": "Function", "Name": "RequestCatchUpState" } + ], + "Type": "System", + "Name": "CovenantSanctumUI", + "Events": [ + { + "LiteralName": "COVENANT_RENOWN_CATCH_UP_STATE_UPDATE", + "Type": "Event", + "Name": "CovenantRenownCatchUpStateUpdate" + }, + { + "LiteralName": "COVENANT_SANCTUM_RENOWN_LEVEL_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "newRenownLevel" }, + { "Nilable": false, "Type": "number", "Name": "oldRenownLevel" } + ], + "Type": "Event", + "Name": "CovenantSanctumRenownLevelChanged" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "garrTalentTreeID" }, + { "Nilable": false, "Type": "number", "Name": "featureType" }, + { "Nilable": false, "Type": "number", "Name": "uiOrder" } + ], + "Type": "Structure", + "Name": "CovenantSanctumFeatureInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "bool", "Name": "locked" }, + { "Nilable": false, "Type": "bool", "Name": "isMilestone" }, + { "Nilable": false, "Type": "bool", "Name": "isCapstone" } + ], + "Type": "Structure", + "Name": "CovenantSanctumRenownLevelInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "uiOrder" }, + { "Nilable": true, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "number", "Name": "spellID" }, + { "Nilable": true, "Type": "number", "Name": "mountID" }, + { "Nilable": true, "Type": "number", "Name": "transmogID" }, + { "Nilable": true, "Type": "number", "Name": "transmogSetID" }, + { "Nilable": true, "Type": "number", "Name": "titleMaskID" }, + { "Nilable": true, "Type": "number", "Name": "garrFollowerID" }, + { "Nilable": true, "Type": "number", "Name": "transmogIllusionSourceID" }, + { "Nilable": true, "Type": "fileID", "Name": "icon" }, + { "Nilable": true, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "cstring", "Name": "description" }, + { "Nilable": true, "Type": "cstring", "Name": "toastDescription" } + ], + "Type": "Structure", + "Name": "CovenantSanctumRenownRewardInfo" + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_Covenants", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "covenantID" }], + "Type": "Function", + "Name": "GetActiveCovenantID" + }, + { + "Returns": [{ "Nilable": true, "Type": "CovenantData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "covenantID" }], + "Type": "Function", + "Name": "GetCovenantData" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "covenantID" + } + ], + "Type": "Function", + "Name": "GetCovenantIDs" + } + ], + "Type": "System", + "Name": "Covenant", + "Events": [ + { + "LiteralName": "COVENANT_CHOSEN", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "covenantID" }], + "Type": "Event", + "Name": "CovenantChosen" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "number", "Name": "celebrationSoundKit" }, + { "Nilable": false, "Type": "number", "Name": "animaChannelSelectSoundKit" }, + { "Nilable": false, "Type": "number", "Name": "animaChannelActiveSoundKit" }, + { "Nilable": false, "Type": "number", "Name": "animaGemsFullSoundKit" }, + { "Nilable": false, "Type": "number", "Name": "animaNewGemSoundKit" }, + { "Nilable": false, "Type": "number", "Name": "animaReinforceSelectSoundKit" }, + { "Nilable": false, "Type": "number", "Name": "upgradeTabSelectSoundKitID" }, + { "Nilable": false, "Type": "number", "Name": "reservoirFullSoundKitID" }, + { "Nilable": false, "Type": "number", "Name": "beginResearchSoundKitID" }, + { "Nilable": false, "Type": "number", "Name": "renownFanfareSoundKitID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "soulbindIDs" + } + ], + "Type": "Structure", + "Name": "CovenantData" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "CraftingOrderCustomerCategoryType", + "Fields": [ + { + "EnumValue": 0, + "Type": "CraftingOrderCustomerCategoryType", + "Name": "Primary" + }, + { + "EnumValue": 1, + "Type": "CraftingOrderCustomerCategoryType", + "Name": "Secondary" + }, + { + "EnumValue": 2, + "Type": "CraftingOrderCustomerCategoryType", + "Name": "Tertiary" + } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "CraftingOrderReagentsType", + "Fields": [ + { "EnumValue": 0, "Type": "CraftingOrderReagentsType", "Name": "All" }, + { "EnumValue": 1, "Type": "CraftingOrderReagentsType", "Name": "Some" }, + { "EnumValue": 2, "Type": "CraftingOrderReagentsType", "Name": "None" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Values": [ + { + "Value": 100, + "Type": "number", + "Name": "MAX_CRAFTING_ORDER_FAVORITE_RECIPES" + } + ], + "Type": "Constants", + "Name": "CraftingOrderConsts" + } + ] + }, + { + "Namespace": "C_CraftingOrders", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "areNotesDisabled" }], + "Type": "Function", + "Name": "AreOrderNotesDisabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "WOWMONEY", "Name": "deposit" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "skillLineAbilityID" }, + { "Nilable": false, "Type": "CraftingOrderType", "Name": "orderType" }, + { "Nilable": false, "Type": "CraftingOrderDuration", "Name": "orderDuration" } + ], + "Type": "Function", + "Name": "CalculateCraftingOrderPostingFee" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canOrder" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "skillLineAbilityID" } + ], + "Type": "Function", + "Name": "CanOrderSkillAbility" + }, + { + "Arguments": [{ "Nilable": false, "Type": "BigUInteger", "Name": "orderID" }], + "Type": "Function", + "Name": "CancelOrder" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" }, + { "Nilable": false, "Type": "Profession", "Name": "profession" } + ], + "Type": "Function", + "Name": "ClaimOrder" + }, + { "Type": "Function", "Name": "CloseCrafterCraftingOrders" }, + { "Type": "Function", "Name": "CloseCustomerCraftingOrders" }, + { + "Arguments": [ + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" }, + { "Nilable": false, "Type": "string", "Name": "crafterNote" }, + { "Nilable": false, "Type": "Profession", "Name": "profession" } + ], + "Type": "Function", + "Name": "FulfillOrder" + }, + { + "Returns": [{ "Nilable": true, "Type": "CraftingOrderInfo", "Name": "order" }], + "Type": "Function", + "Name": "GetClaimedOrder" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CraftingOrderBucketInfo", + "Type": "table", + "Name": "buckets" + } + ], + "Type": "Function", + "Name": "GetCrafterBuckets" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CraftingOrderInfo", + "Type": "table", + "Name": "orders" + } + ], + "Type": "Function", + "Name": "GetCrafterOrders" + }, + { + "Returns": [{ "Nilable": false, "Type": "BigUInteger", "Name": "time" }], + "Type": "Function", + "Name": "GetCraftingOrderTime" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CraftingOrderCustomerCategory", + "Type": "table", + "Name": "categories" + } + ], + "Type": "Function", + "Name": "GetCustomerCategories" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "CraftingOrderCustomerSearchResults", + "Name": "results" + } + ], + "Arguments": [ + { + "Nilable": false, + "Type": "CraftingOrderCustomerSearchParams", + "Name": "params" + } + ], + "Type": "Function", + "Name": "GetCustomerOptions" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CraftingOrderInfo", + "Type": "table", + "Name": "customerOrders" + } + ], + "Type": "Function", + "Name": "GetCustomerOrders" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "GetDefaultOrdersSkillLine" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CraftingOrderInfo", + "Type": "table", + "Name": "myOrders" + } + ], + "Type": "Function", + "Name": "GetMyOrders" + }, + { + "Returns": [{ "Nilable": false, "Type": "BigUInteger", "Name": "numFavorites" }], + "Type": "Function", + "Name": "GetNumFavoriteCustomerOptions" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "CraftingOrderClaimsRemainingInfo", + "Name": "claimInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "Profession", "Name": "profession" }], + "Type": "Function", + "Name": "GetOrderClaimInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CraftingOrderPersonalOrdersInfo", + "Type": "table", + "Name": "infos" + } + ], + "Type": "Function", + "Name": "GetPersonalOrdersInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFavorites" }], + "Type": "Function", + "Name": "HasFavoriteCustomerOptions" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "favorited" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "IsCustomerOptionFavorited" + }, + { + "Arguments": [ + { + "Nilable": false, + "Type": "CraftingOrderRequestMyOrdersInfo", + "Name": "request" + } + ], + "Type": "Function", + "Name": "ListMyOrders" + }, + { "Type": "Function", "Name": "OpenCrafterCraftingOrders" }, + { "Type": "Function", "Name": "OpenCustomerCraftingOrders" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "recraftable" }], + "Arguments": [{ "Nilable": false, "Type": "BigUInteger", "Name": "orderID" }], + "Type": "Function", + "Name": "OrderCanBeRecrafted" + }, + { "Type": "Function", "Name": "ParseCustomerOptions" }, + { + "Arguments": [ + { "Nilable": false, "Type": "NewCraftingOrderInfo", "Name": "orderInfo" } + ], + "Type": "Function", + "Name": "PlaceNewOrder" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" }, + { "Nilable": false, "Type": "string", "Name": "crafterNote" }, + { "Nilable": false, "Type": "Profession", "Name": "profession" } + ], + "Type": "Function", + "Name": "RejectOrder" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" }, + { "Nilable": false, "Type": "Profession", "Name": "profession" } + ], + "Type": "Function", + "Name": "ReleaseOrder" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "CraftingOrderRequestInfo", "Name": "request" } + ], + "Type": "Function", + "Name": "RequestCrafterOrders" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "CraftingOrderRequestInfo", "Name": "request" } + ], + "Type": "Function", + "Name": "RequestCustomerOrders" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "bool", "Name": "favorited" } + ], + "Type": "Function", + "Name": "SetCustomerOptionFavorited" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "showTab" }], + "Type": "Function", + "Name": "ShouldShowCraftingOrderTab" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasOrders" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "SkillLineHasOrders" + }, + { "Type": "Function", "Name": "UpdateIgnoreList" } + ], + "Type": "System", + "Name": "CraftingOrderUI", + "Events": [ + { + "LiteralName": "CRAFTING_HOUSE_DISABLED", + "Type": "Event", + "Name": "CraftingHouseDisabled" + }, + { + "LiteralName": "CRAFTINGORDERS_CAN_REQUEST", + "Type": "Event", + "Name": "CraftingordersCanRequest" + }, + { + "LiteralName": "CRAFTINGORDERS_CLAIM_ORDER_RESPONSE", + "Payload": [ + { "Nilable": false, "Type": "CraftingOrderResult", "Name": "result" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" } + ], + "Type": "Event", + "Name": "CraftingordersClaimOrderResponse" + }, + { + "LiteralName": "CRAFTINGORDERS_CLAIMED_ORDER_ADDED", + "Type": "Event", + "Name": "CraftingordersClaimedOrderAdded" + }, + { + "LiteralName": "CRAFTINGORDERS_CLAIMED_ORDER_REMOVED", + "Type": "Event", + "Name": "CraftingordersClaimedOrderRemoved" + }, + { + "LiteralName": "CRAFTINGORDERS_CLAIMED_ORDER_UPDATED", + "Payload": [{ "Nilable": false, "Type": "BigUInteger", "Name": "orderID" }], + "Type": "Event", + "Name": "CraftingordersClaimedOrderUpdated" + }, + { + "LiteralName": "CRAFTINGORDERS_CRAFT_ORDER_RESPONSE", + "Payload": [ + { "Nilable": false, "Type": "CraftingOrderResult", "Name": "result" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" } + ], + "Type": "Event", + "Name": "CraftingordersCraftOrderResponse" + }, + { + "LiteralName": "CRAFTINGORDERS_CUSTOMER_FAVORITES_CHANGED", + "Type": "Event", + "Name": "CraftingordersCustomerFavoritesChanged" + }, + { + "LiteralName": "CRAFTINGORDERS_CUSTOMER_OPTIONS_PARSED", + "Type": "Event", + "Name": "CraftingordersCustomerOptionsParsed" + }, + { + "LiteralName": "CRAFTINGORDERS_DISPLAY_CRAFTER_FULFILLED_MSG", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "orderTypeString" }, + { "Nilable": false, "Type": "cstring", "Name": "itemNameString" }, + { "Nilable": false, "Type": "cstring", "Name": "playerNameString" }, + { "Nilable": false, "Type": "WOWMONEY", "Name": "tipAmount" }, + { "Nilable": false, "Type": "number", "Name": "quantityCrafted" } + ], + "Type": "Event", + "Name": "CraftingordersDisplayCrafterFulfilledMsg" + }, + { + "LiteralName": "CRAFTINGORDERS_FULFILL_ORDER_RESPONSE", + "Payload": [ + { "Nilable": false, "Type": "CraftingOrderResult", "Name": "result" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" } + ], + "Type": "Event", + "Name": "CraftingordersFulfillOrderResponse" + }, + { + "LiteralName": "CRAFTINGORDERS_HIDE_CRAFTER", + "Type": "Event", + "Name": "CraftingordersHideCrafter" + }, + { + "LiteralName": "CRAFTINGORDERS_HIDE_CUSTOMER", + "Type": "Event", + "Name": "CraftingordersHideCustomer" + }, + { + "LiteralName": "CRAFTINGORDERS_ORDER_CANCEL_RESPONSE", + "Payload": [ + { "Nilable": false, "Type": "CraftingOrderResult", "Name": "result" } + ], + "Type": "Event", + "Name": "CraftingordersOrderCancelResponse" + }, + { + "LiteralName": "CRAFTINGORDERS_ORDER_PLACEMENT_RESPONSE", + "Payload": [ + { "Nilable": false, "Type": "CraftingOrderResult", "Name": "result" } + ], + "Type": "Event", + "Name": "CraftingordersOrderPlacementResponse" + }, + { + "LiteralName": "CRAFTINGORDERS_REJECT_ORDER_RESPONSE", + "Payload": [ + { "Nilable": false, "Type": "CraftingOrderResult", "Name": "result" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" } + ], + "Type": "Event", + "Name": "CraftingordersRejectOrderResponse" + }, + { + "LiteralName": "CRAFTINGORDERS_RELEASE_ORDER_RESPONSE", + "Payload": [ + { "Nilable": false, "Type": "CraftingOrderResult", "Name": "result" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" } + ], + "Type": "Event", + "Name": "CraftingordersReleaseOrderResponse" + }, + { + "LiteralName": "CRAFTINGORDERS_SHOW_CRAFTER", + "Type": "Event", + "Name": "CraftingordersShowCrafter" + }, + { + "LiteralName": "CRAFTINGORDERS_SHOW_CUSTOMER", + "Type": "Event", + "Name": "CraftingordersShowCustomer" + }, + { + "LiteralName": "CRAFTINGORDERS_UNEXPECTED_ERROR", + "Type": "Event", + "Name": "CraftingordersUnexpectedError" + }, + { + "LiteralName": "CRAFTINGORDERS_UPDATE_CUSTOMER_NAME", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "customerName" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" } + ], + "Type": "Event", + "Name": "CraftingordersUpdateCustomerName" + }, + { + "LiteralName": "CRAFTINGORDERS_UPDATE_ORDER_COUNT", + "Payload": [ + { "Nilable": false, "Type": "CraftingOrderType", "Name": "orderType" }, + { "Nilable": false, "Type": "number", "Name": "numOrders" } + ], + "Type": "Event", + "Name": "CraftingordersUpdateOrderCount" + }, + { + "LiteralName": "CRAFTINGORDERS_UPDATE_PERSONAL_ORDER_COUNTS", + "Type": "Event", + "Name": "CraftingordersUpdatePersonalOrderCounts" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "CraftingOrderType", "Name": "orderType" }, + { "Nilable": true, "Type": "number", "Name": "selectedSkillLineAbility" }, + { "Nilable": false, "Type": "bool", "Name": "searchFavorites" }, + { "Nilable": false, "Type": "bool", "Name": "initialNonPublicSearch" }, + { "Nilable": false, "Type": "CraftingOrderSortInfo", "Name": "primarySort" }, + { "Nilable": false, "Type": "CraftingOrderSortInfo", "Name": "secondarySort" }, + { "Nilable": false, "Type": "bool", "Name": "forCrafter" }, + { "Nilable": false, "Type": "number", "Name": "offset" }, + { + "Nilable": false, + "Type": "CraftingOrderRequestCallback", + "Name": "callback" + }, + { "Nilable": true, "Type": "Profession", "Name": "profession" } + ], + "Type": "Structure", + "Name": "CraftingOrderRequestInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "CraftingOrderSortInfo", "Name": "primarySort" }, + { "Nilable": false, "Type": "CraftingOrderSortInfo", "Name": "secondarySort" }, + { "Nilable": false, "Type": "number", "Name": "offset" }, + { + "Nilable": false, + "Type": "CraftingOrderRequestMyOrdersCallback", + "Name": "callback" + } + ], + "Type": "Structure", + "Name": "CraftingOrderRequestMyOrdersInfo" + } + ] + }, + { + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "skillLineAbilityID" }, + { "Nilable": false, "Type": "WOWMONEY", "Name": "tipAmountAvg" }, + { "Nilable": false, "Type": "WOWMONEY", "Name": "tipAmountMax" }, + { "Nilable": false, "Type": "number", "Name": "numAvailable" } + ], + "Type": "Structure", + "Name": "CraftingOrderBucketInfo" + }, + { + "Fields": [ + { "Nilable": false, "Default": 0, "Type": "number", "Name": "claimsRemaining" }, + { "Nilable": true, "Type": "number", "Name": "secondsToRecharge" } + ], + "Type": "Structure", + "Name": "CraftingOrderClaimsRemainingInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "categoryName" }, + { "Nilable": false, "Type": "number", "Name": "categoryID" }, + { "Nilable": false, "Type": "number", "Name": "uiSortOrder" }, + { "Nilable": true, "Type": "number", "Name": "primaryCategorySortOrder" }, + { "Nilable": true, "Type": "number", "Name": "secondaryCategorySortOrder" }, + { + "Nilable": false, + "Type": "CraftingOrderCustomerCategoryType", + "Name": "type" + } + ], + "Type": "Structure", + "Name": "CraftingOrderCustomerCategory" + }, + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "primaryCategoryID" }, + { "Nilable": true, "Type": "number", "Name": "secondaryCategoryID" }, + { "Nilable": true, "Type": "number", "Name": "tertiaryCategoryID" } + ], + "Type": "Structure", + "Name": "CraftingOrderCustomerCategoryFilters" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "skillLineAbilityID" }, + { "Nilable": false, "Type": "number", "Name": "professionID" }, + { "Nilable": false, "Type": "number", "Name": "skillUpSkillLineID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "string", "Name": "itemName" }, + { "Nilable": false, "Type": "number", "Name": "primaryCategoryID" }, + { "Nilable": false, "Type": "number", "Name": "iLvlMin" }, + { "Nilable": true, "Type": "number", "Name": "iLvlMax" }, + { "Nilable": false, "Type": "bool", "Name": "canUse" }, + { "Nilable": false, "Type": "bool", "Name": "bindOnPickup" }, + { + "Nilable": true, + "InnerType": "number", + "Type": "table", + "Name": "qualityIlvlBonuses" + }, + { + "Nilable": true, + "InnerType": "number", + "Type": "table", + "Name": "craftingQualityIDs" + }, + { "Nilable": true, "Type": "ItemQuality", "Name": "quality" }, + { "Nilable": true, "Type": "number", "Name": "slots" }, + { "Nilable": true, "Type": "number", "Name": "level" }, + { "Nilable": true, "Type": "number", "Name": "skill" }, + { "Nilable": true, "Type": "number", "Name": "secondaryCategoryID" }, + { "Nilable": true, "Type": "number", "Name": "tertiaryCategoryID" }, + { "Nilable": true, "Type": "number", "Name": "expansionID" } + ], + "Type": "Structure", + "Name": "CraftingOrderCustomerOptionInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "Type": "CraftingOrderCustomerCategoryFilters", + "Name": "categoryFilters" + }, + { "Nilable": true, "Type": "string", "Name": "searchText" }, + { "Nilable": false, "Type": "number", "Name": "minLevel" }, + { "Nilable": false, "Type": "number", "Name": "maxLevel" }, + { "Nilable": false, "Type": "bool", "Name": "uncollectedOnly" }, + { "Nilable": false, "Type": "bool", "Name": "usableOnly" }, + { "Nilable": false, "Type": "bool", "Name": "upgradesOnly" }, + { "Nilable": false, "Type": "bool", "Name": "currentExpansionOnly" }, + { "Nilable": false, "Type": "bool", "Name": "includePoor" }, + { "Nilable": false, "Type": "bool", "Name": "includeCommon" }, + { "Nilable": false, "Type": "bool", "Name": "includeUncommon" }, + { "Nilable": false, "Type": "bool", "Name": "includeRare" }, + { "Nilable": false, "Type": "bool", "Name": "includeEpic" }, + { "Nilable": false, "Type": "bool", "Name": "includeLegendary" }, + { "Nilable": false, "Type": "bool", "Name": "includeArtifact" }, + { "Nilable": false, "Type": "bool", "Name": "isFavoritesSearch" } + ], + "Type": "Structure", + "Name": "CraftingOrderCustomerSearchParams" + }, + { + "Fields": [ + { + "Nilable": false, + "InnerType": "CraftingOrderCustomerOptionInfo", + "Type": "table", + "Name": "options" + }, + { + "Nilable": true, + "Type": "AuctionHouseExtraColumn", + "Name": "extraColumnType" + } + ], + "Type": "Structure", + "Name": "CraftingOrderCustomerSearchResults" + }, + { + "Fields": [ + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" }, + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "skillLineAbilityID" }, + { "Nilable": false, "Type": "CraftingOrderType", "Name": "orderType" }, + { "Nilable": false, "Type": "CraftingOrderState", "Name": "orderState" }, + { "Nilable": false, "Type": "time_t", "Name": "expirationTime" }, + { "Nilable": false, "Type": "time_t", "Name": "claimEndTime" }, + { "Nilable": false, "Type": "number", "Name": "minQuality" }, + { "Nilable": false, "Type": "WOWMONEY", "Name": "tipAmount" }, + { "Nilable": false, "Type": "WOWMONEY", "Name": "consortiumCut" }, + { "Nilable": false, "Type": "bool", "Name": "isRecraft" }, + { "Nilable": false, "Type": "bool", "Name": "isFulfillable" }, + { + "Nilable": false, + "Type": "CraftingOrderReagentsType", + "Name": "reagentState" + }, + { "Nilable": true, "Type": "WOWGUID", "Name": "customerGuid" }, + { "Nilable": true, "Type": "string", "Name": "customerName" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "crafterGuid" }, + { "Nilable": true, "Type": "string", "Name": "crafterName" }, + { "Nilable": true, "Type": "number", "Name": "npcCustomerCreatureID" }, + { "Nilable": false, "Type": "string", "Name": "customerNotes" }, + { + "Nilable": false, + "InnerType": "CraftingOrderReagentInfo", + "Type": "table", + "Name": "reagents" + }, + { "Nilable": true, "Type": "string", "Name": "outputItemHyperlink" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "outputItemGUID" }, + { "Nilable": true, "Type": "string", "Name": "recraftItemHyperlink" }, + { + "Nilable": false, + "InnerType": "CraftingOrderRewardInfo", + "Type": "table", + "Name": "npcOrderRewards" + }, + { "Nilable": false, "Type": "number", "Name": "npcCraftingOrderSetID" }, + { "Nilable": false, "Type": "number", "Name": "npcTreasureID" } + ], + "Type": "Structure", + "Name": "CraftingOrderInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "RcoCloseReason", "Name": "reason" }, + { "Nilable": false, "Type": "string", "Name": "recipeName" }, + { "Nilable": true, "Type": "WOWMONEY", "Name": "commissionPaid" }, + { "Nilable": true, "Type": "string", "Name": "crafterNote" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "crafterGUID" }, + { "Nilable": true, "Type": "string", "Name": "crafterName" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "customerGUID" }, + { "Nilable": true, "Type": "string", "Name": "customerName" } + ], + "Type": "Structure", + "Name": "CraftingOrderMailInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "Profession", "Name": "profession" }, + { "Nilable": false, "Type": "number", "Name": "numPersonalOrders" }, + { "Nilable": false, "Type": "cstring", "Name": "professionName" } + ], + "Type": "Structure", + "Name": "CraftingOrderPersonalOrdersInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "CraftingReagentInfo", "Name": "reagent" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" }, + { "Nilable": false, "Type": "CraftingOrderReagentSource", "Name": "source" }, + { "Nilable": false, "Type": "bool", "Name": "isBasicReagent" } + ], + "Type": "Structure", + "Name": "CraftingOrderReagentInfo" + }, + { + "Fields": [ + { "Nilable": true, "Type": "string", "Name": "itemLink" }, + { "Nilable": true, "Type": "number", "Name": "currencyType" }, + { "Nilable": false, "Type": "number", "Name": "count" } + ], + "Type": "Structure", + "Name": "CraftingOrderRewardInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "CraftingOrderSortType", "Name": "sortType" }, + { "Nilable": false, "Type": "bool", "Name": "reversed" } + ], + "Type": "Structure", + "Name": "CraftingOrderSortInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "skillLineAbilityID" }, + { "Nilable": false, "Type": "CraftingOrderType", "Name": "orderType" }, + { "Nilable": false, "Type": "CraftingOrderDuration", "Name": "orderDuration" }, + { "Nilable": false, "Type": "WOWMONEY", "Name": "tipAmount" }, + { "Nilable": false, "Type": "string", "Name": "customerNotes" }, + { + "Nilable": false, + "InnerType": "RegularReagentInfo", + "Type": "table", + "Name": "reagentItems" + }, + { + "Nilable": false, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagentItems" + }, + { "Nilable": true, "Type": "number", "Name": "minCraftingQualityID" }, + { "Nilable": true, "Type": "string", "Name": "orderTarget" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "recraftItem" } + ], + "Type": "Structure", + "Name": "NewCraftingOrderInfo" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "CraftingOrderResult", "Name": "result" }, + { "Nilable": false, "Type": "CraftingOrderType", "Name": "orderType" }, + { "Nilable": false, "Type": "bool", "Name": "displayBuckets" }, + { "Nilable": false, "Type": "bool", "Name": "expectMoreRows" }, + { "Nilable": false, "Type": "number", "Name": "offset" }, + { "Nilable": false, "Type": "bool", "Name": "isSorted" } + ], + "Type": "CallbackType", + "Name": "CraftingOrderRequestCallback" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "CraftingOrderResult", "Name": "result" }, + { "Nilable": false, "Type": "bool", "Name": "expectMoreRows" }, + { "Nilable": false, "Type": "number", "Name": "offset" }, + { "Nilable": false, "Type": "bool", "Name": "isSorted" } + ], + "Type": "CallbackType", + "Name": "CraftingOrderRequestMyOrdersCallback" + } + ] + }, + { + "Namespace": "C_CreatureInfo", + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "ClassInfo", "Name": "classInfo" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "classID" }], + "Type": "Function", + "Name": "GetClassInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "FactionInfo", "Name": "factionInfo" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "raceID" }], + "Type": "Function", + "Name": "GetFactionInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "RaceInfo", "Name": "raceInfo" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "raceID" }], + "Type": "Function", + "Name": "GetRaceInfo" + } + ], + "Type": "System", + "Name": "CreatureInfo", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "className" }, + { "Nilable": false, "Type": "string", "Name": "classFile" }, + { "Nilable": false, "Type": "number", "Name": "classID" } + ], + "Type": "Structure", + "Name": "ClassInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "groupTag" } + ], + "Type": "Structure", + "Name": "FactionInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "raceName" }, + { "Nilable": false, "Type": "string", "Name": "clientFileString" }, + { "Nilable": false, "Type": "number", "Name": "raceID" } + ], + "Type": "Structure", + "Name": "RaceInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "AccountCurrencyTransferResult", + "Fields": [ + { "EnumValue": 0, "Type": "AccountCurrencyTransferResult", "Name": "Success" }, + { + "EnumValue": 1, + "Type": "AccountCurrencyTransferResult", + "Name": "InvalidCharacter" + }, + { + "EnumValue": 2, + "Type": "AccountCurrencyTransferResult", + "Name": "CharacterLoggedIn" + }, + { + "EnumValue": 3, + "Type": "AccountCurrencyTransferResult", + "Name": "InsufficientCurrency" + }, + { + "EnumValue": 4, + "Type": "AccountCurrencyTransferResult", + "Name": "MaxQuantity" + }, + { + "EnumValue": 5, + "Type": "AccountCurrencyTransferResult", + "Name": "InvalidCurrency" + }, + { + "EnumValue": 6, + "Type": "AccountCurrencyTransferResult", + "Name": "NoValidSourceCharacter" + }, + { + "EnumValue": 7, + "Type": "AccountCurrencyTransferResult", + "Name": "ServerError" + }, + { + "EnumValue": 8, + "Type": "AccountCurrencyTransferResult", + "Name": "CannotUseCurrency" + } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "CurrencyFlags", + "Fields": [ + { "EnumValue": 1, "Type": "CurrencyFlags", "Name": "CurrencyTradable" }, + { + "EnumValue": 2, + "Type": "CurrencyFlags", + "Name": "CurrencyAppearsInLootWindow" + }, + { + "EnumValue": 4, + "Type": "CurrencyFlags", + "Name": "CurrencyComputedWeeklyMaximum" + }, + { "EnumValue": 8, "Type": "CurrencyFlags", "Name": "Currency_100_Scaler" }, + { "EnumValue": 16, "Type": "CurrencyFlags", "Name": "CurrencyNoLowLevelDrop" }, + { + "EnumValue": 32, + "Type": "CurrencyFlags", + "Name": "CurrencyIgnoreMaxQtyOnLoad" + }, + { + "EnumValue": 64, + "Type": "CurrencyFlags", + "Name": "CurrencyLogOnWorldChange" + }, + { "EnumValue": 128, "Type": "CurrencyFlags", "Name": "CurrencyTrackQuantity" }, + { + "EnumValue": 256, + "Type": "CurrencyFlags", + "Name": "CurrencyResetTrackedQuantity" + }, + { + "EnumValue": 512, + "Type": "CurrencyFlags", + "Name": "CurrencyUpdateVersionIgnoreMax" + }, + { + "EnumValue": 1024, + "Type": "CurrencyFlags", + "Name": "CurrencySuppressChatMessageOnVersionChange" + }, + { + "EnumValue": 2048, + "Type": "CurrencyFlags", + "Name": "CurrencySingleDropInLoot" + }, + { + "EnumValue": 4096, + "Type": "CurrencyFlags", + "Name": "CurrencyHasWeeklyCatchup" + }, + { + "EnumValue": 8192, + "Type": "CurrencyFlags", + "Name": "CurrencyDoNotCompressChat" + }, + { + "EnumValue": 16384, + "Type": "CurrencyFlags", + "Name": "CurrencyDoNotLogAcquisitionToBi" + }, + { "EnumValue": 32768, "Type": "CurrencyFlags", "Name": "CurrencyNoRaidDrop" }, + { + "EnumValue": 65536, + "Type": "CurrencyFlags", + "Name": "CurrencyNotPersistent" + }, + { "EnumValue": 131072, "Type": "CurrencyFlags", "Name": "CurrencyDeprecated" }, + { + "EnumValue": 262144, + "Type": "CurrencyFlags", + "Name": "CurrencyDynamicMaximum" + }, + { + "EnumValue": 524288, + "Type": "CurrencyFlags", + "Name": "CurrencySuppressChatMessages" + }, + { "EnumValue": 1048576, "Type": "CurrencyFlags", "Name": "CurrencyDoNotToast" }, + { + "EnumValue": 2097152, + "Type": "CurrencyFlags", + "Name": "CurrencyDestroyExtraOnLoot" + }, + { + "EnumValue": 4194304, + "Type": "CurrencyFlags", + "Name": "CurrencyDontShowTotalInTooltip" + }, + { + "EnumValue": 8388608, + "Type": "CurrencyFlags", + "Name": "CurrencyDontCoalesceInLootWindow" + }, + { + "EnumValue": 16777216, + "Type": "CurrencyFlags", + "Name": "CurrencyAccountWide" + }, + { + "EnumValue": 33554432, + "Type": "CurrencyFlags", + "Name": "CurrencyAllowOverflowMailer" + }, + { + "EnumValue": 67108864, + "Type": "CurrencyFlags", + "Name": "CurrencyHideAsReward" + }, + { + "EnumValue": 134217728, + "Type": "CurrencyFlags", + "Name": "CurrencyHasWarmodeBonus" + }, + { + "EnumValue": 268435456, + "Type": "CurrencyFlags", + "Name": "CurrencyIsAllianceOnly" + }, + { + "EnumValue": 536870912, + "Type": "CurrencyFlags", + "Name": "CurrencyIsHordeOnly" + }, + { + "EnumValue": 1073741824, + "Type": "CurrencyFlags", + "Name": "CurrencyLimitWarmodeBonusOncePerTooltip" + }, + { + "EnumValue": 2147483648, + "Type": "CurrencyFlags", + "Name": "DeprecatedCurrencyFlag" + } + ], + "MaxValue": 2147483648, + "MinValue": 1, + "NumValues": 32 + }, + { + "Type": "Enumeration", + "Name": "CurrencyFlagsB", + "Fields": [ + { + "EnumValue": 1, + "Type": "CurrencyFlagsB", + "Name": "CurrencyBUseTotalEarnedForEarned" + }, + { + "EnumValue": 2, + "Type": "CurrencyFlagsB", + "Name": "CurrencyBShowQuestXPGainInTooltip" + }, + { + "EnumValue": 4, + "Type": "CurrencyFlagsB", + "Name": "CurrencyBNoNotificationMailOnOfflineProgress" + }, + { + "EnumValue": 8, + "Type": "CurrencyFlagsB", + "Name": "CurrencyBBattlenetVirtualCurrency" + }, + { "EnumValue": 16, "Type": "CurrencyFlagsB", "Name": "FutureCurrencyFlag" }, + { + "EnumValue": 32, + "Type": "CurrencyFlagsB", + "Name": "CurrencyBDontDisplayIfZero" + }, + { + "EnumValue": 64, + "Type": "CurrencyFlagsB", + "Name": "CurrencyBScaleMaxQuantityBySeasonWeeks" + }, + { + "EnumValue": 128, + "Type": "CurrencyFlagsB", + "Name": "CurrencyBScaleMaxQuantityByWeeksSinceStart" + } + ], + "MaxValue": 128, + "MinValue": 1, + "NumValues": 8 + }, + { + "Type": "Enumeration", + "Name": "CurrencyGainFlags", + "Fields": [ + { "EnumValue": 0, "Type": "CurrencyGainFlags", "Name": "None" }, + { "EnumValue": 1, "Type": "CurrencyGainFlags", "Name": "BonusAward" }, + { "EnumValue": 2, "Type": "CurrencyGainFlags", "Name": "DroppedFromDeath" }, + { "EnumValue": 4, "Type": "CurrencyGainFlags", "Name": "FromAccountServer" }, + { "EnumValue": 8, "Type": "CurrencyGainFlags", "Name": "Autotracking" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "CurrencyTokenCategoryFlags", + "Fields": [ + { + "EnumValue": 1, + "Type": "CurrencyTokenCategoryFlags", + "Name": "FlagSortLast" + }, + { + "EnumValue": 2, + "Type": "CurrencyTokenCategoryFlags", + "Name": "FlagPlayerItemAssignment" + }, + { "EnumValue": 4, "Type": "CurrencyTokenCategoryFlags", "Name": "Hidden" }, + { "EnumValue": 8, "Type": "CurrencyTokenCategoryFlags", "Name": "Virtual" }, + { + "EnumValue": 16, + "Type": "CurrencyTokenCategoryFlags", + "Name": "StartsCollapsed" + } + ], + "MaxValue": 16, + "MinValue": 1, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "LinkedCurrencyFlags", + "Fields": [ + { "EnumValue": 1, "Type": "LinkedCurrencyFlags", "Name": "IgnoreAdd" }, + { "EnumValue": 2, "Type": "LinkedCurrencyFlags", "Name": "IgnoreSubtract" }, + { "EnumValue": 4, "Type": "LinkedCurrencyFlags", "Name": "SuppressChatLog" }, + { "EnumValue": 8, "Type": "LinkedCurrencyFlags", "Name": "AddIgnoresMax" } + ], + "MaxValue": 8, + "MinValue": 1, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "PlayerCurrencyFlags", + "Fields": [ + { "EnumValue": 1, "Type": "PlayerCurrencyFlags", "Name": "Incremented" }, + { "EnumValue": 2, "Type": "PlayerCurrencyFlags", "Name": "Loading" } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "PlayerCurrencyFlagsDbFlags", + "Fields": [ + { + "EnumValue": 1, + "Type": "PlayerCurrencyFlagsDbFlags", + "Name": "IgnoreMaxQtyOnload" + }, + { "EnumValue": 2, "Type": "PlayerCurrencyFlagsDbFlags", "Name": "Reuse1" }, + { "EnumValue": 4, "Type": "PlayerCurrencyFlagsDbFlags", "Name": "InBackpack" }, + { "EnumValue": 8, "Type": "PlayerCurrencyFlagsDbFlags", "Name": "UnusedInUI" }, + { "EnumValue": 16, "Type": "PlayerCurrencyFlagsDbFlags", "Name": "Reuse2" } + ], + "MaxValue": 16, + "MinValue": 1, + "NumValues": 5 + }, + { + "Values": [ + { "Value": 0, "Type": "number", "Name": "PLAYER_CURRENCY_CLIENT_FLAGS" }, + { "Value": 100000000, "Type": "number", "Name": "MAX_CURRENCY_QUANTITY" }, + { + "Value": 483, + "Type": "number", + "Name": "CONQUEST_ARENA_AND_BG_META_CURRENCY_ID" + }, + { + "Value": 484, + "Type": "number", + "Name": "CONQUEST_RATED_BG_META_CURRENCY_ID" + }, + { "Value": 692, "Type": "number", "Name": "CONQUEST_ASHRAN_META_CURRENCY_ID" }, + { "Value": 1585, "Type": "number", "Name": "ACCOUNT_WIDE_HONOR_CURRENCY_ID" }, + { + "Value": 1586, + "Type": "number", + "Name": "ACCOUNT_WIDE_HONOR_LEVEL_CURRENCY_ID" + }, + { "Value": 1602, "Type": "number", "Name": "CONQUEST_CURRENCY_ID" }, + { "Value": 390, "Type": "number", "Name": "CONQUEST_POINTS_CURRENCY_ID" }, + { "Value": 483, "Type": "number", "Name": "CONQUEST_ARENA_META_CURRENCY_ID" }, + { "Value": 484, "Type": "number", "Name": "CONQUEST_BG_META_CURRENCY_ID" }, + { "Value": 1792, "Type": "number", "Name": "HONOR_CURRENCY_ID" }, + { "Value": 1171, "Type": "number", "Name": "ARTIFACT_KNOWLEDGE_CURRENCY_ID" }, + { "Value": 1560, "Type": "number", "Name": "WAR_RESOURCES_CURRENCY_ID" }, + { "Value": 1803, "Type": "number", "Name": "ECHOES_OF_NYALOTHA_CURRENCY_ID" }, + { + "Value": 2003, + "Type": "number", + "Name": "DRAGON_ISLES_SUPPLIES_CURRENCY_ID" + }, + { "Value": 134400, "Type": "number", "Name": "QUESTIONMARK_INV_ICON" }, + { + "Value": 463448, + "Type": "number", + "Name": "PVP_CURRENCY_CONQUEST_ALLIANCE_INV_ICON" + }, + { + "Value": 463449, + "Type": "number", + "Name": "PVP_CURRENCY_CONQUEST_HORDE_INV_ICON" + }, + { + "Value": 463450, + "Type": "number", + "Name": "PVP_CURRENCY_HONOR_ALLIANCE_INV_ICON" + }, + { + "Value": 463451, + "Type": "number", + "Name": "PVP_CURRENCY_HONOR_HORDE_INV_ICON" + }, + { "Value": 1822, "Type": "number", "Name": "CURRENCY_ID_RENOWN" }, + { "Value": 1829, "Type": "number", "Name": "CURRENCY_ID_RENOWN_KYRIAN" }, + { "Value": 1830, "Type": "number", "Name": "CURRENCY_ID_RENOWN_VENTHYR" }, + { "Value": 1831, "Type": "number", "Name": "CURRENCY_ID_RENOWN_NIGHT_FAE" }, + { "Value": 1832, "Type": "number", "Name": "CURRENCY_ID_RENOWN_NECROLORD" }, + { "Value": 1810, "Type": "number", "Name": "CURRENCY_ID_WILLING_SOUL" }, + { "Value": 1813, "Type": "number", "Name": "CURRENCY_ID_RESERVOIR_ANIMA" }, + { + "Value": 2032, + "Type": "number", + "Name": "CURRENCY_ID_PERKS_PROGRAM_DISPLAY_INFO" + } + ], + "Type": "Constants", + "Name": "CurrencyConsts" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "CurrencyDestroyReason", + "Fields": [ + { "EnumValue": 0, "Type": "CurrencyDestroyReason", "Name": "Cheat" }, + { "EnumValue": 1, "Type": "CurrencyDestroyReason", "Name": "Spell" }, + { "EnumValue": 2, "Type": "CurrencyDestroyReason", "Name": "VersionUpdate" }, + { "EnumValue": 3, "Type": "CurrencyDestroyReason", "Name": "QuestTurnin" }, + { "EnumValue": 4, "Type": "CurrencyDestroyReason", "Name": "Vendor" }, + { "EnumValue": 5, "Type": "CurrencyDestroyReason", "Name": "Trade" }, + { "EnumValue": 6, "Type": "CurrencyDestroyReason", "Name": "Capped" }, + { "EnumValue": 7, "Type": "CurrencyDestroyReason", "Name": "Garrison" }, + { "EnumValue": 8, "Type": "CurrencyDestroyReason", "Name": "DroppedToCorpse" }, + { "EnumValue": 9, "Type": "CurrencyDestroyReason", "Name": "BonusRoll" }, + { + "EnumValue": 10, + "Type": "CurrencyDestroyReason", + "Name": "FactionConversion" + }, + { + "EnumValue": 11, + "Type": "CurrencyDestroyReason", + "Name": "FulfillCraftingOrder" + }, + { "EnumValue": 12, "Type": "CurrencyDestroyReason", "Name": "Script" }, + { + "EnumValue": 13, + "Type": "CurrencyDestroyReason", + "Name": "ConcentrationCast" + }, + { "EnumValue": 14, "Type": "CurrencyDestroyReason", "Name": "AccountTransfer" } + ], + "MaxValue": 14, + "MinValue": 0, + "NumValues": 15 + }, + { + "Type": "Enumeration", + "Name": "CurrencySource", + "Fields": [ + { "EnumValue": 0, "Type": "CurrencySource", "Name": "ConvertOldItem" }, + { "EnumValue": 1, "Type": "CurrencySource", "Name": "ConvertOldPvPCurrency" }, + { "EnumValue": 2, "Type": "CurrencySource", "Name": "ItemRefund" }, + { "EnumValue": 3, "Type": "CurrencySource", "Name": "QuestReward" }, + { "EnumValue": 4, "Type": "CurrencySource", "Name": "Cheat" }, + { "EnumValue": 5, "Type": "CurrencySource", "Name": "Vendor" }, + { "EnumValue": 6, "Type": "CurrencySource", "Name": "PvPKillCredit" }, + { "EnumValue": 7, "Type": "CurrencySource", "Name": "PvPMetaCredit" }, + { "EnumValue": 8, "Type": "CurrencySource", "Name": "PvPScriptedAward" }, + { "EnumValue": 9, "Type": "CurrencySource", "Name": "Loot" }, + { "EnumValue": 10, "Type": "CurrencySource", "Name": "UpdatingVersion" }, + { "EnumValue": 11, "Type": "CurrencySource", "Name": "LFGReward" }, + { "EnumValue": 12, "Type": "CurrencySource", "Name": "Trade" }, + { "EnumValue": 13, "Type": "CurrencySource", "Name": "Spell" }, + { "EnumValue": 14, "Type": "CurrencySource", "Name": "ItemDeletion" }, + { "EnumValue": 15, "Type": "CurrencySource", "Name": "RatedBattleground" }, + { "EnumValue": 16, "Type": "CurrencySource", "Name": "RandomBattleground" }, + { "EnumValue": 17, "Type": "CurrencySource", "Name": "Arena" }, + { "EnumValue": 18, "Type": "CurrencySource", "Name": "ExceededMaxQty" }, + { "EnumValue": 19, "Type": "CurrencySource", "Name": "PvPCompletionBonus" }, + { "EnumValue": 20, "Type": "CurrencySource", "Name": "Script" }, + { "EnumValue": 21, "Type": "CurrencySource", "Name": "GuildBankWithdrawal" }, + { "EnumValue": 22, "Type": "CurrencySource", "Name": "Pushloot" }, + { "EnumValue": 23, "Type": "CurrencySource", "Name": "GarrisonBuilding" }, + { "EnumValue": 24, "Type": "CurrencySource", "Name": "PvPDrop" }, + { + "EnumValue": 25, + "Type": "CurrencySource", + "Name": "GarrisonFollowerActivation" + }, + { "EnumValue": 26, "Type": "CurrencySource", "Name": "GarrisonBuildingRefund" }, + { "EnumValue": 27, "Type": "CurrencySource", "Name": "GarrisonMissionReward" }, + { + "EnumValue": 28, + "Type": "CurrencySource", + "Name": "GarrisonResourceOverTime" + }, + { + "EnumValue": 29, + "Type": "CurrencySource", + "Name": "QuestRewardIgnoreCapsDeprecated" + }, + { "EnumValue": 30, "Type": "CurrencySource", "Name": "GarrisonTalent" }, + { + "EnumValue": 31, + "Type": "CurrencySource", + "Name": "GarrisonWorldQuestBonus" + }, + { "EnumValue": 32, "Type": "CurrencySource", "Name": "PvPHonorReward" }, + { "EnumValue": 33, "Type": "CurrencySource", "Name": "BonusRoll" }, + { "EnumValue": 34, "Type": "CurrencySource", "Name": "AzeriteRespec" }, + { "EnumValue": 35, "Type": "CurrencySource", "Name": "WorldQuestReward" }, + { + "EnumValue": 36, + "Type": "CurrencySource", + "Name": "WorldQuestRewardIgnoreCapsDeprecated" + }, + { "EnumValue": 37, "Type": "CurrencySource", "Name": "FactionConversion" }, + { "EnumValue": 38, "Type": "CurrencySource", "Name": "DailyQuestReward" }, + { + "EnumValue": 39, + "Type": "CurrencySource", + "Name": "DailyQuestWarModeReward" + }, + { "EnumValue": 40, "Type": "CurrencySource", "Name": "WeeklyQuestReward" }, + { + "EnumValue": 41, + "Type": "CurrencySource", + "Name": "WeeklyQuestWarModeReward" + }, + { "EnumValue": 42, "Type": "CurrencySource", "Name": "AccountCopy" }, + { "EnumValue": 43, "Type": "CurrencySource", "Name": "WeeklyRewardChest" }, + { + "EnumValue": 44, + "Type": "CurrencySource", + "Name": "GarrisonTalentTreeReset" + }, + { "EnumValue": 45, "Type": "CurrencySource", "Name": "DailyReset" }, + { "EnumValue": 46, "Type": "CurrencySource", "Name": "AddConduitToCollection" }, + { "EnumValue": 47, "Type": "CurrencySource", "Name": "Barbershop" }, + { + "EnumValue": 48, + "Type": "CurrencySource", + "Name": "ConvertItemsToCurrencyValue" + }, + { "EnumValue": 49, "Type": "CurrencySource", "Name": "PvPTeamContribution" }, + { "EnumValue": 50, "Type": "CurrencySource", "Name": "Transmogrify" }, + { "EnumValue": 51, "Type": "CurrencySource", "Name": "AuctionDeposit" }, + { "EnumValue": 52, "Type": "CurrencySource", "Name": "PlayerTrait" }, + { "EnumValue": 53, "Type": "CurrencySource", "Name": "PhBuffer_53" }, + { "EnumValue": 54, "Type": "CurrencySource", "Name": "PhBuffer_54" }, + { "EnumValue": 55, "Type": "CurrencySource", "Name": "RenownRepGain" }, + { "EnumValue": 56, "Type": "CurrencySource", "Name": "CraftingOrder" }, + { "EnumValue": 57, "Type": "CurrencySource", "Name": "CatalystBalancing" }, + { "EnumValue": 58, "Type": "CurrencySource", "Name": "CatalystCraft" }, + { "EnumValue": 59, "Type": "CurrencySource", "Name": "ProfessionInitialAward" }, + { "EnumValue": 60, "Type": "CurrencySource", "Name": "PlayerTraitRefund" }, + { "EnumValue": 61, "Type": "CurrencySource", "Name": "AccountHwmUpdate" }, + { + "EnumValue": 62, + "Type": "CurrencySource", + "Name": "ConvertItemsToCurrencyAndReputation" + }, + { "EnumValue": 63, "Type": "CurrencySource", "Name": "PhBuffer_63" }, + { + "EnumValue": 64, + "Type": "CurrencySource", + "Name": "SpellSkipLinkedCurrency" + }, + { "EnumValue": 65, "Type": "CurrencySource", "Name": "AccountTransfer" } + ], + "MaxValue": 65, + "MinValue": 0, + "NumValues": 66 + } + ] + }, + { + "Namespace": "C_CurrencyInfo", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canTransferCurrency" }, + { + "Nilable": true, + "Type": "AccountCurrencyTransferResult", + "Name": "failureReason" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "currencyID" }], + "Type": "Function", + "Name": "CanTransferCurrency" + }, + { + "Returns": [ + { "Nilable": true, "Type": "bool", "Name": "warModeApplies" }, + { "Nilable": true, "Type": "bool", "Name": "limitOncePerTooltip" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "currencyID" }], + "Type": "Function", + "Name": "DoesWarModeBonusApply" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "bool", "Name": "expand" } + ], + "Type": "Function", + "Name": "ExpandCurrencyList" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CharacterCurrencyData", + "Type": "table", + "Name": "accountCurrencyData" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "currencyID" }], + "Type": "Function", + "Name": "FetchCurrencyDataFromAccountCharacters" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CurrencyTransferTransaction", + "Type": "table", + "Name": "currencyTransferTransactions" + } + ], + "Type": "Function", + "Name": "FetchCurrencyTransferTransactions" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "azeriteCurrencyID" }], + "Type": "Function", + "Name": "GetAzeriteCurrencyID" + }, + { + "Returns": [{ "Nilable": false, "Type": "BackpackCurrencyInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetBackpackCurrencyInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "CurrencyDisplayInfo", "Name": "info" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "currencyType" }, + { "Nilable": true, "Type": "number", "Name": "quantity" } + ], + "Type": "Function", + "Name": "GetBasicCurrencyInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "WOWMONEY", "Name": "amount" }], + "Type": "Function", + "Name": "GetCoinIcon" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "WOWMONEY", "Name": "amount" }, + { "Nilable": false, "Default": ", ", "Type": "cstring", "Name": "separator" } + ], + "Type": "Function", + "Name": "GetCoinText" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "WOWMONEY", "Name": "amount" }, + { "Nilable": false, "Default": 14, "Type": "number", "Name": "fontHeight" } + ], + "Type": "Function", + "Name": "GetCoinTextureString" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "totalQuantityConsumed" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Function", + "Name": "GetCostToTransferCurrency" + }, + { + "Returns": [{ "Nilable": false, "Type": "CurrencyDisplayInfo", "Name": "info" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "currencyType" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Function", + "Name": "GetCurrencyContainerInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "description" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "type" }], + "Type": "Function", + "Name": "GetCurrencyDescription" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "currencyID" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "currencyLink" }], + "Type": "Function", + "Name": "GetCurrencyIDFromLink" + }, + { + "Returns": [{ "Nilable": false, "Type": "CurrencyInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "type" }], + "Type": "Function", + "Name": "GetCurrencyInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "CurrencyInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "link" }], + "Type": "Function", + "Name": "GetCurrencyInfoFromLink" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "link" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "type" }, + { "Nilable": true, "Type": "number", "Name": "amount" } + ], + "Type": "Function", + "Name": "GetCurrencyLink" + }, + { + "Returns": [{ "Nilable": false, "Type": "CurrencyInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetCurrencyListInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "link" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetCurrencyListLink" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "currencyListSize" }], + "Type": "Function", + "Name": "GetCurrencyListSize" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "dragonIslesSuppliesCurrencyID" } + ], + "Type": "Function", + "Name": "GetDragonIslesSuppliesCurrencyID" + }, + { + "Documentation": [ + "Gets the faction ID for currency that is immediately converted into reputation with that faction instead." + ], + "Type": "Function", + "Name": "GetFactionGrantedByCurrency", + "Returns": [{ "Nilable": true, "Type": "number", "Name": "factionID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "currencyID" }] + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "maxTransferableAmount" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "requestedQuantity" } + ], + "Type": "Function", + "Name": "GetMaxTransferableAmountFromQuantity" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "warResourceCurrencyID" } + ], + "Type": "Function", + "Name": "GetWarResourcesCurrencyID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isReady" }], + "Type": "Function", + "Name": "IsAccountCharacterCurrencyDataReady" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isAccountTransferableCurrency" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "currencyID" }], + "Type": "Function", + "Name": "IsAccountTransferableCurrency" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isAccountWideCurrency" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "currencyID" }], + "Type": "Function", + "Name": "IsAccountWideCurrency" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCurrencyContainer" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Function", + "Name": "IsCurrencyContainer" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isReady" }], + "Type": "Function", + "Name": "IsCurrencyTransferTransactionDataReady" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "type" }], + "Type": "Function", + "Name": "PickupCurrency" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasMaxQuantity" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "currencyID" }], + "Type": "Function", + "Name": "PlayerHasMaxQuantity" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasMaxWeeklyQuantity" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "currencyID" }], + "Type": "Function", + "Name": "PlayerHasMaxWeeklyQuantity" + }, + { "Type": "Function", "Name": "RequestCurrencyDataForAccountCharacters" }, + { + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "sourceCharacterGUID" }, + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Function", + "Name": "RequestCurrencyFromAccountCharacter" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "bool", "Name": "backpack" } + ], + "Type": "Function", + "Name": "SetCurrencyBackpack" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "bool", "Name": "unused" } + ], + "Type": "Function", + "Name": "SetCurrencyUnused" + } + ], + "Type": "System", + "Name": "CurrencySystem", + "Events": [ + { + "LiteralName": "ACCOUNT_CHARACTER_CURRENCY_DATA_RECEIVED", + "Type": "Event", + "Name": "AccountCharacterCurrencyDataReceived" + }, + { "LiteralName": "ACCOUNT_MONEY", "Type": "Event", "Name": "AccountMoney" }, + { + "LiteralName": "CURRENCY_DISPLAY_UPDATE", + "Payload": [ + { "Nilable": true, "Type": "number", "Name": "currencyType" }, + { "Nilable": true, "Type": "number", "Name": "quantity" }, + { "Nilable": true, "Type": "number", "Name": "quantityChange" }, + { "Nilable": true, "Type": "number", "Name": "quantityGainSource" }, + { "Nilable": true, "Type": "number", "Name": "destroyReason" } + ], + "Type": "Event", + "Name": "CurrencyDisplayUpdate" + }, + { + "LiteralName": "CURRENCY_TRANSFER_FAILED", + "Type": "Event", + "Name": "CurrencyTransferFailed" + }, + { + "LiteralName": "CURRENCY_TRANSFER_LOG_UPDATE", + "Type": "Event", + "Name": "CurrencyTransferLogUpdate" + }, + { "LiteralName": "PLAYER_MONEY", "Type": "Event", "Name": "PlayerMoney" } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "fileID", "Name": "iconFileID" }, + { "Nilable": false, "Type": "number", "Name": "currencyTypesID" } + ], + "Type": "Structure", + "Name": "BackpackCurrencyInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "characterGUID" }, + { "Nilable": false, "Type": "string", "Name": "characterName" }, + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Structure", + "Name": "CharacterCurrencyData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "quality" }, + { "Nilable": false, "Type": "number", "Name": "displayAmount" }, + { "Nilable": false, "Type": "number", "Name": "actualAmount" } + ], + "Type": "Structure", + "Name": "CurrencyDisplayInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "bool", "Name": "isHeader" }, + { "Nilable": false, "Type": "bool", "Name": "isHeaderExpanded" }, + { "Nilable": false, "Type": "number", "Name": "currencyListDepth" }, + { "Nilable": false, "Type": "bool", "Name": "isTypeUnused" }, + { "Nilable": false, "Type": "bool", "Name": "isShowInBackpack" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "number", "Name": "trackedQuantity" }, + { "Nilable": false, "Type": "fileID", "Name": "iconFileID" }, + { "Nilable": false, "Type": "number", "Name": "maxQuantity" }, + { "Nilable": false, "Type": "bool", "Name": "canEarnPerWeek" }, + { "Nilable": false, "Type": "number", "Name": "quantityEarnedThisWeek" }, + { "Nilable": false, "Type": "bool", "Name": "isTradeable" }, + { "Nilable": false, "Type": "ItemQuality", "Name": "quality" }, + { "Nilable": false, "Type": "number", "Name": "maxWeeklyQuantity" }, + { "Nilable": false, "Type": "number", "Name": "totalEarned" }, + { "Nilable": false, "Type": "bool", "Name": "discovered" }, + { "Nilable": false, "Type": "bool", "Name": "useTotalEarnedForMaxQty" }, + { "Nilable": false, "Type": "bool", "Name": "isAccountWide" }, + { "Nilable": false, "Type": "bool", "Name": "isAccountTransferable" }, + { "Nilable": true, "Type": "number", "Name": "transferPercentage" }, + { "Nilable": false, "Type": "number", "Name": "rechargingCycleDurationMS" }, + { "Nilable": false, "Type": "number", "Name": "rechargingAmountPerCycle" } + ], + "Type": "Structure", + "Name": "CurrencyInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "sourceCharacterGUID" }, + { + "Nilable": false, + "Default": "", + "Type": "string", + "Name": "sourceCharacterName" + }, + { "Nilable": false, "Type": "WOWGUID", "Name": "destinationCharacterGUID" }, + { + "Nilable": false, + "Default": "", + "Type": "string", + "Name": "destinationCharacterName" + }, + { "Nilable": false, "Type": "number", "Name": "currencyType" }, + { "Nilable": false, "Type": "number", "Name": "quantityTransferred" }, + { "Nilable": false, "Type": "number", "Name": "totalQuantityConsumed" }, + { "Nilable": false, "Type": "time_t", "Name": "timestamp" } + ], + "Type": "Structure", + "Name": "CurrencyTransferTransaction" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "CursorStyle", + "Fields": [ + { "EnumValue": 0, "Type": "CursorStyle", "Name": "Mouse" }, + { "EnumValue": 1, "Type": "CursorStyle", "Name": "Crosshair" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "Cursormode", + "Fields": [ + { "EnumValue": 0, "Type": "Cursormode", "Name": "NoCursor" }, + { "EnumValue": 1, "Type": "Cursormode", "Name": "PointCursor" }, + { "EnumValue": 2, "Type": "Cursormode", "Name": "CastCursor" }, + { "EnumValue": 3, "Type": "Cursormode", "Name": "BuyCursor" }, + { "EnumValue": 4, "Type": "Cursormode", "Name": "AttackCursor" }, + { "EnumValue": 5, "Type": "Cursormode", "Name": "InteractCursor" }, + { "EnumValue": 6, "Type": "Cursormode", "Name": "SpeakCursor" }, + { "EnumValue": 7, "Type": "Cursormode", "Name": "InspectCursor" }, + { "EnumValue": 8, "Type": "Cursormode", "Name": "PickupCursor" }, + { "EnumValue": 9, "Type": "Cursormode", "Name": "TaxiCursor" }, + { "EnumValue": 10, "Type": "Cursormode", "Name": "TrainerCursor" }, + { "EnumValue": 11, "Type": "Cursormode", "Name": "MineCursor" }, + { "EnumValue": 12, "Type": "Cursormode", "Name": "SkinCursor" }, + { "EnumValue": 13, "Type": "Cursormode", "Name": "GatherCursor" }, + { "EnumValue": 14, "Type": "Cursormode", "Name": "LockCursor" }, + { "EnumValue": 15, "Type": "Cursormode", "Name": "MailCursor" }, + { "EnumValue": 16, "Type": "Cursormode", "Name": "LootAllCursor" }, + { "EnumValue": 17, "Type": "Cursormode", "Name": "RepairCursor" }, + { "EnumValue": 18, "Type": "Cursormode", "Name": "RepairnpcCursor" }, + { "EnumValue": 19, "Type": "Cursormode", "Name": "ItemCursor" }, + { "EnumValue": 20, "Type": "Cursormode", "Name": "SkinHordeCursor" }, + { "EnumValue": 21, "Type": "Cursormode", "Name": "SkinAllianceCursor" }, + { "EnumValue": 22, "Type": "Cursormode", "Name": "InnkeeperCursor" }, + { "EnumValue": 23, "Type": "Cursormode", "Name": "CampaignQuestCursor" }, + { "EnumValue": 24, "Type": "Cursormode", "Name": "CampaignQuestTurninCursor" }, + { "EnumValue": 25, "Type": "Cursormode", "Name": "QuestCursor" }, + { "EnumValue": 26, "Type": "Cursormode", "Name": "QuestRepeatableCursor" }, + { "EnumValue": 27, "Type": "Cursormode", "Name": "QuestTurninCursor" }, + { "EnumValue": 28, "Type": "Cursormode", "Name": "QuestLegendaryCursor" }, + { "EnumValue": 29, "Type": "Cursormode", "Name": "QuestLegendaryTurninCursor" }, + { "EnumValue": 30, "Type": "Cursormode", "Name": "QuestImportantCursor" }, + { "EnumValue": 31, "Type": "Cursormode", "Name": "QuestImportantTurninCursor" }, + { "EnumValue": 32, "Type": "Cursormode", "Name": "QuestMetaCursor" }, + { "EnumValue": 33, "Type": "Cursormode", "Name": "QuestMetaTurninCursor" }, + { "EnumValue": 34, "Type": "Cursormode", "Name": "QuestRecurringCursor" }, + { "EnumValue": 35, "Type": "Cursormode", "Name": "QuestRecurringTurninCursor" }, + { "EnumValue": 36, "Type": "Cursormode", "Name": "VehicleCursor" }, + { "EnumValue": 37, "Type": "Cursormode", "Name": "MapPinCursor" }, + { "EnumValue": 38, "Type": "Cursormode", "Name": "PingCursor" }, + { "EnumValue": 39, "Type": "Cursormode", "Name": "EnchantCursor" }, + { "EnumValue": 40, "Type": "Cursormode", "Name": "UIMoveCursor" }, + { "EnumValue": 41, "Type": "Cursormode", "Name": "UIResizeCursor" }, + { "EnumValue": 42, "Type": "Cursormode", "Name": "PointErrorCursor" }, + { "EnumValue": 43, "Type": "Cursormode", "Name": "CastErrorCursor" }, + { "EnumValue": 44, "Type": "Cursormode", "Name": "BuyErrorCursor" }, + { "EnumValue": 45, "Type": "Cursormode", "Name": "AttackErrorCursor" }, + { "EnumValue": 46, "Type": "Cursormode", "Name": "InteractErrorCursor" }, + { "EnumValue": 47, "Type": "Cursormode", "Name": "SpeakErrorCursor" }, + { "EnumValue": 48, "Type": "Cursormode", "Name": "InspectErrorCursor" }, + { "EnumValue": 49, "Type": "Cursormode", "Name": "PickupErrorCursor" }, + { "EnumValue": 50, "Type": "Cursormode", "Name": "TaxiErrorCursor" }, + { "EnumValue": 51, "Type": "Cursormode", "Name": "TrainerErrorCursor" }, + { "EnumValue": 52, "Type": "Cursormode", "Name": "MineErrorCursor" }, + { "EnumValue": 53, "Type": "Cursormode", "Name": "SkinErrorCursor" }, + { "EnumValue": 54, "Type": "Cursormode", "Name": "GatherErrorCursor" }, + { "EnumValue": 55, "Type": "Cursormode", "Name": "LockErrorCursor" }, + { "EnumValue": 56, "Type": "Cursormode", "Name": "MailErrorCursor" }, + { "EnumValue": 57, "Type": "Cursormode", "Name": "LootAllErrorCursor" }, + { "EnumValue": 58, "Type": "Cursormode", "Name": "RepairErrorCursor" }, + { "EnumValue": 59, "Type": "Cursormode", "Name": "RepairnpcErrorCursor" }, + { "EnumValue": 60, "Type": "Cursormode", "Name": "ItemErrorCursor" }, + { "EnumValue": 61, "Type": "Cursormode", "Name": "SkinHordeErrorCursor" }, + { "EnumValue": 62, "Type": "Cursormode", "Name": "SkinAllianceErrorCursor" }, + { "EnumValue": 63, "Type": "Cursormode", "Name": "InnkeeperErrorCursor" }, + { "EnumValue": 64, "Type": "Cursormode", "Name": "CampaignQuestErrorCursor" }, + { + "EnumValue": 65, + "Type": "Cursormode", + "Name": "CampaignQuestTurninErrorCursor" + }, + { "EnumValue": 66, "Type": "Cursormode", "Name": "QuestErrorCursor" }, + { "EnumValue": 67, "Type": "Cursormode", "Name": "QuestRepeatableErrorCursor" }, + { "EnumValue": 68, "Type": "Cursormode", "Name": "QuestTurninErrorCursor" }, + { "EnumValue": 69, "Type": "Cursormode", "Name": "QuestLegendaryErrorCursor" }, + { + "EnumValue": 70, + "Type": "Cursormode", + "Name": "QuestLegendaryTurninErrorCursor" + }, + { "EnumValue": 71, "Type": "Cursormode", "Name": "QuestImportantErrorCursor" }, + { + "EnumValue": 72, + "Type": "Cursormode", + "Name": "QuestImportantTurninErrorCursor" + }, + { "EnumValue": 73, "Type": "Cursormode", "Name": "QuestMetaErrorCursor" }, + { "EnumValue": 74, "Type": "Cursormode", "Name": "QuestMetaTurninErrorCursor" }, + { "EnumValue": 75, "Type": "Cursormode", "Name": "QuestRecurringErrorCursor" }, + { + "EnumValue": 76, + "Type": "Cursormode", + "Name": "QuestRecurringTurninErrorCursor" + }, + { "EnumValue": 77, "Type": "Cursormode", "Name": "VehicleErrorCursor" }, + { "EnumValue": 78, "Type": "Cursormode", "Name": "MapPinErrorCursor" }, + { "EnumValue": 79, "Type": "Cursormode", "Name": "PingErrorCursor" }, + { "EnumValue": 80, "Type": "Cursormode", "Name": "EnchantErrorCursor" }, + { "EnumValue": 81, "Type": "Cursormode", "Name": "CustomCursor" } + ], + "MaxValue": 81, + "MinValue": 0, + "NumValues": 82 + }, + { + "Type": "Enumeration", + "Name": "UICursorType", + "Fields": [ + { "EnumValue": 0, "Type": "UICursorType", "Name": "Default" }, + { "EnumValue": 1, "Type": "UICursorType", "Name": "Item" }, + { "EnumValue": 2, "Type": "UICursorType", "Name": "Money" }, + { "EnumValue": 3, "Type": "UICursorType", "Name": "Spell" }, + { "EnumValue": 4, "Type": "UICursorType", "Name": "PetAction" }, + { "EnumValue": 5, "Type": "UICursorType", "Name": "Merchant" }, + { "EnumValue": 6, "Type": "UICursorType", "Name": "ActionBar" }, + { "EnumValue": 7, "Type": "UICursorType", "Name": "Macro" }, + { "EnumValue": 8, "Type": "UICursorType", "Name": "AmmoObsolete" }, + { "EnumValue": 9, "Type": "UICursorType", "Name": "Pet" }, + { "EnumValue": 10, "Type": "UICursorType", "Name": "GuildBank" }, + { "EnumValue": 11, "Type": "UICursorType", "Name": "GuildBankMoney" }, + { "EnumValue": 12, "Type": "UICursorType", "Name": "EquipmentSet" }, + { "EnumValue": 13, "Type": "UICursorType", "Name": "Currency" }, + { "EnumValue": 14, "Type": "UICursorType", "Name": "Flyout" }, + { "EnumValue": 15, "Type": "UICursorType", "Name": "VoidItem" }, + { "EnumValue": 16, "Type": "UICursorType", "Name": "BattlePet" }, + { "EnumValue": 17, "Type": "UICursorType", "Name": "Mount" }, + { "EnumValue": 18, "Type": "UICursorType", "Name": "Toy" }, + { "EnumValue": 19, "Type": "UICursorType", "Name": "ConduitCollectionItem" }, + { "EnumValue": 20, "Type": "UICursorType", "Name": "PerksProgramVendorItem" } + ], + "MaxValue": 20, + "MinValue": 0, + "NumValues": 21 + }, + { + "Type": "Enumeration", + "Name": "WorldCursorAnchorType", + "Fields": [ + { "EnumValue": 0, "Type": "WorldCursorAnchorType", "Name": "None" }, + { "EnumValue": 1, "Type": "WorldCursorAnchorType", "Name": "Default" }, + { "EnumValue": 2, "Type": "WorldCursorAnchorType", "Name": "Cursor" }, + { "EnumValue": 3, "Type": "WorldCursorAnchorType", "Name": "Nameplate" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Namespace": "C_Cursor", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + } + ], + "Type": "Function", + "Name": "GetCursorItem" + } + ], + "Type": "System", + "Name": "Cursor", + "Events": [ + { + "LiteralName": "BATTLE_PET_CURSOR_CLEAR", + "Type": "Event", + "Name": "BattlePetCursorClear" + }, + { + "LiteralName": "CURSOR_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "isDefault" }, + { "Nilable": false, "Type": "UICursorType", "Name": "newCursorType" }, + { "Nilable": false, "Type": "UICursorType", "Name": "oldCursorType" }, + { "Nilable": false, "Type": "number", "Name": "oldCursorVirtualID" } + ], + "Type": "Event", + "Name": "CursorChanged" + }, + { + "LiteralName": "MOUNT_CURSOR_CLEAR", + "Type": "Event", + "Name": "MountCursorClear" + }, + { + "Documentation": [ + "Sends an update when the mouse enters or leaves something in-world (object, unit, etc) that should display a tooltip" + ], + "Type": "Event", + "Name": "WorldCursorTooltipUpdate", + "LiteralName": "WORLD_CURSOR_TOOLTIP_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "WorldCursorAnchorType", "Name": "anchorType" } + ] + } + ], + "Tables": [] + }, + { + "Namespace": "C_CursorUtil", + "Functions": [], + "Type": "System", + "Name": "CursorUtil", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "Causeofdeath", + "Fields": [ + { "EnumValue": 0, "Type": "Causeofdeath", "Name": "None" }, + { "EnumValue": 1, "Type": "Causeofdeath", "Name": "PlayerPvP" }, + { "EnumValue": 2, "Type": "Causeofdeath", "Name": "PlayerDuel" }, + { "EnumValue": 3, "Type": "Causeofdeath", "Name": "Creature" }, + { "EnumValue": 4, "Type": "Causeofdeath", "Name": "Falling" }, + { "EnumValue": 5, "Type": "Causeofdeath", "Name": "Drowning" }, + { "EnumValue": 6, "Type": "Causeofdeath", "Name": "Fatigue" }, + { "EnumValue": 7, "Type": "Causeofdeath", "Name": "Slime" }, + { "EnumValue": 8, "Type": "Causeofdeath", "Name": "Lava" }, + { "EnumValue": 9, "Type": "Causeofdeath", "Name": "Fire" } + ], + "MaxValue": 9, + "MinValue": 0, + "NumValues": 10 + }, + { + "Type": "Enumeration", + "Name": "CauseofdeathFlags", + "Fields": [ + { "EnumValue": 0, "Type": "CauseofdeathFlags", "Name": "NoneNeeded" }, + { "EnumValue": 1, "Type": "CauseofdeathFlags", "Name": "PlayerNameNeeded" }, + { "EnumValue": 2, "Type": "CauseofdeathFlags", "Name": "CreatureNameNeeded" }, + { "EnumValue": 4, "Type": "CauseofdeathFlags", "Name": "ZoneNameNeeded" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "Damageclass", + "Fields": [ + { "EnumValue": 0, "Type": "Damageclass", "Name": "Physical" }, + { "EnumValue": 1, "Type": "Damageclass", "Name": "Holy" }, + { "EnumValue": 2, "Type": "Damageclass", "Name": "Fire" }, + { "EnumValue": 3, "Type": "Damageclass", "Name": "Nature" }, + { "EnumValue": 4, "Type": "Damageclass", "Name": "Frost" }, + { "EnumValue": 5, "Type": "Damageclass", "Name": "Shadow" }, + { "EnumValue": 6, "Type": "Damageclass", "Name": "Arcane" }, + { "EnumValue": 2, "Type": "Damageclass", "Name": "FirstResist" }, + { "EnumValue": 6, "Type": "Damageclass", "Name": "LastResist" }, + { "EnumValue": 0, "Type": "Damageclass", "Name": "MaskNone" }, + { "EnumValue": 1, "Type": "Damageclass", "Name": "MaskPhysical" }, + { "EnumValue": 2, "Type": "Damageclass", "Name": "MaskHoly" }, + { "EnumValue": 4, "Type": "Damageclass", "Name": "MaskFire" }, + { "EnumValue": 8, "Type": "Damageclass", "Name": "MaskNature" }, + { "EnumValue": 16, "Type": "Damageclass", "Name": "MaskFrost" }, + { "EnumValue": 32, "Type": "Damageclass", "Name": "MaskShadow" }, + { "EnumValue": 64, "Type": "Damageclass", "Name": "MaskArcane" }, + { "EnumValue": 1, "Type": "Damageclass", "Name": "AllPhysical" }, + { "EnumValue": 126, "Type": "Damageclass", "Name": "AllMagical" }, + { "EnumValue": 127, "Type": "Damageclass", "Name": "All" }, + { "EnumValue": 5, "Type": "Damageclass", "Name": "MaskFlamestrike" }, + { "EnumValue": 17, "Type": "Damageclass", "Name": "MaskFroststrike" }, + { "EnumValue": 65, "Type": "Damageclass", "Name": "MaskSpellstrike" }, + { "EnumValue": 33, "Type": "Damageclass", "Name": "MaskShadowstrike" }, + { "EnumValue": 9, "Type": "Damageclass", "Name": "MaskStormstrike" }, + { "EnumValue": 3, "Type": "Damageclass", "Name": "MaskHolystrike" }, + { "EnumValue": 20, "Type": "Damageclass", "Name": "MaskFrostfire" }, + { "EnumValue": 68, "Type": "Damageclass", "Name": "MaskSpellfire" }, + { "EnumValue": 12, "Type": "Damageclass", "Name": "MaskFirestorm" }, + { "EnumValue": 36, "Type": "Damageclass", "Name": "MaskShadowflame" }, + { "EnumValue": 6, "Type": "Damageclass", "Name": "MaskHolyfire" }, + { "EnumValue": 80, "Type": "Damageclass", "Name": "MaskSpellfrost" }, + { "EnumValue": 24, "Type": "Damageclass", "Name": "MaskFroststorm" }, + { "EnumValue": 48, "Type": "Damageclass", "Name": "MaskShadowfrost" }, + { "EnumValue": 18, "Type": "Damageclass", "Name": "MaskHolyfrost" }, + { "EnumValue": 72, "Type": "Damageclass", "Name": "MaskSpellstorm" }, + { "EnumValue": 96, "Type": "Damageclass", "Name": "MaskSpellshadow" }, + { "EnumValue": 66, "Type": "Damageclass", "Name": "MaskDivine" }, + { "EnumValue": 40, "Type": "Damageclass", "Name": "MaskShadowstorm" }, + { "EnumValue": 10, "Type": "Damageclass", "Name": "MaskHolystorm" }, + { "EnumValue": 34, "Type": "Damageclass", "Name": "MaskTwilight" }, + { "EnumValue": 28, "Type": "Damageclass", "Name": "MaskElemental" }, + { "EnumValue": 62, "Type": "Damageclass", "Name": "MaskChromatic" }, + { "EnumValue": 126, "Type": "Damageclass", "Name": "MaskMagical" }, + { "EnumValue": 124, "Type": "Damageclass", "Name": "MaskChaos" }, + { "EnumValue": 106, "Type": "Damageclass", "Name": "MaskCosmic" } + ], + "MaxValue": 127, + "MinValue": 0, + "NumValues": 46 + }, + { + "Type": "Enumeration", + "Name": "DamageclassType", + "Fields": [ + { "EnumValue": 0, "Type": "DamageclassType", "Name": "Physical" }, + { "EnumValue": 1, "Type": "DamageclassType", "Name": "Magical" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "EnvironmentalDamageFlags", + "Fields": [ + { "EnumValue": 1, "Type": "EnvironmentalDamageFlags", "Name": "OneTime" }, + { "EnumValue": 2, "Type": "EnvironmentalDamageFlags", "Name": "DmgIsPct" } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "Environmentaldamagetype", + "Fields": [ + { "EnumValue": 0, "Type": "Environmentaldamagetype", "Name": "Fatigue" }, + { "EnumValue": 1, "Type": "Environmentaldamagetype", "Name": "Drowning" }, + { "EnumValue": 2, "Type": "Environmentaldamagetype", "Name": "Falling" }, + { "EnumValue": 3, "Type": "Environmentaldamagetype", "Name": "Lava" }, + { "EnumValue": 4, "Type": "Environmentaldamagetype", "Name": "Slime" }, + { "EnumValue": 5, "Type": "Environmentaldamagetype", "Name": "Fire" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + } + ] + }, + { + "Namespace": "C_DateAndTime", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "CalendarTime", "Name": "newDate" }], + "Arguments": [ + { "Nilable": false, "Type": "CalendarTime", "Name": "date" }, + { "Nilable": false, "Type": "number", "Name": "days" } + ], + "Type": "Function", + "Name": "AdjustTimeByDays" + }, + { + "Returns": [{ "Nilable": false, "Type": "CalendarTime", "Name": "newDate" }], + "Arguments": [ + { "Nilable": false, "Type": "CalendarTime", "Name": "date" }, + { "Nilable": false, "Type": "number", "Name": "minutes" } + ], + "Type": "Function", + "Name": "AdjustTimeByMinutes" + }, + { + "Returns": [{ "Nilable": false, "Type": "CalendarTime", "Name": "newDate" }], + "Arguments": [ + { "Nilable": false, "Type": "CalendarTime", "Name": "date" }, + { "Nilable": false, "Type": "number", "Name": "months" } + ], + "Type": "Function", + "Name": "AdjustTimeByMonths" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "comparison" }], + "Arguments": [ + { "Nilable": false, "Type": "CalendarTime", "Name": "lhsCalendarTime" }, + { "Nilable": false, "Type": "CalendarTime", "Name": "rhsCalendarTime" } + ], + "Type": "Function", + "Name": "CompareCalendarTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "CalendarTime", "Name": "date" }], + "Arguments": [{ "Nilable": false, "Type": "BigUInteger", "Name": "epoch" }], + "Type": "Function", + "Name": "GetCalendarTimeFromEpoch" + }, + { + "Returns": [{ "Nilable": false, "Type": "CalendarTime", "Name": "date" }], + "Type": "Function", + "Name": "GetCurrentCalendarTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "time_t", "Name": "seconds" }], + "Type": "Function", + "Name": "GetSecondsUntilDailyReset" + }, + { + "Returns": [{ "Nilable": false, "Type": "time_t", "Name": "seconds" }], + "Type": "Function", + "Name": "GetSecondsUntilWeeklyReset" + }, + { + "Returns": [{ "Nilable": false, "Type": "time_t", "Name": "serverTimeLocal" }], + "Type": "Function", + "Name": "GetServerTimeLocal" + }, + { + "Returns": [{ "Nilable": false, "Type": "time_t", "Name": "seconds" }], + "Type": "Function", + "Name": "GetWeeklyResetStartTime" + } + ], + "Type": "System", + "Name": "DateAndTime", + "Events": [], + "Tables": [ + { + "Type": "Enumeration", + "Name": "TimeEventFlag", + "Fields": [ + { "EnumValue": 1, "Type": "TimeEventFlag", "Name": "GlueScreenShortcut" }, + { "EnumValue": 2, "Type": "TimeEventFlag", "Name": "WeeklyReset" }, + { "EnumValue": 4, "Type": "TimeEventFlag", "Name": "GlobalLaunch" } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 3 + } + ] + }, + { + "Namespace": "C_DeathAlert", + "Functions": [], + "Type": "System", + "Name": "DeathAlert", + "Events": [ + { + "LiteralName": "HARDCORE_DEATHS", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "memberName" }], + "Type": "Event", + "Name": "HardcoreDeaths" + } + ], + "Tables": [] + }, + { + "Namespace": "C_DeathInfo", + "Functions": [ + { + "Returns": [ + { + "Nilable": true, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetCorpseMapPosition" + }, + { + "Returns": [ + { + "Nilable": true, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetDeathReleasePosition" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "GraveyardMapInfo", + "Type": "table", + "Name": "graveyards" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetGraveyardsForMap" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "SelfResurrectOption", + "Type": "table", + "Name": "options" + } + ], + "Type": "Function", + "Name": "GetSelfResurrectOptions" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SelfResurrectOptionType", "Name": "optionType" }, + { "Nilable": false, "Type": "number", "Name": "id" } + ], + "Type": "Function", + "Name": "UseSelfResurrectOption" + } + ], + "Type": "System", + "Name": "DeathInfo", + "Events": [ + { + "LiteralName": "AREA_SPIRIT_HEALER_IN_RANGE", + "Type": "Event", + "Name": "AreaSpiritHealerInRange" + }, + { + "LiteralName": "AREA_SPIRIT_HEALER_OUT_OF_RANGE", + "Type": "Event", + "Name": "AreaSpiritHealerOutOfRange" + }, + { + "LiteralName": "CEMETERY_PREFERENCE_UPDATED", + "Type": "Event", + "Name": "CemeteryPreferenceUpdated" + }, + { "LiteralName": "CONFIRM_XP_LOSS", "Type": "Event", "Name": "ConfirmXpLoss" }, + { + "LiteralName": "CORPSE_IN_INSTANCE", + "Type": "Event", + "Name": "CorpseInInstance" + }, + { "LiteralName": "CORPSE_IN_RANGE", "Type": "Event", "Name": "CorpseInRange" }, + { + "LiteralName": "CORPSE_OUT_OF_RANGE", + "Type": "Event", + "Name": "CorpseOutOfRange" + }, + { "LiteralName": "PLAYER_ALIVE", "Type": "Event", "Name": "PlayerAlive" }, + { "LiteralName": "PLAYER_DEAD", "Type": "Event", "Name": "PlayerDead" }, + { + "LiteralName": "PLAYER_SKINNED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "hasFreeRepop" }], + "Type": "Event", + "Name": "PlayerSkinned" + }, + { "LiteralName": "PLAYER_UNGHOST", "Type": "Event", "Name": "PlayerUnghost" }, + { + "LiteralName": "REQUEST_CEMETERY_LIST_RESPONSE", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isGossipTriggered" }], + "Type": "Event", + "Name": "RequestCemeteryListResponse" + }, + { + "LiteralName": "RESURRECT_REQUEST", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "inviter" }], + "Type": "Event", + "Name": "ResurrectRequest" + }, + { + "LiteralName": "SELF_RES_SPELL_CHANGED", + "Type": "Event", + "Name": "SelfResSpellChanged" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "SelfResurrectOptionType", + "Fields": [ + { "EnumValue": 0, "Type": "SelfResurrectOptionType", "Name": "Spell" }, + { "EnumValue": 1, "Type": "SelfResurrectOptionType", "Name": "Item" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "areaPoiID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "textureIndex" }, + { "Nilable": false, "Type": "number", "Name": "graveyardID" }, + { "Nilable": false, "Type": "bool", "Name": "isGraveyardSelectable" } + ], + "Type": "Structure", + "Name": "GraveyardMapInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "SelfResurrectOptionType", "Name": "optionType" }, + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "bool", "Name": "canUse" }, + { "Nilable": false, "Type": "bool", "Name": "isLimited" }, + { "Nilable": false, "Type": "number", "Name": "priority" } + ], + "Type": "Structure", + "Name": "SelfResurrectOption" + } + ] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "upperBodyAnim" }, + { "Nilable": false, "Type": "cstring", "Name": "lowerBodyAnim" }, + { "Nilable": false, "Type": "cstring", "Name": "mountAnim" }, + { "Nilable": false, "Type": "cstring", "Name": "upperBodyPrimaryAnim" }, + { "Nilable": false, "Type": "number", "Name": "upperBodyPrimaryAnimVariation" }, + { "Nilable": false, "Type": "cstring", "Name": "upperBodySecondaryAnim" }, + { + "Nilable": false, + "Type": "number", + "Name": "upperBodySecondaryAnimVariation" + }, + { "Nilable": false, "Type": "cstring", "Name": "lowerBodyPrimaryAnim" }, + { "Nilable": false, "Type": "number", "Name": "lowerBodyPrimaryAnimVariation" }, + { "Nilable": false, "Type": "cstring", "Name": "lowerBodySecondaryAnim" }, + { + "Nilable": false, + "Type": "number", + "Name": "lowerBodySecondaryAnimVariation" + }, + { "Nilable": true, "Type": "number", "Name": "animKitID" }, + { "Nilable": true, "Type": "number", "Name": "mountAnimKitID" } + ], + "Arguments": [{ "Nilable": true, "Type": "UnitToken", "Name": "unitGUID" }], + "Type": "Function", + "Name": "GetDebugAnimationStats" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "result" }], + "Type": "Function", + "Name": "GetDebugPerf" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "result" }], + "Type": "Function", + "Name": "GetDebugSpellEffects" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "result" }], + "Type": "Function", + "Name": "GetDebugStats" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "result" }], + "Type": "Function", + "Name": "GetDebugTargetCustomizationInfo" + }, + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "unitGUID" }], + "Type": "Function", + "Name": "GetDebugUnitInfo" + } + ], + "Type": "System", + "Name": "DebugInfo", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Type": "Function", "Name": "ToggleAnimKitDisplay" }, + { "Type": "Function", "Name": "ToggleCollision" }, + { "Type": "Function", "Name": "ToggleCollisionDisplay" }, + { "Type": "Function", "Name": "ToggleDebugAIDisplay" }, + { "Type": "Function", "Name": "ToggleGravity" }, + { "Type": "Function", "Name": "TogglePlayerBounds" }, + { "Type": "Function", "Name": "TogglePortals" }, + { "Type": "Function", "Name": "ToggleTris" } + ], + "Type": "System", + "Name": "DebugToggle", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "CompanionConfigSlotTypes", + "Fields": [ + { "EnumValue": 0, "Type": "CompanionConfigSlotTypes", "Name": "Role" }, + { "EnumValue": 1, "Type": "CompanionConfigSlotTypes", "Name": "Utility" }, + { "EnumValue": 2, "Type": "CompanionConfigSlotTypes", "Name": "Combat" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "CurioRarity", + "Fields": [ + { "EnumValue": 1, "Type": "CurioRarity", "Name": "Common" }, + { "EnumValue": 2, "Type": "CurioRarity", "Name": "Uncommon" }, + { "EnumValue": 3, "Type": "CurioRarity", "Name": "Rare" }, + { "EnumValue": 4, "Type": "CurioRarity", "Name": "Epic" } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 4 + }, + { + "Values": [ + { + "Value": 2677, + "Type": "number", + "Name": "DELVES_MIN_PLAYER_LEVEL_CONTENT_TUNING_ID" + }, + { "Value": 3028, "Type": "number", "Name": "DELVES_NORMAL_KEY_CURRENCY_ID" }, + { + "Value": 1331, + "Type": "number", + "Name": "DELVES_COMPANION_TOOLTIP_WIDGET_SET_ID" + }, + { "Value": 6, "Type": "number", "Name": "DELVES_COMPANION_TRAIT_SYSTEM_ID" }, + { "Value": 1, "Type": "number", "Name": "BRANN_COMPANION_INFO_ID" } + ], + "Type": "Constants", + "Name": "DelvesConsts" + } + ] + }, + { + "Namespace": "C_DelvesUI", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "creatureDisplayInfoID" } + ], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "companionID" }], + "Type": "Function", + "Name": "GetCreatureDisplayInfoForCompanion" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Arguments": [ + { "Nilable": true, "Type": "number", "Name": "companionID" }, + { "Nilable": false, "Type": "CurioType", "Name": "curioType" } + ], + "Type": "Function", + "Name": "GetCurioNodeForCompanion" + }, + { + "Returns": [{ "Nilable": false, "Type": "CurioRarity", "Name": "rarity" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "traitCondAccountElementID" } + ], + "Type": "Function", + "Name": "GetCurioRarityByTraitCondAccountElementID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "seasonNumber" }], + "Type": "Function", + "Name": "GetCurrentDelvesSeasonNumber" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "affixSpellIDs" + } + ], + "Type": "Function", + "Name": "GetDelvesAffixSpellsForSeason" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "factionID" }], + "Type": "Function", + "Name": "GetDelvesFactionForSeason" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "minRequiredLevel" }], + "Documentation": [ + "Players must be at or above the min level + offset to enter Delves. This function returns that min level." + ], + "Type": "Function", + "Name": "GetDelvesMinRequiredLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "factionID" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "companionID" }], + "Type": "Function", + "Name": "GetFactionForCompanion" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "modelSceneID" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "companionID" }], + "Type": "Function", + "Name": "GetModelSceneForCompanion" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "companionID" }], + "Type": "Function", + "Name": "GetRoleNodeForCompanion" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "subTreeID" }], + "Arguments": [ + { "Nilable": true, "Type": "number", "Name": "companionID" }, + { "Nilable": false, "Type": "CompanionRoleType", "Name": "roleType" } + ], + "Type": "Function", + "Name": "GetRoleSubtreeForCompanion" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "treeID" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "companionID" }], + "Type": "Function", + "Name": "GetTraitTreeForCompanion" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "unseenCurioNodeIDs" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "CompanionConfigSlotTypes", "Name": "slotType" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "ownedCurioNodeIDs" + } + ], + "Type": "Function", + "Name": "GetUnseenCuriosBySlotType" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "mapID" }], + "Type": "Function", + "Name": "HasActiveDelve" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "IsEligibleForActiveDelveRewards" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "CompanionConfigSlotTypes", "Name": "slotType" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "ownedCurioNodeIDs" + } + ], + "Type": "Function", + "Name": "SaveSeenCuriosBySlotType" + } + ], + "Type": "System", + "Name": "DelvesUI", + "Events": [ + { + "LiteralName": "ACTIVE_DELVE_DATA_UPDATE", + "Documentation": [ + "Signaled when SpellScript calls change the data for players/parties owning a delve or when the delve is shut down." + ], + "Type": "Event", + "Name": "ActiveDelveDataUpdate" + }, + { + "LiteralName": "DELVES_ACCOUNT_DATA_ELEMENT_CHANGED", + "Documentation": [ + "Signaled when player account data element(s) have changed. This drives curio ranks, and the UI should update when this is sent." + ], + "Type": "Event", + "Name": "DelvesAccountDataElementChanged" + }, + { + "LiteralName": "SHOW_DELVES_COMPANION_CONFIGURATION_UI", + "Documentation": [ + "Signaled when SpellScript indicates that a curio has been learned or upgraded. Will show the companion config UI." + ], + "Type": "Event", + "Name": "ShowDelvesCompanionConfigurationUI" + }, + { + "LiteralName": "SHOW_DELVES_DISPLAY_UI", + "Documentation": ["Signaled when the UI needs to display the Delves dashbaord."], + "Type": "Event", + "Name": "ShowDelvesDisplayUI" + }, + { + "LiteralName": "WALK_IN_DATA_UPDATE", + "Documentation": [ + "Signaled when the player or a private party member join a new walk-in instance or when the instance is shut down." + ], + "Type": "Event", + "Name": "WalkInDataUpdate" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "CompanionRoleType", + "Fields": [ + { "EnumValue": 0, "Type": "CompanionRoleType", "Name": "Dps" }, + { "EnumValue": 1, "Type": "CompanionRoleType", "Name": "Heal" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "CurioType", + "Fields": [ + { "EnumValue": 0, "Type": "CurioType", "Name": "Combat" }, + { "EnumValue": 1, "Type": "CurioType", "Name": "Utility" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + } + ] + }, + { + "Namespace": "C_Deprecated", + "Documentation": [ + "These are events and functions that were deprecated in 11.0.0 and will be removed before it ships." + ], + "Type": "System", + "Name": "Deprecated_11_0_0", + "Tables": [], + "Events": [ + { + "LiteralName": "LEARNED_SPELL_IN_TAB", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "skillInfoIndex" }, + { "Nilable": false, "Type": "bool", "Name": "isGuildPerkSpell" } + ], + "Type": "Event", + "Name": "LearnedSpellInTab" + } + ], + "Functions": [] + }, + { + "Namespace": "C_DuelInfo", + "Functions": [], + "Type": "System", + "Name": "DuelInfo", + "Events": [ + { "LiteralName": "DUEL_FINISHED", "Type": "Event", "Name": "DuelFinished" }, + { "LiteralName": "DUEL_INBOUNDS", "Type": "Event", "Name": "DuelInbounds" }, + { "LiteralName": "DUEL_OUTOFBOUNDS", "Type": "Event", "Name": "DuelOutofbounds" }, + { + "LiteralName": "DUEL_REQUESTED", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "playerName" }], + "Type": "Event", + "Name": "DuelRequested" + }, + { + "LiteralName": "DUEL_TO_THE_DEATH_REQUESTED", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "playerName" }], + "Type": "Event", + "Name": "DuelToTheDeathRequested" + } + ], + "Tables": [] + }, + { + "Namespace": "C_EditMode", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "layoutInfoAsString" }], + "Arguments": [ + { "Nilable": false, "Type": "EditModeLayoutInfo", "Name": "layoutInfo" } + ], + "Type": "Function", + "Name": "ConvertLayoutInfoToString" + }, + { + "Returns": [ + { "Nilable": false, "Type": "EditModeLayoutInfo", "Name": "layoutInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "layoutInfoAsString" } + ], + "Type": "Function", + "Name": "ConvertStringToLayoutInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "EditModeSettingInfo", + "Type": "table", + "Name": "accountSettings" + } + ], + "Type": "Function", + "Name": "GetAccountSettings" + }, + { + "Returns": [ + { "Nilable": false, "Type": "EditModeLayouts", "Name": "layoutInfo" } + ], + "Type": "Function", + "Name": "GetLayouts" + }, + { "Type": "Function", "Name": "OnEditModeExit" }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "addedLayoutIndex" }, + { "Nilable": false, "Type": "bool", "Name": "activateNewLayout" }, + { "Nilable": false, "Type": "bool", "Name": "isLayoutImported" } + ], + "Type": "Function", + "Name": "OnLayoutAdded" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "deletedLayoutIndex" } + ], + "Type": "Function", + "Name": "OnLayoutDeleted" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "EditModeLayouts", "Name": "saveInfo" } + ], + "Type": "Function", + "Name": "SaveLayouts" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "EditModeAccountSetting", "Name": "setting" }, + { "Nilable": false, "Type": "number", "Name": "value" } + ], + "Type": "Function", + "Name": "SetAccountSetting" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "activeLayout" }], + "Type": "Function", + "Name": "SetActiveLayout" + } + ], + "Type": "System", + "Name": "EditModeManager", + "Events": [ + { + "LiteralName": "EDIT_MODE_LAYOUTS_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "EditModeLayouts", "Name": "layoutInfo" }, + { "Nilable": false, "Type": "bool", "Name": "reconcileLayouts" } + ], + "Type": "Event", + "Name": "EditModeLayoutsUpdated" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "FramePoint", "Name": "point" }, + { "Nilable": false, "Type": "string", "Name": "relativeTo" }, + { "Nilable": false, "Type": "FramePoint", "Name": "relativePoint" }, + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" } + ], + "Type": "Structure", + "Name": "EditModeAnchorInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "layoutName" }, + { "Nilable": false, "Type": "EditModeLayoutType", "Name": "layoutType" }, + { + "Nilable": false, + "InnerType": "EditModeSystemInfo", + "Type": "table", + "Name": "systems" + } + ], + "Type": "Structure", + "Name": "EditModeLayoutInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "InnerType": "EditModeLayoutInfo", + "Type": "table", + "Name": "layouts" + }, + { "Nilable": false, "Type": "luaIndex", "Name": "activeLayout" } + ], + "Type": "Structure", + "Name": "EditModeLayouts" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "setting" }, + { "Nilable": false, "Type": "number", "Name": "value" } + ], + "Type": "Structure", + "Name": "EditModeSettingInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "EditModeSystem", "Name": "system" }, + { "Nilable": true, "Type": "luaIndex", "Name": "systemIndex" }, + { "Nilable": false, "Type": "EditModeAnchorInfo", "Name": "anchorInfo" }, + { "Nilable": true, "Type": "EditModeAnchorInfo", "Name": "anchorInfo2" }, + { + "Nilable": false, + "InnerType": "EditModeSettingInfo", + "Type": "table", + "Name": "settings" + }, + { "Nilable": false, "Type": "bool", "Name": "isInDefaultPosition" } + ], + "Type": "Structure", + "Name": "EditModeSystemInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ActionBarOrientation", + "Fields": [ + { "EnumValue": 0, "Type": "ActionBarOrientation", "Name": "Horizontal" }, + { "EnumValue": 1, "Type": "ActionBarOrientation", "Name": "Vertical" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "ActionBarVisibleSetting", + "Fields": [ + { "EnumValue": 0, "Type": "ActionBarVisibleSetting", "Name": "Always" }, + { "EnumValue": 1, "Type": "ActionBarVisibleSetting", "Name": "InCombat" }, + { "EnumValue": 2, "Type": "ActionBarVisibleSetting", "Name": "OutOfCombat" }, + { "EnumValue": 3, "Type": "ActionBarVisibleSetting", "Name": "Hidden" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "AuraFrameIconDirection", + "Fields": [ + { "EnumValue": 0, "Type": "AuraFrameIconDirection", "Name": "Down" }, + { "EnumValue": 1, "Type": "AuraFrameIconDirection", "Name": "Up" }, + { "EnumValue": 0, "Type": "AuraFrameIconDirection", "Name": "Left" }, + { "EnumValue": 1, "Type": "AuraFrameIconDirection", "Name": "Right" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "AuraFrameIconWrap", + "Fields": [ + { "EnumValue": 0, "Type": "AuraFrameIconWrap", "Name": "Down" }, + { "EnumValue": 1, "Type": "AuraFrameIconWrap", "Name": "Up" }, + { "EnumValue": 0, "Type": "AuraFrameIconWrap", "Name": "Left" }, + { "EnumValue": 1, "Type": "AuraFrameIconWrap", "Name": "Right" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "AuraFrameOrientation", + "Fields": [ + { "EnumValue": 0, "Type": "AuraFrameOrientation", "Name": "Horizontal" }, + { "EnumValue": 1, "Type": "AuraFrameOrientation", "Name": "Vertical" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "BagsDirection", + "Fields": [ + { "EnumValue": 0, "Type": "BagsDirection", "Name": "Left" }, + { "EnumValue": 1, "Type": "BagsDirection", "Name": "Right" }, + { "EnumValue": 0, "Type": "BagsDirection", "Name": "Up" }, + { "EnumValue": 1, "Type": "BagsDirection", "Name": "Down" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "BagsOrientation", + "Fields": [ + { "EnumValue": 0, "Type": "BagsOrientation", "Name": "Horizontal" }, + { "EnumValue": 1, "Type": "BagsOrientation", "Name": "Vertical" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "EditModeAccountSetting", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeAccountSetting", "Name": "ShowGrid" }, + { "EnumValue": 1, "Type": "EditModeAccountSetting", "Name": "GridSpacing" }, + { + "EnumValue": 2, + "Type": "EditModeAccountSetting", + "Name": "SettingsExpanded" + }, + { + "EnumValue": 3, + "Type": "EditModeAccountSetting", + "Name": "ShowTargetAndFocus" + }, + { "EnumValue": 4, "Type": "EditModeAccountSetting", "Name": "ShowStanceBar" }, + { + "EnumValue": 5, + "Type": "EditModeAccountSetting", + "Name": "ShowPetActionBar" + }, + { + "EnumValue": 6, + "Type": "EditModeAccountSetting", + "Name": "ShowPossessActionBar" + }, + { "EnumValue": 7, "Type": "EditModeAccountSetting", "Name": "ShowCastBar" }, + { + "EnumValue": 8, + "Type": "EditModeAccountSetting", + "Name": "ShowEncounterBar" + }, + { + "EnumValue": 9, + "Type": "EditModeAccountSetting", + "Name": "ShowExtraAbilities" + }, + { + "EnumValue": 10, + "Type": "EditModeAccountSetting", + "Name": "ShowBuffsAndDebuffs" + }, + { + "EnumValue": 11, + "Type": "EditModeAccountSetting", + "Name": "DeprecatedShowDebuffFrame" + }, + { + "EnumValue": 12, + "Type": "EditModeAccountSetting", + "Name": "ShowPartyFrames" + }, + { "EnumValue": 13, "Type": "EditModeAccountSetting", "Name": "ShowRaidFrames" }, + { + "EnumValue": 14, + "Type": "EditModeAccountSetting", + "Name": "ShowTalkingHeadFrame" + }, + { + "EnumValue": 15, + "Type": "EditModeAccountSetting", + "Name": "ShowVehicleLeaveButton" + }, + { "EnumValue": 16, "Type": "EditModeAccountSetting", "Name": "ShowBossFrames" }, + { + "EnumValue": 17, + "Type": "EditModeAccountSetting", + "Name": "ShowArenaFrames" + }, + { "EnumValue": 18, "Type": "EditModeAccountSetting", "Name": "ShowLootFrame" }, + { "EnumValue": 19, "Type": "EditModeAccountSetting", "Name": "ShowHudTooltip" }, + { + "EnumValue": 20, + "Type": "EditModeAccountSetting", + "Name": "ShowStatusTrackingBar2" + }, + { + "EnumValue": 21, + "Type": "EditModeAccountSetting", + "Name": "ShowDurabilityFrame" + }, + { "EnumValue": 22, "Type": "EditModeAccountSetting", "Name": "EnableSnap" }, + { + "EnumValue": 23, + "Type": "EditModeAccountSetting", + "Name": "EnableAdvancedOptions" + }, + { "EnumValue": 24, "Type": "EditModeAccountSetting", "Name": "ShowPetFrame" }, + { "EnumValue": 25, "Type": "EditModeAccountSetting", "Name": "ShowTimerBars" }, + { + "EnumValue": 26, + "Type": "EditModeAccountSetting", + "Name": "ShowVehicleSeatIndicator" + }, + { + "EnumValue": 27, + "Type": "EditModeAccountSetting", + "Name": "ShowArchaeologyBar" + } + ], + "MaxValue": 27, + "MinValue": 0, + "NumValues": 28 + }, + { + "Type": "Enumeration", + "Name": "EditModeActionBarSetting", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeActionBarSetting", "Name": "Orientation" }, + { "EnumValue": 1, "Type": "EditModeActionBarSetting", "Name": "NumRows" }, + { "EnumValue": 2, "Type": "EditModeActionBarSetting", "Name": "NumIcons" }, + { "EnumValue": 3, "Type": "EditModeActionBarSetting", "Name": "IconSize" }, + { "EnumValue": 4, "Type": "EditModeActionBarSetting", "Name": "IconPadding" }, + { + "EnumValue": 5, + "Type": "EditModeActionBarSetting", + "Name": "VisibleSetting" + }, + { "EnumValue": 6, "Type": "EditModeActionBarSetting", "Name": "HideBarArt" }, + { + "EnumValue": 7, + "Type": "EditModeActionBarSetting", + "Name": "DeprecatedSnapToSide" + }, + { + "EnumValue": 8, + "Type": "EditModeActionBarSetting", + "Name": "HideBarScrolling" + }, + { + "EnumValue": 9, + "Type": "EditModeActionBarSetting", + "Name": "AlwaysShowButtons" + } + ], + "MaxValue": 9, + "MinValue": 0, + "NumValues": 10 + }, + { + "Type": "Enumeration", + "Name": "EditModeActionBarSystemIndices", + "Fields": [ + { "EnumValue": 1, "Type": "EditModeActionBarSystemIndices", "Name": "MainBar" }, + { "EnumValue": 2, "Type": "EditModeActionBarSystemIndices", "Name": "Bar2" }, + { "EnumValue": 3, "Type": "EditModeActionBarSystemIndices", "Name": "Bar3" }, + { + "EnumValue": 4, + "Type": "EditModeActionBarSystemIndices", + "Name": "RightBar1" + }, + { + "EnumValue": 5, + "Type": "EditModeActionBarSystemIndices", + "Name": "RightBar2" + }, + { + "EnumValue": 6, + "Type": "EditModeActionBarSystemIndices", + "Name": "ExtraBar1" + }, + { + "EnumValue": 7, + "Type": "EditModeActionBarSystemIndices", + "Name": "ExtraBar2" + }, + { + "EnumValue": 8, + "Type": "EditModeActionBarSystemIndices", + "Name": "ExtraBar3" + }, + { + "EnumValue": 11, + "Type": "EditModeActionBarSystemIndices", + "Name": "StanceBar" + }, + { + "EnumValue": 12, + "Type": "EditModeActionBarSystemIndices", + "Name": "PetActionBar" + }, + { + "EnumValue": 13, + "Type": "EditModeActionBarSystemIndices", + "Name": "PossessActionBar" + } + ], + "MaxValue": 13, + "MinValue": 1, + "NumValues": 11 + }, + { + "Type": "Enumeration", + "Name": "EditModeArchaeologyBarSetting", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeArchaeologyBarSetting", "Name": "Size" } + ], + "MaxValue": 0, + "MinValue": 0, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "EditModeAuraFrameSetting", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeAuraFrameSetting", "Name": "Orientation" }, + { "EnumValue": 1, "Type": "EditModeAuraFrameSetting", "Name": "IconWrap" }, + { "EnumValue": 2, "Type": "EditModeAuraFrameSetting", "Name": "IconDirection" }, + { + "EnumValue": 3, + "Type": "EditModeAuraFrameSetting", + "Name": "IconLimitBuffFrame" + }, + { + "EnumValue": 4, + "Type": "EditModeAuraFrameSetting", + "Name": "IconLimitDebuffFrame" + }, + { "EnumValue": 5, "Type": "EditModeAuraFrameSetting", "Name": "IconSize" }, + { "EnumValue": 6, "Type": "EditModeAuraFrameSetting", "Name": "IconPadding" }, + { + "EnumValue": 7, + "Type": "EditModeAuraFrameSetting", + "Name": "DeprecatedShowFull" + } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + }, + { + "Type": "Enumeration", + "Name": "EditModeAuraFrameSystemIndices", + "Fields": [ + { + "EnumValue": 1, + "Type": "EditModeAuraFrameSystemIndices", + "Name": "BuffFrame" + }, + { + "EnumValue": 2, + "Type": "EditModeAuraFrameSystemIndices", + "Name": "DebuffFrame" + } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "EditModeBagsSetting", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeBagsSetting", "Name": "Orientation" }, + { "EnumValue": 1, "Type": "EditModeBagsSetting", "Name": "Direction" }, + { "EnumValue": 2, "Type": "EditModeBagsSetting", "Name": "Size" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "EditModeCastBarSetting", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeCastBarSetting", "Name": "BarSize" }, + { + "EnumValue": 1, + "Type": "EditModeCastBarSetting", + "Name": "LockToPlayerFrame" + }, + { "EnumValue": 2, "Type": "EditModeCastBarSetting", "Name": "ShowCastTime" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "EditModeChatFrameSetting", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeChatFrameSetting", "Name": "WidthHundreds" }, + { + "EnumValue": 1, + "Type": "EditModeChatFrameSetting", + "Name": "WidthTensAndOnes" + }, + { + "EnumValue": 2, + "Type": "EditModeChatFrameSetting", + "Name": "HeightHundreds" + }, + { + "EnumValue": 3, + "Type": "EditModeChatFrameSetting", + "Name": "HeightTensAndOnes" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "EditModeDurabilityFrameSetting", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeDurabilityFrameSetting", "Name": "Size" } + ], + "MaxValue": 0, + "MinValue": 0, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "EditModeLayoutType", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeLayoutType", "Name": "Preset" }, + { "EnumValue": 1, "Type": "EditModeLayoutType", "Name": "Account" }, + { "EnumValue": 2, "Type": "EditModeLayoutType", "Name": "Character" }, + { "EnumValue": 3, "Type": "EditModeLayoutType", "Name": "Override" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "EditModeMicroMenuSetting", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeMicroMenuSetting", "Name": "Orientation" }, + { "EnumValue": 1, "Type": "EditModeMicroMenuSetting", "Name": "Order" }, + { "EnumValue": 2, "Type": "EditModeMicroMenuSetting", "Name": "Size" }, + { "EnumValue": 3, "Type": "EditModeMicroMenuSetting", "Name": "EyeSize" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "EditModeMinimapSetting", + "Fields": [ + { + "EnumValue": 0, + "Type": "EditModeMinimapSetting", + "Name": "HeaderUnderneath" + }, + { "EnumValue": 1, "Type": "EditModeMinimapSetting", "Name": "RotateMinimap" }, + { "EnumValue": 2, "Type": "EditModeMinimapSetting", "Name": "Size" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "EditModeObjectiveTrackerSetting", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeObjectiveTrackerSetting", "Name": "Height" }, + { + "EnumValue": 1, + "Type": "EditModeObjectiveTrackerSetting", + "Name": "Opacity" + }, + { + "EnumValue": 2, + "Type": "EditModeObjectiveTrackerSetting", + "Name": "TextSize" + } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "EditModePresetLayouts", + "Fields": [ + { "EnumValue": 0, "Type": "EditModePresetLayouts", "Name": "Modern" }, + { "EnumValue": 1, "Type": "EditModePresetLayouts", "Name": "Classic" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "EditModeSettingDisplayType", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeSettingDisplayType", "Name": "Dropdown" }, + { "EnumValue": 1, "Type": "EditModeSettingDisplayType", "Name": "Checkbox" }, + { "EnumValue": 2, "Type": "EditModeSettingDisplayType", "Name": "Slider" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "EditModeStatusTrackingBarSetting", + "Fields": [ + { + "EnumValue": 0, + "Type": "EditModeStatusTrackingBarSetting", + "Name": "Height" + }, + { "EnumValue": 1, "Type": "EditModeStatusTrackingBarSetting", "Name": "Width" }, + { + "EnumValue": 2, + "Type": "EditModeStatusTrackingBarSetting", + "Name": "TextSize" + } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "EditModeStatusTrackingBarSystemIndices", + "Fields": [ + { + "EnumValue": 1, + "Type": "EditModeStatusTrackingBarSystemIndices", + "Name": "StatusTrackingBar1" + }, + { + "EnumValue": 2, + "Type": "EditModeStatusTrackingBarSystemIndices", + "Name": "StatusTrackingBar2" + } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "EditModeSystem", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeSystem", "Name": "ActionBar" }, + { "EnumValue": 1, "Type": "EditModeSystem", "Name": "CastBar" }, + { "EnumValue": 2, "Type": "EditModeSystem", "Name": "Minimap" }, + { "EnumValue": 3, "Type": "EditModeSystem", "Name": "UnitFrame" }, + { "EnumValue": 4, "Type": "EditModeSystem", "Name": "EncounterBar" }, + { "EnumValue": 5, "Type": "EditModeSystem", "Name": "ExtraAbilities" }, + { "EnumValue": 6, "Type": "EditModeSystem", "Name": "AuraFrame" }, + { "EnumValue": 7, "Type": "EditModeSystem", "Name": "TalkingHeadFrame" }, + { "EnumValue": 8, "Type": "EditModeSystem", "Name": "ChatFrame" }, + { "EnumValue": 9, "Type": "EditModeSystem", "Name": "VehicleLeaveButton" }, + { "EnumValue": 10, "Type": "EditModeSystem", "Name": "LootFrame" }, + { "EnumValue": 11, "Type": "EditModeSystem", "Name": "HudTooltip" }, + { "EnumValue": 12, "Type": "EditModeSystem", "Name": "ObjectiveTracker" }, + { "EnumValue": 13, "Type": "EditModeSystem", "Name": "MicroMenu" }, + { "EnumValue": 14, "Type": "EditModeSystem", "Name": "Bags" }, + { "EnumValue": 15, "Type": "EditModeSystem", "Name": "StatusTrackingBar" }, + { "EnumValue": 16, "Type": "EditModeSystem", "Name": "DurabilityFrame" }, + { "EnumValue": 17, "Type": "EditModeSystem", "Name": "TimerBars" }, + { "EnumValue": 18, "Type": "EditModeSystem", "Name": "VehicleSeatIndicator" }, + { "EnumValue": 19, "Type": "EditModeSystem", "Name": "ArchaeologyBar" } + ], + "MaxValue": 19, + "MinValue": 0, + "NumValues": 20 + }, + { + "Type": "Enumeration", + "Name": "EditModeTimerBarsSetting", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeTimerBarsSetting", "Name": "Size" } + ], + "MaxValue": 0, + "MinValue": 0, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "EditModeUnitFrameSetting", + "Fields": [ + { "EnumValue": 0, "Type": "EditModeUnitFrameSetting", "Name": "HidePortrait" }, + { + "EnumValue": 1, + "Type": "EditModeUnitFrameSetting", + "Name": "CastBarUnderneath" + }, + { "EnumValue": 2, "Type": "EditModeUnitFrameSetting", "Name": "BuffsOnTop" }, + { + "EnumValue": 3, + "Type": "EditModeUnitFrameSetting", + "Name": "UseLargerFrame" + }, + { + "EnumValue": 4, + "Type": "EditModeUnitFrameSetting", + "Name": "UseRaidStylePartyFrames" + }, + { + "EnumValue": 5, + "Type": "EditModeUnitFrameSetting", + "Name": "ShowPartyFrameBackground" + }, + { + "EnumValue": 6, + "Type": "EditModeUnitFrameSetting", + "Name": "UseHorizontalGroups" + }, + { "EnumValue": 7, "Type": "EditModeUnitFrameSetting", "Name": "CastBarOnSide" }, + { "EnumValue": 8, "Type": "EditModeUnitFrameSetting", "Name": "ShowCastTime" }, + { "EnumValue": 9, "Type": "EditModeUnitFrameSetting", "Name": "ViewRaidSize" }, + { "EnumValue": 10, "Type": "EditModeUnitFrameSetting", "Name": "FrameWidth" }, + { "EnumValue": 11, "Type": "EditModeUnitFrameSetting", "Name": "FrameHeight" }, + { + "EnumValue": 12, + "Type": "EditModeUnitFrameSetting", + "Name": "DisplayBorder" + }, + { + "EnumValue": 13, + "Type": "EditModeUnitFrameSetting", + "Name": "RaidGroupDisplayType" + }, + { + "EnumValue": 14, + "Type": "EditModeUnitFrameSetting", + "Name": "SortPlayersBy" + }, + { "EnumValue": 15, "Type": "EditModeUnitFrameSetting", "Name": "RowSize" }, + { "EnumValue": 16, "Type": "EditModeUnitFrameSetting", "Name": "FrameSize" }, + { "EnumValue": 17, "Type": "EditModeUnitFrameSetting", "Name": "ViewArenaSize" } + ], + "MaxValue": 17, + "MinValue": 0, + "NumValues": 18 + }, + { + "Type": "Enumeration", + "Name": "EditModeUnitFrameSystemIndices", + "Fields": [ + { "EnumValue": 1, "Type": "EditModeUnitFrameSystemIndices", "Name": "Player" }, + { "EnumValue": 2, "Type": "EditModeUnitFrameSystemIndices", "Name": "Target" }, + { "EnumValue": 3, "Type": "EditModeUnitFrameSystemIndices", "Name": "Focus" }, + { "EnumValue": 4, "Type": "EditModeUnitFrameSystemIndices", "Name": "Party" }, + { "EnumValue": 5, "Type": "EditModeUnitFrameSystemIndices", "Name": "Raid" }, + { "EnumValue": 6, "Type": "EditModeUnitFrameSystemIndices", "Name": "Boss" }, + { "EnumValue": 7, "Type": "EditModeUnitFrameSystemIndices", "Name": "Arena" }, + { "EnumValue": 8, "Type": "EditModeUnitFrameSystemIndices", "Name": "Pet" } + ], + "MaxValue": 8, + "MinValue": 1, + "NumValues": 8 + }, + { + "Type": "Enumeration", + "Name": "EditModeVehicleSeatIndicatorSetting", + "Fields": [ + { + "EnumValue": 0, + "Type": "EditModeVehicleSeatIndicatorSetting", + "Name": "Size" + } + ], + "MaxValue": 0, + "MinValue": 0, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "MicroMenuOrder", + "Fields": [ + { "EnumValue": 0, "Type": "MicroMenuOrder", "Name": "Default" }, + { "EnumValue": 1, "Type": "MicroMenuOrder", "Name": "Reverse" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "MicroMenuOrientation", + "Fields": [ + { "EnumValue": 0, "Type": "MicroMenuOrientation", "Name": "Horizontal" }, + { "EnumValue": 1, "Type": "MicroMenuOrientation", "Name": "Vertical" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "RaidGroupDisplayType", + "Fields": [ + { + "EnumValue": 0, + "Type": "RaidGroupDisplayType", + "Name": "SeparateGroupsVertical" + }, + { + "EnumValue": 1, + "Type": "RaidGroupDisplayType", + "Name": "SeparateGroupsHorizontal" + }, + { + "EnumValue": 2, + "Type": "RaidGroupDisplayType", + "Name": "CombineGroupsVertical" + }, + { + "EnumValue": 3, + "Type": "RaidGroupDisplayType", + "Name": "CombineGroupsHorizontal" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "SortPlayersBy", + "Fields": [ + { "EnumValue": 0, "Type": "SortPlayersBy", "Name": "Role" }, + { "EnumValue": 1, "Type": "SortPlayersBy", "Name": "Group" }, + { "EnumValue": 2, "Type": "SortPlayersBy", "Name": "Alphabetical" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ViewArenaSize", + "Fields": [ + { "EnumValue": 0, "Type": "ViewArenaSize", "Name": "Two" }, + { "EnumValue": 1, "Type": "ViewArenaSize", "Name": "Three" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "ViewRaidSize", + "Fields": [ + { "EnumValue": 0, "Type": "ViewRaidSize", "Name": "Ten" }, + { "EnumValue": 1, "Type": "ViewRaidSize", "Name": "TwentyFive" }, + { "EnumValue": 2, "Type": "ViewRaidSize", "Name": "Forty" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Values": [ + { "Value": 100, "Type": "number", "Name": "EditModeDefaultGridSpacing" }, + { "Value": 20, "Type": "number", "Name": "EditModeMinGridSpacing" }, + { "Value": 300, "Type": "number", "Name": "EditModeMaxGridSpacing" }, + { "Value": 5, "Type": "number", "Name": "EditModeMaxLayoutsPerType" } + ], + "Type": "Constants", + "Name": "EditModeConsts" + } + ] + }, + { + "Namespace": "C_EncounterInfo", + "Functions": [], + "Type": "System", + "Name": "EncounterInfo", + "Events": [ + { + "LiteralName": "BOSS_KILL", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "encounterID" }, + { "Nilable": false, "Type": "cstring", "Name": "encounterName" } + ], + "Type": "Event", + "Name": "BossKill" + }, + { + "LiteralName": "DISABLE_LOW_LEVEL_RAID", + "Type": "Event", + "Name": "DisableLowLevelRaid" + }, + { + "LiteralName": "ENABLE_LOW_LEVEL_RAID", + "Type": "Event", + "Name": "EnableLowLevelRaid" + }, + { + "LiteralName": "ENCOUNTER_END", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "encounterID" }, + { "Nilable": false, "Type": "cstring", "Name": "encounterName" }, + { "Nilable": false, "Type": "number", "Name": "difficultyID" }, + { "Nilable": false, "Type": "number", "Name": "groupSize" }, + { "Nilable": false, "Type": "number", "Name": "success" } + ], + "Type": "Event", + "Name": "EncounterEnd" + }, + { + "LiteralName": "ENCOUNTER_START", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "encounterID" }, + { "Nilable": false, "Type": "cstring", "Name": "encounterName" }, + { "Nilable": false, "Type": "number", "Name": "difficultyID" }, + { "Nilable": false, "Type": "number", "Name": "groupSize" } + ], + "Type": "Event", + "Name": "EncounterStart" + }, + { + "LiteralName": "INSTANCE_LOCK_START", + "Type": "Event", + "Name": "InstanceLockStart" + }, + { + "LiteralName": "INSTANCE_LOCK_STOP", + "Type": "Event", + "Name": "InstanceLockStop" + }, + { + "LiteralName": "INSTANCE_LOCK_WARNING", + "Type": "Event", + "Name": "InstanceLockWarning" + }, + { + "LiteralName": "RAID_TARGET_UPDATE", + "Type": "Event", + "Name": "RaidTargetUpdate" + }, + { + "LiteralName": "UPDATE_INSTANCE_INFO", + "Type": "Event", + "Name": "UpdateInstanceInfo" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "JournalEncounterFlags", + "Fields": [ + { "EnumValue": 1, "Type": "JournalEncounterFlags", "Name": "Obsolete" }, + { + "EnumValue": 2, + "Type": "JournalEncounterFlags", + "Name": "LimitDifficulties" + }, + { "EnumValue": 4, "Type": "JournalEncounterFlags", "Name": "AllianceOnly" }, + { "EnumValue": 8, "Type": "JournalEncounterFlags", "Name": "HordeOnly" }, + { "EnumValue": 16, "Type": "JournalEncounterFlags", "Name": "NoMap" }, + { "EnumValue": 32, "Type": "JournalEncounterFlags", "Name": "InternalOnly" }, + { + "EnumValue": 64, + "Type": "JournalEncounterFlags", + "Name": "DoNotDisplayEncounter" + } + ], + "MaxValue": 64, + "MinValue": 1, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "JournalEncounterIconFlags", + "Fields": [ + { "EnumValue": 1, "Type": "JournalEncounterIconFlags", "Name": "Tank" }, + { "EnumValue": 2, "Type": "JournalEncounterIconFlags", "Name": "Dps" }, + { "EnumValue": 4, "Type": "JournalEncounterIconFlags", "Name": "Healer" }, + { "EnumValue": 8, "Type": "JournalEncounterIconFlags", "Name": "Heroic" }, + { "EnumValue": 16, "Type": "JournalEncounterIconFlags", "Name": "Deadly" }, + { "EnumValue": 32, "Type": "JournalEncounterIconFlags", "Name": "Important" }, + { + "EnumValue": 64, + "Type": "JournalEncounterIconFlags", + "Name": "Interruptible" + }, + { "EnumValue": 128, "Type": "JournalEncounterIconFlags", "Name": "Magic" }, + { "EnumValue": 256, "Type": "JournalEncounterIconFlags", "Name": "Curse" }, + { "EnumValue": 512, "Type": "JournalEncounterIconFlags", "Name": "Poison" }, + { "EnumValue": 1024, "Type": "JournalEncounterIconFlags", "Name": "Disease" }, + { "EnumValue": 2048, "Type": "JournalEncounterIconFlags", "Name": "Enrage" }, + { "EnumValue": 4096, "Type": "JournalEncounterIconFlags", "Name": "Mythic" }, + { "EnumValue": 8192, "Type": "JournalEncounterIconFlags", "Name": "Bleed" } + ], + "MaxValue": 8192, + "MinValue": 1, + "NumValues": 14 + }, + { + "Type": "Enumeration", + "Name": "JournalEncounterItemFlags", + "Fields": [ + { "EnumValue": 1, "Type": "JournalEncounterItemFlags", "Name": "Obsolete" }, + { + "EnumValue": 2, + "Type": "JournalEncounterItemFlags", + "Name": "LimitDifficulties" + }, + { + "EnumValue": 4, + "Type": "JournalEncounterItemFlags", + "Name": "DisplayAsPerPlayerLoot" + }, + { + "EnumValue": 8, + "Type": "JournalEncounterItemFlags", + "Name": "DisplayAsVeryRare" + }, + { + "EnumValue": 16, + "Type": "JournalEncounterItemFlags", + "Name": "DisplayAsExtremelyRare" + } + ], + "MaxValue": 16, + "MinValue": 1, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "JournalEncounterLocFlags", + "Fields": [ + { "EnumValue": 1, "Type": "JournalEncounterLocFlags", "Name": "Primary" } + ], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "JournalEncounterSecTypes", + "Fields": [ + { "EnumValue": 0, "Type": "JournalEncounterSecTypes", "Name": "Generic" }, + { "EnumValue": 1, "Type": "JournalEncounterSecTypes", "Name": "Creature" }, + { "EnumValue": 2, "Type": "JournalEncounterSecTypes", "Name": "Ability" }, + { "EnumValue": 3, "Type": "JournalEncounterSecTypes", "Name": "Overview" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "JournalEncounterSectionFlags", + "Fields": [ + { + "EnumValue": 1, + "Type": "JournalEncounterSectionFlags", + "Name": "StartExpanded" + }, + { + "EnumValue": 2, + "Type": "JournalEncounterSectionFlags", + "Name": "LimitDifficulties" + } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "JournalInstanceFlags", + "Fields": [ + { "EnumValue": 1, "Type": "JournalInstanceFlags", "Name": "Timewalker" }, + { + "EnumValue": 2, + "Type": "JournalInstanceFlags", + "Name": "HideUserSelectableDifficulty" + }, + { + "EnumValue": 4, + "Type": "JournalInstanceFlags", + "Name": "DoNotDisplayInstance" + } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "JournalLinkTypes", + "Fields": [ + { "EnumValue": 0, "Type": "JournalLinkTypes", "Name": "Instance" }, + { "EnumValue": 1, "Type": "JournalLinkTypes", "Name": "Encounter" }, + { "EnumValue": 2, "Type": "JournalLinkTypes", "Name": "Section" }, + { "EnumValue": 3, "Type": "JournalLinkTypes", "Name": "Tier" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Namespace": "C_EncounterJournal", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "DungeonEntranceMapInfo", + "Type": "table", + "Name": "dungeonEntrances" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetDungeonEntrancesForMap" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "link" }], + "Arguments": [ + { "Nilable": false, "Type": "JournalLinkTypes", "Name": "linkType" }, + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "string", "Name": "displayText" }, + { "Nilable": false, "Type": "number", "Name": "difficultyID" } + ], + "Type": "Function", + "Name": "GetEncounterJournalLink" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "EncounterJournalMapEncounterInfo", + "Type": "table", + "Name": "encounters" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetEncountersOnMap" + }, + { + "Documentation": [ + "GameMap as opposed to UIMap since we use a mapID not a uiMapID." + ], + "Type": "Function", + "Name": "GetInstanceForGameMap", + "Returns": [{ "Nilable": true, "Type": "number", "Name": "journalInstanceID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mapID" }] + }, + { + "Returns": [ + { "Nilable": false, "Type": "EncounterJournalItemInfo", "Name": "itemInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "id" }], + "Type": "Function", + "Name": "GetLootInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "EncounterJournalItemInfo", "Name": "itemInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": true, "Type": "luaIndex", "Name": "encounterIndex" } + ], + "Type": "Function", + "Name": "GetLootInfoByIndex" + }, + { + "Documentation": [ + "Represents the icon indices for this EJ section. An icon index can be used to arrive at texture coordinates for specific encounter types, e.g.: EncounterJournal_SetFlagIcon" + ], + "Type": "Function", + "Name": "GetSectionIconFlags", + "Returns": [ + { "Nilable": true, "InnerType": "number", "Type": "table", "Name": "iconFlags" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sectionID" }] + }, + { + "Returns": [ + { "Nilable": false, "Type": "EncounterJournalSectionInfo", "Name": "info" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sectionID" }], + "Type": "Function", + "Name": "GetSectionInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "ItemSlotFilterType", "Name": "filter" }], + "Type": "Function", + "Name": "GetSlotFilter" + }, + { "Type": "Function", "Name": "InitalizeSelectedTier" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasLoot" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "instanceID" }], + "Type": "Function", + "Name": "InstanceHasLoot" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEncounterComplete" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "journalEncounterID" } + ], + "Type": "Function", + "Name": "IsEncounterComplete" + }, + { "Type": "Function", "Name": "OnClose" }, + { "Type": "Function", "Name": "OnOpen" }, + { "Type": "Function", "Name": "ResetSlotFilter" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "level" }], + "Type": "Function", + "Name": "SetPreviewMythicPlusLevel" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "tier" }], + "Type": "Function", + "Name": "SetPreviewPvpTier" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ItemSlotFilterType", "Name": "filterSlot" } + ], + "Type": "Function", + "Name": "SetSlotFilter" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "tabIdx" }], + "Type": "Function", + "Name": "SetTab" + } + ], + "Type": "System", + "Name": "EncounterJournal", + "Events": [ + { + "LiteralName": "EJ_DIFFICULTY_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "difficultyID" }], + "Type": "Event", + "Name": "EjDifficultyUpdate" + }, + { + "LiteralName": "EJ_LOOT_DATA_RECIEVED", + "Payload": [{ "Nilable": true, "Type": "number", "Name": "itemID" }], + "Type": "Event", + "Name": "EjLootDataRecieved" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "ItemSlotFilterType", + "Fields": [ + { "EnumValue": 0, "Type": "ItemSlotFilterType", "Name": "Head" }, + { "EnumValue": 1, "Type": "ItemSlotFilterType", "Name": "Neck" }, + { "EnumValue": 2, "Type": "ItemSlotFilterType", "Name": "Shoulder" }, + { "EnumValue": 3, "Type": "ItemSlotFilterType", "Name": "Cloak" }, + { "EnumValue": 4, "Type": "ItemSlotFilterType", "Name": "Chest" }, + { "EnumValue": 5, "Type": "ItemSlotFilterType", "Name": "Wrist" }, + { "EnumValue": 6, "Type": "ItemSlotFilterType", "Name": "Hand" }, + { "EnumValue": 7, "Type": "ItemSlotFilterType", "Name": "Waist" }, + { "EnumValue": 8, "Type": "ItemSlotFilterType", "Name": "Legs" }, + { "EnumValue": 9, "Type": "ItemSlotFilterType", "Name": "Feet" }, + { "EnumValue": 10, "Type": "ItemSlotFilterType", "Name": "MainHand" }, + { "EnumValue": 11, "Type": "ItemSlotFilterType", "Name": "OffHand" }, + { "EnumValue": 12, "Type": "ItemSlotFilterType", "Name": "Finger" }, + { "EnumValue": 13, "Type": "ItemSlotFilterType", "Name": "Trinket" }, + { "EnumValue": 14, "Type": "ItemSlotFilterType", "Name": "Other" }, + { "EnumValue": 15, "Type": "ItemSlotFilterType", "Name": "NoFilter" } + ], + "MaxValue": 15, + "MinValue": 0, + "NumValues": 16 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "areaPoiID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "string", "Name": "atlasName" }, + { "Nilable": false, "Type": "number", "Name": "journalInstanceID" } + ], + "Type": "Structure", + "Name": "DungeonEntranceMapInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "number", "Name": "encounterID" }, + { "Nilable": true, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "string", "Name": "itemQuality" }, + { "Nilable": true, "Type": "ItemSlotFilterType", "Name": "filterType" }, + { "Nilable": true, "Type": "fileID", "Name": "icon" }, + { "Nilable": true, "Type": "string", "Name": "slot" }, + { "Nilable": true, "Type": "string", "Name": "armorType" }, + { "Nilable": true, "Type": "string", "Name": "link" }, + { "Nilable": true, "Type": "bool", "Name": "handError" }, + { "Nilable": true, "Type": "bool", "Name": "weaponTypeError" }, + { "Nilable": true, "Type": "bool", "Name": "displayAsPerPlayerLoot" }, + { "Nilable": true, "Type": "bool", "Name": "displayAsVeryRare" }, + { "Nilable": true, "Type": "bool", "Name": "displayAsExtremelyRare" }, + { "Nilable": true, "Type": "number", "Name": "displaySeasonID" } + ], + "Type": "Structure", + "Name": "EncounterJournalItemInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "encounterID" }, + { "Nilable": false, "Type": "number", "Name": "mapX" }, + { "Nilable": false, "Type": "number", "Name": "mapY" } + ], + "Type": "Structure", + "Name": "EncounterJournalMapEncounterInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "cstring", "Name": "title" }, + { "Nilable": true, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "headerType" }, + { "Nilable": false, "Type": "fileID", "Name": "abilityIcon" }, + { "Nilable": false, "Type": "number", "Name": "creatureDisplayID" }, + { "Nilable": false, "Type": "number", "Name": "uiModelSceneID" }, + { "Nilable": true, "Type": "number", "Name": "siblingSectionID" }, + { "Nilable": true, "Type": "number", "Name": "firstChildSectionID" }, + { "Nilable": false, "Type": "bool", "Name": "filteredByDifficulty" }, + { "Nilable": false, "Type": "string", "Name": "link" }, + { "Nilable": false, "Type": "bool", "Name": "startsOpen" } + ], + "Type": "Structure", + "Name": "EncounterJournalSectionInfo" + } + ] + }, + { + "Namespace": "C_EquipmentSet", + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "equipmentSetID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "specIndex" } + ], + "Type": "Function", + "Name": "AssignSpecToEquipmentSet" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canUseEquipmentSets" }], + "Type": "Function", + "Name": "CanUseEquipmentSets" + }, + { "Type": "Function", "Name": "ClearIgnoredSlotsForSave" }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "equipmentSetName" }, + { "Nilable": true, "Type": "cstring", "Name": "icon" } + ], + "Type": "Function", + "Name": "CreateEquipmentSet" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "equipmentSetID" }], + "Type": "Function", + "Name": "DeleteEquipmentSet" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasLockedItems" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "equipmentSetID" }], + "Type": "Function", + "Name": "EquipmentSetContainsLockedItems" + }, + { + "Returns": [{ "Nilable": false, "Type": "luaIndex", "Name": "specIndex" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "equipmentSetID" }], + "Type": "Function", + "Name": "GetEquipmentSetAssignedSpec" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "equipmentSetID" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "specIndex" }], + "Type": "Function", + "Name": "GetEquipmentSetForSpec" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "equipmentSetID" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "equipmentSetName" } + ], + "Type": "Function", + "Name": "GetEquipmentSetID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "equipmentSetIDs" + } + ], + "Type": "Function", + "Name": "GetEquipmentSetIDs" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "iconFileID" }, + { "Nilable": false, "Type": "number", "Name": "setID" }, + { "Nilable": false, "Type": "bool", "Name": "isEquipped" }, + { "Nilable": false, "Type": "number", "Name": "numItems" }, + { "Nilable": false, "Type": "number", "Name": "numEquipped" }, + { "Nilable": false, "Type": "number", "Name": "numInInventory" }, + { "Nilable": false, "Type": "number", "Name": "numLost" }, + { "Nilable": false, "Type": "number", "Name": "numIgnored" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "equipmentSetID" }], + "Type": "Function", + "Name": "GetEquipmentSetInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "bool", + "Type": "table", + "Name": "slotIgnored" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "equipmentSetID" }], + "Type": "Function", + "Name": "GetIgnoredSlots" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "itemIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "equipmentSetID" }], + "Type": "Function", + "Name": "GetItemIDs" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "locations" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "equipmentSetID" }], + "Type": "Function", + "Name": "GetItemLocations" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numEquipmentSets" }], + "Type": "Function", + "Name": "GetNumEquipmentSets" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "IgnoreSlotForSave" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSlotIgnored" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "IsSlotIgnoredForSave" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "equipmentSetID" }, + { "Nilable": false, "Type": "cstring", "Name": "newName" }, + { "Nilable": true, "Type": "cstring", "Name": "newIcon" } + ], + "Type": "Function", + "Name": "ModifyEquipmentSet" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "equipmentSetID" }], + "Type": "Function", + "Name": "PickupEquipmentSet" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "equipmentSetID" }, + { "Nilable": true, "Type": "cstring", "Name": "icon" } + ], + "Type": "Function", + "Name": "SaveEquipmentSet" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "equipmentSetID" }], + "Type": "Function", + "Name": "UnassignEquipmentSetSpec" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "UnignoreSlotForSave" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "setWasEquipped" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "equipmentSetID" }], + "Type": "Function", + "Name": "UseEquipmentSet" + } + ], + "Type": "System", + "Name": "EquipmentSet", + "Events": [ + { + "LiteralName": "EQUIPMENT_SETS_CHANGED", + "Type": "Event", + "Name": "EquipmentSetsChanged" + }, + { + "LiteralName": "EQUIPMENT_SWAP_FINISHED", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "result" }, + { "Nilable": true, "Type": "number", "Name": "setID" } + ], + "Type": "Event", + "Name": "EquipmentSwapFinished" + }, + { + "LiteralName": "EQUIPMENT_SWAP_PENDING", + "Type": "Event", + "Name": "EquipmentSwapPending" + }, + { + "LiteralName": "TRANSMOG_OUTFITS_CHANGED", + "Type": "Event", + "Name": "TransmogOutfitsChanged" + } + ], + "Tables": [] + }, + { + "Namespace": "C_EventUtils", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "valid" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "eventName" }], + "Type": "Function", + "Name": "IsEventValid" + }, + { "Type": "Function", "Name": "NotifySettingsLoaded" } + ], + "Type": "System", + "Name": "EventUtils", + "Events": [ + { "LiteralName": "SETTINGS_LOADED", "Type": "Event", "Name": "SettingsLoaded" } + ], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canUpgradeExpansion" }], + "Type": "Function", + "Name": "CanUpgradeExpansion" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "regionSellsExpansions" } + ], + "Type": "Function", + "Name": "DoesCurrentLocaleSellExpansionLevels" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "expansionLevel" }], + "Type": "Function", + "Name": "GetAccountExpansionLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "expansionLevel" }], + "Type": "Function", + "Name": "GetClientDisplayExpansionLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "regionName" }], + "Type": "Function", + "Name": "GetCurrentRegionName" + }, + { + "Returns": [{ "Nilable": true, "Type": "ExpansionDisplayInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "expansionLevel" }], + "Type": "Function", + "Name": "GetExpansionDisplayInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "expansionLevel" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "playerLevel" }], + "Type": "Function", + "Name": "GetExpansionForLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "expansionLevel" }], + "Type": "Function", + "Name": "GetExpansionLevel" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isExpansionTrialAccount" }, + { "Nilable": true, "Type": "time_t", "Name": "expansionTrialRemainingSeconds" } + ], + "Type": "Function", + "Name": "GetExpansionTrialInfo" + }, + { + "Documentation": [ + "Maps an expansion level to a maximum character level for that expansion." + ], + "Type": "Function", + "Name": "GetMaxLevelForExpansionLevel", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxLevel" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "expansionLevel" }] + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxLevel" }], + "Type": "Function", + "Name": "GetMaxLevelForLatestExpansion" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxLevel" }], + "Type": "Function", + "Name": "GetMaxLevelForPlayerExpansion" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "expansionLevel" }], + "Type": "Function", + "Name": "GetMaximumExpansionLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "expansionLevel" }], + "Type": "Function", + "Name": "GetMinimumExpansionLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numExpansions" }], + "Type": "Function", + "Name": "GetNumExpansions" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "serverExpansionLevel" } + ], + "Type": "Function", + "Name": "GetServerExpansionLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "available" }], + "Type": "Function", + "Name": "IsDemonHunterAvailable" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isExpansionTrialAccount" } + ], + "Type": "Function", + "Name": "IsExpansionTrial" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTrialAccount" }], + "Type": "Function", + "Name": "IsTrialAccount" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isVeteranTrialAccount" } + ], + "Type": "Function", + "Name": "IsVeteranTrialAccount" + }, + { + "Arguments": [ + { + "Nilable": false, + "Type": "SubscriptionInterstitialResponseType", + "Name": "response" + } + ], + "Type": "Function", + "Name": "SendSubscriptionInterstitialResponse" + } + ], + "Type": "System", + "Name": "Expansion", + "Events": [ + { + "LiteralName": "MAX_EXPANSION_LEVEL_UPDATED", + "Type": "Event", + "Name": "MaxExpansionLevelUpdated" + }, + { + "LiteralName": "MIN_EXPANSION_LEVEL_UPDATED", + "Type": "Event", + "Name": "MinExpansionLevelUpdated" + }, + { + "LiteralName": "SHOW_SUBSCRIPTION_INTERSTITIAL", + "Payload": [ + { "Nilable": false, "Type": "SubscriptionInterstitialType", "Name": "type" } + ], + "Type": "Event", + "Name": "ShowSubscriptionInterstitial" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "SubscriptionInterstitialResponseType", + "Fields": [ + { + "EnumValue": 0, + "Type": "SubscriptionInterstitialResponseType", + "Name": "Clicked" + }, + { + "EnumValue": 1, + "Type": "SubscriptionInterstitialResponseType", + "Name": "Closed" + }, + { + "EnumValue": 2, + "Type": "SubscriptionInterstitialResponseType", + "Name": "WebRedirect" + } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "SubscriptionInterstitialType", + "Fields": [ + { "EnumValue": 0, "Type": "SubscriptionInterstitialType", "Name": "Standard" }, + { + "EnumValue": 1, + "Type": "SubscriptionInterstitialType", + "Name": "LeftNpeArea" + }, + { "EnumValue": 2, "Type": "SubscriptionInterstitialType", "Name": "MaxLevel" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "fileID", "Name": "logo" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "banner" }, + { + "Nilable": false, + "InnerType": "ExpansionDisplayInfoFeature", + "Type": "table", + "Name": "features" + }, + { "Nilable": false, "Type": "fileID", "Name": "highResBackgroundID" }, + { "Nilable": false, "Type": "fileID", "Name": "lowResBackgroundID" } + ], + "Type": "Structure", + "Name": "ExpansionDisplayInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "cstring", "Name": "text" } + ], + "Type": "Structure", + "Name": "ExpansionDisplayInfoFeature" + } + ] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAtLeast" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "expansionLevel" }], + "Type": "Function", + "Name": "ClassicExpansionAtLeast" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "expansionLevel" }], + "Type": "Function", + "Name": "GetClassicExpansionLevel" + } + ], + "Type": "System", + "Name": "ExpansionInfo", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ExpansionLandingPageType", + "Fields": [ + { "EnumValue": 0, "Type": "ExpansionLandingPageType", "Name": "None" }, + { "EnumValue": 1, "Type": "ExpansionLandingPageType", "Name": "Dragonflight" }, + { "EnumValue": 2, "Type": "ExpansionLandingPageType", "Name": "WarWithin" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + } + ] + }, + { + "Namespace": "C_ExpansionTrial", + "Functions": [ + { "Type": "Function", "Name": "OnTrialLevelUpDialogClicked" }, + { "Type": "Function", "Name": "OnTrialLevelUpDialogShown" } + ], + "Type": "System", + "Name": "ExpansionTrial", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_FogOfWar", + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "fogOfWarID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetFogOfWarForMap" + }, + { + "Returns": [{ "Nilable": true, "Type": "FogOfWarInfo", "Name": "fogOfWarInfo" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "fogOfWarID" }], + "Type": "Function", + "Name": "GetFogOfWarInfo" + } + ], + "Type": "System", + "Name": "FogOfWar", + "Events": [ + { "LiteralName": "FOG_OF_WAR_UPDATED", "Type": "Event", "Name": "FogOfWarUpdated" } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "fogOfWarID" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "backgroundAtlas" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "maskAtlas" }, + { "Nilable": false, "Type": "number", "Name": "maskScalar" } + ], + "Type": "Structure", + "Name": "FogOfWarInfo" + } + ] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "FontScriptInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "SimpleFont", "Name": "fontObject" }], + "Type": "Function", + "Name": "GetFontInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "cstring", + "Type": "table", + "Name": "fontNames" + } + ], + "Type": "Function", + "Name": "GetFonts" + } + ], + "Type": "System", + "Name": "Font", + "Events": [], + "Tables": [ + { + "Fields": [ + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGBA", + "Name": "color" + }, + { "Nilable": false, "Type": "number", "Name": "height" }, + { "Nilable": false, "Type": "cstring", "Name": "outline" }, + { "Nilable": true, "Type": "FontScriptShadowInfo", "Name": "shadow" } + ], + "Type": "Structure", + "Name": "FontScriptInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGBA", + "Name": "color" + }, + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" } + ], + "Type": "Structure", + "Name": "FontScriptShadowInfo" + } + ] + }, + { + "Functions": [], + "Type": "ScriptObject", + "Name": "FrameAPIArchaeologyDigSiteFrame", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "DrawAll" }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "draw" } + ], + "Type": "Function", + "Name": "DrawBlob" + }, + { "Arguments": [], "Type": "Function", "Name": "DrawNone" }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enable" } + ], + "Type": "Function", + "Name": "EnableMerging" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enable" } + ], + "Type": "Function", + "Name": "EnableSmoothing" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Arguments": [], + "Type": "Function", + "Name": "GetMapID" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetBorderAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scalar" }], + "Type": "Function", + "Name": "SetBorderScalar" + }, + { + "Arguments": [{ "Nilable": false, "Type": "FileAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetBorderTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetFillAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "FileAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetFillTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "SetMapID" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "threshold" }], + "Type": "Function", + "Name": "SetMergeThreshold" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "numSplinePoints" }], + "Type": "Function", + "Name": "SetNumSplinePoints" + } + ], + "Type": "ScriptObject", + "Name": "FrameAPIBlob", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "spellVisualKitID" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "oneShot" } + ], + "Type": "Function", + "Name": "ApplySpellVisualKit" + }, + { + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "CanSetUnit" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "AnimationDataEnum", "Name": "anim" }, + { "Nilable": false, "Type": "number", "Name": "variation" }, + { "Nilable": false, "Type": "number", "Name": "frame" } + ], + "Type": "Function", + "Name": "FreezeAnimation" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "displayID" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDisplayInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "doBlend" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDoBlend" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "keepModelOnHide" }], + "Arguments": [], + "Type": "Function", + "Name": "GetKeepModelOnHide" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasAnimation" }], + "Arguments": [{ "Nilable": false, "Type": "AnimationDataEnum", "Name": "anim" }], + "Type": "Function", + "Name": "HasAnimation" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "animKit" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "loop" } + ], + "Type": "Function", + "Name": "PlayAnimKit" + }, + { "Arguments": [], "Type": "Function", "Name": "RefreshCamera" }, + { "Arguments": [], "Type": "Function", "Name": "RefreshUnit" }, + { + "Arguments": [ + { "Nilable": false, "Type": "AnimationDataEnum", "Name": "anim" }, + { "Nilable": true, "Type": "number", "Name": "variation" } + ], + "Type": "Function", + "Name": "SetAnimation" + }, + { "Arguments": [], "Type": "Function", "Name": "SetBarberShopAlternateForm" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "SetCamDistanceScale" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "creatureID" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "displayID" } + ], + "Type": "Function", + "Name": "SetCreature" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "displayID" }, + { "Nilable": true, "Type": "number", "Name": "mountDisplayID" } + ], + "Type": "Function", + "Name": "SetDisplayInfo" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "doBlend" } + ], + "Type": "Function", + "Name": "SetDoBlend" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "number", "Name": "appearanceModID" }, + { "Nilable": true, "Type": "number", "Name": "itemVisualID" } + ], + "Type": "Function", + "Name": "SetItem" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": true, "Type": "number", "Name": "itemVisualID" }, + { "Nilable": true, "Type": "ItemWeaponSubclass", "Name": "itemSubclass" } + ], + "Type": "Function", + "Name": "SetItemAppearance" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "keepModelOnHide" }], + "Type": "Function", + "Name": "SetKeepModelOnHide" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "zoom" }], + "Type": "Function", + "Name": "SetPortraitZoom" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "radians" }, + { "Nilable": false, "Default": true, "Type": "bool", "Name": "animate" } + ], + "Type": "Function", + "Name": "SetRotation" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Default": true, "Type": "bool", "Name": "blend" }, + { "Nilable": true, "Type": "bool", "Name": "useNativeForm" } + ], + "Type": "Function", + "Name": "SetUnit" + }, + { "Arguments": [], "Type": "Function", "Name": "StopAnimKit" }, + { "Arguments": [], "Type": "Function", "Name": "ZeroCachedCenterXY" } + ], + "Type": "ScriptObject", + "Name": "FrameAPICharacterModelBase", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "EquipItem" + }, + { + "Arguments": [ + { "Nilable": false, "Default": 0, "Type": "number", "Name": "scaleFactor" } + ], + "Type": "Function", + "Name": "InitializeCamera" + }, + { + "Arguments": [ + { "Nilable": false, "Default": 0, "Type": "number", "Name": "scaleFactor" } + ], + "Type": "Function", + "Name": "InitializePanCamera" + }, + { "Arguments": [], "Type": "Function", "Name": "RefreshCamera" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "offset" }], + "Type": "Function", + "Name": "SetAnimOffset" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" } + ], + "Type": "Function", + "Name": "SetCameraPosition" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" } + ], + "Type": "Function", + "Name": "SetCameraTarget" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "creatureID" }], + "Type": "Function", + "Name": "SetCreatureData" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isFacingLeft" } + ], + "Type": "Function", + "Name": "SetFacingLeft" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "fadeInSeconds" }, + { "Nilable": false, "Type": "number", "Name": "fadeOutSeconds" } + ], + "Type": "Function", + "Name": "SetFadeTimes" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "factor" }], + "Type": "Function", + "Name": "SetHeightFactor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "jumpLength" }, + { "Nilable": false, "Type": "number", "Name": "jumpHeight" } + ], + "Type": "Function", + "Name": "SetJumpInfo" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "SetPanDistance" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "visualKitID" }], + "Type": "Function", + "Name": "SetSpellVisualKit" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "SetTargetDistance" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "panType" }, + { "Nilable": false, "Type": "number", "Name": "durationSeconds" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "doFade" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "visKitID" }, + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "startPositionScale" + }, + { "Nilable": false, "Default": 1, "Type": "number", "Name": "speedMultiplier" } + ], + "Type": "Function", + "Name": "StartPan" + }, + { "Arguments": [], "Type": "Function", "Name": "StopPan" }, + { "Arguments": [], "Type": "Function", "Name": "UnequipItems" } + ], + "Type": "ScriptObject", + "Name": "FrameAPICinematicModel", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "Clear" }, + { + "Documentation": [ + "The returned duration unit is milliseconds, unaffected by modRate." + ], + "Type": "Function", + "Name": "GetCooldownDisplayDuration", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "duration" }], + "Arguments": [] + }, + { + "Documentation": [ + "The returned duration unit is milliseconds and is multiplied by the modRate." + ], + "Type": "Function", + "Name": "GetCooldownDuration", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "duration" }], + "Arguments": [] + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "start" }, + { "Nilable": false, "Type": "number", "Name": "duration" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetCooldownTimes" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "drawBling" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDrawBling" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "drawEdge" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDrawEdge" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "drawSwipe" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDrawSwipe" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "edgeScale" }], + "Arguments": [], + "Type": "Function", + "Name": "GetEdgeScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "reverse" }], + "Arguments": [], + "Type": "Function", + "Name": "GetReverse" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "rotationRadians" }], + "Arguments": [], + "Type": "Function", + "Name": "GetRotation" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPaused" }], + "Arguments": [], + "Type": "Function", + "Name": "IsPaused" + }, + { "Arguments": [], "Type": "Function", "Name": "Pause" }, + { "Arguments": [], "Type": "Function", "Name": "Resume" }, + { + "Arguments": [ + { "Nilable": false, "Type": "FileAsset", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Type": "Function", + "Name": "SetBlingTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "start" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Default": 1, "Type": "number", "Name": "modRate" } + ], + "Type": "Function", + "Name": "SetCooldown" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Default": 1, "Type": "number", "Name": "modRate" } + ], + "Type": "Function", + "Name": "SetCooldownDuration" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "start" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Default": 1, "Type": "number", "Name": "modRate" } + ], + "Type": "Function", + "Name": "SetCooldownUNIX" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "seconds" }], + "Type": "Function", + "Name": "SetCountdownAbbrevThreshold" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "fontName" }], + "Type": "Function", + "Name": "SetCountdownFont" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "drawBling" } + ], + "Type": "Function", + "Name": "SetDrawBling" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "drawEdge" } + ], + "Type": "Function", + "Name": "SetDrawEdge" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "drawSwipe" } + ], + "Type": "Function", + "Name": "SetDrawSwipe" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "SetEdgeScale" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "FileAsset", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Type": "Function", + "Name": "SetEdgeTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "hideNumbers" } + ], + "Type": "Function", + "Name": "SetHideCountdownNumbers" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "reverse" } + ], + "Type": "Function", + "Name": "SetReverse" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "rotationRadians" }], + "Type": "Function", + "Name": "SetRotation" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetSwipeColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "FileAsset", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Type": "Function", + "Name": "SetSwipeTexture" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "low" + }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "high" + } + ], + "Type": "Function", + "Name": "SetTexCoordRange" + }, + { + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "useCircularEdge" + } + ], + "Type": "Function", + "Name": "SetUseCircularEdge" + } + ], + "Type": "ScriptObject", + "Name": "FrameAPICooldown", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "Dress" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "GetAutoDress" + }, + { + "Returns": [ + { + "Nilable": false, + "Mixin": "ItemTransmogInfoMixin", + "Type": "ItemTransmogInfo", + "Name": "itemTransmogInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "inventorySlot" }], + "Type": "Function", + "Name": "GetItemTransmogInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ItemTransmogInfo", + "Type": "table", + "Name": "infoList" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetItemTransmogInfoList" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "GetObeyHideInTransmogFlag" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "sheathed" }], + "Arguments": [], + "Type": "Function", + "Name": "GetSheathed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "GetUseTransmogChoices" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "GetUseTransmogSkin" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "ready" }], + "Arguments": [], + "Type": "Function", + "Name": "IsGeoReady" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "allowed" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "IsSlotAllowed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "visible" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "IsSlotVisible" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetAutoDress" + }, + { + "Returns": [{ "Nilable": false, "Type": "ItemTryOnReason", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemTransmogInfoMixin", + "Type": "ItemTransmogInfo", + "Name": "itemTransmogInfo" + }, + { "Nilable": true, "Type": "luaIndex", "Name": "inventorySlot" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "ignoreChildItems" + } + ], + "Type": "Function", + "Name": "SetItemTransmogInfo" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetObeyHideInTransmogFlag" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "sheathed" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "hideWeapons" } + ], + "Type": "Function", + "Name": "SetSheathed" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetUseTransmogChoices" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetUseTransmogSkin" + }, + { + "Returns": [{ "Nilable": true, "Type": "ItemTryOnReason", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Type": "IDOrLink", + "Name": "linkOrItemModifiedAppearanceID" + }, + { "Nilable": true, "Type": "cstring", "Name": "handSlotName" }, + { "Nilable": true, "Type": "number", "Name": "spellEnchantID" } + ], + "Type": "Function", + "Name": "TryOn" + }, + { "Arguments": [], "Type": "Function", "Name": "Undress" }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "inventorySlot" }], + "Type": "Function", + "Name": "UndressSlot" + } + ], + "Type": "ScriptObject", + "Name": "FrameAPIDressUpModel", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFogOfWarBackgroundAtlas" + }, + { + "Returns": [{ "Nilable": true, "Type": "FileAsset", "Name": "asset" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFogOfWarBackgroundTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFogOfWarMaskAtlas" + }, + { + "Returns": [{ "Nilable": true, "Type": "FileAsset", "Name": "asset" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFogOfWarMaskTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "scalar" }], + "Arguments": [], + "Type": "Function", + "Name": "GetMaskScalar" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Arguments": [], + "Type": "Function", + "Name": "GetUiMapID" + }, + { + "Arguments": [{ "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }], + "Type": "Function", + "Name": "SetFogOfWarBackgroundAtlas" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "FileAsset", "Name": "asset" }, + { "Nilable": false, "Type": "bool", "Name": "horizontalTile" }, + { "Nilable": false, "Type": "bool", "Name": "verticalTile" } + ], + "Type": "Function", + "Name": "SetFogOfWarBackgroundTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }], + "Type": "Function", + "Name": "SetFogOfWarMaskAtlas" + }, + { + "Arguments": [{ "Nilable": false, "Type": "FileAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetFogOfWarMaskTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scalar" }], + "Type": "Function", + "Name": "SetMaskScalar" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "SetUiMapID" + } + ], + "Type": "ScriptObject", + "Name": "FrameAPIFogOfWarFrame", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "ClearModel" }, + { + "Returns": [ + { + "Nilable": false, + "Mixin": "Vector3DMixin", + "Type": "vector3", + "Name": "boxBottom" + }, + { + "Nilable": false, + "Mixin": "Vector3DMixin", + "Type": "vector3", + "Name": "boxTop" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetActiveBoundingBox" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Arguments": [], + "Type": "Function", + "Name": "GetAlpha" + }, + { + "Returns": [ + { "Nilable": false, "Type": "AnimationDataEnum", "Name": "animation" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetAnimation" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ModelBlendOperation", "Name": "blendOp" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetAnimationBlendOperation" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "variation" }], + "Arguments": [], + "Type": "Function", + "Name": "GetAnimationVariation" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "strength" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDesaturation" + }, + { + "Returns": [ + { + "Nilable": false, + "Mixin": "Vector3DMixin", + "Type": "vector3", + "Name": "boxBottom" + }, + { + "Nilable": false, + "Mixin": "Vector3DMixin", + "Type": "vector3", + "Name": "boxTop" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetMaxBoundingBox" + }, + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "file" }], + "Arguments": [], + "Type": "Function", + "Name": "GetModelFileID" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "path" }], + "Arguments": [], + "Type": "Function", + "Name": "GetModelPath" + }, + { + "Returns": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Arguments": [], + "Type": "Function", + "Name": "GetModelUnitGUID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "scale" }], + "Arguments": [], + "Type": "Function", + "Name": "GetParticleOverrideScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "pitch" }], + "Arguments": [], + "Type": "Function", + "Name": "GetPitch" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetPosition" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "roll" }], + "Arguments": [], + "Type": "Function", + "Name": "GetRoll" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Arguments": [], + "Type": "Function", + "Name": "GetScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "spellVisualKitID" }], + "Arguments": [], + "Type": "Function", + "Name": "GetSpellVisualKit" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "yaw" }], + "Arguments": [], + "Type": "Function", + "Name": "GetYaw" + }, + { "Arguments": [], "Type": "Function", "Name": "Hide" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLoaded" }], + "Arguments": [], + "Type": "Function", + "Name": "IsLoaded" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isShown" }], + "Arguments": [], + "Type": "Function", + "Name": "IsShown" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "x" }, + { "Nilable": false, "Type": "bool", "Name": "y" }, + { "Nilable": false, "Type": "bool", "Name": "z" } + ], + "Arguments": [], + "Type": "Function", + "Name": "IsUsingCenterForOrigin" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isVisible" }], + "Arguments": [], + "Type": "Function", + "Name": "IsVisible" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "animationKit" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isLooping" } + ], + "Type": "Function", + "Name": "PlayAnimationKit" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetAlpha" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "AnimationDataEnum", "Name": "animation" }, + { "Nilable": true, "Type": "number", "Name": "variation" }, + { "Nilable": false, "Default": 1, "Type": "number", "Name": "animSpeed" }, + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "animOffsetSeconds" + } + ], + "Type": "Function", + "Name": "SetAnimation" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ModelBlendOperation", "Name": "blendOp" } + ], + "Type": "Function", + "Name": "SetAnimationBlendOperation" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "strength" }], + "Type": "Function", + "Name": "SetDesaturation" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "creatureDisplayID" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "useActivePlayerCustomizations" + } + ], + "Type": "Function", + "Name": "SetModelByCreatureDisplayID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "FileAsset", "Name": "asset" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "useMips" } + ], + "Type": "Function", + "Name": "SetModelByFileID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "FileAsset", "Name": "asset" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "useMips" } + ], + "Type": "Function", + "Name": "SetModelByPath" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "sheatheWeapons" + }, + { "Nilable": false, "Default": true, "Type": "bool", "Name": "autoDress" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "hideWeapons" }, + { + "Nilable": false, + "Default": true, + "Type": "bool", + "Name": "usePlayerNativeForm" + }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "holdBowString" } + ], + "Type": "Function", + "Name": "SetModelByUnit" + }, + { + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "SetParticleOverrideScale" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "pitch" }], + "Type": "Function", + "Name": "SetPitch" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" } + ], + "Type": "Function", + "Name": "SetPosition" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "roll" }], + "Type": "Function", + "Name": "SetRoll" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "SetScale" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "show" } + ], + "Type": "Function", + "Name": "SetShown" + }, + { + "Arguments": [ + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "spellVisualKitID" + }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "oneShot" } + ], + "Type": "Function", + "Name": "SetSpellVisualKit" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "x" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "y" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "z" } + ], + "Type": "Function", + "Name": "SetUseCenterForOrigin" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "yaw" }], + "Type": "Function", + "Name": "SetYaw" + }, + { "Arguments": [], "Type": "Function", "Name": "Show" }, + { "Arguments": [], "Type": "Function", "Name": "StopAnimationKit" } + ], + "Type": "ScriptObject", + "Name": "FrameAPIModelSceneFrameActorBase", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "ModelSceneFrameActor", "Name": "rider" }, + { "Nilable": false, "Type": "AnimationDataEnum", "Name": "animation" }, + { "Nilable": true, "Type": "number", "Name": "spellKitVisualID" } + ], + "Type": "Function", + "Name": "AttachToMount" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Arguments": [ + { "Nilable": false, "Type": "ModelSceneFrameActor", "Name": "rider" } + ], + "Type": "Function", + "Name": "CalculateMountScale" + }, + { "Arguments": [], "Type": "Function", "Name": "Dress" }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "invSlot" }], + "Type": "Function", + "Name": "DressPlayerSlot" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "autoDress" }], + "Arguments": [], + "Type": "Function", + "Name": "GetAutoDress" + }, + { + "Returns": [ + { + "Nilable": true, + "Mixin": "ItemTransmogInfoMixin", + "Type": "ItemTransmogInfo", + "Name": "itemTransmogInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "inventorySlots" }], + "Type": "Function", + "Name": "GetItemTransmogInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ItemTransmogInfo", + "Type": "table", + "Name": "infoList" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetItemTransmogInfoList" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "obey" }], + "Arguments": [], + "Type": "Function", + "Name": "GetObeyHideInTransmogFlag" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "paused" }, + { "Nilable": false, "Type": "bool", "Name": "globalPaused" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetPaused" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "sheathed" }], + "Arguments": [], + "Type": "Function", + "Name": "GetSheathed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "use" }], + "Arguments": [], + "Type": "Function", + "Name": "GetUseTransmogChoices" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "use" }], + "Arguments": [], + "Type": "Function", + "Name": "GetUseTransmogSkin" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isReady" }], + "Arguments": [], + "Type": "Function", + "Name": "IsGeoReady" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "allowed" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "inventorySlots" }], + "Type": "Function", + "Name": "IsSlotAllowed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "visible" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "inventorySlots" }], + "Type": "Function", + "Name": "IsSlotVisible" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [], + "Type": "Function", + "Name": "ReleaseFrontEndCharacterDisplays" + }, + { "Arguments": [], "Type": "Function", "Name": "ResetNextHandSlot" }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "autoDress" }], + "Type": "Function", + "Name": "SetAutoDress" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "characterIndex" }], + "Type": "Function", + "Name": "SetFrontEndLobbyModelFromDefaultCharacterDisplay" + }, + { + "Returns": [{ "Nilable": false, "Type": "ItemTryOnReason", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemTransmogInfoMixin", + "Type": "ItemTransmogInfo", + "Name": "transmogInfo" + }, + { "Nilable": true, "Type": "number", "Name": "inventorySlots" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "ignoreChildItems" + } + ], + "Type": "Function", + "Name": "SetItemTransmogInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "link" }], + "Type": "Function", + "Name": "SetModelByHyperlink" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "obey" }], + "Type": "Function", + "Name": "SetObeyHideInTransmogFlag" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "bool", "Name": "paused" }, + { + "Nilable": false, + "Default": true, + "Type": "bool", + "Name": "affectsGlobalPause" + } + ], + "Type": "Function", + "Name": "SetPaused" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": true, "Type": "number", "Name": "characterIndex" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "sheatheWeapons" + }, + { "Nilable": false, "Default": true, "Type": "bool", "Name": "autoDress" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "hideWeapons" }, + { + "Nilable": false, + "Default": true, + "Type": "bool", + "Name": "usePlayerNativeForm" + } + ], + "Type": "Function", + "Name": "SetPlayerModelFromGlues" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "bool", "Name": "sheathed" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "hidden" } + ], + "Type": "Function", + "Name": "SetSheathed" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "use" }], + "Type": "Function", + "Name": "SetUseTransmogChoices" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "use" }], + "Type": "Function", + "Name": "SetUseTransmogSkin" + }, + { + "Returns": [{ "Nilable": true, "Type": "ItemTryOnReason", "Name": "reason" }], + "Arguments": [ + { + "Nilable": false, + "Type": "cstring", + "Name": "itemLinkOrItemModifiedAppearanceID" + }, + { "Nilable": true, "Type": "cstring", "Name": "handSlotName" }, + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "spellEnchantmentID" + } + ], + "Type": "Function", + "Name": "TryOn" + }, + { + "Arguments": [ + { "Nilable": false, "Default": true, "Type": "bool", "Name": "includeWeapons" } + ], + "Type": "Function", + "Name": "Undress" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "inventorySlots" }], + "Type": "Function", + "Name": "UndressSlot" + } + ], + "Type": "ScriptObject", + "Name": "FrameAPIModelSceneFrameActor", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "ClearFog" }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "template" } + ], + "Type": "Function", + "Name": "CreateActor" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetActorAtIndex" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "farClip" }], + "Arguments": [], + "Type": "Function", + "Name": "GetCameraFarClip" + }, + { + "Documentation": ["Field of view in radians"], + "Type": "Function", + "Name": "GetCameraFieldOfView", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "fov" }], + "Arguments": [] + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "forwardX" }, + { "Nilable": false, "Type": "number", "Name": "forwardY" }, + { "Nilable": false, "Type": "number", "Name": "forwardZ" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetCameraForward" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "nearClip" }], + "Arguments": [], + "Type": "Function", + "Name": "GetCameraNearClip" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetCameraPosition" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "rightX" }, + { "Nilable": false, "Type": "number", "Name": "rightY" }, + { "Nilable": false, "Type": "number", "Name": "rightZ" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetCameraRight" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "upX" }, + { "Nilable": false, "Type": "number", "Name": "upY" }, + { "Nilable": false, "Type": "number", "Name": "upZ" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetCameraUp" + }, + { + "Returns": [ + { "Nilable": false, "Type": "DrawLayer", "Name": "layer" }, + { "Nilable": false, "Type": "number", "Name": "sublevel" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetDrawLayer" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetFogColor" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "far" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFogFar" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "near" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFogNear" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetLightAmbientColor" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetLightDiffuseColor" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "directionX" }, + { "Nilable": false, "Type": "number", "Name": "directionY" }, + { "Nilable": false, "Type": "number", "Name": "directionZ" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetLightDirection" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetLightPosition" + }, + { + "Returns": [{ "Nilable": true, "Type": "ModelLightType", "Name": "lightType" }], + "Arguments": [], + "Type": "Function", + "Name": "GetLightType" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numActors" }], + "Arguments": [], + "Type": "Function", + "Name": "GetNumActors" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiRect", "Name": "insets" }], + "Arguments": [], + "Type": "Function", + "Name": "GetViewInsets" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "translationX" }, + { "Nilable": false, "Type": "number", "Name": "translationY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetViewTranslation" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isVisible" }], + "Arguments": [], + "Type": "Function", + "Name": "IsLightVisible" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "point2DX" }, + { "Nilable": false, "Type": "number", "Name": "point2DY" }, + { "Nilable": false, "Type": "number", "Name": "depth" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "pointX" }, + { "Nilable": false, "Type": "number", "Name": "pointY" }, + { "Nilable": false, "Type": "number", "Name": "pointZ" } + ], + "Type": "Function", + "Name": "Project3DPointTo2D" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "farClip" }], + "Type": "Function", + "Name": "SetCameraFarClip" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "fov" }], + "Documentation": ["Field of view in radians"], + "Type": "Function", + "Name": "SetCameraFieldOfView" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "nearClip" }], + "Type": "Function", + "Name": "SetCameraNearClip" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "forwardX" }, + { "Nilable": false, "Type": "number", "Name": "forwardY" }, + { "Nilable": false, "Type": "number", "Name": "forwardZ" }, + { "Nilable": false, "Type": "number", "Name": "rightX" }, + { "Nilable": false, "Type": "number", "Name": "rightY" }, + { "Nilable": false, "Type": "number", "Name": "rightZ" }, + { "Nilable": false, "Type": "number", "Name": "upX" }, + { "Nilable": false, "Type": "number", "Name": "upY" }, + { "Nilable": false, "Type": "number", "Name": "upZ" } + ], + "Type": "Function", + "Name": "SetCameraOrientationByAxisVectors" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "yaw" }, + { "Nilable": false, "Type": "number", "Name": "pitch" }, + { "Nilable": false, "Type": "number", "Name": "roll" } + ], + "Type": "Function", + "Name": "SetCameraOrientationByYawPitchRoll" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" } + ], + "Type": "Function", + "Name": "SetCameraPosition" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "strength" }], + "Type": "Function", + "Name": "SetDesaturation" + }, + { + "Arguments": [{ "Nilable": false, "Type": "DrawLayer", "Name": "layer" }], + "Type": "Function", + "Name": "SetDrawLayer" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" } + ], + "Type": "Function", + "Name": "SetFogColor" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "far" }], + "Type": "Function", + "Name": "SetFogFar" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "near" }], + "Type": "Function", + "Name": "SetFogNear" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" } + ], + "Type": "Function", + "Name": "SetLightAmbientColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" } + ], + "Type": "Function", + "Name": "SetLightDiffuseColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "directionX" }, + { "Nilable": false, "Type": "number", "Name": "directionY" }, + { "Nilable": false, "Type": "number", "Name": "directionZ" } + ], + "Type": "Function", + "Name": "SetLightDirection" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" } + ], + "Type": "Function", + "Name": "SetLightPosition" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ModelLightType", "Name": "lightType" } + ], + "Type": "Function", + "Name": "SetLightType" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "visible" } + ], + "Type": "Function", + "Name": "SetLightVisible" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "bool", "Name": "paused" }, + { + "Nilable": false, + "Default": true, + "Type": "bool", + "Name": "affectsGlobalPause" + } + ], + "Type": "Function", + "Name": "SetPaused" + }, + { + "Arguments": [{ "Nilable": false, "Type": "uiRect", "Name": "insets" }], + "Type": "Function", + "Name": "SetViewInsets" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "translationX" }, + { "Nilable": false, "Type": "number", "Name": "translationY" } + ], + "Type": "Function", + "Name": "SetViewTranslation" + }, + { "Arguments": [], "Type": "Function", "Name": "TakeActor" } + ], + "Type": "ScriptObject", + "Name": "FrameAPIModelSceneFrame", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ModelLightType", + "Fields": [ + { "EnumValue": 0, "Type": "ModelLightType", "Name": "Directional" }, + { "EnumValue": 1, "Type": "ModelLightType", "Name": "Point" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + } + ] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numObjectives" }], + "Arguments": [], + "Type": "Function", + "Name": "GetNumTooltips" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "objectiveIndex" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetTooltipIndex" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "number", "Name": "numObjectives" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" } + ], + "Type": "Function", + "Name": "UpdateMouseOverTooltip" + } + ], + "Type": "ScriptObject", + "Name": "FrameAPIQuestPOI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "tooltipText" }], + "Arguments": [], + "Type": "Function", + "Name": "GetScenarioTooltipText" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasTooltip" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" } + ], + "Type": "Function", + "Name": "UpdateMouseOverTooltip" + } + ], + "Type": "ScriptObject", + "Name": "FrameAPIScenarioPOI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "CancelOpenCheckout" }, + { "Arguments": [], "Type": "Function", "Name": "ClearFocus" }, + { "Arguments": [], "Type": "Function", "Name": "CloseCheckout" }, + { "Arguments": [], "Type": "Function", "Name": "CopyExternalLink" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wasOpened" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "checkoutID" }], + "Type": "Function", + "Name": "OpenCheckout" + }, + { "Arguments": [], "Type": "Function", "Name": "OpenExternalLink" }, + { "Arguments": [], "Type": "Function", "Name": "SetFocus" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "zoomLevel" }], + "Type": "Function", + "Name": "SetZoom" + } + ], + "Type": "ScriptObject", + "Name": "FrameAPISimpleCheckout", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canSave" }], + "Arguments": [], + "Type": "Function", + "Name": "CanSaveTabardNow" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "variationIndex" }, + { "Nilable": false, "Type": "number", "Name": "delta" } + ], + "Type": "Function", + "Name": "CycleVariation" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Type": "Function", + "Name": "GetLowerEmblemTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Type": "Function", + "Name": "GetUpperEmblemTexture" + }, + { "Arguments": [], "Type": "Function", "Name": "InitializeTabardColors" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isGuildTabard" }], + "Arguments": [], + "Type": "Function", + "Name": "IsGuildTabard" + }, + { "Arguments": [], "Type": "Function", "Name": "Save" } + ], + "Type": "ScriptObject", + "Name": "FrameAPITabardModelBase", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "file" }], + "Arguments": [], + "Type": "Function", + "Name": "GetLowerBackgroundFileName" + }, + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "file" }], + "Arguments": [], + "Type": "Function", + "Name": "GetLowerEmblemFile" + }, + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "file" }], + "Arguments": [], + "Type": "Function", + "Name": "GetUpperBackgroundFileName" + }, + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "file" }], + "Arguments": [], + "Type": "Function", + "Name": "GetUpperEmblemFile" + } + ], + "Type": "ScriptObject", + "Name": "FrameAPITabardModel", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "unitTokenString" }, + { "Nilable": false, "Type": "TextureAssetDisk", "Name": "asset" }, + { "Nilable": true, "Type": "uiUnit", "Name": "width" }, + { "Nilable": true, "Type": "uiUnit", "Name": "height" }, + { "Nilable": true, "Type": "number", "Name": "r" }, + { "Nilable": true, "Type": "number", "Name": "g" }, + { "Nilable": true, "Type": "number", "Name": "b" }, + { "Nilable": true, "Type": "number", "Name": "a" }, + { "Nilable": true, "Type": "number", "Name": "sublayer" }, + { "Nilable": true, "Type": "bool", "Name": "showFacing" } + ], + "Type": "Function", + "Name": "AddUnit" + }, + { "Arguments": [], "Type": "Function", "Name": "ClearUnits" }, + { "Arguments": [], "Type": "Function", "Name": "FinalizeUnits" }, + { + "Returns": [ + { "StrideIndex": 1, "Nilable": false, "Type": "string", "Name": "units" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetMouseOverUnits" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Arguments": [], + "Type": "Function", + "Name": "GetPlayerPingScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "mapID" }], + "Arguments": [], + "Type": "Function", + "Name": "GetUiMapID" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "SetPlayerPingScale" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "PingTextureType", "Name": "textureType" }, + { "Nilable": false, "Type": "FileAsset", "Name": "asset" }, + { "Nilable": false, "Default": 0, "Type": "uiUnit", "Name": "width" }, + { "Nilable": false, "Default": 0, "Type": "uiUnit", "Name": "height" } + ], + "Type": "Function", + "Name": "SetPlayerPingTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mapID" }], + "Type": "Function", + "Name": "SetUiMapID" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "unit" }, + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Type": "Function", + "Name": "SetUnitColor" + }, + { + "Arguments": [ + { "Nilable": false, "Default": 0, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "fadeDuration" } + ], + "Type": "Function", + "Name": "StartPlayerPing" + }, + { "Arguments": [], "Type": "Function", "Name": "StopPlayerPing" } + ], + "Type": "ScriptObject", + "Name": "FrameAPIUnitPositionFrame", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "SimpleWindow", "Name": "window" }], + "Arguments": [ + { "Nilable": false, "Default": true, "Type": "bool", "Name": "popupStyle" } + ], + "Type": "Function", + "Name": "CreateWindow" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "height" }], + "Type": "Function", + "Name": "GetCallstackHeight" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "eventID" }], + "Type": "Function", + "Name": "GetCurrentEventID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "height" }], + "Type": "Function", + "Name": "GetErrorCallstackHeight" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "totalElapsedTime" }, + { "Nilable": false, "Type": "number", "Name": "numExecutedHandlers" }, + { "Nilable": false, "Type": "cstring", "Name": "slowestHandlerName" }, + { "Nilable": false, "Type": "number", "Name": "slowestHandlerTime" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "eventProfileIndex" } + ], + "Type": "Function", + "Name": "GetEventTime" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Type": "Function", + "Name": "RunScript" + }, + { + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "height" }], + "Type": "Function", + "Name": "SetErrorCallstackHeight" + } + ], + "Type": "System", + "Name": "FrameScript", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_FriendList", + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "cstring", "Name": "notes" } + ], + "Type": "Function", + "Name": "AddFriend" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "added" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "AddIgnore" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "AddOrDelIgnore" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "notes" } + ], + "Type": "Function", + "Name": "AddOrRemoveFriend" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "removed" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "DelIgnore" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "DelIgnoreByIndex" + }, + { + "Returns": [{ "Nilable": false, "Type": "FriendInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "GetFriendInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "FriendInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetFriendInfoByIndex" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "name" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetIgnoreName" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numFriends" }], + "Type": "Function", + "Name": "GetNumFriends" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numIgnores" }], + "Type": "Function", + "Name": "GetNumIgnores" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numOnline" }], + "Type": "Function", + "Name": "GetNumOnlineFriends" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numWhos" }, + { "Nilable": false, "Type": "number", "Name": "totalNumWhos" } + ], + "Type": "Function", + "Name": "GetNumWhoResults" + }, + { + "Returns": [{ "Nilable": true, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetSelectedFriend" + }, + { + "Returns": [{ "Nilable": true, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetSelectedIgnore" + }, + { + "Returns": [{ "Nilable": false, "Type": "WhoInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetWhoInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFriend" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "IsFriend" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isIgnored" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "token" }], + "Type": "Function", + "Name": "IsIgnored" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isIgnored" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "IsIgnoredByGuid" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isIgnored" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "token" }], + "Type": "Function", + "Name": "IsOnIgnoredList" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "removed" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "RemoveFriend" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "RemoveFriendByIndex" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "filter" }, + { "Nilable": true, "Type": "number", "Name": "origin" } + ], + "Type": "Function", + "Name": "SendWho" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "found" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "notes" } + ], + "Type": "Function", + "Name": "SetFriendNotes" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "cstring", "Name": "notes" } + ], + "Type": "Function", + "Name": "SetFriendNotesByIndex" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "SetSelectedFriend" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "SetSelectedIgnore" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "whoToUi" }], + "Type": "Function", + "Name": "SetWhoToUi" + }, + { "Type": "Function", "Name": "ShowFriends" }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "sorting" }], + "Type": "Function", + "Name": "SortWho" + } + ], + "Type": "System", + "Name": "FriendList", + "Events": [ + { + "LiteralName": "BATTLETAG_INVITE_SHOW", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Event", + "Name": "BattletagInviteShow" + }, + { + "LiteralName": "BN_BLOCK_FAILED_TOO_MANY", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "blockType" }], + "Type": "Event", + "Name": "BnBlockFailedTooMany" + }, + { + "LiteralName": "BN_BLOCK_LIST_UPDATED", + "Type": "Event", + "Name": "BnBlockListUpdated" + }, + { + "LiteralName": "BN_CHAT_WHISPER_UNDELIVERABLE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "senderID" }], + "Type": "Event", + "Name": "BnChatWhisperUndeliverable" + }, + { + "LiteralName": "BN_CONNECTED", + "Payload": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "suppressNotification" + } + ], + "Type": "Event", + "Name": "BnConnected" + }, + { + "LiteralName": "BN_CUSTOM_MESSAGE_CHANGED", + "Payload": [{ "Nilable": true, "Type": "number", "Name": "id" }], + "Type": "Event", + "Name": "BnCustomMessageChanged" + }, + { + "LiteralName": "BN_CUSTOM_MESSAGE_LOADED", + "Type": "Event", + "Name": "BnCustomMessageLoaded" + }, + { + "LiteralName": "BN_DISCONNECTED", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "result" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "suppressNotification" + } + ], + "Type": "Event", + "Name": "BnDisconnected" + }, + { + "LiteralName": "BN_FRIEND_ACCOUNT_OFFLINE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "friendId" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isCompanionApp" } + ], + "Type": "Event", + "Name": "BnFriendAccountOffline" + }, + { + "LiteralName": "BN_FRIEND_ACCOUNT_ONLINE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "friendId" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isCompanionApp" } + ], + "Type": "Event", + "Name": "BnFriendAccountOnline" + }, + { + "LiteralName": "BN_FRIEND_INFO_CHANGED", + "Payload": [{ "Nilable": true, "Type": "luaIndex", "Name": "friendIndex" }], + "Type": "Event", + "Name": "BnFriendInfoChanged" + }, + { + "LiteralName": "BN_FRIEND_INVITE_ADDED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "accountID" }], + "Type": "Event", + "Name": "BnFriendInviteAdded" + }, + { + "LiteralName": "BN_FRIEND_INVITE_LIST_INITIALIZED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "listSize" }], + "Type": "Event", + "Name": "BnFriendInviteListInitialized" + }, + { + "LiteralName": "BN_FRIEND_INVITE_REMOVED", + "Type": "Event", + "Name": "BnFriendInviteRemoved" + }, + { + "LiteralName": "BN_FRIEND_LIST_SIZE_CHANGED", + "Payload": [{ "Nilable": true, "Type": "number", "Name": "accountID" }], + "Type": "Event", + "Name": "BnFriendListSizeChanged" + }, + { "LiteralName": "BN_INFO_CHANGED", "Type": "Event", "Name": "BnInfoChanged" }, + { + "LiteralName": "BN_REQUEST_FOF_SUCCEEDED", + "Type": "Event", + "Name": "BnRequestFofSucceeded" + }, + { "LiteralName": "FRIENDLIST_UPDATE", "Type": "Event", "Name": "FriendlistUpdate" }, + { "LiteralName": "IGNORELIST_UPDATE", "Type": "Event", "Name": "IgnorelistUpdate" }, + { "LiteralName": "MUTELIST_UPDATE", "Type": "Event", "Name": "MutelistUpdate" }, + { + "LiteralName": "NEW_MATCHMAKING_PARTY_INVITE", + "Type": "Event", + "Name": "NewMatchmakingPartyInvite" + }, + { + "LiteralName": "REJECTED_MATCHMAKING_PARTY_INVITE", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Event", + "Name": "RejectedMatchmakingPartyInvite" + }, + { "LiteralName": "WHO_LIST_UPDATE", "Type": "Event", "Name": "WhoListUpdate" } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "connected" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "string", "Name": "className" }, + { "Nilable": true, "Type": "string", "Name": "area" }, + { "Nilable": true, "Type": "string", "Name": "notes" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "bool", "Name": "dnd" }, + { "Nilable": false, "Type": "bool", "Name": "afk" }, + { "Nilable": false, "Type": "RafLinkType", "Name": "rafLinkType" }, + { "Nilable": false, "Type": "bool", "Name": "mobile" } + ], + "Type": "Structure", + "Name": "FriendInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "fullName" }, + { "Nilable": false, "Type": "string", "Name": "fullGuildName" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "string", "Name": "raceStr" }, + { "Nilable": false, "Type": "string", "Name": "classStr" }, + { "Nilable": false, "Type": "string", "Name": "area" }, + { "Nilable": true, "Type": "string", "Name": "filename" }, + { "Nilable": false, "Type": "number", "Name": "gender" }, + { "Nilable": true, "Type": "number", "Name": "timerunningSeasonID" } + ], + "Type": "Structure", + "Name": "WhoInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "GarrisonFollowerType", + "Fields": [ + { + "EnumValue": 1, + "Type": "GarrisonFollowerType", + "Name": "FollowerType_6_0_GarrisonFollower" + }, + { + "EnumValue": 2, + "Type": "GarrisonFollowerType", + "Name": "FollowerType_6_0_Boat" + }, + { + "EnumValue": 4, + "Type": "GarrisonFollowerType", + "Name": "FollowerType_7_0_GarrisonFollower" + }, + { + "EnumValue": 22, + "Type": "GarrisonFollowerType", + "Name": "FollowerType_8_0_GarrisonFollower" + }, + { + "EnumValue": 123, + "Type": "GarrisonFollowerType", + "Name": "FollowerType_9_0_GarrisonFollower" + } + ], + "MaxValue": 123, + "MinValue": 1, + "NumValues": 5 + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "GarrisonType", + "Fields": [ + { "EnumValue": 2, "Type": "GarrisonType", "Name": "Type_6_0_Garrison" }, + { "EnumValue": 3, "Type": "GarrisonType", "Name": "Type_7_0_Garrison" }, + { "EnumValue": 9, "Type": "GarrisonType", "Name": "Type_8_0_Garrison" }, + { "EnumValue": 111, "Type": "GarrisonType", "Name": "Type_9_0_Garrison" } + ], + "MaxValue": 111, + "MinValue": 2, + "NumValues": 4 + } + ] + }, + { + "Namespace": "C_GMTicketInfo", + "Functions": [], + "Type": "System", + "Name": "GMTicketInfo", + "Events": [ + { + "LiteralName": "GM_PLAYER_INFO", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "info" } + ], + "Type": "Event", + "Name": "GmPlayerInfo" + }, + { + "LiteralName": "ITEM_RESTORATION_BUTTON_STATUS", + "Type": "Event", + "Name": "ItemRestorationButtonStatus" + }, + { "LiteralName": "PETITION_CLOSED", "Type": "Event", "Name": "PetitionClosed" }, + { "LiteralName": "PETITION_SHOW", "Type": "Event", "Name": "PetitionShow" }, + { + "LiteralName": "PLAYER_REPORT_SUBMITTED", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "invitedByGUID" }], + "Type": "Event", + "Name": "PlayerReportSubmitted" + }, + { + "LiteralName": "QUICK_TICKET_SYSTEM_STATUS", + "Type": "Event", + "Name": "QuickTicketSystemStatus" + }, + { + "LiteralName": "QUICK_TICKET_THROTTLE_CHANGED", + "Type": "Event", + "Name": "QuickTicketThrottleChanged" + }, + { + "LiteralName": "UPDATE_WEB_TICKET", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "hasTicket" }, + { "Nilable": true, "Type": "number", "Name": "numTickets" }, + { "Nilable": true, "Type": "number", "Name": "ticketStatus" }, + { "Nilable": true, "Type": "number", "Name": "caseIndex" }, + { "Nilable": true, "Type": "number", "Name": "waitTimeMinutes" }, + { "Nilable": true, "Type": "cstring", "Name": "waitMessage" } + ], + "Type": "Event", + "Name": "UpdateWebTicket" + } + ], + "Tables": [] + }, + { + "Functions": [ + { "Type": "Function", "Name": "ClearCursor" }, + { "Type": "Function", "Name": "ClearCursorHoveredItem" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "CursorHasItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "CursorHasMacro" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "CursorHasMoney" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "CursorHasSpell" + }, + { "Type": "Function", "Name": "DeleteCursorItem" }, + { "Type": "Function", "Name": "DropCursorMoney" }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "EquipCursorItem" + }, + { "Type": "Function", "Name": "GetCursorInfo" }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "amount" }], + "Type": "Function", + "Name": "GetCursorMoney" + }, + { + "Arguments": [{ "Nilable": false, "Type": "WOWMONEY", "Name": "amount" }], + "Type": "Function", + "Name": "PickupPlayerMoney" + }, + { "Type": "Function", "Name": "ResetCursor" }, + { "Type": "Function", "Name": "SellCursorItem" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": true, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "SetCursor" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + } + ], + "Type": "Function", + "Name": "SetCursorHoveredItem" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "SetCursorHoveredItemTradeItem" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }, + { "Nilable": false, "Type": "UICursorType", "Name": "cursorType" } + ], + "Type": "Function", + "Name": "SetCursorVirtualItem" + } + ], + "Type": "System", + "Name": "GameCursor", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "EventRealmQueues", + "Fields": [ + { "EnumValue": 0, "Type": "EventRealmQueues", "Name": "None" }, + { "EnumValue": 1, "Type": "EventRealmQueues", "Name": "PlunderstormSolo" }, + { "EnumValue": 2, "Type": "EventRealmQueues", "Name": "PlunderstormDuo" }, + { "EnumValue": 4, "Type": "EventRealmQueues", "Name": "PlunderstormTrio" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "GameEnvironment", + "Fields": [ + { "EnumValue": 0, "Type": "GameEnvironment", "Name": "WoW" }, + { "EnumValue": 1, "Type": "GameEnvironment", "Name": "WoWLabs" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + } + ] + }, + { + "Namespace": "C_GameEnvironmentManager", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "EventRealmQueues", "Name": "gameEnvironment" } + ], + "Type": "Function", + "Name": "GetCurrentEventRealmQueues" + }, + { + "Returns": [ + { "Nilable": false, "Type": "GameEnvironment", "Name": "gameEnvironment" } + ], + "Type": "Function", + "Name": "GetCurrentGameEnvironment" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "GameEnvironment", "Name": "gameEnvironment" } + ], + "Type": "Function", + "Name": "RequestGameEnvironment" + } + ], + "Type": "System", + "Name": "GameEnvironmentManager", + "Events": [ + { + "LiteralName": "GAME_ENVIRONMENT_SWITCHED", + "Payload": [ + { "Nilable": false, "Type": "GameEnvironment", "Name": "gameEnvironment" } + ], + "Type": "Event", + "Name": "GameEnvironmentSwitched" + } + ], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "errorName" }, + { "Nilable": true, "Type": "number", "Name": "soundKitID" }, + { "Nilable": true, "Type": "number", "Name": "voiceID" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "gameErrorIndex" }], + "Type": "Function", + "Name": "GetGameMessageInfo" + }, + { "Type": "Function", "Name": "NotWhileDeadError" } + ], + "Type": "System", + "Name": "GameError", + "Events": [], + "Tables": [] + }, + { "Tables": [] }, + { + "Namespace": "C_GameModeManager", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "GameMode", "Name": "gameMode" }], + "Type": "Function", + "Name": "GetCurrentGameMode" + } + ], + "Type": "System", + "Name": "GameModeManager", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "GamePadPowerLevel", + "Fields": [ + { "EnumValue": 0, "Type": "GamePadPowerLevel", "Name": "Critical" }, + { "EnumValue": 1, "Type": "GamePadPowerLevel", "Name": "Low" }, + { "EnumValue": 2, "Type": "GamePadPowerLevel", "Name": "Medium" }, + { "EnumValue": 3, "Type": "GamePadPowerLevel", "Name": "High" }, + { "EnumValue": 4, "Type": "GamePadPowerLevel", "Name": "Wired" }, + { "EnumValue": 5, "Type": "GamePadPowerLevel", "Name": "Unknown" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + } + ] + }, + { + "Namespace": "C_GamePad", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "ClientPlatformType", "Name": "platform" }, + { "Nilable": false, "Type": "cstring", "Name": "mapping" } + ], + "Type": "Function", + "Name": "AddSDLMapping" + }, + { "Type": "Function", "Name": "ApplyConfigs" }, + { + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "configName" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "axisIndex" }], + "Type": "Function", + "Name": "AxisIndexToConfigName" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "buttonIndex" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "bindingName" }], + "Type": "Function", + "Name": "ButtonBindingToIndex" + }, + { + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "bindingName" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "buttonIndex" }], + "Type": "Function", + "Name": "ButtonIndexToBinding" + }, + { + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "configName" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "buttonIndex" }], + "Type": "Function", + "Name": "ButtonIndexToConfigName" + }, + { "Type": "Function", "Name": "ClearLedColor" }, + { + "Arguments": [ + { "Nilable": false, "Type": "GamePadConfigID", "Name": "configID" } + ], + "Type": "Function", + "Name": "DeleteConfig" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "deviceID" }], + "Type": "Function", + "Name": "GetActiveDeviceID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "GamePadConfigID", + "Type": "table", + "Name": "configIDs" + } + ], + "Type": "Function", + "Name": "GetAllConfigIDs" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "deviceIDs" + } + ], + "Type": "Function", + "Name": "GetAllDeviceIDs" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "deviceID" }], + "Type": "Function", + "Name": "GetCombinedDeviceID" + }, + { + "Returns": [{ "Nilable": true, "Type": "GamePadConfig", "Name": "config" }], + "Arguments": [ + { "Nilable": false, "Type": "GamePadConfigID", "Name": "configID" } + ], + "Type": "Function", + "Name": "GetConfig" + }, + { + "Returns": [{ "Nilable": true, "Type": "GamePadMappedState", "Name": "state" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "deviceID" }], + "Type": "Function", + "Name": "GetDeviceMappedState" + }, + { + "Returns": [{ "Nilable": true, "Type": "GamePadRawState", "Name": "rawState" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "deviceID" }], + "Type": "Function", + "Name": "GetDeviceRawState" + }, + { + "Returns": [ + { "Nilable": false, "Mixin": "ColorMixin", "Type": "colorRGB", "Name": "color" } + ], + "Type": "Function", + "Name": "GetLedColor" + }, + { + "Returns": [ + { "Nilable": false, "Type": "GamePadPowerLevel", "Name": "powerLevel" } + ], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "deviceID" }], + "Type": "Function", + "Name": "GetPowerLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsEnabled" + }, + { + "Arguments": [{ "Nilable": false, "Type": "GamePadConfig", "Name": "config" }], + "Type": "Function", + "Name": "SetConfig" + }, + { + "Arguments": [ + { "Nilable": false, "Mixin": "ColorMixin", "Type": "colorRGB", "Name": "color" } + ], + "Type": "Function", + "Name": "SetLedColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "vibrationType" }, + { "Nilable": false, "Type": "number", "Name": "intensity" } + ], + "Type": "Function", + "Name": "SetVibration" + }, + { + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "configName" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "stickIndex" }], + "Type": "Function", + "Name": "StickIndexToConfigName" + }, + { "Type": "Function", "Name": "StopVibration" } + ], + "Type": "System", + "Name": "GamePad", + "Events": [ + { + "LiteralName": "GAME_PAD_ACTIVE_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isActive" }], + "Type": "Event", + "Name": "GamePadActiveChanged" + }, + { + "LiteralName": "GAME_PAD_CONFIGS_CHANGED", + "Type": "Event", + "Name": "GamePadConfigsChanged" + }, + { + "LiteralName": "GAME_PAD_CONNECTED", + "Type": "Event", + "Name": "GamePadConnected" + }, + { + "LiteralName": "GAME_PAD_DISCONNECTED", + "Type": "Event", + "Name": "GamePadDisconnected" + }, + { + "LiteralName": "GAME_PAD_POWER_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "GamePadPowerLevel", "Name": "powerLevel" } + ], + "Type": "Event", + "Name": "GamePadPowerChanged" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "axis" }, + { "Nilable": true, "Type": "number", "Name": "shift" }, + { "Nilable": true, "Type": "number", "Name": "scale" }, + { "Nilable": true, "Type": "number", "Name": "deadzone" }, + { "Nilable": true, "Type": "number", "Name": "buttonThreshold" }, + { "Nilable": true, "Type": "string", "Name": "buttonPos" }, + { "Nilable": true, "Type": "string", "Name": "buttonNeg" }, + { "Nilable": true, "Type": "string", "Name": "comment" } + ], + "Type": "Structure", + "Name": "GamePadAxisConfig" + }, + { + "Fields": [ + { "Nilable": true, "Type": "string", "Name": "comment" }, + { "Nilable": true, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "GamePadConfigID", "Name": "configID" }, + { "Nilable": true, "Type": "string", "Name": "labelStyle" }, + { + "Nilable": false, + "InnerType": "GamePadRawButtonMapping", + "Type": "table", + "Name": "rawButtonMappings" + }, + { + "Nilable": false, + "InnerType": "GamePadRawAxisMapping", + "Type": "table", + "Name": "rawAxisMappings" + }, + { + "Nilable": false, + "InnerType": "GamePadAxisConfig", + "Type": "table", + "Name": "axisConfigs" + }, + { + "Nilable": false, + "InnerType": "GamePadStickConfig", + "Type": "table", + "Name": "stickConfigs" + } + ], + "Type": "Structure", + "Name": "GamePadConfig" + }, + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "vendorID" }, + { "Nilable": true, "Type": "number", "Name": "productID" } + ], + "Type": "Structure", + "Name": "GamePadConfigID" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "labelStyle" }, + { "Nilable": false, "Type": "number", "Name": "buttonCount" }, + { "Nilable": false, "Type": "number", "Name": "axisCount" }, + { "Nilable": false, "Type": "number", "Name": "stickCount" }, + { "Nilable": false, "InnerType": "bool", "Type": "table", "Name": "buttons" }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "axes" }, + { + "Nilable": false, + "InnerType": "GamePadStick", + "Type": "table", + "Name": "sticks" + } + ], + "Type": "Structure", + "Name": "GamePadMappedState" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "rawIndex" }, + { "Nilable": true, "Type": "string", "Name": "axis" }, + { "Nilable": true, "Type": "string", "Name": "comment" } + ], + "Type": "Structure", + "Name": "GamePadRawAxisMapping" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "rawIndex" }, + { "Nilable": true, "Type": "string", "Name": "button" }, + { "Nilable": true, "Type": "string", "Name": "axis" }, + { "Nilable": true, "Type": "number", "Name": "axisValue" }, + { "Nilable": true, "Type": "string", "Name": "comment" } + ], + "Type": "Structure", + "Name": "GamePadRawButtonMapping" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "vendorID" }, + { "Nilable": false, "Type": "number", "Name": "productID" }, + { "Nilable": false, "Type": "number", "Name": "rawButtonCount" }, + { "Nilable": false, "Type": "number", "Name": "rawAxisCount" }, + { + "Nilable": false, + "InnerType": "bool", + "Type": "table", + "Name": "rawButtons" + }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "rawAxes" } + ], + "Type": "Structure", + "Name": "GamePadRawState" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" }, + { "Nilable": false, "Type": "number", "Name": "len" } + ], + "Type": "Structure", + "Name": "GamePadStick" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "stick" }, + { "Nilable": true, "Type": "string", "Name": "axisX" }, + { "Nilable": true, "Type": "string", "Name": "axisY" }, + { "Nilable": true, "Type": "number", "Name": "deadzone" }, + { "Nilable": true, "Type": "number", "Name": "deadzoneX" }, + { "Nilable": true, "Type": "number", "Name": "deadzoneY" }, + { "Nilable": true, "Type": "string", "Name": "comment" } + ], + "Type": "Structure", + "Name": "GamePadStickConfig" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "GameRuleFlags", + "Fields": [ + { "EnumValue": 0, "Type": "GameRuleFlags", "Name": "None" }, + { "EnumValue": 1, "Type": "GameRuleFlags", "Name": "AllowClient" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + } + ] + }, + { + "Namespace": "C_GameRules", + "Functions": [ + { + "Documentation": [ + "Returns the numeric value specified in the Game Rule, multiplied by 0.1 for every decimal place requested" + ], + "Type": "Function", + "Name": "GetGameRuleAsFloat", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "value" }], + "Arguments": [ + { "Nilable": false, "Type": "GameRule", "Name": "gameRule" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "decimalPlaces" } + ] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isActive" }], + "Arguments": [{ "Nilable": false, "Type": "GameRule", "Name": "gameRule" }], + "Type": "Function", + "Name": "IsGameRuleActive" + } + ], + "Type": "System", + "Name": "GameRules", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "visible" }], + "Type": "Function", + "Name": "SetInWorldUIVisibility" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "visible" }], + "Type": "Function", + "Name": "SetUIVisibility" + } + ], + "Type": "System", + "Name": "GameUI", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ContributionState", + "Fields": [ + { "EnumValue": 0, "Type": "ContributionState", "Name": "None" }, + { "EnumValue": 1, "Type": "ContributionState", "Name": "Building" }, + { "EnumValue": 2, "Type": "ContributionState", "Name": "Active" }, + { "EnumValue": 3, "Type": "ContributionState", "Name": "UnderAttack" }, + { "EnumValue": 4, "Type": "ContributionState", "Name": "Destroyed" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "CovenantSkill", + "Fields": [ + { "EnumValue": 2730, "Type": "CovenantSkill", "Name": "Kyrian" }, + { "EnumValue": 2731, "Type": "CovenantSkill", "Name": "Venthyr" }, + { "EnumValue": 2732, "Type": "CovenantSkill", "Name": "NightFae" }, + { "EnumValue": 2733, "Type": "CovenantSkill", "Name": "Necrolord" } + ], + "MaxValue": 2733, + "MinValue": 2730, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "CovenantType", + "Fields": [ + { "EnumValue": 0, "Type": "CovenantType", "Name": "None" }, + { "EnumValue": 1, "Type": "CovenantType", "Name": "Kyrian" }, + { "EnumValue": 2, "Type": "CovenantType", "Name": "Venthyr" }, + { "EnumValue": 3, "Type": "CovenantType", "Name": "NightFae" }, + { "EnumValue": 4, "Type": "CovenantType", "Name": "Necrolord" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "FollowerAbilityCastResult", + "Fields": [ + { "EnumValue": 0, "Type": "FollowerAbilityCastResult", "Name": "Success" }, + { "EnumValue": 1, "Type": "FollowerAbilityCastResult", "Name": "Failure" }, + { + "EnumValue": 2, + "Type": "FollowerAbilityCastResult", + "Name": "NoPendingCast" + }, + { + "EnumValue": 3, + "Type": "FollowerAbilityCastResult", + "Name": "InvalidTarget" + }, + { + "EnumValue": 4, + "Type": "FollowerAbilityCastResult", + "Name": "InvalidFollowerSpell" + }, + { + "EnumValue": 5, + "Type": "FollowerAbilityCastResult", + "Name": "RerollNotAllowed" + }, + { + "EnumValue": 6, + "Type": "FollowerAbilityCastResult", + "Name": "SingleMissionDuration" + }, + { + "EnumValue": 7, + "Type": "FollowerAbilityCastResult", + "Name": "MustTargetFollower" + }, + { + "EnumValue": 8, + "Type": "FollowerAbilityCastResult", + "Name": "MustTargetTrait" + }, + { + "EnumValue": 9, + "Type": "FollowerAbilityCastResult", + "Name": "InvalidFollowerType" + }, + { + "EnumValue": 10, + "Type": "FollowerAbilityCastResult", + "Name": "MustBeUnique" + }, + { + "EnumValue": 11, + "Type": "FollowerAbilityCastResult", + "Name": "CannotTargetLimitedUseFollower" + }, + { + "EnumValue": 12, + "Type": "FollowerAbilityCastResult", + "Name": "MustTargetLimitedUseFollower" + }, + { + "EnumValue": 13, + "Type": "FollowerAbilityCastResult", + "Name": "AlreadyAtMaxDurability" + }, + { + "EnumValue": 14, + "Type": "FollowerAbilityCastResult", + "Name": "CannotTargetNonAutoMissionFollower" + } + ], + "MaxValue": 14, + "MinValue": 0, + "NumValues": 15 + }, + { + "Type": "Enumeration", + "Name": "GarrAutoBoardIndex", + "Fields": [ + { "EnumValue": -1, "Type": "GarrAutoBoardIndex", "Name": "None" }, + { "EnumValue": 0, "Type": "GarrAutoBoardIndex", "Name": "AllyLeftBack" }, + { "EnumValue": 1, "Type": "GarrAutoBoardIndex", "Name": "AllyRightBack" }, + { "EnumValue": 2, "Type": "GarrAutoBoardIndex", "Name": "AllyLeftFront" }, + { "EnumValue": 3, "Type": "GarrAutoBoardIndex", "Name": "AllyCenterFront" }, + { "EnumValue": 4, "Type": "GarrAutoBoardIndex", "Name": "AllyRightFront" }, + { "EnumValue": 5, "Type": "GarrAutoBoardIndex", "Name": "EnemyLeftFront" }, + { + "EnumValue": 6, + "Type": "GarrAutoBoardIndex", + "Name": "EnemyCenterLeftFront" + }, + { + "EnumValue": 7, + "Type": "GarrAutoBoardIndex", + "Name": "EnemyCenterRightFront" + }, + { "EnumValue": 8, "Type": "GarrAutoBoardIndex", "Name": "EnemyRightFront" }, + { "EnumValue": 9, "Type": "GarrAutoBoardIndex", "Name": "EnemyLeftBack" }, + { + "EnumValue": 10, + "Type": "GarrAutoBoardIndex", + "Name": "EnemyCenterLeftBack" + }, + { + "EnumValue": 11, + "Type": "GarrAutoBoardIndex", + "Name": "EnemyCenterRightBack" + }, + { "EnumValue": 12, "Type": "GarrAutoBoardIndex", "Name": "EnemyRightBack" } + ], + "MaxValue": 12, + "MinValue": -1, + "NumValues": 14 + }, + { + "Type": "Enumeration", + "Name": "GarrAutoCombatSpellTutorialFlag", + "Fields": [ + { "EnumValue": 0, "Type": "GarrAutoCombatSpellTutorialFlag", "Name": "None" }, + { "EnumValue": 1, "Type": "GarrAutoCombatSpellTutorialFlag", "Name": "Single" }, + { "EnumValue": 2, "Type": "GarrAutoCombatSpellTutorialFlag", "Name": "Column" }, + { "EnumValue": 3, "Type": "GarrAutoCombatSpellTutorialFlag", "Name": "Row" }, + { "EnumValue": 4, "Type": "GarrAutoCombatSpellTutorialFlag", "Name": "All" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "GarrAutoCombatTutorial", + "Fields": [ + { "EnumValue": 1, "Type": "GarrAutoCombatTutorial", "Name": "SelectMission" }, + { "EnumValue": 2, "Type": "GarrAutoCombatTutorial", "Name": "PlaceCompanion" }, + { "EnumValue": 4, "Type": "GarrAutoCombatTutorial", "Name": "HealCompanion" }, + { "EnumValue": 8, "Type": "GarrAutoCombatTutorial", "Name": "LevelHeal" }, + { + "EnumValue": 16, + "Type": "GarrAutoCombatTutorial", + "Name": "BeneficialEffect" + }, + { "EnumValue": 32, "Type": "GarrAutoCombatTutorial", "Name": "AttackSingle" }, + { "EnumValue": 64, "Type": "GarrAutoCombatTutorial", "Name": "AttackColumn" }, + { "EnumValue": 128, "Type": "GarrAutoCombatTutorial", "Name": "AttackRow" }, + { "EnumValue": 256, "Type": "GarrAutoCombatTutorial", "Name": "AttackAll" }, + { "EnumValue": 512, "Type": "GarrAutoCombatTutorial", "Name": "TroopTutorial" }, + { + "EnumValue": 1024, + "Type": "GarrAutoCombatTutorial", + "Name": "EnvironmentalEffect" + } + ], + "MaxValue": 1024, + "MinValue": 1, + "NumValues": 11 + }, + { + "Type": "Enumeration", + "Name": "GarrAutoCombatantRole", + "Fields": [ + { "EnumValue": 0, "Type": "GarrAutoCombatantRole", "Name": "None" }, + { "EnumValue": 1, "Type": "GarrAutoCombatantRole", "Name": "Melee" }, + { "EnumValue": 2, "Type": "GarrAutoCombatantRole", "Name": "RangedPhysical" }, + { "EnumValue": 3, "Type": "GarrAutoCombatantRole", "Name": "RangedMagic" }, + { "EnumValue": 4, "Type": "GarrAutoCombatantRole", "Name": "HealSupport" }, + { "EnumValue": 5, "Type": "GarrAutoCombatantRole", "Name": "Tank" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "GarrAutoEventFlags", + "Fields": [ + { "EnumValue": 0, "Type": "GarrAutoEventFlags", "Name": "None" }, + { "EnumValue": 1, "Type": "GarrAutoEventFlags", "Name": "AutoAttack" }, + { "EnumValue": 2, "Type": "GarrAutoEventFlags", "Name": "Passive" }, + { "EnumValue": 4, "Type": "GarrAutoEventFlags", "Name": "Environment" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "GarrAutoMissionEventType", + "Fields": [ + { "EnumValue": 0, "Type": "GarrAutoMissionEventType", "Name": "MeleeDamage" }, + { "EnumValue": 1, "Type": "GarrAutoMissionEventType", "Name": "RangeDamage" }, + { + "EnumValue": 2, + "Type": "GarrAutoMissionEventType", + "Name": "SpellMeleeDamage" + }, + { + "EnumValue": 3, + "Type": "GarrAutoMissionEventType", + "Name": "SpellRangeDamage" + }, + { "EnumValue": 4, "Type": "GarrAutoMissionEventType", "Name": "Heal" }, + { + "EnumValue": 5, + "Type": "GarrAutoMissionEventType", + "Name": "PeriodicDamage" + }, + { "EnumValue": 6, "Type": "GarrAutoMissionEventType", "Name": "PeriodicHeal" }, + { "EnumValue": 7, "Type": "GarrAutoMissionEventType", "Name": "ApplyAura" }, + { "EnumValue": 8, "Type": "GarrAutoMissionEventType", "Name": "RemoveAura" }, + { "EnumValue": 9, "Type": "GarrAutoMissionEventType", "Name": "Died" } + ], + "MaxValue": 9, + "MinValue": 0, + "NumValues": 10 + }, + { + "Type": "Enumeration", + "Name": "GarrAutoPreviewTargetType", + "Fields": [ + { "EnumValue": 0, "Type": "GarrAutoPreviewTargetType", "Name": "None" }, + { "EnumValue": 1, "Type": "GarrAutoPreviewTargetType", "Name": "Damage" }, + { "EnumValue": 2, "Type": "GarrAutoPreviewTargetType", "Name": "Heal" }, + { "EnumValue": 4, "Type": "GarrAutoPreviewTargetType", "Name": "Buff" }, + { "EnumValue": 8, "Type": "GarrAutoPreviewTargetType", "Name": "Debuff" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "GarrFollowerMissionCompleteState", + "Fields": [ + { "EnumValue": 0, "Type": "GarrFollowerMissionCompleteState", "Name": "Alive" }, + { + "EnumValue": 1, + "Type": "GarrFollowerMissionCompleteState", + "Name": "KilledByMissionFailure" + }, + { + "EnumValue": 2, + "Type": "GarrFollowerMissionCompleteState", + "Name": "SavedByPreventDeath" + }, + { + "EnumValue": 3, + "Type": "GarrFollowerMissionCompleteState", + "Name": "OutOfDurability" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "GarrFollowerQuality", + "Fields": [ + { "EnumValue": 0, "Type": "GarrFollowerQuality", "Name": "None" }, + { "EnumValue": 1, "Type": "GarrFollowerQuality", "Name": "Common" }, + { "EnumValue": 2, "Type": "GarrFollowerQuality", "Name": "Uncommon" }, + { "EnumValue": 3, "Type": "GarrFollowerQuality", "Name": "Rare" }, + { "EnumValue": 4, "Type": "GarrFollowerQuality", "Name": "Epic" }, + { "EnumValue": 5, "Type": "GarrFollowerQuality", "Name": "Legendary" }, + { "EnumValue": 6, "Type": "GarrFollowerQuality", "Name": "Title" } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "GarrTalentCostType", + "Fields": [ + { "EnumValue": 0, "Type": "GarrTalentCostType", "Name": "Initial" }, + { "EnumValue": 1, "Type": "GarrTalentCostType", "Name": "Respec" }, + { "EnumValue": 2, "Type": "GarrTalentCostType", "Name": "MakePermanent" }, + { "EnumValue": 3, "Type": "GarrTalentCostType", "Name": "TreeReset" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "GarrTalentFeatureSubtype", + "Fields": [ + { "EnumValue": 0, "Type": "GarrTalentFeatureSubtype", "Name": "Generic" }, + { "EnumValue": 1, "Type": "GarrTalentFeatureSubtype", "Name": "Bastion" }, + { "EnumValue": 2, "Type": "GarrTalentFeatureSubtype", "Name": "Revendreth" }, + { "EnumValue": 3, "Type": "GarrTalentFeatureSubtype", "Name": "Ardenweald" }, + { "EnumValue": 4, "Type": "GarrTalentFeatureSubtype", "Name": "Maldraxxus" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "GarrTalentFeatureType", + "Fields": [ + { "EnumValue": 0, "Type": "GarrTalentFeatureType", "Name": "Generic" }, + { "EnumValue": 1, "Type": "GarrTalentFeatureType", "Name": "AnimaDiversion" }, + { "EnumValue": 2, "Type": "GarrTalentFeatureType", "Name": "TravelPortals" }, + { "EnumValue": 3, "Type": "GarrTalentFeatureType", "Name": "Adventures" }, + { + "EnumValue": 4, + "Type": "GarrTalentFeatureType", + "Name": "ReservoirUpgrades" + }, + { "EnumValue": 5, "Type": "GarrTalentFeatureType", "Name": "SanctumUnique" }, + { "EnumValue": 6, "Type": "GarrTalentFeatureType", "Name": "SoulBinds" }, + { + "EnumValue": 7, + "Type": "GarrTalentFeatureType", + "Name": "AnimaDiversionMap" + }, + { "EnumValue": 8, "Type": "GarrTalentFeatureType", "Name": "Cyphers" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "GarrTalentResearchCostSource", + "Fields": [ + { "EnumValue": 0, "Type": "GarrTalentResearchCostSource", "Name": "Talent" }, + { "EnumValue": 1, "Type": "GarrTalentResearchCostSource", "Name": "Tree" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "GarrTalentSocketType", + "Fields": [ + { "EnumValue": 0, "Type": "GarrTalentSocketType", "Name": "None" }, + { "EnumValue": 1, "Type": "GarrTalentSocketType", "Name": "Spell" }, + { "EnumValue": 2, "Type": "GarrTalentSocketType", "Name": "Conduit" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "GarrTalentTreeType", + "Fields": [ + { "EnumValue": 0, "Type": "GarrTalentTreeType", "Name": "Tiers" }, + { "EnumValue": 1, "Type": "GarrTalentTreeType", "Name": "Classic" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "GarrTalentType", + "Fields": [ + { "EnumValue": 0, "Type": "GarrTalentType", "Name": "Standard" }, + { "EnumValue": 1, "Type": "GarrTalentType", "Name": "Minor" }, + { "EnumValue": 2, "Type": "GarrTalentType", "Name": "Major" }, + { "EnumValue": 3, "Type": "GarrTalentType", "Name": "Socket" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "GarrTalentUI", + "Fields": [ + { "EnumValue": 0, "Type": "GarrTalentUI", "Name": "Generic" }, + { "EnumValue": 1, "Type": "GarrTalentUI", "Name": "CovenantSanctum" }, + { "EnumValue": 2, "Type": "GarrTalentUI", "Name": "SoulBinds" }, + { "EnumValue": 3, "Type": "GarrTalentUI", "Name": "AnimaDiversionMap" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "GarrisonTalentAvailability", + "Fields": [ + { "EnumValue": 0, "Type": "GarrisonTalentAvailability", "Name": "Available" }, + { "EnumValue": 1, "Type": "GarrisonTalentAvailability", "Name": "Unavailable" }, + { + "EnumValue": 2, + "Type": "GarrisonTalentAvailability", + "Name": "UnavailableAnotherIsResearching" + }, + { + "EnumValue": 3, + "Type": "GarrisonTalentAvailability", + "Name": "UnavailableNotEnoughResources" + }, + { + "EnumValue": 4, + "Type": "GarrisonTalentAvailability", + "Name": "UnavailableNotEnoughGold" + }, + { + "EnumValue": 5, + "Type": "GarrisonTalentAvailability", + "Name": "UnavailableTierUnavailable" + }, + { + "EnumValue": 6, + "Type": "GarrisonTalentAvailability", + "Name": "UnavailablePlayerCondition" + }, + { + "EnumValue": 7, + "Type": "GarrisonTalentAvailability", + "Name": "UnavailableAlreadyHave" + }, + { + "EnumValue": 8, + "Type": "GarrisonTalentAvailability", + "Name": "UnavailableRequiresPrerequisiteTalent" + } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + } + ] + }, + { + "Namespace": "C_Garrison", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "followerAdded" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "missionID" }, + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerID" }, + { "Nilable": true, "Type": "number", "Name": "boardIndex" } + ], + "Type": "Function", + "Name": "AddFollowerToMission" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AutoCombatDamageClassString", + "Type": "table", + "Name": "damageClassStrings" + } + ], + "Type": "Function", + "Name": "GetAutoCombatDamageClassValues" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AutoMissionTargetingInfo", + "Type": "table", + "Name": "targetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "missionID" }], + "Type": "Function", + "Name": "GetAutoMissionBoardState" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "AutoMissionEnvironmentEffect", + "Name": "autoMissionEnvEffect" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "missionID" }], + "Type": "Function", + "Name": "GetAutoMissionEnvironmentEffect" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AutoMissionTargetingInfo", + "Type": "table", + "Name": "targetInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "missionID" }, + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerID" }, + { "Nilable": false, "Type": "number", "Name": "casterBoardIndex" } + ], + "Type": "Function", + "Name": "GetAutoMissionTargetingInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AutoMissionTargetingInfo", + "Type": "table", + "Name": "targetInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "missionID" }, + { "Nilable": false, "Type": "number", "Name": "autoCombatSpellID" }, + { "Nilable": false, "Type": "number", "Name": "casterBoardIndex" } + ], + "Type": "Function", + "Name": "GetAutoMissionTargetingInfoForSpell" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AutoCombatTroopInfo", + "Type": "table", + "Name": "autoTroopInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "followerType" }], + "Type": "Function", + "Name": "GetAutoTroops" + }, + { + "Returns": [ + { "Nilable": true, "Type": "AutoCombatSpellInfo", "Name": "spellInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "autoCombatSpellID" } + ], + "Type": "Function", + "Name": "GetCombatLogSpellInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "equipmentLevel" }], + "Type": "Function", + "Name": "GetCurrentCypherEquipmentLevel" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "number", + "Name": "currentGarrTalentTreeFriendshipFactionID" + } + ], + "Type": "Function", + "Name": "GetCurrentGarrTalentTreeFriendshipFactionID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "currentGarrTalentTreeID" } + ], + "Type": "Function", + "Name": "GetCurrentGarrTalentTreeID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "cyphersToNext" }], + "Type": "Function", + "Name": "GetCyphersToNextEquipmentLevel" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AutoCombatSpellInfo", + "Type": "table", + "Name": "autoCombatSpells" + }, + { + "Nilable": true, + "Type": "AutoCombatSpellInfo", + "Name": "autoCombatAutoAttack" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "GarrisonFollower", "Name": "garrFollowerID" }, + { "Nilable": false, "Type": "number", "Name": "followerLevel" } + ], + "Type": "Function", + "Name": "GetFollowerAutoCombatSpells" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "FollowerAutoCombatStatsInfo", + "Name": "autoCombatInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "GarrisonFollower", "Name": "garrFollowerID" } + ], + "Type": "Function", + "Name": "GetFollowerAutoCombatStats" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "FollowerMissionCompleteInfo", + "Name": "followerMissionCompleteInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerID" } + ], + "Type": "Function", + "Name": "GetFollowerMissionCompleteInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "GarrisonPlotInstanceMapInfo", + "Type": "table", + "Name": "garrisonPlotInstances" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetGarrisonPlotsInstancesForMap" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "garrTalentTreeCurrencyType" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "garrTalentTreeID" }], + "Type": "Function", + "Name": "GetGarrisonTalentTreeCurrencyTypes" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "garrTalentTreeType" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "garrTalentTreeID" }], + "Type": "Function", + "Name": "GetGarrisonTalentTreeType" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxEquipmentLevel" }], + "Type": "Function", + "Name": "GetMaxCypherEquipmentLevel" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "GarrisonEnemyEncounterInfo", + "Type": "table", + "Name": "encounters" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "missionID" }], + "Type": "Function", + "Name": "GetMissionCompleteEncounters" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "MissionDeploymentInfo", + "Name": "missionDeploymentInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "missionID" }], + "Type": "Function", + "Name": "GetMissionDeploymentInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "MissionEncounterIconInfo", + "Name": "missionEncounterIconInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "missionID" }], + "Type": "Function", + "Name": "GetMissionEncounterIconInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "GarrisonTalentInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "talentID" }], + "Type": "Function", + "Name": "GetTalentInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "talentPoints" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "garrTalentTreeID" }], + "Type": "Function", + "Name": "GetTalentPointsSpentInTalentTree" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "treeIDs" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "garrType" }, + { "Nilable": false, "Type": "number", "Name": "classID" } + ], + "Type": "Function", + "Name": "GetTalentTreeIDsByClassID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "GarrisonTalentTreeInfo", "Name": "info" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "treeID" }], + "Type": "Function", + "Name": "GetTalentTreeInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "goldCost" }, + { + "Nilable": false, + "InnerType": "GarrisonTalentCurrencyCostInfo", + "Type": "table", + "Name": "currencyCosts" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "garrTalentTreeID" }], + "Type": "Function", + "Name": "GetTalentTreeResetInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "goldCost" }, + { + "Nilable": false, + "InnerType": "GarrisonTalentCurrencyCostInfo", + "Type": "table", + "Name": "currencyCosts" + }, + { "Nilable": false, "Type": "number", "Name": "durationSecs" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "garrTalentID" }, + { "Nilable": false, "Type": "number", "Name": "researchRank" }, + { "Nilable": false, "Type": "number", "Name": "garrTalentTreeID" }, + { "Nilable": false, "Type": "number", "Name": "talentPointIndex" }, + { "Nilable": false, "Type": "number", "Name": "isRespec" } + ], + "Type": "Function", + "Name": "GetTalentTreeTalentPointResearchInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "worldQuestID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "talentID" }], + "Type": "Function", + "Name": "GetTalentUnlockWorldQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasAdventures" }], + "Type": "Function", + "Name": "HasAdventures" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "atGarrisonMissionNPC" }], + "Type": "Function", + "Name": "IsAtGarrisonMissionNPC" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "environmentCountered" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "missionID" }], + "Type": "Function", + "Name": "IsEnvironmentCountered" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "followerOnCompletedMission" } + ], + "Arguments": [ + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerID" } + ], + "Type": "Function", + "Name": "IsFollowerOnCompletedMission" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isMet" }, + { "Nilable": true, "Type": "cstring", "Name": "failureString" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "talentID" }], + "Type": "Function", + "Name": "IsTalentConditionMet" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "missionID" }], + "Type": "Function", + "Name": "RegenerateCombatLog" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "missionID" }, + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerID" }, + { "Nilable": true, "Type": "number", "Name": "boardIndex" } + ], + "Type": "Function", + "Name": "RemoveFollowerFromMission" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "followerType" }], + "Type": "Function", + "Name": "RushHealAllFollowers" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "GarrisonFollower", "Name": "garrFollowerID" } + ], + "Type": "Function", + "Name": "RushHealFollower" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "state" }], + "Type": "Function", + "Name": "SetAutoCombatSpellFastForward" + } + ], + "Type": "System", + "Name": "GarrisonInfo", + "Events": [ + { + "LiteralName": "GARRISON_ARCHITECT_CLOSED", + "Type": "Event", + "Name": "GarrisonArchitectClosed" + }, + { + "LiteralName": "GARRISON_ARCHITECT_OPENED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "followerTypeID" }], + "Type": "Event", + "Name": "GarrisonArchitectOpened" + }, + { + "LiteralName": "GARRISON_BUILDING_ACTIVATABLE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "buildingName" }, + { "Nilable": false, "Type": "number", "Name": "garrisonType" } + ], + "Type": "Event", + "Name": "GarrisonBuildingActivatable" + }, + { + "LiteralName": "GARRISON_BUILDING_ACTIVATED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "garrisonPlotInstanceID" }, + { "Nilable": false, "Type": "number", "Name": "garrisonBuildingID" } + ], + "Type": "Event", + "Name": "GarrisonBuildingActivated" + }, + { + "LiteralName": "GARRISON_BUILDING_ERROR", + "Type": "Event", + "Name": "GarrisonBuildingError" + }, + { + "LiteralName": "GARRISON_BUILDING_LIST_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "categoryID" }], + "Type": "Event", + "Name": "GarrisonBuildingListUpdate" + }, + { + "LiteralName": "GARRISON_BUILDING_PLACED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "garrisonPlotInstanceID" }, + { "Nilable": false, "Type": "bool", "Name": "newPlacement" } + ], + "Type": "Event", + "Name": "GarrisonBuildingPlaced" + }, + { + "LiteralName": "GARRISON_BUILDING_REMOVED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "garrPlotInstanceID" }, + { "Nilable": false, "Type": "number", "Name": "garrBuildingID" } + ], + "Type": "Event", + "Name": "GarrisonBuildingRemoved" + }, + { + "LiteralName": "GARRISON_BUILDING_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "garrisonBuildingID" }, + { "Nilable": true, "Type": "number", "Name": "garrPlotInstanceID" } + ], + "Type": "Event", + "Name": "GarrisonBuildingUpdate" + }, + { + "LiteralName": "GARRISON_FOLLOWER_ADDED", + "Payload": [ + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerDbID" }, + { "Nilable": false, "Type": "cstring", "Name": "followerName" }, + { "Nilable": false, "Type": "cstring", "Name": "followerClassName" }, + { "Nilable": false, "Type": "number", "Name": "followerLevel" }, + { "Nilable": false, "Type": "number", "Name": "followerQuality" }, + { "Nilable": false, "Type": "bool", "Name": "isUpgraded" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "number", "Name": "followerTypeID" } + ], + "Type": "Event", + "Name": "GarrisonFollowerAdded" + }, + { + "LiteralName": "GARRISON_FOLLOWER_CATEGORIES_UPDATED", + "Type": "Event", + "Name": "GarrisonFollowerCategoriesUpdated" + }, + { + "LiteralName": "GARRISON_FOLLOWER_DURABILITY_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "garrFollowerTypeID" }, + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerDbID" }, + { "Nilable": false, "Type": "number", "Name": "followerDurability" } + ], + "Type": "Event", + "Name": "GarrisonFollowerDurabilityChanged" + }, + { + "LiteralName": "GARRISON_FOLLOWER_HEALED", + "Payload": [ + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerID" } + ], + "Type": "Event", + "Name": "GarrisonFollowerHealed" + }, + { + "LiteralName": "GARRISON_FOLLOWER_LIST_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "followerTypeID" }], + "Type": "Event", + "Name": "GarrisonFollowerListUpdate" + }, + { + "LiteralName": "GARRISON_FOLLOWER_REMOVED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "followerTypeID" }], + "Type": "Event", + "Name": "GarrisonFollowerRemoved" + }, + { + "LiteralName": "GARRISON_FOLLOWER_UPGRADED", + "Payload": [ + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerDbID" } + ], + "Type": "Event", + "Name": "GarrisonFollowerUpgraded" + }, + { + "LiteralName": "GARRISON_FOLLOWER_XP_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "garrFollowerTypeID" }, + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerDbID" }, + { "Nilable": false, "Type": "number", "Name": "xpChange" }, + { "Nilable": false, "Type": "number", "Name": "oldFollowerXp" }, + { "Nilable": false, "Type": "number", "Name": "oldFollowerLevel" }, + { "Nilable": false, "Type": "number", "Name": "oldFollowerQuality" } + ], + "Type": "Event", + "Name": "GarrisonFollowerXpChanged" + }, + { + "LiteralName": "GARRISON_HIDE_LANDING_PAGE", + "Type": "Event", + "Name": "GarrisonHideLandingPage" + }, + { + "LiteralName": "GARRISON_INVASION_AVAILABLE", + "Type": "Event", + "Name": "GarrisonInvasionAvailable" + }, + { + "LiteralName": "GARRISON_INVASION_UNAVAILABLE", + "Type": "Event", + "Name": "GarrisonInvasionUnavailable" + }, + { + "LiteralName": "GARRISON_LANDINGPAGE_SHIPMENTS", + "Type": "Event", + "Name": "GarrisonLandingpageShipments" + }, + { + "LiteralName": "GARRISON_MISSION_AREA_BONUS_ADDED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "garrisonMissonBonusAbilityID" } + ], + "Type": "Event", + "Name": "GarrisonMissionAreaBonusAdded" + }, + { + "LiteralName": "GARRISON_MISSION_BONUS_ROLL_COMPLETE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "missionID" }, + { "Nilable": false, "Type": "bool", "Name": "success" } + ], + "Type": "Event", + "Name": "GarrisonMissionBonusRollComplete" + }, + { + "LiteralName": "GARRISON_MISSION_COMPLETE_RESPONSE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "missionID" }, + { "Nilable": false, "Type": "bool", "Name": "canComplete" }, + { "Nilable": false, "Type": "bool", "Name": "success" }, + { "Nilable": false, "Type": "bool", "Name": "bonusRollSuccess" }, + { + "Nilable": false, + "InnerType": "GarrisonFollowerDeathInfo", + "Type": "table", + "Name": "followerDeaths" + }, + { "Nilable": true, "Type": "AutoCombatResult", "Name": "autoCombatResult" } + ], + "Type": "Event", + "Name": "GarrisonMissionCompleteResponse" + }, + { + "LiteralName": "GARRISON_MISSION_FINISHED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "followerTypeID" }, + { "Nilable": false, "Type": "number", "Name": "missionID" } + ], + "Type": "Event", + "Name": "GarrisonMissionFinished" + }, + { + "LiteralName": "GARRISON_MISSION_LIST_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "garrFollowerTypeID" }], + "Type": "Event", + "Name": "GarrisonMissionListUpdate" + }, + { + "LiteralName": "GARRISON_MISSION_NPC_CLOSED", + "Type": "Event", + "Name": "GarrisonMissionNpcClosed" + }, + { + "LiteralName": "GARRISON_MISSION_NPC_OPENED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "followerTypeID" }], + "Type": "Event", + "Name": "GarrisonMissionNpcOpened" + }, + { + "LiteralName": "GARRISON_MISSION_REWARD_INFO", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "missionID" }, + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerDbID" } + ], + "Type": "Event", + "Name": "GarrisonMissionRewardInfo" + }, + { + "LiteralName": "GARRISON_MISSION_STARTED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "garrFollowerTypeID" }, + { "Nilable": false, "Type": "number", "Name": "missionID" } + ], + "Type": "Event", + "Name": "GarrisonMissionStarted" + }, + { + "LiteralName": "GARRISON_MONUMENT_CLOSE_UI", + "Type": "Event", + "Name": "GarrisonMonumentCloseUi" + }, + { + "LiteralName": "GARRISON_MONUMENT_LIST_LOADED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Type": "Event", + "Name": "GarrisonMonumentListLoaded" + }, + { + "LiteralName": "GARRISON_MONUMENT_REPLACED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Type": "Event", + "Name": "GarrisonMonumentReplaced" + }, + { + "LiteralName": "GARRISON_MONUMENT_SELECTED_TROPHY_ID_LOADED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Type": "Event", + "Name": "GarrisonMonumentSelectedTrophyIdLoaded" + }, + { + "LiteralName": "GARRISON_MONUMENT_SHOW_UI", + "Type": "Event", + "Name": "GarrisonMonumentShowUi" + }, + { + "LiteralName": "GARRISON_RANDOM_MISSION_ADDED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "followerTypeID" }, + { "Nilable": false, "Type": "number", "Name": "missionID" } + ], + "Type": "Event", + "Name": "GarrisonRandomMissionAdded" + }, + { + "LiteralName": "GARRISON_RECALL_PORTAL_LAST_USED_TIME", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "success" }, + { "Nilable": false, "Type": "number", "Name": "recallPortalLastUsedTime" } + ], + "Type": "Event", + "Name": "GarrisonRecallPortalLastUsedTime" + }, + { + "LiteralName": "GARRISON_RECALL_PORTAL_USED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Type": "Event", + "Name": "GarrisonRecallPortalUsed" + }, + { + "LiteralName": "GARRISON_RECRUIT_FOLLOWER_RESULT", + "Type": "Event", + "Name": "GarrisonRecruitFollowerResult" + }, + { + "LiteralName": "GARRISON_RECRUITMENT_FOLLOWERS_GENERATED", + "Type": "Event", + "Name": "GarrisonRecruitmentFollowersGenerated" + }, + { + "LiteralName": "GARRISON_RECRUITMENT_NPC_CLOSED", + "Type": "Event", + "Name": "GarrisonRecruitmentNpcClosed" + }, + { + "LiteralName": "GARRISON_RECRUITMENT_NPC_OPENED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "followerTypeID" }], + "Type": "Event", + "Name": "GarrisonRecruitmentNpcOpened" + }, + { + "LiteralName": "GARRISON_RECRUITMENT_READY", + "Type": "Event", + "Name": "GarrisonRecruitmentReady" + }, + { + "LiteralName": "GARRISON_SHIPMENT_RECEIVED", + "Type": "Event", + "Name": "GarrisonShipmentReceived" + }, + { + "LiteralName": "GARRISON_SHIPYARD_NPC_CLOSED", + "Type": "Event", + "Name": "GarrisonShipyardNpcClosed" + }, + { + "LiteralName": "GARRISON_SHIPYARD_NPC_OPENED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "followerTypeID" }], + "Type": "Event", + "Name": "GarrisonShipyardNpcOpened" + }, + { + "LiteralName": "GARRISON_SHOW_LANDING_PAGE", + "Type": "Event", + "Name": "GarrisonShowLandingPage" + }, + { + "LiteralName": "GARRISON_SPEC_GROUP_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "garrTypeID" }, + { "Nilable": false, "Type": "number", "Name": "specID" } + ], + "Type": "Event", + "Name": "GarrisonSpecGroupUpdated" + }, + { + "LiteralName": "GARRISON_SPEC_GROUPS_CLEARED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "garrTypeID" }], + "Type": "Event", + "Name": "GarrisonSpecGroupsCleared" + }, + { + "LiteralName": "GARRISON_TALENT_COMPLETE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "garrTypeID" }, + { "Nilable": false, "Type": "bool", "Name": "doAlert" } + ], + "Type": "Event", + "Name": "GarrisonTalentComplete" + }, + { + "LiteralName": "GARRISON_TALENT_EVENT_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "eventType" }, + { "Nilable": false, "Type": "number", "Name": "eventID" } + ], + "Type": "Event", + "Name": "GarrisonTalentEventUpdate" + }, + { + "LiteralName": "GARRISON_TALENT_NPC_CLOSED", + "Type": "Event", + "Name": "GarrisonTalentNpcClosed" + }, + { + "LiteralName": "GARRISON_TALENT_NPC_OPENED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "garrisonTypeID" }, + { "Nilable": false, "Type": "number", "Name": "garrisonTalentTreeID" } + ], + "Type": "Event", + "Name": "GarrisonTalentNpcOpened" + }, + { + "LiteralName": "GARRISON_TALENT_RESEARCH_STARTED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "garrTypeID" }, + { "Nilable": false, "Type": "number", "Name": "garrisonTalentTreeID" }, + { "Nilable": false, "Type": "number", "Name": "garrTalentID" } + ], + "Type": "Event", + "Name": "GarrisonTalentResearchStarted" + }, + { + "LiteralName": "GARRISON_TALENT_UNLOCKS_RESULT", + "Type": "Event", + "Name": "GarrisonTalentUnlocksResult" + }, + { + "LiteralName": "GARRISON_TALENT_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "garrTypeID" }], + "Type": "Event", + "Name": "GarrisonTalentUpdate" + }, + { + "LiteralName": "GARRISON_TRADESKILL_NPC_CLOSED", + "Type": "Event", + "Name": "GarrisonTradeskillNpcClosed" + }, + { "LiteralName": "GARRISON_UPDATE", "Type": "Event", "Name": "GarrisonUpdate" }, + { + "LiteralName": "GARRISON_UPGRADEABLE_RESULT", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "garrisonUpgradeable" }], + "Type": "Event", + "Name": "GarrisonUpgradeableResult" + }, + { + "LiteralName": "GARRISON_USE_PARTY_GARRISON_CHANGED", + "Type": "Event", + "Name": "GarrisonUsePartyGarrisonChanged" + }, + { + "LiteralName": "SHIPMENT_CRAFTER_CLOSED", + "Type": "Event", + "Name": "ShipmentCrafterClosed" + }, + { + "LiteralName": "SHIPMENT_CRAFTER_INFO", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "success" }, + { "Nilable": false, "Type": "number", "Name": "shipmentCount" }, + { "Nilable": false, "Type": "number", "Name": "maxShipments" }, + { "Nilable": false, "Type": "number", "Name": "ownedShipments" }, + { "Nilable": false, "Type": "number", "Name": "plotInstanceID" } + ], + "Type": "Event", + "Name": "ShipmentCrafterInfo" + }, + { + "LiteralName": "SHIPMENT_CRAFTER_OPENED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "charShipmentContainerID" } + ], + "Type": "Event", + "Name": "ShipmentCrafterOpened" + }, + { + "LiteralName": "SHIPMENT_CRAFTER_REAGENT_UPDATE", + "Type": "Event", + "Name": "ShipmentCrafterReagentUpdate" + }, + { + "LiteralName": "SHIPMENT_UPDATE", + "Payload": [ + { "Nilable": true, "Type": "bool", "Name": "shipmentStarted" }, + { "Nilable": true, "Type": "bool", "Name": "hasAttachedFollower" } + ], + "Type": "Event", + "Name": "ShipmentUpdate" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "damageClassValue" }, + { "Nilable": false, "Type": "cstring", "Name": "locString" } + ], + "Type": "Structure", + "Name": "AutoCombatDamageClassString" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "winner" }, + { + "Nilable": false, + "InnerType": "AutoMissionRound", + "Type": "table", + "Name": "combatLog" + } + ], + "Type": "Structure", + "Name": "AutoCombatResult" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "autoCombatSpellID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "cooldown" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "number", "Name": "schoolMask" }, + { "Nilable": false, "Type": "number", "Name": "previewMask" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "spellTutorialFlag" }, + { "Nilable": false, "Type": "bool", "Name": "hasThornsEffect" } + ], + "Type": "Structure", + "Name": "AutoCombatSpellInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerID" }, + { "Nilable": false, "Type": "GarrisonFollower", "Name": "garrFollowerID" }, + { "Nilable": false, "Type": "number", "Name": "followerTypeID" }, + { + "Nilable": false, + "InnerType": "FollowerDisplayID", + "Type": "table", + "Name": "displayIDs" + }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "number", "Name": "quality" }, + { "Nilable": false, "Type": "number", "Name": "levelXP" }, + { "Nilable": false, "Type": "number", "Name": "maxXP" }, + { "Nilable": false, "Type": "number", "Name": "height" }, + { "Nilable": false, "Type": "number", "Name": "scale" }, + { "Nilable": true, "Type": "number", "Name": "displayScale" }, + { "Nilable": true, "Type": "number", "Name": "displayHeight" }, + { "Nilable": true, "Type": "number", "Name": "classSpec" }, + { "Nilable": true, "Type": "string", "Name": "className" }, + { "Nilable": true, "Type": "string", "Name": "flavorText" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "classAtlas" }, + { "Nilable": false, "Type": "fileID", "Name": "portraitIconID" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "bool", "Name": "isTroop" }, + { "Nilable": false, "Type": "number", "Name": "raceID" }, + { "Nilable": false, "Type": "number", "Name": "health" }, + { "Nilable": false, "Type": "number", "Name": "maxHealth" }, + { "Nilable": false, "Type": "number", "Name": "role" }, + { "Nilable": false, "Type": "bool", "Name": "isAutoTroop" }, + { "Nilable": false, "Type": "bool", "Name": "isSoulbind" }, + { "Nilable": false, "Type": "bool", "Name": "isCollected" }, + { + "Nilable": false, + "Type": "FollowerAutoCombatStatsInfo", + "Name": "autoCombatStats" + } + ], + "Type": "Structure", + "Name": "AutoCombatTroopInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "boardIndex" }, + { "Nilable": false, "Type": "number", "Name": "oldHealth" }, + { "Nilable": false, "Type": "number", "Name": "newHealth" }, + { "Nilable": false, "Type": "number", "Name": "maxHealth" }, + { "Nilable": true, "Type": "number", "Name": "points" } + ], + "Type": "Structure", + "Name": "AutoMissionCombatEventInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { + "Nilable": false, + "Type": "AutoCombatSpellInfo", + "Name": "autoCombatSpellInfo" + } + ], + "Type": "Structure", + "Name": "AutoMissionEnvironmentEffect" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "schoolMask" }, + { "Nilable": false, "Type": "number", "Name": "effectIndex" }, + { "Nilable": false, "Type": "number", "Name": "casterBoardIndex" }, + { "Nilable": false, "Type": "number", "Name": "auraType" }, + { + "Nilable": false, + "InnerType": "AutoMissionCombatEventInfo", + "Type": "table", + "Name": "targetInfo" + } + ], + "Type": "Structure", + "Name": "AutoMissionEvent" + }, + { + "Fields": [ + { + "Nilable": false, + "InnerType": "AutoMissionEvent", + "Type": "table", + "Name": "events" + } + ], + "Type": "Structure", + "Name": "AutoMissionRound" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "targetIndex" }, + { "Nilable": false, "Type": "number", "Name": "previewType" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "effectIndex" } + ], + "Type": "Structure", + "Name": "AutoMissionTargetingInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "currentHealth" }, + { "Nilable": false, "Type": "number", "Name": "maxHealth" }, + { "Nilable": false, "Type": "number", "Name": "attack" }, + { "Nilable": false, "Type": "time_t", "Name": "healingTimestamp" }, + { "Nilable": false, "Type": "number", "Name": "healCost" }, + { "Nilable": false, "Type": "number", "Name": "minutesHealingRemaining" } + ], + "Type": "Structure", + "Name": "FollowerAutoCombatStatsInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "number", "Name": "followerPageScale" }, + { "Nilable": false, "Type": "bool", "Name": "showWeapon" } + ], + "Type": "Structure", + "Name": "FollowerDisplayID" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { + "Nilable": false, + "InnerType": "FollowerDisplayID", + "Type": "table", + "Name": "displayIDs" + }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "number", "Name": "quality" }, + { "Nilable": false, "Type": "number", "Name": "currentXP" }, + { "Nilable": false, "Type": "number", "Name": "maxXP" }, + { "Nilable": false, "Type": "number", "Name": "height" }, + { "Nilable": false, "Type": "number", "Name": "scale" }, + { "Nilable": true, "Type": "number", "Name": "movementType" }, + { "Nilable": true, "Type": "number", "Name": "impactDelay" }, + { "Nilable": true, "Type": "number", "Name": "castID" }, + { "Nilable": true, "Type": "number", "Name": "castSoundID" }, + { "Nilable": true, "Type": "number", "Name": "impactID" }, + { "Nilable": true, "Type": "number", "Name": "impactSoundID" }, + { "Nilable": true, "Type": "number", "Name": "targetImpactID" }, + { "Nilable": true, "Type": "number", "Name": "targetImpactSoundID" }, + { "Nilable": true, "Type": "string", "Name": "className" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "classAtlas" }, + { "Nilable": false, "Type": "fileID", "Name": "portraitIconID" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "bool", "Name": "isTroop" }, + { "Nilable": false, "Type": "number", "Name": "boardIndex" }, + { "Nilable": false, "Type": "number", "Name": "health" }, + { "Nilable": false, "Type": "number", "Name": "maxHealth" }, + { "Nilable": false, "Type": "number", "Name": "role" } + ], + "Type": "Structure", + "Name": "FollowerMissionCompleteInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "factor" }, + { "Nilable": false, "Type": "cstring", "Name": "description" } + ], + "Type": "Structure", + "Name": "GarrisonAbilityCounterInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "bool", "Name": "isTrait" }, + { "Nilable": false, "Type": "bool", "Name": "isSpecialization" }, + { "Nilable": false, "Type": "bool", "Name": "temporary" }, + { "Nilable": true, "Type": "string", "Name": "category" }, + { + "Nilable": false, + "InnerType": "GarrisonAbilityCounterInfo", + "Type": "table", + "Name": "counters" + }, + { "Nilable": false, "Type": "bool", "Name": "isEmptySlot" } + ], + "Type": "Structure", + "Name": "GarrisonAbilityInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "displayID" }, + { "Nilable": false, "Type": "fileID", "Name": "portraitFileDataID" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "number", "Name": "scale" }, + { "Nilable": false, "Type": "number", "Name": "height" }, + { + "Nilable": false, + "InnerType": "GarrisonMechanicInfo", + "Type": "table", + "Name": "mechanics" + }, + { + "Nilable": false, + "InnerType": "AutoCombatSpellInfo", + "Type": "table", + "Name": "autoCombatSpells" + }, + { + "Nilable": true, + "Type": "AutoCombatSpellInfo", + "Name": "autoCombatAutoAttack" + }, + { "Nilable": false, "Type": "number", "Name": "role" }, + { "Nilable": false, "Type": "number", "Name": "health" }, + { "Nilable": false, "Type": "number", "Name": "maxHealth" }, + { "Nilable": false, "Type": "number", "Name": "attack" }, + { "Nilable": false, "Type": "number", "Name": "boardIndex" }, + { "Nilable": false, "Type": "bool", "Name": "isElite" } + ], + "Type": "Structure", + "Name": "GarrisonEnemyEncounterInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "GarrisonFollower", "Name": "followerID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "state" } + ], + "Type": "Structure", + "Name": "GarrisonFollowerDeathInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "mechanicTypeID" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "factor" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": true, "Type": "GarrisonAbilityInfo", "Name": "ability" } + ], + "Type": "Structure", + "Name": "GarrisonMechanicInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "buildingPlotInstanceID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "atlasName" } + ], + "Type": "Structure", + "Name": "GarrisonPlotInstanceMapInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "location" }, + { "Nilable": false, "Type": "number", "Name": "xp" }, + { "Nilable": true, "Type": "string", "Name": "environment" }, + { "Nilable": true, "Type": "string", "Name": "environmentDesc" }, + { "Nilable": false, "Type": "fileID", "Name": "environmentTexture" }, + { "Nilable": false, "Type": "textureKit", "Name": "locTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "isExhausting" }, + { + "Nilable": false, + "InnerType": "GarrisonEnemyEncounterInfo", + "Type": "table", + "Name": "enemies" + } + ], + "Type": "Structure", + "Name": "MissionDeploymentInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "fileID", "Name": "portraitFileDataID" }, + { "Nilable": false, "Type": "number", "Name": "missionScalar" }, + { "Nilable": false, "Type": "bool", "Name": "isElite" }, + { "Nilable": false, "Type": "bool", "Name": "isRare" } + ], + "Type": "Structure", + "Name": "MissionEncounterIconInfo" + } + ] + }, + { + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "factor" } + ], + "Type": "Structure", + "Name": "GarrisonAbilityEffect" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "icon" }, + { "Nilable": false, "Type": "bool", "Name": "isTrait" }, + { "Nilable": false, "Type": "bool", "Name": "isSpecialization" }, + { "Nilable": false, "Type": "bool", "Name": "temporary" }, + { "Nilable": true, "Type": "cstring", "Name": "category" }, + { + "Nilable": false, + "InnerType": "GarrisonAbilityEffect", + "Type": "table", + "Name": "counters" + }, + { "Nilable": false, "Type": "bool", "Name": "isEmptySlot" } + ], + "Type": "Structure", + "Name": "GarrisonFollowerAbilityInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "currencyType" }, + { "Nilable": false, "Type": "number", "Name": "currencyQuantity" } + ], + "Type": "Structure", + "Name": "GarrisonTalentCurrencyCostInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "GarrisonFollowerAbilityInfo", "Name": "ability" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "tier" }, + { "Nilable": false, "Type": "number", "Name": "uiOrder" }, + { "Nilable": false, "Type": "number", "Name": "type" }, + { "Nilable": true, "Type": "number", "Name": "prerequisiteTalentID" }, + { "Nilable": false, "Type": "bool", "Name": "selected" }, + { "Nilable": false, "Type": "bool", "Name": "researched" }, + { "Nilable": false, "Type": "bool", "Name": "ignoreTalent" }, + { "Nilable": false, "Type": "time_t", "Name": "researchDuration" }, + { "Nilable": false, "Type": "time_t", "Name": "startTime" }, + { "Nilable": false, "Type": "time_t", "Name": "timeRemaining" }, + { "Nilable": false, "Type": "number", "Name": "researchGoldCost" }, + { + "Nilable": false, + "InnerType": "GarrisonTalentCurrencyCostInfo", + "Type": "table", + "Name": "researchCurrencyCosts" + }, + { + "Nilable": false, + "Type": "GarrisonTalentAvailability", + "Name": "talentAvailability" + }, + { "Nilable": false, "Type": "number", "Name": "talentRank" }, + { "Nilable": false, "Type": "number", "Name": "talentMaxRank" }, + { "Nilable": false, "Type": "bool", "Name": "isBeingResearched" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "perkSpellID" }, + { "Nilable": true, "Type": "string", "Name": "researchDescription" }, + { "Nilable": true, "Type": "string", "Name": "playerConditionReason" }, + { "Nilable": false, "Type": "GarrisonTalentSocketInfo", "Name": "socketInfo" }, + { "Nilable": false, "Type": "number", "Name": "treeID" } + ], + "Type": "Structure", + "Name": "GarrisonTalentInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "socketType" }, + { "Nilable": false, "Type": "number", "Name": "socketSubtype" }, + { "Nilable": false, "Type": "number", "Name": "misc0" }, + { "Nilable": false, "Type": "number", "Name": "misc1" } + ], + "Type": "Structure", + "Name": "GarrisonTalentSocketInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "treeID" }, + { "Nilable": false, "Type": "cstring", "Name": "title" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { + "Nilable": false, + "InnerType": "GarrisonTalentInfo", + "Type": "table", + "Name": "talents" + }, + { "Nilable": false, "Type": "bool", "Name": "isClassAgnostic" }, + { "Nilable": false, "Type": "bool", "Name": "isThemed" }, + { "Nilable": false, "Type": "number", "Name": "featureType" }, + { "Nilable": false, "Type": "number", "Name": "featureSubtype" } + ], + "Type": "Structure", + "Name": "GarrisonTalentTreeInfo" + } + ] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isOnGlueScreen" }], + "Type": "Function", + "Name": "IsOnGlueScreen" + } + ], + "Type": "System", + "Name": "Glue", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_GlyphInfo", + "Functions": [], + "Type": "System", + "Name": "GlyphInfo", + "Events": [ + { + "LiteralName": "ACTIVATE_GLYPH", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Event", + "Name": "ActivateGlyph" + }, + { "LiteralName": "CANCEL_GLYPH_CAST", "Type": "Event", "Name": "CancelGlyphCast" }, + { + "LiteralName": "USE_GLYPH", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Event", + "Name": "UseGlyph" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "GossipNpcOption", + "Fields": [ + { "EnumValue": 0, "Type": "GossipNpcOption", "Name": "None" }, + { "EnumValue": 1, "Type": "GossipNpcOption", "Name": "Vendor" }, + { "EnumValue": 2, "Type": "GossipNpcOption", "Name": "Taxinode" }, + { "EnumValue": 3, "Type": "GossipNpcOption", "Name": "Trainer" }, + { "EnumValue": 4, "Type": "GossipNpcOption", "Name": "SpiritHealer" }, + { "EnumValue": 5, "Type": "GossipNpcOption", "Name": "Binder" }, + { "EnumValue": 6, "Type": "GossipNpcOption", "Name": "Banker" }, + { "EnumValue": 7, "Type": "GossipNpcOption", "Name": "PetitionVendor" }, + { "EnumValue": 8, "Type": "GossipNpcOption", "Name": "GuildTabardVendor" }, + { "EnumValue": 9, "Type": "GossipNpcOption", "Name": "Battlemaster" }, + { "EnumValue": 10, "Type": "GossipNpcOption", "Name": "Auctioneer" }, + { "EnumValue": 11, "Type": "GossipNpcOption", "Name": "TalentMaster" }, + { "EnumValue": 12, "Type": "GossipNpcOption", "Name": "Stablemaster" }, + { + "EnumValue": 13, + "Type": "GossipNpcOption", + "Name": "PetSpecializationMaster" + }, + { "EnumValue": 14, "Type": "GossipNpcOption", "Name": "GuildBanker" }, + { "EnumValue": 15, "Type": "GossipNpcOption", "Name": "Spellclick" }, + { "EnumValue": 16, "Type": "GossipNpcOption", "Name": "DisableXPGain" }, + { "EnumValue": 17, "Type": "GossipNpcOption", "Name": "EnableXPGain" }, + { "EnumValue": 18, "Type": "GossipNpcOption", "Name": "Mailbox" }, + { "EnumValue": 19, "Type": "GossipNpcOption", "Name": "WorldPvPQueue" }, + { "EnumValue": 20, "Type": "GossipNpcOption", "Name": "LFGDungeon" }, + { "EnumValue": 21, "Type": "GossipNpcOption", "Name": "ArtifactRespec" }, + { "EnumValue": 22, "Type": "GossipNpcOption", "Name": "CemeterySelect" }, + { "EnumValue": 23, "Type": "GossipNpcOption", "Name": "SpecializationMaster" }, + { "EnumValue": 24, "Type": "GossipNpcOption", "Name": "GlyphMaster" }, + { "EnumValue": 25, "Type": "GossipNpcOption", "Name": "QueueScenario" }, + { "EnumValue": 26, "Type": "GossipNpcOption", "Name": "GarrisonArchitect" }, + { "EnumValue": 27, "Type": "GossipNpcOption", "Name": "GarrisonMissionNpc" }, + { "EnumValue": 28, "Type": "GossipNpcOption", "Name": "ShipmentCrafter" }, + { "EnumValue": 29, "Type": "GossipNpcOption", "Name": "GarrisonTradeskillNpc" }, + { "EnumValue": 30, "Type": "GossipNpcOption", "Name": "GarrisonRecruitment" }, + { "EnumValue": 31, "Type": "GossipNpcOption", "Name": "AdventureMap" }, + { "EnumValue": 32, "Type": "GossipNpcOption", "Name": "GarrisonTalent" }, + { "EnumValue": 33, "Type": "GossipNpcOption", "Name": "ContributionCollector" }, + { "EnumValue": 34, "Type": "GossipNpcOption", "Name": "Transmogrify" }, + { "EnumValue": 35, "Type": "GossipNpcOption", "Name": "AzeriteRespec" }, + { "EnumValue": 36, "Type": "GossipNpcOption", "Name": "IslandsMissionNpc" }, + { "EnumValue": 37, "Type": "GossipNpcOption", "Name": "UIItemInteraction" }, + { "EnumValue": 38, "Type": "GossipNpcOption", "Name": "WorldMap" }, + { "EnumValue": 39, "Type": "GossipNpcOption", "Name": "Soulbind" }, + { "EnumValue": 40, "Type": "GossipNpcOption", "Name": "ChromieTimeNpc" }, + { "EnumValue": 41, "Type": "GossipNpcOption", "Name": "CovenantPreviewNpc" }, + { + "EnumValue": 42, + "Type": "GossipNpcOption", + "Name": "RuneforgeLegendaryCrafting" + }, + { "EnumValue": 43, "Type": "GossipNpcOption", "Name": "NewPlayerGuide" }, + { + "EnumValue": 44, + "Type": "GossipNpcOption", + "Name": "RuneforgeLegendaryUpgrade" + }, + { "EnumValue": 45, "Type": "GossipNpcOption", "Name": "CovenantRenownNpc" }, + { + "EnumValue": 46, + "Type": "GossipNpcOption", + "Name": "BlackMarketAuctionHouse" + }, + { "EnumValue": 47, "Type": "GossipNpcOption", "Name": "PerksProgramVendor" }, + { + "EnumValue": 48, + "Type": "GossipNpcOption", + "Name": "ProfessionsCraftingOrder" + }, + { "EnumValue": 49, "Type": "GossipNpcOption", "Name": "ProfessionsOpen" }, + { + "EnumValue": 50, + "Type": "GossipNpcOption", + "Name": "ProfessionsCustomerOrder" + }, + { "EnumValue": 51, "Type": "GossipNpcOption", "Name": "TraitSystem" }, + { "EnumValue": 52, "Type": "GossipNpcOption", "Name": "BarbersChoice" }, + { "EnumValue": 53, "Type": "GossipNpcOption", "Name": "MajorFactionRenown" }, + { "EnumValue": 54, "Type": "GossipNpcOption", "Name": "PersonalTabardVendor" }, + { "EnumValue": 55, "Type": "GossipNpcOption", "Name": "ForgeMaster" }, + { "EnumValue": 56, "Type": "GossipNpcOption", "Name": "CharacterBanker" }, + { "EnumValue": 57, "Type": "GossipNpcOption", "Name": "AccountBanker" } + ], + "MaxValue": 57, + "MinValue": 0, + "NumValues": 58 + }, + { + "Type": "Enumeration", + "Name": "GossipNpcOptionDisplayFlags", + "Fields": [ + { + "EnumValue": 1, + "Type": "GossipNpcOptionDisplayFlags", + "Name": "ForceInteractionOnSingleChoice" + } + ], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "GossipOptionRecFlags", + "Fields": [ + { "EnumValue": 1, "Type": "GossipOptionRecFlags", "Name": "QuestLabelPrepend" }, + { + "EnumValue": 2, + "Type": "GossipOptionRecFlags", + "Name": "HideOptionIDFromClient" + } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + } + ] + }, + { + "Namespace": "C_GossipInfo", + "Functions": [ + { "Type": "Function", "Name": "CloseGossip" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "forceGossip" }], + "Type": "Function", + "Name": "ForceGossip" + }, + { + "Returns": [{ "Nilable": false, "Type": "GossipOptionUIInfo", "Name": "gossip" }], + "Type": "Function", + "Name": "GetActiveDelveGossip" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "GossipQuestUIInfo", + "Type": "table", + "Name": "info" + } + ], + "Type": "Function", + "Name": "GetActiveQuests" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "GossipQuestUIInfo", + "Type": "table", + "Name": "info" + } + ], + "Type": "Function", + "Name": "GetAvailableQuests" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "description" }], + "Type": "Function", + "Name": "GetCompletedOptionDescriptionString" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "description" }], + "Type": "Function", + "Name": "GetCustomGossipDescriptionString" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "FriendshipReputationInfo", + "Name": "reputationInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "friendshipFactionID" } + ], + "Type": "Function", + "Name": "GetFriendshipReputation" + }, + { + "Returns": [ + { "Nilable": false, "Type": "FriendshipReputationRankInfo", "Name": "rankInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "friendshipFactionID" } + ], + "Type": "Function", + "Name": "GetFriendshipReputationRanks" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "mapID" }], + "Type": "Function", + "Name": "GetGossipDelveMapID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numQuests" }], + "Type": "Function", + "Name": "GetNumActiveQuests" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numQuests" }], + "Type": "Function", + "Name": "GetNumAvailableQuests" + }, + { + "Returns": [ + { + "Nilable": true, + "InnerType": "GossipOptionUIWidgetSetAndType", + "Type": "table", + "Name": "gossipOptionUIWidgetSetsAndTypes" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "gossipOptionID" }], + "Type": "Function", + "Name": "GetOptionUIWidgetSetsAndTypesByOptionID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "GossipOptionUIInfo", + "Type": "table", + "Name": "info" + } + ], + "Type": "Function", + "Name": "GetOptions" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "gossipPoiID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetPoiForUiMapID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "GossipPoiInfo", "Name": "gossipPoiInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { "Nilable": false, "Type": "number", "Name": "gossipPoiID" } + ], + "Type": "Function", + "Name": "GetPoiInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "gossipText" }], + "Type": "Function", + "Name": "GetText" + }, + { "Type": "Function", "Name": "RefreshOptions" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "optionID" }], + "Type": "Function", + "Name": "SelectActiveQuest" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "optionID" }], + "Type": "Function", + "Name": "SelectAvailableQuest" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "optionID" }, + { "Nilable": true, "Type": "cstring", "Name": "text" }, + { "Nilable": true, "Type": "bool", "Name": "confirmed" } + ], + "Type": "Function", + "Name": "SelectOption" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "optionID" }, + { "Nilable": true, "Type": "cstring", "Name": "text" }, + { "Nilable": true, "Type": "bool", "Name": "confirmed" } + ], + "Type": "Function", + "Name": "SelectOptionByIndex" + } + ], + "Type": "System", + "Name": "GossipInfo", + "Events": [ + { + "LiteralName": "DYNAMIC_GOSSIP_POI_UPDATED", + "Type": "Event", + "Name": "DynamicGossipPoiUpdated" + }, + { + "LiteralName": "GOSSIP_CLOSED", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "interactionIsContinuing" } + ], + "Type": "Event", + "Name": "GossipClosed" + }, + { + "LiteralName": "GOSSIP_CONFIRM", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "gossipID" }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "number", "Name": "cost" } + ], + "Type": "Event", + "Name": "GossipConfirm" + }, + { + "LiteralName": "GOSSIP_CONFIRM_CANCEL", + "Type": "Event", + "Name": "GossipConfirmCancel" + }, + { + "LiteralName": "GOSSIP_ENTER_CODE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "gossipID" }], + "Type": "Event", + "Name": "GossipEnterCode" + }, + { + "LiteralName": "GOSSIP_OPTIONS_REFRESHED", + "Type": "Event", + "Name": "GossipOptionsRefreshed" + }, + { + "LiteralName": "GOSSIP_SHOW", + "Payload": [{ "Nilable": true, "Type": "textureKit", "Name": "uiTextureKit" }], + "Type": "Event", + "Name": "GossipShow" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "GossipOptionRewardType", + "Fields": [ + { "EnumValue": 0, "Type": "GossipOptionRewardType", "Name": "Item" }, + { "EnumValue": 1, "Type": "GossipOptionRewardType", "Name": "Currency" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "GossipOptionStatus", + "Fields": [ + { "EnumValue": 0, "Type": "GossipOptionStatus", "Name": "Available" }, + { "EnumValue": 1, "Type": "GossipOptionStatus", "Name": "Unavailable" }, + { "EnumValue": 2, "Type": "GossipOptionStatus", "Name": "Locked" }, + { "EnumValue": 3, "Type": "GossipOptionStatus", "Name": "AlreadyComplete" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "GossipOptionUIWidgetSetTypes", + "Fields": [ + { "EnumValue": 0, "Type": "GossipOptionUIWidgetSetTypes", "Name": "Modifiers" }, + { "EnumValue": 1, "Type": "GossipOptionUIWidgetSetTypes", "Name": "Background" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "friendshipFactionID" }, + { "Nilable": false, "Type": "number", "Name": "standing" }, + { "Nilable": false, "Type": "number", "Name": "maxRep" }, + { "Nilable": true, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "number", "Name": "texture" }, + { "Nilable": false, "Type": "string", "Name": "reaction" }, + { "Nilable": false, "Type": "number", "Name": "reactionThreshold" }, + { "Nilable": true, "Type": "number", "Name": "nextThreshold" }, + { "Nilable": false, "Type": "bool", "Name": "reversedColor" }, + { "Nilable": true, "Type": "number", "Name": "overrideColor" } + ], + "Type": "Structure", + "Name": "FriendshipReputationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "currentLevel" }, + { "Nilable": false, "Type": "number", "Name": "maxLevel" } + ], + "Type": "Structure", + "Name": "FriendshipReputationRankInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "GossipOptionRewardType", "Name": "rewardType" } + ], + "Type": "Structure", + "Name": "GossipOptionRewardInfo" + }, + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "gossipOptionID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { + "Nilable": false, + "InnerType": "GossipOptionRewardInfo", + "Type": "table", + "Name": "rewards" + }, + { "Nilable": false, "Type": "GossipOptionStatus", "Name": "status" }, + { "Nilable": true, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "flags" }, + { "Nilable": true, "Type": "fileID", "Name": "overrideIconID" }, + { "Nilable": false, "Type": "bool", "Name": "selectOptionWhenOnlyOption" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": true, "Type": "string", "Name": "failureDescription" } + ], + "Type": "Structure", + "Name": "GossipOptionUIInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "widgetType" }, + { "Nilable": false, "Type": "number", "Name": "uiWidgetSetID" } + ], + "Type": "Structure", + "Name": "GossipOptionUIWidgetSetAndType" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "textureIndex" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { "Nilable": false, "Type": "bool", "Name": "inBattleMap" } + ], + "Type": "Structure", + "Name": "GossipPoiInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "title" }, + { "Nilable": false, "Type": "number", "Name": "questLevel" }, + { "Nilable": false, "Type": "bool", "Name": "isTrivial" }, + { "Nilable": true, "Type": "number", "Name": "frequency" }, + { "Nilable": true, "Type": "bool", "Name": "repeatable" }, + { "Nilable": true, "Type": "bool", "Name": "isComplete" }, + { "Nilable": false, "Type": "bool", "Name": "isLegendary" }, + { "Nilable": false, "Type": "bool", "Name": "isIgnored" }, + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "bool", "Name": "isImportant" }, + { "Nilable": false, "Type": "bool", "Name": "isMeta" } + ], + "Type": "Structure", + "Name": "GossipQuestUIInfo" + } + ] + }, + { + "Namespace": "C_GuildBank", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsGuildBankEnabled" + } + ], + "Type": "System", + "Name": "GuildBank", + "Events": [ + { + "LiteralName": "GUILDBANK_ITEM_LOCK_CHANGED", + "Type": "Event", + "Name": "GuildbankItemLockChanged" + }, + { + "LiteralName": "GUILDBANK_TEXT_CHANGED", + "Payload": [{ "Nilable": false, "Type": "luaIndex", "Name": "guildBankTab" }], + "Type": "Event", + "Name": "GuildbankTextChanged" + }, + { + "LiteralName": "GUILDBANK_UPDATE_MONEY", + "Type": "Event", + "Name": "GuildbankUpdateMoney" + }, + { + "LiteralName": "GUILDBANK_UPDATE_TABS", + "Type": "Event", + "Name": "GuildbankUpdateTabs" + }, + { + "LiteralName": "GUILDBANK_UPDATE_TEXT", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "guildBankTab" }], + "Type": "Event", + "Name": "GuildbankUpdateText" + }, + { + "LiteralName": "GUILDBANK_UPDATE_WITHDRAWMONEY", + "Type": "Event", + "Name": "GuildbankUpdateWithdrawmoney" + }, + { + "LiteralName": "GUILDBANKBAGSLOTS_CHANGED", + "Type": "Event", + "Name": "GuildbankbagslotsChanged" + }, + { + "LiteralName": "GUILDBANKFRAME_CLOSED", + "Type": "Event", + "Name": "GuildbankframeClosed" + }, + { + "LiteralName": "GUILDBANKFRAME_OPENED", + "Type": "Event", + "Name": "GuildbankframeOpened" + }, + { + "LiteralName": "GUILDBANKLOG_UPDATE", + "Type": "Event", + "Name": "GuildbanklogUpdate" + } + ], + "Tables": [] + }, + { + "Namespace": "C_GuildInfo", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "AreGuildEventsEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canEditOfficerNote" }], + "Type": "Function", + "Name": "CanEditOfficerNote" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canSpeakInGuildChat" }], + "Type": "Function", + "Name": "CanSpeakInGuildChat" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canViewOfficerNote" }], + "Type": "Function", + "Name": "CanViewOfficerNote" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "Demote" + }, + { "Type": "Function", "Name": "Disband" }, + { + "Returns": [{ "Nilable": false, "Type": "GuildNewsInfo", "Name": "newsInfo" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetGuildNewsInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "luaIndex", "Name": "rankOrder" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "GetGuildRankOrder" + }, + { + "Returns": [{ "Nilable": true, "Type": "GuildTabardInfo", "Name": "tabardInfo" }], + "Arguments": [{ "Nilable": true, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "GetGuildTabardInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "bool", + "Type": "table", + "Name": "permissions" + } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "rankOrder" }], + "Type": "Function", + "Name": "GuildControlGetRankFlags" + }, + { "Type": "Function", "Name": "GuildRoster" }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "Invite" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsEncounterGuildNewsEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isOfficer" }], + "Type": "Function", + "Name": "IsGuildOfficer" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isGuildRankAssignmentAllowed" } + ], + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "luaIndex", "Name": "rankOrder" } + ], + "Type": "Function", + "Name": "IsGuildRankAssignmentAllowed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsGuildReputationEnabled" + }, + { "Type": "Function", "Name": "Leave" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "exists" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "MemberExistsByName" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "Promote" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "guildMemberGUID" }, + { "Nilable": false, "Type": "number", "Name": "skillLineID" } + ], + "Type": "Function", + "Name": "QueryGuildMemberRecipes" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "updatedRecipeSpellID" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "skillLineID" }, + { "Nilable": false, "Type": "number", "Name": "recipeSpellID" }, + { "Nilable": true, "Type": "luaIndex", "Name": "recipeLevel" } + ], + "Type": "Function", + "Name": "QueryGuildMembersForRecipe" + }, + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "RemoveFromGuild" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "luaIndex", "Name": "rankOrder" } + ], + "Type": "Function", + "Name": "SetGuildRankOrder" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "SetLeader" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "motd" }], + "Type": "Function", + "Name": "SetMOTD" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "cstring", "Name": "note" }, + { "Nilable": false, "Type": "bool", "Name": "isPublic" } + ], + "Type": "Function", + "Name": "SetNote" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "Uninvite" + } + ], + "Type": "System", + "Name": "GuildInfo", + "Events": [ + { + "LiteralName": "CLOSE_TABARD_FRAME", + "Type": "Event", + "Name": "CloseTabardFrame" + }, + { + "LiteralName": "DISABLE_DECLINE_GUILD_INVITE", + "Type": "Event", + "Name": "DisableDeclineGuildInvite" + }, + { + "LiteralName": "ENABLE_DECLINE_GUILD_INVITE", + "Type": "Event", + "Name": "EnableDeclineGuildInvite" + }, + { + "LiteralName": "GUILD_CHALLENGE_COMPLETED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "challengeType" }, + { "Nilable": false, "Type": "number", "Name": "currentCount" }, + { "Nilable": false, "Type": "number", "Name": "maxCount" }, + { "Nilable": false, "Type": "number", "Name": "goldAwarded" } + ], + "Type": "Event", + "Name": "GuildChallengeCompleted" + }, + { + "LiteralName": "GUILD_CHALLENGE_UPDATED", + "Type": "Event", + "Name": "GuildChallengeUpdated" + }, + { + "LiteralName": "GUILD_EVENT_LOG_UPDATE", + "Type": "Event", + "Name": "GuildEventLogUpdate" + }, + { + "LiteralName": "GUILD_INVITE_CANCEL", + "Type": "Event", + "Name": "GuildInviteCancel" + }, + { + "LiteralName": "GUILD_INVITE_REQUEST", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "inviter" }, + { "Nilable": false, "Type": "cstring", "Name": "guildName" }, + { "Nilable": false, "Type": "number", "Name": "guildAchievementPoints" }, + { "Nilable": false, "Type": "cstring", "Name": "oldGuildName" }, + { "Nilable": true, "Type": "bool", "Name": "isNewGuild" }, + { "Nilable": true, "Type": "GuildTabardInfo", "Name": "tabardInfo" } + ], + "Type": "Event", + "Name": "GuildInviteRequest" + }, + { + "LiteralName": "GUILD_MOTD", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "motdText" }], + "Type": "Event", + "Name": "GuildMotd" + }, + { "LiteralName": "GUILD_NEWS_UPDATE", "Type": "Event", "Name": "GuildNewsUpdate" }, + { + "LiteralName": "GUILD_PARTY_STATE_UPDATED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "inGuildParty" }], + "Type": "Event", + "Name": "GuildPartyStateUpdated" + }, + { + "LiteralName": "GUILD_RANKS_UPDATE", + "Type": "Event", + "Name": "GuildRanksUpdate" + }, + { + "LiteralName": "GUILD_RECIPE_KNOWN_BY_MEMBERS", + "Type": "Event", + "Name": "GuildRecipeKnownByMembers" + }, + { + "LiteralName": "GUILD_REGISTRAR_CLOSED", + "Type": "Event", + "Name": "GuildRegistrarClosed" + }, + { + "LiteralName": "GUILD_REGISTRAR_SHOW", + "Type": "Event", + "Name": "GuildRegistrarShow" + }, + { + "LiteralName": "GUILD_RENAME_REQUIRED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "flagSet" }], + "Type": "Event", + "Name": "GuildRenameRequired" + }, + { + "LiteralName": "GUILD_REWARDS_LIST", + "Type": "Event", + "Name": "GuildRewardsList" + }, + { + "LiteralName": "GUILD_ROSTER_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "canRequestRosterUpdate" } + ], + "Type": "Event", + "Name": "GuildRosterUpdate" + }, + { + "LiteralName": "GUILD_TRADESKILL_UPDATE", + "Type": "Event", + "Name": "GuildTradeskillUpdate" + }, + { + "LiteralName": "GUILDTABARD_UPDATE", + "Type": "Event", + "Name": "GuildtabardUpdate" + }, + { "LiteralName": "OPEN_TABARD_FRAME", "Type": "Event", "Name": "OpenTabardFrame" }, + { + "LiteralName": "PLAYER_GUILD_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "PlayerGuildUpdate" + }, + { + "LiteralName": "REQUIRED_GUILD_RENAME_RESULT", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Type": "Event", + "Name": "RequiredGuildRenameResult" + }, + { + "LiteralName": "TABARD_CANSAVE_CHANGED", + "Type": "Event", + "Name": "TabardCansaveChanged" + }, + { + "LiteralName": "TABARD_SAVE_PENDING", + "Type": "Event", + "Name": "TabardSavePending" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "isSticky" }, + { "Nilable": false, "Type": "bool", "Name": "isHeader" }, + { "Nilable": false, "Type": "number", "Name": "newsType" }, + { "Nilable": true, "Type": "string", "Name": "whoText" }, + { "Nilable": true, "Type": "string", "Name": "whatText" }, + { "Nilable": false, "Type": "number", "Name": "newsDataID" }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "data" }, + { "Nilable": false, "Type": "number", "Name": "weekday" }, + { "Nilable": false, "Type": "number", "Name": "day" }, + { "Nilable": false, "Type": "number", "Name": "month" }, + { "Nilable": false, "Type": "number", "Name": "year" }, + { "Nilable": false, "Type": "number", "Name": "guildMembersPresent" } + ], + "Type": "Structure", + "Name": "GuildNewsInfo" + } + ] + }, + { + "Tables": [ + { + "Fields": [ + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "backgroundColor" + }, + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "borderColor" + }, + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "emblemColor" + }, + { "Nilable": false, "Type": "number", "Name": "emblemFileID" }, + { "Nilable": false, "Type": "number", "Name": "emblemStyle" } + ], + "Type": "Structure", + "Name": "GuildTabardInfo" + } + ] + }, + { + "Namespace": "C_HeirloomInfo", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "areAllCollectionFiltersChecked" } + ], + "Type": "Function", + "Name": "AreAllCollectionFiltersChecked" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "areAllSourceFiltersChecked" } + ], + "Type": "Function", + "Name": "AreAllSourceFiltersChecked" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isHeirloomSourceValid" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "source" }], + "Type": "Function", + "Name": "IsHeirloomSourceValid" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isUsingDefaultFilters" } + ], + "Type": "Function", + "Name": "IsUsingDefaultFilters" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "checked" }], + "Type": "Function", + "Name": "SetAllCollectionFilters" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "checked" }], + "Type": "Function", + "Name": "SetAllSourceFilters" + }, + { "Type": "Function", "Name": "SetDefaultFilters" } + ], + "Type": "System", + "Name": "HeirloomInfo", + "Events": [ + { + "LiteralName": "HEIRLOOM_UPGRADE_TARGETING_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "pendingHeirloomUpgradeSpellcast" } + ], + "Type": "Event", + "Name": "HeirloomUpgradeTargetingChanged" + }, + { + "LiteralName": "HEIRLOOMS_UPDATED", + "Payload": [ + { "Nilable": true, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "cstring", "Name": "updateReason" }, + { "Nilable": true, "Type": "bool", "Name": "hideUntilLearned" } + ], + "Type": "Event", + "Name": "HeirloomsUpdated" + } + ], + "Tables": [] + }, + { + "Namespace": "C_ImmersiveInteraction", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "immersiveInteraction" }], + "Type": "Function", + "Name": "HasImmersiveInteraction" + } + ], + "Type": "System", + "Name": "ImmersiveInteraction", + "Events": [ + { + "LiteralName": "IMMERSIVE_INTERACTION_BEGIN", + "Type": "Event", + "Name": "ImmersiveInteractionBegin" + }, + { + "LiteralName": "IMMERSIVE_INTERACTION_END", + "Type": "Event", + "Name": "ImmersiveInteractionEnd" + } + ], + "Tables": [] + }, + { + "Namespace": "C_Navigation", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "distance" }], + "Type": "Function", + "Name": "GetDistance" + }, + { + "Returns": [{ "Nilable": true, "Type": "ScriptRegion", "Name": "frame" }], + "Type": "Function", + "Name": "GetFrame" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "unitToken" }], + "Type": "Function", + "Name": "GetNearestPartyMemberToken" + }, + { + "Returns": [{ "Nilable": false, "Type": "NavigationState", "Name": "state" }], + "Type": "Function", + "Name": "GetTargetState" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasValidScreenPosition" } + ], + "Type": "Function", + "Name": "HasValidScreenPosition" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wasClamped" }], + "Type": "Function", + "Name": "WasClampedToScreen" + } + ], + "Type": "System", + "Name": "InGameNavigation", + "Events": [ + { + "LiteralName": "NAVIGATION_FRAME_CREATED", + "Payload": [{ "Nilable": false, "Type": "ScriptRegion", "Name": "region" }], + "Type": "Event", + "Name": "NavigationFrameCreated" + }, + { + "LiteralName": "NAVIGATION_FRAME_DESTROYED", + "Type": "Event", + "Name": "NavigationFrameDestroyed" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "NavigationState", + "Fields": [ + { "EnumValue": 0, "Type": "NavigationState", "Name": "Invalid" }, + { "EnumValue": 1, "Type": "NavigationState", "Name": "Occluded" }, + { "EnumValue": 2, "Type": "NavigationState", "Name": "InRange" }, + { "EnumValue": 3, "Type": "NavigationState", "Name": "Disabled" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Namespace": "C_IncomingSummon", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "summon" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "HasIncomingSummon" + }, + { + "Returns": [{ "Nilable": false, "Type": "SummonStatus", "Name": "status" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "IncomingSummonStatus" + } + ], + "Type": "System", + "Name": "IncomingSummon", + "Events": [], + "Tables": [ + { + "Type": "Enumeration", + "Name": "SummonStatus", + "Fields": [ + { "EnumValue": 0, "Type": "SummonStatus", "Name": "None" }, + { "EnumValue": 1, "Type": "SummonStatus", "Name": "Pending" }, + { "EnumValue": 2, "Type": "SummonStatus", "Name": "Accepted" }, + { "EnumValue": 3, "Type": "SummonStatus", "Name": "Declined" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "InputContext", + "Fields": [ + { "EnumValue": 0, "Type": "InputContext", "Name": "None" }, + { "EnumValue": 1, "Type": "InputContext", "Name": "Keyboard" }, + { "EnumValue": 2, "Type": "InputContext", "Name": "Mouse" }, + { "EnumValue": 3, "Type": "InputContext", "Name": "GamePad" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "deltaX" }, + { "Nilable": false, "Type": "number", "Name": "deltaY" } + ], + "Type": "Function", + "Name": "GetCursorDelta" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "posX" }, + { "Nilable": false, "Type": "number", "Name": "posY" } + ], + "Type": "Function", + "Name": "GetCursorPosition" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "buttonName" }], + "Type": "Function", + "Name": "GetMouseButtonClicked" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "buttonName" }], + "Arguments": [{ "Nilable": false, "Type": "mouseButton", "Name": "button" }], + "Type": "Function", + "Name": "GetMouseButtonName" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ScriptRegion", + "Type": "table", + "Name": "region" + } + ], + "Type": "Function", + "Name": "GetMouseFoci" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsAltKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsControlKeyDown" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "down" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "keyOrMouseName" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "excludeBindingState" + } + ], + "Type": "Function", + "Name": "IsKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsLeftAltKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsLeftControlKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsLeftMetaKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsLeftShiftKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsMetaKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsModifierKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Arguments": [{ "Nilable": true, "Type": "mouseButton", "Name": "button" }], + "Type": "Function", + "Name": "IsMouseButtonDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsRightAltKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsRightControlKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsRightMetaKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsRightShiftKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsShiftKeyDown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsUsingGamepad" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "IsUsingMouse" + } + ], + "Type": "System", + "Name": "Input", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canChange" }, + { "Nilable": false, "Type": "bool", "Name": "notOnCooldown" } + ], + "Type": "Function", + "Name": "CanChangePlayerDifficulty" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canChange" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "mapID" }], + "Type": "Function", + "Name": "CanMapChangeDifficulty" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "CanShowResetInstances" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "instanceType" }, + { "Nilable": false, "Type": "bool", "Name": "isHeroic" }, + { "Nilable": false, "Type": "bool", "Name": "isChallengeMode" }, + { "Nilable": false, "Type": "bool", "Name": "displayHeroic" }, + { "Nilable": false, "Type": "bool", "Name": "displayMythic" }, + { "Nilable": true, "Type": "number", "Name": "toggleDifficultyID" }, + { "Nilable": false, "Type": "bool", "Name": "isLFR" }, + { "Nilable": true, "Type": "number", "Name": "minPlayers" }, + { "Nilable": true, "Type": "number", "Name": "maxPlayers" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "difficultyID" }], + "Type": "Function", + "Name": "GetDifficultyInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetDungeonDifficultyID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetInstanceBootTimeRemaining" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "instanceType" }, + { "Nilable": false, "Type": "number", "Name": "difficultyID" }, + { "Nilable": false, "Type": "cstring", "Name": "difficultyName" }, + { "Nilable": false, "Type": "number", "Name": "maxPlayers" }, + { "Nilable": false, "Type": "number", "Name": "dynamicDifficulty" }, + { "Nilable": true, "Type": "bool", "Name": "isDynamic" }, + { "Nilable": false, "Type": "number", "Name": "instanceID" }, + { "Nilable": false, "Type": "number", "Name": "instanceGroupSize" }, + { "Nilable": true, "Type": "number", "Name": "lfgDungeonID" } + ], + "Type": "Function", + "Name": "GetInstanceInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "timeLeft" }, + { "Nilable": false, "Type": "bool", "Name": "extending" }, + { "Nilable": false, "Type": "number", "Name": "encountersTotal" }, + { "Nilable": false, "Type": "number", "Name": "encountersCompleted" } + ], + "Type": "Function", + "Name": "GetInstanceLockTimeRemaining" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "encounterName" }, + { "Nilable": false, "Type": "cstring", "Name": "texture" }, + { "Nilable": false, "Type": "bool", "Name": "isKilled" }, + { "Nilable": false, "Type": "bool", "Name": "ineligible" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "encounterIndex" }], + "Type": "Function", + "Name": "GetInstanceLockTimeRemainingEncounter" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetLegacyRaidDifficultyID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetRaidDifficultyID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isInInstance" }, + { "Nilable": false, "Type": "cstring", "Name": "instanceType" } + ], + "Type": "Function", + "Name": "IsInInstance" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "difficultyID" }], + "Type": "Function", + "Name": "IsLegacyDifficulty" + }, + { "Type": "Function", "Name": "ResetInstances" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "difficultyID" }], + "Type": "Function", + "Name": "SetDungeonDifficultyID" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "difficultyID" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "force" } + ], + "Type": "Function", + "Name": "SetLegacyRaidDifficultyID" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "difficultyID" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "force" } + ], + "Type": "Function", + "Name": "SetRaidDifficultyID" + } + ], + "Type": "System", + "Name": "Instance", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "instanceType" }, + { "Nilable": false, "Type": "bool", "Name": "isHeroic" }, + { "Nilable": false, "Type": "bool", "Name": "isChallengeMode" }, + { "Nilable": false, "Type": "bool", "Name": "displayHeroic" }, + { "Nilable": false, "Type": "bool", "Name": "displayMythic" }, + { "Nilable": true, "Type": "number", "Name": "toggleDifficultyID" }, + { "Nilable": false, "Type": "bool", "Name": "isLFR" }, + { "Nilable": true, "Type": "number", "Name": "minPlayers" }, + { "Nilable": true, "Type": "number", "Name": "maxPlayers" } + ], + "Type": "Structure", + "Name": "DifficultyInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "encounterName" }, + { "Nilable": false, "Type": "cstring", "Name": "texture" }, + { "Nilable": false, "Type": "bool", "Name": "isKilled" }, + { "Nilable": false, "Type": "bool", "Name": "ineligible" } + ], + "Type": "Structure", + "Name": "DungeonEncounterInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "instanceType" }, + { "Nilable": false, "Type": "number", "Name": "difficultyID" }, + { "Nilable": false, "Type": "cstring", "Name": "difficultyName" }, + { "Nilable": false, "Type": "number", "Name": "maxPlayers" }, + { "Nilable": false, "Type": "number", "Name": "dynamicDifficulty" }, + { "Nilable": true, "Type": "bool", "Name": "isDynamic" }, + { "Nilable": false, "Type": "number", "Name": "instanceID" }, + { "Nilable": false, "Type": "number", "Name": "instanceGroupSize" }, + { "Nilable": true, "Type": "number", "Name": "lfgDungeonID" } + ], + "Type": "Structure", + "Name": "InstanceInfo" + } + ] + }, + { + "Namespace": "C_InstanceEncounter", + "Functions": [], + "Type": "System", + "Name": "InstanceEncounter", + "Events": [ + { + "LiteralName": "INSTANCE_ENCOUNTER_ADD_TIMER", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "timeRemaining" }], + "Type": "Event", + "Name": "InstanceEncounterAddTimer" + }, + { + "LiteralName": "INSTANCE_ENCOUNTER_ENGAGE_UNIT", + "Type": "Event", + "Name": "InstanceEncounterEngageUnit" + }, + { + "LiteralName": "INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "objectiveID" }], + "Type": "Event", + "Name": "InstanceEncounterObjectiveComplete" + }, + { + "LiteralName": "INSTANCE_ENCOUNTER_OBJECTIVE_START", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "objectiveID" }, + { "Nilable": false, "Type": "number", "Name": "objectiveProgress" } + ], + "Type": "Event", + "Name": "InstanceEncounterObjectiveStart" + }, + { + "LiteralName": "INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "objectiveID" }, + { "Nilable": false, "Type": "number", "Name": "objectiveProgress" } + ], + "Type": "Event", + "Name": "InstanceEncounterObjectiveUpdate" + } + ], + "Tables": [] + }, + { + "Namespace": "C_InterfaceFileManifest", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "InnerType": "string", "Type": "table", "Name": "images" } + ], + "Type": "Function", + "Name": "GetInterfaceArtFiles" + } + ], + "Type": "System", + "Name": "InterfaceFileManifest", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_InvasionInfo", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "areInvasionsAvailable" } + ], + "Documentation": [ + "Returns true if invasions are active in the same physical area as the player." + ], + "Type": "Function", + "Name": "AreInvasionsAvailable" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "invasionID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetInvasionForUiMapID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "InvasionMapInfo", "Name": "invasionInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "invasionID" }], + "Type": "Function", + "Name": "GetInvasionInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "timeLeftMinutes" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "invasionID" }], + "Type": "Function", + "Name": "GetInvasionTimeLeft" + } + ], + "Type": "System", + "Name": "InvasionInfo", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "invasionID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { "Nilable": false, "Type": "textureAtlas", "Name": "atlasName" }, + { "Nilable": true, "Type": "number", "Name": "rewardQuestID" } + ], + "Type": "Structure", + "Name": "InvasionMapInfo" + } + ] + }, + { + "Namespace": "C_IslandsInfo", + "Functions": [], + "Type": "System", + "Name": "IslandsInfo", + "Events": [ + { + "LiteralName": "ISLAND_AZERITE_GAIN", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "amount" }, + { "Nilable": false, "Type": "bool", "Name": "gainedByPlayer" }, + { "Nilable": false, "Type": "number", "Name": "factionIndex" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "gainedBy" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "gainedFrom" } + ], + "Type": "Event", + "Name": "IslandAzeriteGain" + } + ], + "Tables": [] + }, + { + "Namespace": "C_IslandsQueue", + "Functions": [ + { "Type": "Function", "Name": "CloseIslandsQueueScreen" }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "IslandsQueueDifficultyInfo", + "Type": "table", + "Name": "islandDifficultyInfo" + } + ], + "Type": "Function", + "Name": "GetIslandDifficultyInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxGroupSize" }], + "Type": "Function", + "Name": "GetIslandsMaxGroupSize" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetIslandsWeeklyQuestID" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "difficultyID" }], + "Type": "Function", + "Name": "QueueForIsland" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questId" }], + "Type": "Function", + "Name": "RequestPreloadRewardData" + } + ], + "Type": "System", + "Name": "IslandsQueue", + "Events": [ + { + "LiteralName": "ISLANDS_QUEUE_CLOSE", + "Type": "Event", + "Name": "IslandsQueueClose" + }, + { "LiteralName": "ISLANDS_QUEUE_OPEN", "Type": "Event", "Name": "IslandsQueueOpen" } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "difficultyId" }, + { "Nilable": false, "Type": "number", "Name": "previewRewardQuestId" } + ], + "Type": "Structure", + "Name": "IslandsQueueDifficultyInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "BankType", + "Fields": [ + { "EnumValue": 0, "Type": "BankType", "Name": "Character" }, + { "EnumValue": 1, "Type": "BankType", "Name": "Guild" }, + { "EnumValue": 2, "Type": "BankType", "Name": "Account" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "BonusStatIndex", + "Fields": [ + { "EnumValue": 0, "Type": "BonusStatIndex", "Name": "Mana" }, + { "EnumValue": 1, "Type": "BonusStatIndex", "Name": "Health" }, + { "EnumValue": 2, "Type": "BonusStatIndex", "Name": "Endurance" }, + { "EnumValue": 3, "Type": "BonusStatIndex", "Name": "Agility" }, + { "EnumValue": 4, "Type": "BonusStatIndex", "Name": "Strength" }, + { "EnumValue": 5, "Type": "BonusStatIndex", "Name": "Intellect" }, + { "EnumValue": 6, "Type": "BonusStatIndex", "Name": "SpiritUnused" }, + { "EnumValue": 7, "Type": "BonusStatIndex", "Name": "Stamina" }, + { "EnumValue": 8, "Type": "BonusStatIndex", "Name": "Energy" }, + { "EnumValue": 9, "Type": "BonusStatIndex", "Name": "Rage" }, + { "EnumValue": 10, "Type": "BonusStatIndex", "Name": "Focus" }, + { + "EnumValue": 11, + "Type": "BonusStatIndex", + "Name": "WeaponSkillRatingObsolete" + }, + { "EnumValue": 12, "Type": "BonusStatIndex", "Name": "DefenseSkillRating" }, + { "EnumValue": 13, "Type": "BonusStatIndex", "Name": "DodgeRating" }, + { "EnumValue": 14, "Type": "BonusStatIndex", "Name": "ParryRating" }, + { "EnumValue": 15, "Type": "BonusStatIndex", "Name": "BlockRating" }, + { "EnumValue": 16, "Type": "BonusStatIndex", "Name": "HitMeleeRating" }, + { "EnumValue": 17, "Type": "BonusStatIndex", "Name": "HitRangedRating" }, + { "EnumValue": 18, "Type": "BonusStatIndex", "Name": "HitSpellRating" }, + { "EnumValue": 19, "Type": "BonusStatIndex", "Name": "CritMeleeRating" }, + { "EnumValue": 20, "Type": "BonusStatIndex", "Name": "CritRangedRating" }, + { "EnumValue": 21, "Type": "BonusStatIndex", "Name": "CritSpellRating" }, + { "EnumValue": 22, "Type": "BonusStatIndex", "Name": "Corruption" }, + { "EnumValue": 23, "Type": "BonusStatIndex", "Name": "CorruptionResistance" }, + { "EnumValue": 24, "Type": "BonusStatIndex", "Name": "ModifiedCraftingStat_1" }, + { "EnumValue": 25, "Type": "BonusStatIndex", "Name": "ModifiedCraftingStat_2" }, + { + "EnumValue": 26, + "Type": "BonusStatIndex", + "Name": "CritTakenRangedRatingObsolete" + }, + { + "EnumValue": 27, + "Type": "BonusStatIndex", + "Name": "CritTakenSpellRatingObsolete" + }, + { + "EnumValue": 28, + "Type": "BonusStatIndex", + "Name": "HasteMeleeRatingObsolete" + }, + { + "EnumValue": 29, + "Type": "BonusStatIndex", + "Name": "HasteRangedRatingObsolete" + }, + { + "EnumValue": 30, + "Type": "BonusStatIndex", + "Name": "HasteSpellRatingObsolete" + }, + { "EnumValue": 31, "Type": "BonusStatIndex", "Name": "HitRating" }, + { "EnumValue": 32, "Type": "BonusStatIndex", "Name": "CritRating" }, + { "EnumValue": 33, "Type": "BonusStatIndex", "Name": "HitTakenRatingObsolete" }, + { + "EnumValue": 34, + "Type": "BonusStatIndex", + "Name": "CritTakenRatingObsolete" + }, + { "EnumValue": 35, "Type": "BonusStatIndex", "Name": "ResilienceRating" }, + { "EnumValue": 36, "Type": "BonusStatIndex", "Name": "HasteRating" }, + { "EnumValue": 37, "Type": "BonusStatIndex", "Name": "ExpertiseRating" }, + { "EnumValue": 38, "Type": "BonusStatIndex", "Name": "AttackPower" }, + { "EnumValue": 39, "Type": "BonusStatIndex", "Name": "RangedAttackPower" }, + { "EnumValue": 40, "Type": "BonusStatIndex", "Name": "Versatility" }, + { "EnumValue": 41, "Type": "BonusStatIndex", "Name": "SpellHealingDone" }, + { "EnumValue": 42, "Type": "BonusStatIndex", "Name": "SpellDamageDone" }, + { + "EnumValue": 43, + "Type": "BonusStatIndex", + "Name": "ManaRegenerationObsolete" + }, + { "EnumValue": 44, "Type": "BonusStatIndex", "Name": "Unused" }, + { "EnumValue": 45, "Type": "BonusStatIndex", "Name": "SpellPower" }, + { "EnumValue": 46, "Type": "BonusStatIndex", "Name": "HealthRegen" }, + { "EnumValue": 47, "Type": "BonusStatIndex", "Name": "SpellPenetration" }, + { "EnumValue": 48, "Type": "BonusStatIndex", "Name": "BlockValueObsolete" }, + { "EnumValue": 49, "Type": "BonusStatIndex", "Name": "MasteryRating" }, + { "EnumValue": 50, "Type": "BonusStatIndex", "Name": "ExtraArmor" }, + { "EnumValue": 51, "Type": "BonusStatIndex", "Name": "FireResistance" }, + { "EnumValue": 52, "Type": "BonusStatIndex", "Name": "FrostResistance" }, + { "EnumValue": 53, "Type": "BonusStatIndex", "Name": "HolyResistance" }, + { "EnumValue": 54, "Type": "BonusStatIndex", "Name": "ShadowResistance" }, + { "EnumValue": 55, "Type": "BonusStatIndex", "Name": "NatureResistance" }, + { "EnumValue": 56, "Type": "BonusStatIndex", "Name": "ArcaneResistance" }, + { "EnumValue": 57, "Type": "BonusStatIndex", "Name": "PvPPower" }, + { "EnumValue": 58, "Type": "BonusStatIndex", "Name": "CombatRatingUnused_0" }, + { "EnumValue": 59, "Type": "BonusStatIndex", "Name": "CombatRatingUnused_2" }, + { "EnumValue": 60, "Type": "BonusStatIndex", "Name": "CombatRatingUnused_3" }, + { "EnumValue": 61, "Type": "BonusStatIndex", "Name": "CombatRatingSpeed" }, + { "EnumValue": 62, "Type": "BonusStatIndex", "Name": "CombatRatingLifesteal" }, + { "EnumValue": 63, "Type": "BonusStatIndex", "Name": "CombatRatingAvoidance" }, + { "EnumValue": 64, "Type": "BonusStatIndex", "Name": "CombatRatingSturdiness" }, + { "EnumValue": 65, "Type": "BonusStatIndex", "Name": "CombatRatingUnused_7" }, + { "EnumValue": 66, "Type": "BonusStatIndex", "Name": "CombatRatingUnused_27" }, + { "EnumValue": 67, "Type": "BonusStatIndex", "Name": "CombatRatingUnused_9" }, + { "EnumValue": 68, "Type": "BonusStatIndex", "Name": "CombatRatingUnused_10" }, + { "EnumValue": 69, "Type": "BonusStatIndex", "Name": "CombatRatingUnused_11" }, + { "EnumValue": 70, "Type": "BonusStatIndex", "Name": "CombatRatingUnused_12" }, + { + "EnumValue": 71, + "Type": "BonusStatIndex", + "Name": "AgilityOrStrengthOrIntellect" + }, + { "EnumValue": 72, "Type": "BonusStatIndex", "Name": "AgilityOrStrength" }, + { "EnumValue": 73, "Type": "BonusStatIndex", "Name": "AgilityOrIntellect" }, + { "EnumValue": 74, "Type": "BonusStatIndex", "Name": "StrengthOrIntellect" }, + { "EnumValue": 75, "Type": "BonusStatIndex", "Name": "ProfessionInspiration" }, + { + "EnumValue": 76, + "Type": "BonusStatIndex", + "Name": "ProfessionResourcefulness" + }, + { "EnumValue": 77, "Type": "BonusStatIndex", "Name": "ProfessionFinesse" }, + { "EnumValue": 78, "Type": "BonusStatIndex", "Name": "ProfessionDeftness" }, + { "EnumValue": 79, "Type": "BonusStatIndex", "Name": "ProfessionPerception" }, + { + "EnumValue": 80, + "Type": "BonusStatIndex", + "Name": "ProfessionCraftingSpeed" + }, + { "EnumValue": 81, "Type": "BonusStatIndex", "Name": "ProfessionMulticraft" }, + { "EnumValue": 82, "Type": "BonusStatIndex", "Name": "ProfessionIngenuity" } + ], + "MaxValue": 82, + "MinValue": 0, + "NumValues": 83 + }, + { + "Type": "Enumeration", + "Name": "InventoryType", + "Fields": [ + { "EnumValue": 0, "Type": "InventoryType", "Name": "IndexNonEquipType" }, + { "EnumValue": 1, "Type": "InventoryType", "Name": "IndexHeadType" }, + { "EnumValue": 2, "Type": "InventoryType", "Name": "IndexNeckType" }, + { "EnumValue": 3, "Type": "InventoryType", "Name": "IndexShoulderType" }, + { "EnumValue": 4, "Type": "InventoryType", "Name": "IndexBodyType" }, + { "EnumValue": 5, "Type": "InventoryType", "Name": "IndexChestType" }, + { "EnumValue": 6, "Type": "InventoryType", "Name": "IndexWaistType" }, + { "EnumValue": 7, "Type": "InventoryType", "Name": "IndexLegsType" }, + { "EnumValue": 8, "Type": "InventoryType", "Name": "IndexFeetType" }, + { "EnumValue": 9, "Type": "InventoryType", "Name": "IndexWristType" }, + { "EnumValue": 10, "Type": "InventoryType", "Name": "IndexHandType" }, + { "EnumValue": 11, "Type": "InventoryType", "Name": "IndexFingerType" }, + { "EnumValue": 12, "Type": "InventoryType", "Name": "IndexTrinketType" }, + { "EnumValue": 13, "Type": "InventoryType", "Name": "IndexWeaponType" }, + { "EnumValue": 14, "Type": "InventoryType", "Name": "IndexShieldType" }, + { "EnumValue": 15, "Type": "InventoryType", "Name": "IndexRangedType" }, + { "EnumValue": 16, "Type": "InventoryType", "Name": "IndexCloakType" }, + { "EnumValue": 17, "Type": "InventoryType", "Name": "Index2HweaponType" }, + { "EnumValue": 18, "Type": "InventoryType", "Name": "IndexBagType" }, + { "EnumValue": 19, "Type": "InventoryType", "Name": "IndexTabardType" }, + { "EnumValue": 20, "Type": "InventoryType", "Name": "IndexRobeType" }, + { "EnumValue": 21, "Type": "InventoryType", "Name": "IndexWeaponmainhandType" }, + { "EnumValue": 22, "Type": "InventoryType", "Name": "IndexWeaponoffhandType" }, + { "EnumValue": 23, "Type": "InventoryType", "Name": "IndexHoldableType" }, + { "EnumValue": 24, "Type": "InventoryType", "Name": "IndexAmmoType" }, + { "EnumValue": 25, "Type": "InventoryType", "Name": "IndexThrownType" }, + { "EnumValue": 26, "Type": "InventoryType", "Name": "IndexRangedrightType" }, + { "EnumValue": 27, "Type": "InventoryType", "Name": "IndexQuiverType" }, + { "EnumValue": 28, "Type": "InventoryType", "Name": "IndexRelicType" }, + { "EnumValue": 29, "Type": "InventoryType", "Name": "IndexProfessionToolType" }, + { "EnumValue": 30, "Type": "InventoryType", "Name": "IndexProfessionGearType" }, + { + "EnumValue": 31, + "Type": "InventoryType", + "Name": "IndexEquipablespellOffensiveType" + }, + { + "EnumValue": 32, + "Type": "InventoryType", + "Name": "IndexEquipablespellUtilityType" + }, + { + "EnumValue": 33, + "Type": "InventoryType", + "Name": "IndexEquipablespellDefensiveType" + }, + { + "EnumValue": 34, + "Type": "InventoryType", + "Name": "IndexEquipablespellWeaponType" + } + ], + "MaxValue": 34, + "MinValue": 0, + "NumValues": 35 + }, + { + "Type": "Enumeration", + "Name": "ItemArmorSubclass", + "Fields": [ + { "EnumValue": 0, "Type": "ItemArmorSubclass", "Name": "Generic" }, + { "EnumValue": 1, "Type": "ItemArmorSubclass", "Name": "Cloth" }, + { "EnumValue": 2, "Type": "ItemArmorSubclass", "Name": "Leather" }, + { "EnumValue": 3, "Type": "ItemArmorSubclass", "Name": "Mail" }, + { "EnumValue": 4, "Type": "ItemArmorSubclass", "Name": "Plate" }, + { "EnumValue": 5, "Type": "ItemArmorSubclass", "Name": "Cosmetic" }, + { "EnumValue": 6, "Type": "ItemArmorSubclass", "Name": "Shield" }, + { "EnumValue": 7, "Type": "ItemArmorSubclass", "Name": "Libram" }, + { "EnumValue": 8, "Type": "ItemArmorSubclass", "Name": "Idol" }, + { "EnumValue": 9, "Type": "ItemArmorSubclass", "Name": "Totem" }, + { "EnumValue": 10, "Type": "ItemArmorSubclass", "Name": "Sigil" }, + { "EnumValue": 11, "Type": "ItemArmorSubclass", "Name": "Relic" } + ], + "MaxValue": 11, + "MinValue": 0, + "NumValues": 12 + }, + { + "Type": "Enumeration", + "Name": "ItemBind", + "Fields": [ + { "EnumValue": 0, "Type": "ItemBind", "Name": "None" }, + { "EnumValue": 1, "Type": "ItemBind", "Name": "OnAcquire" }, + { "EnumValue": 2, "Type": "ItemBind", "Name": "OnEquip" }, + { "EnumValue": 3, "Type": "ItemBind", "Name": "OnUse" }, + { "EnumValue": 4, "Type": "ItemBind", "Name": "Quest" }, + { "EnumValue": 5, "Type": "ItemBind", "Name": "Unused1" }, + { "EnumValue": 6, "Type": "ItemBind", "Name": "Unused2" }, + { "EnumValue": 7, "Type": "ItemBind", "Name": "ToWoWAccount" }, + { "EnumValue": 8, "Type": "ItemBind", "Name": "ToBnetAccount" }, + { "EnumValue": 9, "Type": "ItemBind", "Name": "ToBnetAccountUntilEquipped" } + ], + "MaxValue": 9, + "MinValue": 0, + "NumValues": 10 + }, + { + "Type": "Enumeration", + "Name": "ItemClass", + "Fields": [ + { "EnumValue": 0, "Type": "ItemClass", "Name": "Consumable" }, + { "EnumValue": 1, "Type": "ItemClass", "Name": "Container" }, + { "EnumValue": 2, "Type": "ItemClass", "Name": "Weapon" }, + { "EnumValue": 3, "Type": "ItemClass", "Name": "Gem" }, + { "EnumValue": 4, "Type": "ItemClass", "Name": "Armor" }, + { "EnumValue": 5, "Type": "ItemClass", "Name": "Reagent" }, + { "EnumValue": 6, "Type": "ItemClass", "Name": "Projectile" }, + { "EnumValue": 7, "Type": "ItemClass", "Name": "Tradegoods" }, + { "EnumValue": 8, "Type": "ItemClass", "Name": "ItemEnhancement" }, + { "EnumValue": 9, "Type": "ItemClass", "Name": "Recipe" }, + { "EnumValue": 10, "Type": "ItemClass", "Name": "CurrencyTokenObsolete" }, + { "EnumValue": 11, "Type": "ItemClass", "Name": "Quiver" }, + { "EnumValue": 12, "Type": "ItemClass", "Name": "Questitem" }, + { "EnumValue": 13, "Type": "ItemClass", "Name": "Key" }, + { "EnumValue": 14, "Type": "ItemClass", "Name": "PermanentObsolete" }, + { "EnumValue": 15, "Type": "ItemClass", "Name": "Miscellaneous" }, + { "EnumValue": 16, "Type": "ItemClass", "Name": "Glyph" }, + { "EnumValue": 17, "Type": "ItemClass", "Name": "Battlepet" }, + { "EnumValue": 18, "Type": "ItemClass", "Name": "WoWToken" }, + { "EnumValue": 19, "Type": "ItemClass", "Name": "Profession" } + ], + "MaxValue": 19, + "MinValue": 0, + "NumValues": 20 + }, + { + "Type": "Enumeration", + "Name": "ItemConsumableSubclass", + "Fields": [ + { "EnumValue": 0, "Type": "ItemConsumableSubclass", "Name": "Generic" }, + { "EnumValue": 1, "Type": "ItemConsumableSubclass", "Name": "Potion" }, + { "EnumValue": 2, "Type": "ItemConsumableSubclass", "Name": "Elixir" }, + { "EnumValue": 3, "Type": "ItemConsumableSubclass", "Name": "Flasksphials" }, + { "EnumValue": 4, "Type": "ItemConsumableSubclass", "Name": "Scroll" }, + { "EnumValue": 5, "Type": "ItemConsumableSubclass", "Name": "Fooddrink" }, + { "EnumValue": 6, "Type": "ItemConsumableSubclass", "Name": "Itemenhancement" }, + { "EnumValue": 7, "Type": "ItemConsumableSubclass", "Name": "Bandage" }, + { "EnumValue": 8, "Type": "ItemConsumableSubclass", "Name": "Other" }, + { "EnumValue": 9, "Type": "ItemConsumableSubclass", "Name": "VantusRune" }, + { "EnumValue": 10, "Type": "ItemConsumableSubclass", "Name": "UtilityCurio" }, + { "EnumValue": 11, "Type": "ItemConsumableSubclass", "Name": "CombatCurio" } + ], + "MaxValue": 11, + "MinValue": 0, + "NumValues": 12 + }, + { + "Type": "Enumeration", + "Name": "ItemGemColor", + "Fields": [ + { "EnumValue": 1, "Type": "ItemGemColor", "Name": "Meta" }, + { "EnumValue": 2, "Type": "ItemGemColor", "Name": "Red" }, + { "EnumValue": 4, "Type": "ItemGemColor", "Name": "Yellow" }, + { "EnumValue": 8, "Type": "ItemGemColor", "Name": "Blue" }, + { "EnumValue": 16, "Type": "ItemGemColor", "Name": "Hydraulic" }, + { "EnumValue": 32, "Type": "ItemGemColor", "Name": "Cogwheel" }, + { "EnumValue": 64, "Type": "ItemGemColor", "Name": "Iron" }, + { "EnumValue": 128, "Type": "ItemGemColor", "Name": "Blood" }, + { "EnumValue": 256, "Type": "ItemGemColor", "Name": "Shadow" }, + { "EnumValue": 512, "Type": "ItemGemColor", "Name": "Fel" }, + { "EnumValue": 1024, "Type": "ItemGemColor", "Name": "Arcane" }, + { "EnumValue": 2048, "Type": "ItemGemColor", "Name": "Frost" }, + { "EnumValue": 4096, "Type": "ItemGemColor", "Name": "Fire" }, + { "EnumValue": 8192, "Type": "ItemGemColor", "Name": "Water" }, + { "EnumValue": 16384, "Type": "ItemGemColor", "Name": "Life" }, + { "EnumValue": 32768, "Type": "ItemGemColor", "Name": "Wind" }, + { "EnumValue": 65536, "Type": "ItemGemColor", "Name": "Holy" }, + { "EnumValue": 131072, "Type": "ItemGemColor", "Name": "PunchcardRed" }, + { "EnumValue": 262144, "Type": "ItemGemColor", "Name": "PunchcardYellow" }, + { "EnumValue": 524288, "Type": "ItemGemColor", "Name": "PunchcardBlue" }, + { "EnumValue": 1048576, "Type": "ItemGemColor", "Name": "DominationBlood" }, + { "EnumValue": 2097152, "Type": "ItemGemColor", "Name": "DominationFrost" }, + { "EnumValue": 4194304, "Type": "ItemGemColor", "Name": "DominationUnholy" }, + { "EnumValue": 8388608, "Type": "ItemGemColor", "Name": "Cypher" }, + { "EnumValue": 16777216, "Type": "ItemGemColor", "Name": "Tinker" }, + { "EnumValue": 33554432, "Type": "ItemGemColor", "Name": "Primordial" }, + { "EnumValue": 67108864, "Type": "ItemGemColor", "Name": "Fragrance" } + ], + "MaxValue": 67108864, + "MinValue": 1, + "NumValues": 27 + }, + { + "Type": "Enumeration", + "Name": "ItemMiscellaneousSubclass", + "Fields": [ + { "EnumValue": 0, "Type": "ItemMiscellaneousSubclass", "Name": "Junk" }, + { "EnumValue": 1, "Type": "ItemMiscellaneousSubclass", "Name": "Reagent" }, + { "EnumValue": 2, "Type": "ItemMiscellaneousSubclass", "Name": "CompanionPet" }, + { "EnumValue": 3, "Type": "ItemMiscellaneousSubclass", "Name": "Holiday" }, + { "EnumValue": 4, "Type": "ItemMiscellaneousSubclass", "Name": "Other" }, + { "EnumValue": 5, "Type": "ItemMiscellaneousSubclass", "Name": "Mount" }, + { + "EnumValue": 6, + "Type": "ItemMiscellaneousSubclass", + "Name": "MountEquipment" + } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "ItemProfessionSubclass", + "Fields": [ + { "EnumValue": 0, "Type": "ItemProfessionSubclass", "Name": "Blacksmithing" }, + { "EnumValue": 1, "Type": "ItemProfessionSubclass", "Name": "Leatherworking" }, + { "EnumValue": 2, "Type": "ItemProfessionSubclass", "Name": "Alchemy" }, + { "EnumValue": 3, "Type": "ItemProfessionSubclass", "Name": "Herbalism" }, + { "EnumValue": 4, "Type": "ItemProfessionSubclass", "Name": "Cooking" }, + { "EnumValue": 5, "Type": "ItemProfessionSubclass", "Name": "Mining" }, + { "EnumValue": 6, "Type": "ItemProfessionSubclass", "Name": "Tailoring" }, + { "EnumValue": 7, "Type": "ItemProfessionSubclass", "Name": "Engineering" }, + { "EnumValue": 8, "Type": "ItemProfessionSubclass", "Name": "Enchanting" }, + { "EnumValue": 9, "Type": "ItemProfessionSubclass", "Name": "Fishing" }, + { "EnumValue": 10, "Type": "ItemProfessionSubclass", "Name": "Skinning" }, + { "EnumValue": 11, "Type": "ItemProfessionSubclass", "Name": "Jewelcrafting" }, + { "EnumValue": 12, "Type": "ItemProfessionSubclass", "Name": "Inscription" }, + { "EnumValue": 13, "Type": "ItemProfessionSubclass", "Name": "Archaeology" } + ], + "MaxValue": 13, + "MinValue": 0, + "NumValues": 14 + }, + { + "Type": "Enumeration", + "Name": "ItemQuality", + "Fields": [ + { "EnumValue": 0, "Type": "ItemQuality", "Name": "Poor" }, + { "EnumValue": 1, "Type": "ItemQuality", "Name": "Common" }, + { "EnumValue": 2, "Type": "ItemQuality", "Name": "Uncommon" }, + { "EnumValue": 3, "Type": "ItemQuality", "Name": "Rare" }, + { "EnumValue": 4, "Type": "ItemQuality", "Name": "Epic" }, + { "EnumValue": 5, "Type": "ItemQuality", "Name": "Legendary" }, + { "EnumValue": 6, "Type": "ItemQuality", "Name": "Artifact" }, + { "EnumValue": 7, "Type": "ItemQuality", "Name": "Heirloom" }, + { "EnumValue": 8, "Type": "ItemQuality", "Name": "WoWToken" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "ItemReagentSubclass", + "Fields": [ + { "EnumValue": 0, "Type": "ItemReagentSubclass", "Name": "Reagent" }, + { "EnumValue": 1, "Type": "ItemReagentSubclass", "Name": "Keystone" }, + { "EnumValue": 2, "Type": "ItemReagentSubclass", "Name": "ContextToken" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ItemRecipeSubclass", + "Fields": [ + { "EnumValue": 0, "Type": "ItemRecipeSubclass", "Name": "Book" }, + { "EnumValue": 1, "Type": "ItemRecipeSubclass", "Name": "Leatherworking" }, + { "EnumValue": 2, "Type": "ItemRecipeSubclass", "Name": "Tailoring" }, + { "EnumValue": 3, "Type": "ItemRecipeSubclass", "Name": "Engineering" }, + { "EnumValue": 4, "Type": "ItemRecipeSubclass", "Name": "Blacksmithing" }, + { "EnumValue": 5, "Type": "ItemRecipeSubclass", "Name": "Cooking" }, + { "EnumValue": 6, "Type": "ItemRecipeSubclass", "Name": "Alchemy" }, + { "EnumValue": 7, "Type": "ItemRecipeSubclass", "Name": "FirstAid" }, + { "EnumValue": 8, "Type": "ItemRecipeSubclass", "Name": "Enchanting" }, + { "EnumValue": 9, "Type": "ItemRecipeSubclass", "Name": "Fishing" }, + { "EnumValue": 10, "Type": "ItemRecipeSubclass", "Name": "Jewelcrafting" }, + { "EnumValue": 11, "Type": "ItemRecipeSubclass", "Name": "Inscription" } + ], + "MaxValue": 11, + "MinValue": 0, + "NumValues": 12 + }, + { + "Type": "Enumeration", + "Name": "ItemSocketType", + "Fields": [ + { "EnumValue": 0, "Type": "ItemSocketType", "Name": "None" }, + { "EnumValue": 1, "Type": "ItemSocketType", "Name": "Meta" }, + { "EnumValue": 2, "Type": "ItemSocketType", "Name": "Red" }, + { "EnumValue": 3, "Type": "ItemSocketType", "Name": "Yellow" }, + { "EnumValue": 4, "Type": "ItemSocketType", "Name": "Blue" }, + { "EnumValue": 5, "Type": "ItemSocketType", "Name": "Hydraulic" }, + { "EnumValue": 6, "Type": "ItemSocketType", "Name": "Cogwheel" }, + { "EnumValue": 7, "Type": "ItemSocketType", "Name": "Prismatic" }, + { "EnumValue": 8, "Type": "ItemSocketType", "Name": "Iron" }, + { "EnumValue": 9, "Type": "ItemSocketType", "Name": "Blood" }, + { "EnumValue": 10, "Type": "ItemSocketType", "Name": "Shadow" }, + { "EnumValue": 11, "Type": "ItemSocketType", "Name": "Fel" }, + { "EnumValue": 12, "Type": "ItemSocketType", "Name": "Arcane" }, + { "EnumValue": 13, "Type": "ItemSocketType", "Name": "Frost" }, + { "EnumValue": 14, "Type": "ItemSocketType", "Name": "Fire" }, + { "EnumValue": 15, "Type": "ItemSocketType", "Name": "Water" }, + { "EnumValue": 16, "Type": "ItemSocketType", "Name": "Life" }, + { "EnumValue": 17, "Type": "ItemSocketType", "Name": "Wind" }, + { "EnumValue": 18, "Type": "ItemSocketType", "Name": "Holy" }, + { "EnumValue": 19, "Type": "ItemSocketType", "Name": "PunchcardRed" }, + { "EnumValue": 20, "Type": "ItemSocketType", "Name": "PunchcardYellow" }, + { "EnumValue": 21, "Type": "ItemSocketType", "Name": "PunchcardBlue" }, + { "EnumValue": 22, "Type": "ItemSocketType", "Name": "Domination" }, + { "EnumValue": 23, "Type": "ItemSocketType", "Name": "Cypher" }, + { "EnumValue": 24, "Type": "ItemSocketType", "Name": "Tinker" }, + { "EnumValue": 25, "Type": "ItemSocketType", "Name": "Primordial" }, + { "EnumValue": 26, "Type": "ItemSocketType", "Name": "Fragrance" } + ], + "MaxValue": 26, + "MinValue": 0, + "NumValues": 27 + }, + { + "Type": "Enumeration", + "Name": "ItemSubclassDisplay", + "Fields": [ + { + "EnumValue": 1, + "Type": "ItemSubclassDisplay", + "Name": "HideSubclassInTooltips" + }, + { + "EnumValue": 2, + "Type": "ItemSubclassDisplay", + "Name": "HideSubclassInAuction" + }, + { "EnumValue": 4, "Type": "ItemSubclassDisplay", "Name": "ShowItemCount" } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ItemSubclassFlag", + "Fields": [ + { + "EnumValue": 1, + "Type": "ItemSubclassFlag", + "Name": "WeaponsubclassCanparry" + }, + { + "EnumValue": 2, + "Type": "ItemSubclassFlag", + "Name": "WeaponsubclassSetfingerseq" + }, + { + "EnumValue": 4, + "Type": "ItemSubclassFlag", + "Name": "WeaponsubclassIsunarmed" + }, + { "EnumValue": 8, "Type": "ItemSubclassFlag", "Name": "WeaponsubclassIsrifle" }, + { + "EnumValue": 16, + "Type": "ItemSubclassFlag", + "Name": "WeaponsubclassIsthrown" + }, + { + "EnumValue": 32, + "Type": "ItemSubclassFlag", + "Name": "WeaponsubclassRighthandRanged" + }, + { + "EnumValue": 64, + "Type": "ItemSubclassFlag", + "Name": "ItemsubclassQuivernotrequired" + }, + { + "EnumValue": 128, + "Type": "ItemSubclassFlag", + "Name": "WeaponsubclassRanged" + }, + { + "EnumValue": 256, + "Type": "ItemSubclassFlag", + "Name": "WeaponsubclassDeprecatedReuseMe" + }, + { + "EnumValue": 512, + "Type": "ItemSubclassFlag", + "Name": "ItemsubclassUsesInvtype" + }, + { + "EnumValue": 1024, + "Type": "ItemSubclassFlag", + "Name": "ArmorsubclassLfgscalingarmor" + } + ], + "MaxValue": 1024, + "MinValue": 1, + "NumValues": 11 + }, + { + "Type": "Enumeration", + "Name": "ItemWeaponSubclass", + "Fields": [ + { "EnumValue": 0, "Type": "ItemWeaponSubclass", "Name": "Axe1H" }, + { "EnumValue": 1, "Type": "ItemWeaponSubclass", "Name": "Axe2H" }, + { "EnumValue": 2, "Type": "ItemWeaponSubclass", "Name": "Bows" }, + { "EnumValue": 3, "Type": "ItemWeaponSubclass", "Name": "Guns" }, + { "EnumValue": 4, "Type": "ItemWeaponSubclass", "Name": "Mace1H" }, + { "EnumValue": 5, "Type": "ItemWeaponSubclass", "Name": "Mace2H" }, + { "EnumValue": 6, "Type": "ItemWeaponSubclass", "Name": "Polearm" }, + { "EnumValue": 7, "Type": "ItemWeaponSubclass", "Name": "Sword1H" }, + { "EnumValue": 8, "Type": "ItemWeaponSubclass", "Name": "Sword2H" }, + { "EnumValue": 9, "Type": "ItemWeaponSubclass", "Name": "Warglaive" }, + { "EnumValue": 10, "Type": "ItemWeaponSubclass", "Name": "Staff" }, + { "EnumValue": 11, "Type": "ItemWeaponSubclass", "Name": "Bearclaw" }, + { "EnumValue": 12, "Type": "ItemWeaponSubclass", "Name": "Catclaw" }, + { "EnumValue": 13, "Type": "ItemWeaponSubclass", "Name": "Unarmed" }, + { "EnumValue": 14, "Type": "ItemWeaponSubclass", "Name": "Generic" }, + { "EnumValue": 15, "Type": "ItemWeaponSubclass", "Name": "Dagger" }, + { "EnumValue": 16, "Type": "ItemWeaponSubclass", "Name": "Thrown" }, + { "EnumValue": 17, "Type": "ItemWeaponSubclass", "Name": "Obsolete3" }, + { "EnumValue": 18, "Type": "ItemWeaponSubclass", "Name": "Crossbow" }, + { "EnumValue": 19, "Type": "ItemWeaponSubclass", "Name": "Wand" }, + { "EnumValue": 20, "Type": "ItemWeaponSubclass", "Name": "Fishingpole" } + ], + "MaxValue": 20, + "MinValue": 0, + "NumValues": 21 + }, + { + "Type": "Enumeration", + "Name": "Itemclassfilterflags", + "Fields": [ + { "EnumValue": 1, "Type": "Itemclassfilterflags", "Name": "Consumable" }, + { "EnumValue": 2, "Type": "Itemclassfilterflags", "Name": "Container" }, + { "EnumValue": 4, "Type": "Itemclassfilterflags", "Name": "Weapon" }, + { "EnumValue": 8, "Type": "Itemclassfilterflags", "Name": "Gem" }, + { "EnumValue": 16, "Type": "Itemclassfilterflags", "Name": "Armor" }, + { "EnumValue": 32, "Type": "Itemclassfilterflags", "Name": "Reagent" }, + { "EnumValue": 64, "Type": "Itemclassfilterflags", "Name": "Projectile" }, + { "EnumValue": 128, "Type": "Itemclassfilterflags", "Name": "Tradegoods" }, + { "EnumValue": 256, "Type": "Itemclassfilterflags", "Name": "ItemEnhancement" }, + { "EnumValue": 512, "Type": "Itemclassfilterflags", "Name": "Recipe" }, + { + "EnumValue": 1024, + "Type": "Itemclassfilterflags", + "Name": "CurrencyTokenObsolete" + }, + { "EnumValue": 2048, "Type": "Itemclassfilterflags", "Name": "Quiver" }, + { + "EnumValue": 4096, + "Type": "Itemclassfilterflags", + "Name": "Questitemclassfilterflags" + }, + { "EnumValue": 8192, "Type": "Itemclassfilterflags", "Name": "Key" }, + { + "EnumValue": 16384, + "Type": "Itemclassfilterflags", + "Name": "PermanentObsolete" + }, + { "EnumValue": 32768, "Type": "Itemclassfilterflags", "Name": "Miscellaneous" }, + { "EnumValue": 65536, "Type": "Itemclassfilterflags", "Name": "Glyph" }, + { "EnumValue": 131072, "Type": "Itemclassfilterflags", "Name": "Battlepet" } + ], + "MaxValue": 131072, + "MinValue": 1, + "NumValues": 18 + }, + { + "Type": "Enumeration", + "Name": "Itemsetflags", + "Fields": [ + { "EnumValue": 1, "Type": "Itemsetflags", "Name": "Legacy" }, + { "EnumValue": 2, "Type": "Itemsetflags", "Name": "UseItemHistorySetSlots" }, + { "EnumValue": 4, "Type": "Itemsetflags", "Name": "RequiresPvPTalentsActive" } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "SlotRegion", + "Fields": [ + { "EnumValue": 0, "Type": "SlotRegion", "Name": "Invalid" }, + { "EnumValue": 1, "Type": "SlotRegion", "Name": "PlayerEquip" }, + { "EnumValue": 2, "Type": "SlotRegion", "Name": "PlayerBags" }, + { "EnumValue": 3, "Type": "SlotRegion", "Name": "PlayerInv" }, + { "EnumValue": 4, "Type": "SlotRegion", "Name": "Bank" }, + { "EnumValue": 5, "Type": "SlotRegion", "Name": "ReagentBank" }, + { "EnumValue": 6, "Type": "SlotRegion", "Name": "AccountBank" } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "SlotRegionMask", + "Fields": [ + { "EnumValue": 1, "Type": "SlotRegionMask", "Name": "Invalid" }, + { "EnumValue": 2, "Type": "SlotRegionMask", "Name": "PlayerEquip" }, + { "EnumValue": 4, "Type": "SlotRegionMask", "Name": "PlayerBags" }, + { "EnumValue": 8, "Type": "SlotRegionMask", "Name": "PlayerInv" }, + { "EnumValue": 16, "Type": "SlotRegionMask", "Name": "Bank" }, + { "EnumValue": 32, "Type": "SlotRegionMask", "Name": "ReagentBank" }, + { "EnumValue": 64, "Type": "SlotRegionMask", "Name": "AccountBank" } + ], + "MaxValue": 64, + "MinValue": 1, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "SubcontainerType", + "Fields": [ + { "EnumValue": 0, "Type": "SubcontainerType", "Name": "Bag" }, + { "EnumValue": 1, "Type": "SubcontainerType", "Name": "Equipped" }, + { "EnumValue": 2, "Type": "SubcontainerType", "Name": "Bankgeneric" }, + { "EnumValue": 3, "Type": "SubcontainerType", "Name": "Bankbag" }, + { "EnumValue": 4, "Type": "SubcontainerType", "Name": "Mail" }, + { "EnumValue": 5, "Type": "SubcontainerType", "Name": "Auction" }, + { "EnumValue": 6, "Type": "SubcontainerType", "Name": "KeyringObsolete" }, + { "EnumValue": 7, "Type": "SubcontainerType", "Name": "GuildBank0" }, + { "EnumValue": 8, "Type": "SubcontainerType", "Name": "GuildBank1" }, + { "EnumValue": 9, "Type": "SubcontainerType", "Name": "GuildBank2" }, + { "EnumValue": 10, "Type": "SubcontainerType", "Name": "GuildBank3" }, + { "EnumValue": 11, "Type": "SubcontainerType", "Name": "GuildBank4" }, + { "EnumValue": 12, "Type": "SubcontainerType", "Name": "GuildBank5" }, + { "EnumValue": 13, "Type": "SubcontainerType", "Name": "GuildOverflow" }, + { "EnumValue": 14, "Type": "SubcontainerType", "Name": "Equipablespells" }, + { + "EnumValue": 15, + "Type": "SubcontainerType", + "Name": "CurrencytokenOboslete" + }, + { "EnumValue": 16, "Type": "SubcontainerType", "Name": "GuildBank6" }, + { "EnumValue": 17, "Type": "SubcontainerType", "Name": "GuildBank7" }, + { "EnumValue": 18, "Type": "SubcontainerType", "Name": "GuildBank8" }, + { "EnumValue": 19, "Type": "SubcontainerType", "Name": "GuildBank9" }, + { "EnumValue": 20, "Type": "SubcontainerType", "Name": "GuildBank10" }, + { "EnumValue": 21, "Type": "SubcontainerType", "Name": "GuildBank11" }, + { "EnumValue": 22, "Type": "SubcontainerType", "Name": "Reagentbank" }, + { + "EnumValue": 23, + "Type": "SubcontainerType", + "Name": "Childequipmentstorage" + }, + { "EnumValue": 24, "Type": "SubcontainerType", "Name": "Quarantine" }, + { "EnumValue": 25, "Type": "SubcontainerType", "Name": "CreatedImmediately" }, + { "EnumValue": 26, "Type": "SubcontainerType", "Name": "BuybackSlots" }, + { "EnumValue": 27, "Type": "SubcontainerType", "Name": "CachedReward" }, + { "EnumValue": 28, "Type": "SubcontainerType", "Name": "EquippedBags" }, + { "EnumValue": 29, "Type": "SubcontainerType", "Name": "EquippedProfession1" }, + { "EnumValue": 30, "Type": "SubcontainerType", "Name": "EquippedProfession2" }, + { "EnumValue": 31, "Type": "SubcontainerType", "Name": "EquippedCooking" }, + { "EnumValue": 32, "Type": "SubcontainerType", "Name": "EquippedFishing" }, + { "EnumValue": 33, "Type": "SubcontainerType", "Name": "EquippedReagentbag" }, + { "EnumValue": 34, "Type": "SubcontainerType", "Name": "CraftingOrder" }, + { + "EnumValue": 35, + "Type": "SubcontainerType", + "Name": "CraftingOrderReagents" + }, + { "EnumValue": 36, "Type": "SubcontainerType", "Name": "AccountBankTabs" } + ], + "MaxValue": 36, + "MinValue": 0, + "NumValues": 37 + }, + { + "Type": "Enumeration", + "Name": "UIItemInteractionFlags", + "Fields": [ + { + "EnumValue": 1, + "Type": "UIItemInteractionFlags", + "Name": "DisplayWithInset" + }, + { + "EnumValue": 2, + "Type": "UIItemInteractionFlags", + "Name": "ConfirmationHasDelay" + }, + { "EnumValue": 4, "Type": "UIItemInteractionFlags", "Name": "ConversionMode" }, + { + "EnumValue": 8, + "Type": "UIItemInteractionFlags", + "Name": "ClickShowsFlyout" + }, + { "EnumValue": 16, "Type": "UIItemInteractionFlags", "Name": "AddCurrency" }, + { "EnumValue": 32, "Type": "UIItemInteractionFlags", "Name": "UsesCharges" } + ], + "MaxValue": 32, + "MinValue": 1, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "UIItemInteractionType", + "Fields": [ + { "EnumValue": 0, "Type": "UIItemInteractionType", "Name": "None" }, + { "EnumValue": 1, "Type": "UIItemInteractionType", "Name": "CastSpell" }, + { + "EnumValue": 2, + "Type": "UIItemInteractionType", + "Name": "CleanseCorruption" + }, + { + "EnumValue": 3, + "Type": "UIItemInteractionType", + "Name": "RunecarverScrapping" + }, + { "EnumValue": 4, "Type": "UIItemInteractionType", "Name": "ItemConversion" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Values": [ + { "Value": 3, "Type": "number", "Name": "NUM_ITEM_ENCHANTMENT_SOCKETS" }, + { "Value": 31, "Type": "number", "Name": "MAX_LOOT_OBJECT_ITEMS" }, + { "Value": 255, "Type": "number", "Name": "INVALID_TRANSACTION_BANK_TAB_SLOT" } + ], + "Type": "Constants", + "Name": "ItemConsts" + }, + { + "Values": [ + { + "Value": -1, + "Type": "ItemWeaponSubclass", + "Name": "ITEM_WEAPON_SUBCLASS_NONE" + } + ], + "Type": "Constants", + "Name": "ITEM_WEAPON_SUBCLASSConstants" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ItemGemSubclass", + "Fields": [ + { "EnumValue": 0, "Type": "ItemGemSubclass", "Name": "Intellect" }, + { "EnumValue": 1, "Type": "ItemGemSubclass", "Name": "Agility" }, + { "EnumValue": 2, "Type": "ItemGemSubclass", "Name": "Strength" }, + { "EnumValue": 3, "Type": "ItemGemSubclass", "Name": "Stamina" }, + { "EnumValue": 4, "Type": "ItemGemSubclass", "Name": "Spirit" }, + { "EnumValue": 5, "Type": "ItemGemSubclass", "Name": "Criticalstrike" }, + { "EnumValue": 6, "Type": "ItemGemSubclass", "Name": "Mastery" }, + { "EnumValue": 7, "Type": "ItemGemSubclass", "Name": "Haste" }, + { "EnumValue": 8, "Type": "ItemGemSubclass", "Name": "Versatility" }, + { "EnumValue": 9, "Type": "ItemGemSubclass", "Name": "Other" }, + { "EnumValue": 10, "Type": "ItemGemSubclass", "Name": "Multiplestats" }, + { "EnumValue": 11, "Type": "ItemGemSubclass", "Name": "Artifactrelic" } + ], + "MaxValue": 11, + "MinValue": 0, + "NumValues": 12 + }, + { + "Type": "Enumeration", + "Name": "ItemRedundancySlot", + "Fields": [ + { "EnumValue": 0, "Type": "ItemRedundancySlot", "Name": "Head" }, + { "EnumValue": 1, "Type": "ItemRedundancySlot", "Name": "Neck" }, + { "EnumValue": 2, "Type": "ItemRedundancySlot", "Name": "Shoulder" }, + { "EnumValue": 3, "Type": "ItemRedundancySlot", "Name": "Chest" }, + { "EnumValue": 4, "Type": "ItemRedundancySlot", "Name": "Waist" }, + { "EnumValue": 5, "Type": "ItemRedundancySlot", "Name": "Legs" }, + { "EnumValue": 6, "Type": "ItemRedundancySlot", "Name": "Feet" }, + { "EnumValue": 7, "Type": "ItemRedundancySlot", "Name": "Wrist" }, + { "EnumValue": 8, "Type": "ItemRedundancySlot", "Name": "Hand" }, + { "EnumValue": 9, "Type": "ItemRedundancySlot", "Name": "Finger" }, + { "EnumValue": 10, "Type": "ItemRedundancySlot", "Name": "Trinket" }, + { "EnumValue": 11, "Type": "ItemRedundancySlot", "Name": "Cloak" }, + { "EnumValue": 12, "Type": "ItemRedundancySlot", "Name": "Twohand" }, + { "EnumValue": 13, "Type": "ItemRedundancySlot", "Name": "MainhandWeapon" }, + { "EnumValue": 14, "Type": "ItemRedundancySlot", "Name": "OnehandWeapon" }, + { + "EnumValue": 15, + "Type": "ItemRedundancySlot", + "Name": "OnehandWeaponSecond" + }, + { "EnumValue": 16, "Type": "ItemRedundancySlot", "Name": "Offhand" } + ], + "MaxValue": 16, + "MinValue": 0, + "NumValues": 17 + }, + { + "Type": "Enumeration", + "Name": "PointsModifierSourceType", + "Fields": [ + { "EnumValue": 0, "Type": "PointsModifierSourceType", "Name": "PlayerLevel" }, + { "EnumValue": 1, "Type": "PointsModifierSourceType", "Name": "SkillRank" }, + { + "EnumValue": 2, + "Type": "PointsModifierSourceType", + "Name": "ProgressiveEventMissCount" + }, + { + "EnumValue": 3, + "Type": "PointsModifierSourceType", + "Name": "ProgressiveEventItemWinCount" + }, + { "EnumValue": 4, "Type": "PointsModifierSourceType", "Name": "NumLooters" }, + { "EnumValue": 5, "Type": "PointsModifierSourceType", "Name": "BaseItemLevel" }, + { "EnumValue": 6, "Type": "PointsModifierSourceType", "Name": "LootLevel" }, + { + "EnumValue": 7, + "Type": "PointsModifierSourceType", + "Name": "InstanceGroupSize" + }, + { + "EnumValue": 8, + "Type": "PointsModifierSourceType", + "Name": "QuestItemGroupMissCount" + }, + { + "EnumValue": 9, + "Type": "PointsModifierSourceType", + "Name": "TreasureItemPvalue" + }, + { + "EnumValue": 10, + "Type": "PointsModifierSourceType", + "Name": "FollowerLevelInBuilding" + }, + { + "EnumValue": 11, + "Type": "PointsModifierSourceType", + "Name": "FollowerQualityInBuilding" + }, + { + "EnumValue": 12, + "Type": "PointsModifierSourceType", + "Name": "NumGroupFriends" + }, + { + "EnumValue": 13, + "Type": "PointsModifierSourceType", + "Name": "FollowerLevelForCurrentShipment" + }, + { + "EnumValue": 14, + "Type": "PointsModifierSourceType", + "Name": "FollowerQualityForCurrentShipment" + }, + { + "EnumValue": 15, + "Type": "PointsModifierSourceType", + "Name": "PvPBracketRatingSpecific" + }, + { + "EnumValue": 16, + "Type": "PointsModifierSourceType", + "Name": "ChallengeModeLevel" + }, + { + "EnumValue": 17, + "Type": "PointsModifierSourceType", + "Name": "CurrencyMaxDelta" + }, + { + "EnumValue": 18, + "Type": "PointsModifierSourceType", + "Name": "WorldStateValue" + }, + { + "EnumValue": 19, + "Type": "PointsModifierSourceType", + "Name": "PlayerKeystoneLevel" + }, + { + "EnumValue": 20, + "Type": "PointsModifierSourceType", + "Name": "PlayerCondition" + }, + { + "EnumValue": 21, + "Type": "PointsModifierSourceType", + "Name": "PassesTreasureTrackingQuestEligibility" + }, + { + "EnumValue": 22, + "Type": "PointsModifierSourceType", + "Name": "PvPBracketRatingCurrentInstance" + }, + { "EnumValue": 23, "Type": "PointsModifierSourceType", "Name": "PvPTeamSize" }, + { + "EnumValue": 24, + "Type": "PointsModifierSourceType", + "Name": "ItemLevelHighWaterMarkAverage" + }, + { + "EnumValue": 25, + "Type": "PointsModifierSourceType", + "Name": "ProgressiveEventNumWinsForLootSpec" + }, + { + "EnumValue": 26, + "Type": "PointsModifierSourceType", + "Name": "ProgressiveEventNumRemainingForLootSpec" + }, + { + "EnumValue": 27, + "Type": "PointsModifierSourceType", + "Name": "WorldStateExpression" + }, + { + "EnumValue": 28, + "Type": "PointsModifierSourceType", + "Name": "ProgressiveEventNumRemainingForClass" + }, + { + "EnumValue": 29, + "Type": "PointsModifierSourceType", + "Name": "CreatureClassification" + }, + { + "EnumValue": 30, + "Type": "PointsModifierSourceType", + "Name": "HonorEarnedThisPvPMatch" + }, + { "EnumValue": 31, "Type": "PointsModifierSourceType", "Name": "NumTappers" }, + { + "EnumValue": 32, + "Type": "PointsModifierSourceType", + "Name": "PvPJackpotTier" + }, + { + "EnumValue": 33, + "Type": "PointsModifierSourceType", + "Name": "PlayerLevelContentTuningMax" + }, + { + "EnumValue": 34, + "Type": "PointsModifierSourceType", + "Name": "SalvagedItemIsCloth" + }, + { + "EnumValue": 35, + "Type": "PointsModifierSourceType", + "Name": "SalvagedItemIsLeather" + }, + { + "EnumValue": 36, + "Type": "PointsModifierSourceType", + "Name": "SalvagedItemIsMail" + }, + { + "EnumValue": 37, + "Type": "PointsModifierSourceType", + "Name": "SalvagedItemIsPlate" + }, + { + "EnumValue": 38, + "Type": "PointsModifierSourceType", + "Name": "SalvagedItemIsMisc" + }, + { + "EnumValue": 39, + "Type": "PointsModifierSourceType", + "Name": "QuestExpansionID" + }, + { "EnumValue": 40, "Type": "PointsModifierSourceType", "Name": "Reserved_2" }, + { + "EnumValue": 41, + "Type": "PointsModifierSourceType", + "Name": "JailersTowerActiveFloorDifficulty" + }, + { + "EnumValue": 42, + "Type": "PointsModifierSourceType", + "Name": "NumLootSourceAuraStacks" + }, + { + "EnumValue": 43, + "Type": "PointsModifierSourceType", + "Name": "HasLegendaryCloakUpdgradeAvailable" + }, + { "EnumValue": 44, "Type": "PointsModifierSourceType", "Name": "ObjectLevel" }, + { + "EnumValue": 45, + "Type": "PointsModifierSourceType", + "Name": "PercentThroughContentTuning" + }, + { "EnumValue": 46, "Type": "PointsModifierSourceType", "Name": "PvPTier" }, + { + "EnumValue": 47, + "Type": "PointsModifierSourceType", + "Name": "CurrencyQuantity" + }, + { "EnumValue": 48, "Type": "PointsModifierSourceType", "Name": "AreaGroup" }, + { + "EnumValue": 49, + "Type": "PointsModifierSourceType", + "Name": "ObjectLabelID" + }, + { + "EnumValue": 50, + "Type": "PointsModifierSourceType", + "Name": "WeeklyMythicPlusCount" + }, + { + "EnumValue": 51, + "Type": "PointsModifierSourceType", + "Name": "PercentThroughExpansion" + }, + { + "EnumValue": 52, + "Type": "PointsModifierSourceType", + "Name": "AutoMissionScalar" + }, + { + "EnumValue": 53, + "Type": "PointsModifierSourceType", + "Name": "RenownCatchup" + }, + { + "EnumValue": 54, + "Type": "PointsModifierSourceType", + "Name": "RenownRapidCatchup" + }, + { "EnumValue": 55, "Type": "PointsModifierSourceType", "Name": "ParagonLevel" }, + { + "EnumValue": 56, + "Type": "PointsModifierSourceType", + "Name": "NumPlayersThatGainedDungeonScore" + }, + { + "EnumValue": 57, + "Type": "PointsModifierSourceType", + "Name": "ProfessionQualityLevel" + }, + { "EnumValue": 58, "Type": "PointsModifierSourceType", "Name": "CraftSkill" }, + { + "EnumValue": 59, + "Type": "PointsModifierSourceType", + "Name": "NumWeeklyRewardsThresholdsEarned" + }, + { + "EnumValue": 60, + "Type": "PointsModifierSourceType", + "Name": "SalvagedItemLevel" + }, + { + "EnumValue": 61, + "Type": "PointsModifierSourceType", + "Name": "ProfessionRatingFinessePercent" + }, + { + "EnumValue": 62, + "Type": "PointsModifierSourceType", + "Name": "ProfessionRatingPerceptionPercent" + }, + { + "EnumValue": 63, + "Type": "PointsModifierSourceType", + "Name": "ProfessionTraitRanksByLabel" + }, + { + "EnumValue": 64, + "Type": "PointsModifierSourceType", + "Name": "CreatureHealthMod" + }, + { + "EnumValue": 65, + "Type": "PointsModifierSourceType", + "Name": "FirstTimeQuestCompletionRewards" + }, + { + "EnumValue": 66, + "Type": "PointsModifierSourceType", + "Name": "PointsModifierSet" + } + ], + "MaxValue": 66, + "MinValue": 0, + "NumValues": 67 + }, + { + "Values": [ + { "Type": "number", "Name": "NumBagSlots" }, + { "Type": "number", "Name": "NumGenericBankSlots" }, + { "Type": "number", "Name": "NumBankBagSlots" }, + { "Type": "number", "Name": "NumReagentBagSlots" }, + { "Type": "number", "Name": "NumAccountBankSlots" }, + { "Value": 0, "Type": "number", "Name": "MAX_TRANSACTION_BANK_TABS" } + ], + "Type": "Constants", + "Name": "InventoryConstants" + } + ] + }, + { + "Namespace": "C_Item", + "Functions": [ + { "Type": "Function", "Name": "ActionBindsItem" }, + { "Type": "Function", "Name": "BindEnchant" }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canTransmog" }, + { "Nilable": false, "Type": "number", "Name": "errorCode" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "CanItemTransmogAppearance" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canBeScrapped" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "CanScrapItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isItemViewable" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "CanViewItemPowers" + }, + { "Type": "Function", "Name": "ConfirmBindOnUse" }, + { "Type": "Function", "Name": "ConfirmNoRefundOnUse" }, + { "Type": "Function", "Name": "ConfirmOnUse" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }, + { "Nilable": false, "Type": "number", "Name": "classID" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "specID" } + ], + "Type": "Function", + "Name": "DoesItemContainSpec" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "itemExists" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "EmptiableItemLocation", + "Name": "emptiableItemLocation" + } + ], + "Type": "Function", + "Name": "DoesItemExist" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "itemExists" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "DoesItemExistByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "matchesBonusTree" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "DoesItemMatchBonusTreeReplacement" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "matchesTargetEnchantingSpell" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "DoesItemMatchTargetEnchantingSpell" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "matchesTrackJump" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "DoesItemMatchTrackJump" + }, + { + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitGUID" }], + "Type": "Function", + "Name": "DropItemOnUnit" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "type" }], + "Type": "Function", + "Name": "EndBoundTradeable" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "type" }], + "Type": "Function", + "Name": "EndRefund" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }, + { "Nilable": true, "Type": "luaIndex", "Name": "dstSlot" } + ], + "Type": "Function", + "Name": "EquipItemByName" + }, + { + "Returns": [ + { + "Nilable": true, + "Mixin": "ItemTransmogInfoMixin", + "Type": "ItemTransmogInfo", + "Name": "info" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "GetAppliedItemTransmogInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Mixin": "ItemTransmogInfoMixin", + "Type": "ItemTransmogInfo", + "Name": "info" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "GetBaseItemTransmogInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "currentItemLevel" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "GetCurrentItemLevel" + }, + { + "Returns": [ + { + "Nilable": true, + "Mixin": "ItemTransmogInfoMixin", + "Type": "ItemTransmogInfo", + "Name": "info" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "GetCurrentItemTransmogInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "itemLink" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "ItemCreationContext", "Name": "context" } + ], + "Type": "Function", + "Name": "GetDelvePreviewItemLink" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "actualItemLevel" }, + { "Nilable": false, "Type": "bool", "Name": "previewLevel" }, + { "Nilable": false, "Type": "number", "Name": "sparseItemLevel" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetDetailedItemLevelInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "spellID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "itemQuality" } + ], + "Type": "Function", + "Name": "GetFirstTriggeredSpellForItem" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "result" } + ], + "Arguments": [ + { "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }, + { "Nilable": true, "Type": "luaIndex", "Name": "slotID" } + ], + "Type": "Function", + "Name": "GetItemChildInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemClassID" }], + "Type": "Function", + "Name": "GetItemClassInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "fileID", "Name": "icon" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "GetItemConversionOutputIcon" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTimeSeconds" }, + { "Nilable": false, "Type": "number", "Name": "durationSeconds" }, + { "Nilable": false, "Type": "bool", "Name": "enableCooldownTimer" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemCooldown" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "count" }], + "Arguments": [ + { "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "includeBank" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "includeUses" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "includeReagentBank" + } + ], + "Type": "Function", + "Name": "GetItemCount" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "cstring", "Name": "creationContext" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemCreationContext" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemFamily" + }, + { + "Returns": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "GetItemGUID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "gemName" }, + { "Nilable": false, "Type": "cstring", "Name": "gemLink" } + ], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "hyperlink" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" } + ], + "Type": "Function", + "Name": "GetItemGem" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "gemID" }], + "Arguments": [ + { "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" } + ], + "Type": "Function", + "Name": "GetItemGemID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "GetItemID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "itemID" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Type": "Function", + "Name": "GetItemIDByGUID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemIDForItemInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "fileID", "Name": "icon" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "GetItemIcon" + }, + { + "Returns": [{ "Nilable": true, "Type": "fileID", "Name": "icon" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemIconByID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "itemName" }, + { "Nilable": false, "Type": "cstring", "Name": "itemLink" }, + { "Nilable": false, "Type": "ItemQuality", "Name": "itemQuality" }, + { "Nilable": false, "Type": "number", "Name": "itemLevel" }, + { "Nilable": false, "Type": "number", "Name": "itemMinLevel" }, + { "Nilable": false, "Type": "cstring", "Name": "itemType" }, + { "Nilable": false, "Type": "cstring", "Name": "itemSubType" }, + { "Nilable": false, "Type": "number", "Name": "itemStackCount" }, + { "Nilable": false, "Type": "cstring", "Name": "itemEquipLoc" }, + { "Nilable": false, "Type": "fileID", "Name": "itemTexture" }, + { "Nilable": false, "Type": "number", "Name": "sellPrice" }, + { "Nilable": false, "Type": "number", "Name": "classID" }, + { "Nilable": false, "Type": "number", "Name": "subclassID" }, + { "Nilable": false, "Type": "number", "Name": "bindType" }, + { "Nilable": false, "Type": "number", "Name": "expansionID" }, + { "Nilable": true, "Type": "number", "Name": "setID" }, + { "Nilable": false, "Type": "bool", "Name": "isCraftingReagent" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "cstring", "Name": "itemType" }, + { "Nilable": false, "Type": "cstring", "Name": "itemSubType" }, + { "Nilable": false, "Type": "cstring", "Name": "itemEquipLoc" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "classID" }, + { "Nilable": false, "Type": "number", "Name": "subClassID" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemInfoInstant" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "InventoryType", "Name": "inventorySlot" } + ], + "Type": "Function", + "Name": "GetItemInventorySlotInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "InventoryType", "Name": "inventorySlot" } + ], + "Type": "Function", + "Name": "GetItemInventorySlotKey" + }, + { + "Returns": [ + { "Nilable": true, "Type": "InventoryType", "Name": "inventoryType" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "GetItemInventoryType" + }, + { + "Returns": [ + { "Nilable": true, "Type": "InventoryType", "Name": "inventoryType" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemInventoryTypeByID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "setID" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemLearnTransmogSet" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "itemLink" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "GetItemLink" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "itemLink" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Type": "Function", + "Name": "GetItemLinkByGUID" + }, + { + "Returns": [ + { + "Nilable": true, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Type": "Function", + "Name": "GetItemLocation" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "stackSize" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "GetItemMaxStackSize" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "stackSize" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemMaxStackSizeByID" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "itemName" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "GetItemName" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "itemName" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemNameByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "socketCount" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemNumAddedSockets" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "socketCount" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemNumSockets" + }, + { + "Returns": [{ "Nilable": true, "Type": "ItemQuality", "Name": "itemQuality" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "GetItemQuality" + }, + { + "Returns": [{ "Nilable": true, "Type": "ItemQuality", "Name": "itemQuality" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemQualityByID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorRGBR" }, + { "Nilable": false, "Type": "number", "Name": "colorRGBG" }, + { "Nilable": false, "Type": "number", "Name": "colorRGBB" }, + { "Nilable": false, "Type": "cstring", "Name": "qualityString" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "quality" }], + "Type": "Function", + "Name": "GetItemQualityColor" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "setID" }], + "Type": "Function", + "Name": "GetItemSetInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "specTable" + } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemSpecInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "spellName" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemSpell" + }, + { + "Returns": [{ "Nilable": false, "Type": "LuaValueVariant", "Name": "statTable" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "itemLink1" }, + { "Nilable": false, "Type": "cstring", "Name": "itemLink2" } + ], + "Type": "Function", + "Name": "GetItemStatDelta" + }, + { + "Returns": [{ "Nilable": false, "Type": "LuaValueVariant", "Name": "statTable" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "itemLink" }], + "Type": "Function", + "Name": "GetItemStats" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "subClassName" }, + { "Nilable": false, "Type": "bool", "Name": "subClassUsesInvType" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemClassID" }, + { "Nilable": false, "Type": "number", "Name": "itemSubClassID" } + ], + "Type": "Function", + "Name": "GetItemSubClassInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "limitCategory" }, + { "Nilable": false, "Type": "number", "Name": "limitMax" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemUniqueness" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isUnique" }, + { "Nilable": true, "Type": "cstring", "Name": "limitCategoryName" }, + { "Nilable": true, "Type": "number", "Name": "limitCategoryCount" }, + { "Nilable": true, "Type": "number", "Name": "limitCategoryID" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemUniquenessByID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "number", "Name": "maxQuantity" }, + { "Nilable": false, "Type": "number", "Name": "totalEarned" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetLimitedCurrencyItemInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "itemSetSpellIDs" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "Type": "number", "Name": "itemID" } + ], + "Type": "Function", + "Name": "GetSetBonusesForSpecializationByItemID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "stackCount" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "GetStackCount" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAnimaItem" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsAnimaItemByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsArtifactPowerItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isBound" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "IsBound" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isBoundToAccountUntilEquip" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "IsBoundToAccountUntilEquip" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsConsumableItem" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsCorruptedItem" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsCosmeticItem" + }, + { + "Documentation": [ + "Returns whether the item is a consumable curio that can be applied to a delves companion." + ], + "Type": "Function", + "Name": "IsCurioItem", + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsCurrentItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDressableItem" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsDressableItemByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsEquippableItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsEquippedItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "type" }], + "Type": "Function", + "Name": "IsEquippedItemType" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsHarmfulItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsHelpfulItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isConduit" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "IsItemConduit" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "bool", + "Name": "isItemConvertibleAndValidForPlayer" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "IsItemConvertibleAndValidForPlayer" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCorrupted" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "IsItemCorrupted" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCorruptionRelated" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "IsItemCorruptionRelated" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isCorruptionResistant" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Type": "Function", + "Name": "IsItemCorruptionResistant" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCached" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "IsItemDataCached" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCached" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsItemDataCachedByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "valid" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Type": "Function", + "Name": "IsItemGUIDInInventory" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }, + { "Nilable": false, "Type": "cstring", "Name": "targetToken" } + ], + "Type": "Function", + "Name": "IsItemInRange" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isKeystone" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsItemKeystoneByID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isItemSpecificToPlayerClass" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsItemSpecificToPlayerClass" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLocked" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "IsLocked" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "usable" }, + { "Nilable": false, "Type": "bool", "Name": "noMana" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsUsableItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "ItemHasRange" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "LockItem" + }, + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Type": "Function", + "Name": "LockItemByGUID" + }, + { + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "PickupItem" + }, + { "Type": "Function", "Name": "ReplaceEnchant" }, + { "Type": "Function", "Name": "ReplaceTradeEnchant" }, + { "Type": "Function", "Name": "ReplaceTradeskillEnchant" }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "RequestLoadItemData" + }, + { + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "RequestLoadItemDataByID" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "UnlockItem" + }, + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Type": "Function", + "Name": "UnlockItemByGUID" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }, + { "Nilable": true, "Type": "cstring", "Name": "target" } + ], + "Type": "Function", + "Name": "UseItemByName" + } + ], + "Type": "System", + "Name": "Item", + "Events": [ + { + "LiteralName": "ACTION_WILL_BIND_ITEM", + "Type": "Event", + "Name": "ActionWillBindItem" + }, + { "LiteralName": "BIND_ENCHANT", "Type": "Event", "Name": "BindEnchant" }, + { + "LiteralName": "CHARACTER_ITEM_FIXUP_NOTIFICATION", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "fixupVersion" }], + "Type": "Event", + "Name": "CharacterItemFixupNotification" + }, + { + "LiteralName": "CONFIRM_BEFORE_USE", + "Type": "Event", + "Name": "ConfirmBeforeUse" + }, + { + "LiteralName": "CONVERT_TO_BIND_TO_ACCOUNT_CONFIRM", + "Type": "Event", + "Name": "ConvertToBindToAccountConfirm" + }, + { + "LiteralName": "DELETE_ITEM_CONFIRM", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "itemName" }, + { "Nilable": false, "Type": "number", "Name": "qualityID" }, + { "Nilable": false, "Type": "number", "Name": "bonding" }, + { "Nilable": false, "Type": "number", "Name": "questWarn" } + ], + "Type": "Event", + "Name": "DeleteItemConfirm" + }, + { + "LiteralName": "END_BOUND_TRADEABLE", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "reason" }], + "Type": "Event", + "Name": "EndBoundTradeable" + }, + { + "LiteralName": "GET_ITEM_INFO_RECEIVED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "bool", "Name": "success" } + ], + "Type": "Event", + "Name": "GetItemInfoReceived" + }, + { + "LiteralName": "ITEM_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "string", "Name": "previousHyperlink" }, + { "Nilable": false, "Type": "string", "Name": "newHyperlink" } + ], + "Type": "Event", + "Name": "ItemChanged" + }, + { + "LiteralName": "ITEM_CONVERSION_DATA_READY", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Type": "Event", + "Name": "ItemConversionDataReady" + }, + { + "LiteralName": "ITEM_COUNT_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Event", + "Name": "ItemCountChanged" + }, + { + "LiteralName": "ITEM_DATA_LOAD_RESULT", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "bool", "Name": "success" } + ], + "Type": "Event", + "Name": "ItemDataLoadResult" + }, + { + "LiteralName": "MERCHANT_CONFIRM_TRADE_TIMER_REMOVAL", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "itemLink" }], + "Type": "Event", + "Name": "MerchantConfirmTradeTimerRemoval" + }, + { + "LiteralName": "REPLACE_ENCHANT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "existingStr" }, + { "Nilable": false, "Type": "cstring", "Name": "replacementStr" } + ], + "Type": "Event", + "Name": "ReplaceEnchant" + }, + { + "LiteralName": "REPLACE_TRADESKILL_ENCHANT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "existing" }, + { "Nilable": false, "Type": "cstring", "Name": "replacement" } + ], + "Type": "Event", + "Name": "ReplaceTradeskillEnchant" + }, + { + "LiteralName": "TRADE_REPLACE_ENCHANT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "existing" }, + { "Nilable": false, "Type": "cstring", "Name": "replacement" } + ], + "Type": "Event", + "Name": "TradeReplaceEnchant" + }, + { "LiteralName": "USE_BIND_CONFIRM", "Type": "Event", "Name": "UseBindConfirm" }, + { + "LiteralName": "USE_NO_REFUND_CONFIRM", + "Type": "Event", + "Name": "UseNoRefundConfirm" + }, + { + "LiteralName": "WEAPON_ENCHANT_CHANGED", + "Type": "Event", + "Name": "WeaponEnchantChanged" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "itemName" }, + { "Nilable": false, "Type": "cstring", "Name": "itemLink" }, + { "Nilable": false, "Type": "ItemQuality", "Name": "itemQuality" }, + { "Nilable": false, "Type": "number", "Name": "itemLevel" }, + { "Nilable": false, "Type": "number", "Name": "itemMinLevel" }, + { "Nilable": false, "Type": "cstring", "Name": "itemType" }, + { "Nilable": false, "Type": "cstring", "Name": "itemSubType" }, + { "Nilable": false, "Type": "number", "Name": "itemStackCount" }, + { "Nilable": false, "Type": "cstring", "Name": "itemEquipLoc" }, + { "Nilable": false, "Type": "fileID", "Name": "itemTexture" }, + { "Nilable": false, "Type": "number", "Name": "sellPrice" }, + { "Nilable": false, "Type": "number", "Name": "classID" }, + { "Nilable": false, "Type": "number", "Name": "subclassID" }, + { "Nilable": false, "Type": "number", "Name": "bindType" }, + { "Nilable": false, "Type": "number", "Name": "expansionID" }, + { "Nilable": true, "Type": "number", "Name": "setID" }, + { "Nilable": false, "Type": "bool", "Name": "isCraftingReagent" } + ], + "Type": "Structure", + "Name": "ItemInfoResult" + } + ] + }, + { + "Namespace": "C_ItemInteraction", + "Functions": [ + { "Type": "Function", "Name": "ClearPendingItem" }, + { "Type": "Function", "Name": "CloseUI" }, + { + "Returns": [ + { "Nilable": false, "Type": "ItemInteractionChargeInfo", "Name": "chargeInfo" } + ], + "Type": "Function", + "Name": "GetChargeInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ConversionCurrencyCost", "Name": "conversionCost" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + } + ], + "Type": "Function", + "Name": "GetItemConversionCurrencyCost" + }, + { + "Returns": [ + { "Nilable": true, "Type": "ItemInteractionFrameInfo", "Name": "info" } + ], + "Type": "Function", + "Name": "GetItemInteractionInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "spellId" }], + "Type": "Function", + "Name": "GetItemInteractionSpellId" + }, + { "Type": "Function", "Name": "InitializeFrame" }, + { "Type": "Function", "Name": "PerformItemInteraction" }, + { "Type": "Function", "Name": "Reset" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { + "Nilable": true, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + } + ], + "Type": "Function", + "Name": "SetPendingItem" + } + ], + "Type": "System", + "Name": "ItemInteractionUI", + "Events": [ + { + "LiteralName": "ITEM_INTERACTION_CHARGE_INFO_UPDATED", + "Type": "Event", + "Name": "ItemInteractionChargeInfoUpdated" + }, + { + "LiteralName": "ITEM_INTERACTION_ITEM_SELECTION_UPDATED", + "Payload": [ + { + "Nilable": true, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Event", + "Name": "ItemInteractionItemSelectionUpdated" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "amount" } + ], + "Type": "Structure", + "Name": "ConversionCurrencyCost" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "newChargeAmount" }, + { "Nilable": false, "Type": "number", "Name": "rechargeRate" }, + { "Nilable": false, "Type": "number", "Name": "timeToNextCharge" } + ], + "Type": "Structure", + "Name": "ItemInteractionChargeInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "number", "Name": "openSoundKitID" }, + { "Nilable": false, "Type": "number", "Name": "closeSoundKitID" }, + { "Nilable": false, "Type": "string", "Name": "titleText" }, + { "Nilable": false, "Type": "string", "Name": "tutorialText" }, + { "Nilable": false, "Type": "string", "Name": "buttonText" }, + { + "Nilable": false, + "Type": "UIItemInteractionType", + "Name": "interactionType" + }, + { "Nilable": false, "Type": "number", "Name": "flags" }, + { "Nilable": true, "Type": "string", "Name": "description" }, + { "Nilable": true, "Type": "string", "Name": "buttonTooltip" }, + { "Nilable": true, "Type": "string", "Name": "confirmationDescription" }, + { "Nilable": true, "Type": "string", "Name": "slotTooltip" }, + { "Nilable": true, "Type": "number", "Name": "cost" }, + { "Nilable": true, "Type": "number", "Name": "currencyTypeId" }, + { "Nilable": true, "Type": "number", "Name": "dropInSlotSoundKitId" } + ], + "Type": "Structure", + "Name": "ItemInteractionFrameInfo" + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_ItemSocketInfo", + "Functions": [{ "Type": "Function", "Name": "CompleteSocketing" }], + "Type": "System", + "Name": "ItemSocketInfo", + "Events": [ + { + "LiteralName": "SOCKET_INFO_ACCEPT", + "Type": "Event", + "Name": "SocketInfoAccept" + }, + { + "LiteralName": "SOCKET_INFO_BIND_CONFIRM", + "Type": "Event", + "Name": "SocketInfoBindConfirm" + }, + { "LiteralName": "SOCKET_INFO_CLOSE", "Type": "Event", "Name": "SocketInfoClose" }, + { + "LiteralName": "SOCKET_INFO_FAILURE", + "Type": "Event", + "Name": "SocketInfoFailure" + }, + { + "LiteralName": "SOCKET_INFO_REFUNDABLE_CONFIRM", + "Type": "Event", + "Name": "SocketInfoRefundableConfirm" + }, + { + "LiteralName": "SOCKET_INFO_SUCCESS", + "Type": "Event", + "Name": "SocketInfoSuccess" + }, + { "LiteralName": "SOCKET_INFO_UPDATE", "Type": "Event", "Name": "SocketInfoUpdate" } + ], + "Tables": [] + }, + { + "Namespace": "C_ItemText", + "Functions": [], + "Type": "System", + "Name": "ItemText", + "Events": [ + { "LiteralName": "ITEM_TEXT_BEGIN", "Type": "Event", "Name": "ItemTextBegin" }, + { "LiteralName": "ITEM_TEXT_CLOSED", "Type": "Event", "Name": "ItemTextClosed" }, + { "LiteralName": "ITEM_TEXT_READY", "Type": "Event", "Name": "ItemTextReady" }, + { + "LiteralName": "ITEM_TEXT_TRANSLATION", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "delay" }], + "Type": "Event", + "Name": "ItemTextTranslation" + } + ], + "Tables": [] + }, + { + "Namespace": "C_ItemUpgrade", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isValid" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "baseItem" + } + ], + "Type": "Function", + "Name": "CanUpgradeItem" + }, + { "Type": "Function", "Name": "ClearItemUpgrade" }, + { "Type": "Function", "Name": "CloseItemUpgrade" }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "characterHighWatermark" }, + { "Nilable": false, "Type": "number", "Name": "accountHighWatermark" } + ], + "Arguments": [ + { + "Nilable": false, + "Documentation": ["Item ID, Link, or Name"], + "Type": "ItemInfo", + "Name": "itemInfo" + } + ], + "Type": "Function", + "Name": "GetHighWatermarkForItem" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "characterHighWatermark" }, + { "Nilable": false, "Type": "number", "Name": "accountHighWatermark" } + ], + "Arguments": [ + { + "Nilable": false, + "Documentation": ["Must be an Enum.ItemRedundancySlot value"], + "Type": "number", + "Name": "itemRedundancySlot" + } + ], + "Type": "Function", + "Name": "GetHighWatermarkForSlot" + }, + { + "Returns": [ + { + "Nilable": false, + "Documentation": ["Enum.ItemRedundancySlot value"], + "Type": "number", + "Name": "itemRedundancySlot" + } + ], + "Arguments": [ + { + "Nilable": false, + "Documentation": ["Item ID, Link, or Name"], + "Type": "ItemInfo", + "Name": "itemInfo" + } + ], + "Type": "Function", + "Name": "GetHighWatermarkSlotForItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "link" }], + "Type": "Function", + "Name": "GetItemHyperlink" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "itemLevel" }, + { "Nilable": false, "Type": "bool", "Name": "isPvpItemLevel" } + ], + "Type": "Function", + "Name": "GetItemUpgradeCurrentLevel" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "outBaseEffect" }, + { "Nilable": false, "Type": "string", "Name": "outUpgradedEffect" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "effectIndex" }, + { "Nilable": true, "Type": "number", "Name": "numUpgradeLevels" } + ], + "Type": "Function", + "Name": "GetItemUpgradeEffect" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ItemUpgradeItemInfo", "Name": "itemInfo" } + ], + "Type": "Function", + "Name": "GetItemUpgradeItemInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "currentPvPItemLevel" }, + { "Nilable": false, "Type": "number", "Name": "upgradedPvPItemLevel" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "numUpgradeLevels" }], + "Type": "Function", + "Name": "GetItemUpgradePvpItemLevelDeltaValues" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numItemUpgradeEffects" } + ], + "Type": "Function", + "Name": "GetNumItemUpgradeEffects" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isBound" }], + "Type": "Function", + "Name": "IsItemBound" + }, + { "Type": "Function", "Name": "SetItemUpgradeFromCursorItem" }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemToSet" + } + ], + "Type": "Function", + "Name": "SetItemUpgradeFromLocation" + }, + { + "Arguments": [ + { "Nilable": false, "Default": 1, "Type": "number", "Name": "numUpgrades" } + ], + "Type": "Function", + "Name": "UpgradeItem" + } + ], + "Type": "System", + "Name": "ItemUpgrade", + "Events": [ + { + "LiteralName": "ITEM_UPGRADE_FAILED", + "Type": "Event", + "Name": "ItemUpgradeFailed" + }, + { + "LiteralName": "ITEM_UPGRADE_MASTER_SET_ITEM", + "Type": "Event", + "Name": "ItemUpgradeMasterSetItem" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "isDiscounted" }, + { "Nilable": false, "Type": "number", "Name": "discountHighWatermark" }, + { "Nilable": false, "Type": "bool", "Name": "isPartialTwoHandDiscount" }, + { "Nilable": false, "Type": "bool", "Name": "isAccountWideDiscount" }, + { + "Nilable": false, + "Documentation": [ + "Reflects whether current character meets discount's high watermark, even if discount itself is account-wide" + ], + "Type": "bool", + "Name": "doesCurrentCharacterMeetHighWatermark" + } + ], + "Type": "Structure", + "Name": "ItemUpgradeCostDiscountInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "cost" }, + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { + "Nilable": false, + "Type": "ItemUpgradeCostDiscountInfo", + "Name": "discountInfo" + } + ], + "Type": "Structure", + "Name": "ItemUpgradeCurrencyCost" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "cost" }, + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { + "Nilable": false, + "Type": "ItemUpgradeCostDiscountInfo", + "Name": "discountInfo" + } + ], + "Type": "Structure", + "Name": "ItemUpgradeItemCost" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "iconID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "bool", "Name": "itemUpgradeable" }, + { "Nilable": false, "Type": "number", "Name": "displayQuality" }, + { "Nilable": false, "Type": "number", "Name": "highWatermarkSlot" }, + { "Nilable": false, "Type": "number", "Name": "currUpgrade" }, + { "Nilable": false, "Type": "number", "Name": "maxUpgrade" }, + { "Nilable": false, "Type": "number", "Name": "minItemLevel" }, + { "Nilable": false, "Type": "number", "Name": "maxItemLevel" }, + { + "Nilable": false, + "InnerType": "ItemUpgradeLevelInfo", + "Type": "table", + "Name": "upgradeLevelInfos" + }, + { "Nilable": true, "Type": "string", "Name": "customUpgradeString" }, + { + "Nilable": false, + "InnerType": "ItemUpgradeSeasonalCostType", + "Type": "table", + "Name": "upgradeCostTypesForSeason" + } + ], + "Type": "Structure", + "Name": "ItemUpgradeItemInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "upgradeLevel" }, + { "Nilable": false, "Type": "number", "Name": "displayQuality" }, + { "Nilable": false, "Type": "number", "Name": "itemLevelIncrement" }, + { + "Nilable": false, + "InnerType": "ItemUpgradeStat", + "Type": "table", + "Name": "levelStats" + }, + { + "Nilable": false, + "InnerType": "ItemUpgradeCurrencyCost", + "Type": "table", + "Name": "currencyCostsToUpgrade" + }, + { + "Nilable": false, + "InnerType": "ItemUpgradeItemCost", + "Type": "table", + "Name": "itemCostsToUpgrade" + }, + { "Nilable": true, "Type": "string", "Name": "failureMessage" } + ], + "Type": "Structure", + "Name": "ItemUpgradeLevelInfo" + }, + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": true, "Type": "string", "Name": "sourceString" } + ], + "Documentation": [ + "Costs are made up of either an Item OR a Currency, so either itemID or currencyID will be nil" + ], + "Type": "Structure", + "Name": "ItemUpgradeSeasonalCostType" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "displayString" }, + { "Nilable": false, "Type": "number", "Name": "statValue" }, + { "Nilable": false, "Type": "bool", "Name": "active" } + ], + "Type": "Structure", + "Name": "ItemUpgradeStat" + } + ] + }, + { + "Namespace": "C_KeyBindings", + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "luaIndex", "Name": "bindingIndex" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "action" }], + "Type": "Function", + "Name": "GetBindingIndex" + }, + { + "Returns": [ + { "Nilable": true, "Type": "CustomBindingType", "Name": "customBindingType" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "bindingIndex" }], + "Type": "Function", + "Name": "GetCustomBindingType" + } + ], + "Type": "System", + "Name": "KeyBindings", + "Events": [ + { + "LiteralName": "MODIFIER_STATE_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "key" }, + { "Nilable": false, "Type": "number", "Name": "down" } + ], + "Type": "Event", + "Name": "ModifierStateChanged" + }, + { "LiteralName": "UPDATE_BINDINGS", "Type": "Event", "Name": "UpdateBindings" } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "BindingSet", + "Fields": [ + { "EnumValue": 0, "Type": "BindingSet", "Name": "Default" }, + { "EnumValue": 1, "Type": "BindingSet", "Name": "Account" }, + { "EnumValue": 2, "Type": "BindingSet", "Name": "Character" }, + { "EnumValue": 3, "Type": "BindingSet", "Name": "Current" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "CustomBindingType", + "Fields": [ + { "EnumValue": 0, "Type": "CustomBindingType", "Name": "VoicePushToTalk" } + ], + "MaxValue": 0, + "MinValue": 0, + "NumValues": 1 + } + ] + }, + { + "Namespace": "C_KnowledgeBase", + "Functions": [], + "Type": "System", + "Name": "KnowledgeBase", + "Events": [ + { + "LiteralName": "KNOWLEDGE_BASE_ARTICLE_LOAD_FAILURE", + "Type": "Event", + "Name": "KnowledgeBaseArticleLoadFailure" + }, + { + "LiteralName": "KNOWLEDGE_BASE_ARTICLE_LOAD_SUCCESS", + "Type": "Event", + "Name": "KnowledgeBaseArticleLoadSuccess" + }, + { + "LiteralName": "KNOWLEDGE_BASE_QUERY_LOAD_FAILURE", + "Type": "Event", + "Name": "KnowledgeBaseQueryLoadFailure" + }, + { + "LiteralName": "KNOWLEDGE_BASE_QUERY_LOAD_SUCCESS", + "Type": "Event", + "Name": "KnowledgeBaseQueryLoadSuccess" + }, + { + "LiteralName": "KNOWLEDGE_BASE_SERVER_MESSAGE", + "Type": "Event", + "Name": "KnowledgeBaseServerMessage" + }, + { + "LiteralName": "KNOWLEDGE_BASE_SETUP_LOAD_FAILURE", + "Type": "Event", + "Name": "KnowledgeBaseSetupLoadFailure" + }, + { + "LiteralName": "KNOWLEDGE_BASE_SETUP_LOAD_SUCCESS", + "Type": "Event", + "Name": "KnowledgeBaseSetupLoadSuccess" + }, + { + "LiteralName": "KNOWLEDGE_BASE_SYSTEM_MOTD_UPDATED", + "Type": "Event", + "Name": "KnowledgeBaseSystemMotdUpdated" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "LFGEntryPlaystyle", + "Fields": [ + { "EnumValue": 0, "Type": "LFGEntryPlaystyle", "Name": "None" }, + { "EnumValue": 1, "Type": "LFGEntryPlaystyle", "Name": "Standard" }, + { "EnumValue": 2, "Type": "LFGEntryPlaystyle", "Name": "Casual" }, + { "EnumValue": 3, "Type": "LFGEntryPlaystyle", "Name": "Hardcore" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "LFGListFilter", + "Fields": [ + { "EnumValue": 1, "Type": "LFGListFilter", "Name": "Recommended" }, + { "EnumValue": 2, "Type": "LFGListFilter", "Name": "NotRecommended" }, + { "EnumValue": 4, "Type": "LFGListFilter", "Name": "PvE" }, + { "EnumValue": 8, "Type": "LFGListFilter", "Name": "PvP" }, + { "EnumValue": 16, "Type": "LFGListFilter", "Name": "Timerunning" }, + { "EnumValue": 32, "Type": "LFGListFilter", "Name": "CurrentExpansion" }, + { "EnumValue": 64, "Type": "LFGListFilter", "Name": "CurrentSeason" }, + { "EnumValue": 128, "Type": "LFGListFilter", "Name": "NotCurrentSeason" } + ], + "MaxValue": 128, + "MinValue": 1, + "NumValues": 8 + }, + { + "Type": "Enumeration", + "Name": "LFGRole", + "Fields": [ + { "EnumValue": 0, "Type": "LFGRole", "Name": "Tank" }, + { "EnumValue": 1, "Type": "LFGRole", "Name": "Healer" }, + { "EnumValue": 2, "Type": "LFGRole", "Name": "Damage" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Values": [ + { "Value": 41, "Type": "number", "Name": "MAX_GROUP_FINDER_ACTIVITIES" } + ], + "Type": "Constants", + "Name": "GroupFinderConstants" + }, + { + "Values": [ + { "Value": -1, "Type": "LFGRole", "Name": "LFG_ROLE_NO_ROLE" }, + { "Value": 1, "Type": "LFGRole", "Name": "LFG_ROLE_ANY" } + ], + "Type": "Constants", + "Name": "LFG_ROLEConstants" + } + ] + }, + { + "Namespace": "C_LFGInfo", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canUse" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "CanPlayerUseGroupFinder" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canUse" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "CanPlayerUseLFD" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canUse" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "CanPlayerUseLFR" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canUse" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "CanPlayerUsePVP" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canUse" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "CanPlayerUsePremadeGroup" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canUse" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "CanPlayerUseScenarioFinder" + }, + { "Type": "Function", "Name": "ConfirmLfgExpandSearch" }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "lfgDungeonIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "category" }], + "Type": "Function", + "Name": "GetAllEntriesForCategory" + }, + { + "Returns": [ + { "Nilable": false, "Type": "LFGDungeonInfo", "Name": "dungeonInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "lfgDungeonID" }], + "Type": "Function", + "Name": "GetDungeonInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "LFGLockInfo", + "Type": "table", + "Name": "lockInfo" + } + ], + "Type": "Function", + "Name": "GetLFDLockStates" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "maxLevel" }, + { "Nilable": false, "Type": "bool", "Name": "isLevelReduced" } + ], + "Type": "Function", + "Name": "GetRoleCheckDifficultyDetails" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "shouldHide" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "dungeonID" }], + "Type": "Function", + "Name": "HideNameFromUI" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsGroupFinderEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsInLFGFollowerDungeon" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsLFDEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "dungeonID" }], + "Type": "Function", + "Name": "IsLFGFollowerDungeon" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsLFREnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsPremadeGroupEnabled" + } + ], + "Type": "System", + "Name": "LFGInfo", + "Events": [ + { + "LiteralName": "ISLAND_COMPLETED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "mapID" }, + { "Nilable": false, "Type": "number", "Name": "winner" } + ], + "Type": "Event", + "Name": "IslandCompleted" + }, + { + "LiteralName": "LFG_BOOT_PROPOSAL_UPDATE", + "Type": "Event", + "Name": "LfgBootProposalUpdate" + }, + { + "LiteralName": "LFG_COMPLETION_REWARD", + "Type": "Event", + "Name": "LfgCompletionReward" + }, + { + "LiteralName": "LFG_ENABLED_STATE_CHANGED", + "Type": "Event", + "Name": "LfgEnabledStateChanged" + }, + { + "LiteralName": "LFG_INVALID_ERROR_MESSAGE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "reason" }, + { "Nilable": false, "Type": "number", "Name": "subReason1" }, + { "Nilable": false, "Type": "number", "Name": "subReason2" } + ], + "Type": "Event", + "Name": "LfgInvalidErrorMessage" + }, + { + "LiteralName": "LFG_LOCK_INFO_RECEIVED", + "Type": "Event", + "Name": "LfgLockInfoReceived" + }, + { + "LiteralName": "LFG_OFFER_CONTINUE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "lfgDungeonsID" }, + { "Nilable": false, "Type": "number", "Name": "typeID" } + ], + "Type": "Event", + "Name": "LfgOfferContinue" + }, + { + "LiteralName": "LFG_OPEN_FROM_GOSSIP", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "dungeonID" }], + "Type": "Event", + "Name": "LfgOpenFromGossip" + }, + { "LiteralName": "LFG_PROPOSAL_DONE", "Type": "Event", "Name": "LfgProposalDone" }, + { + "LiteralName": "LFG_PROPOSAL_FAILED", + "Type": "Event", + "Name": "LfgProposalFailed" + }, + { "LiteralName": "LFG_PROPOSAL_SHOW", "Type": "Event", "Name": "LfgProposalShow" }, + { + "LiteralName": "LFG_PROPOSAL_SUCCEEDED", + "Type": "Event", + "Name": "LfgProposalSucceeded" + }, + { + "LiteralName": "LFG_PROPOSAL_UPDATE", + "Type": "Event", + "Name": "LfgProposalUpdate" + }, + { + "LiteralName": "LFG_QUEUE_STATUS_UPDATE", + "Type": "Event", + "Name": "LfgQueueStatusUpdate" + }, + { + "LiteralName": "LFG_READY_CHECK_DECLINED", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Event", + "Name": "LfgReadyCheckDeclined" + }, + { + "LiteralName": "LFG_READY_CHECK_HIDE", + "Type": "Event", + "Name": "LfgReadyCheckHide" + }, + { + "LiteralName": "LFG_READY_CHECK_PLAYER_IS_READY", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Event", + "Name": "LfgReadyCheckPlayerIsReady" + }, + { + "LiteralName": "LFG_READY_CHECK_SHOW", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isRequeue" }], + "Type": "Event", + "Name": "LfgReadyCheckShow" + }, + { + "LiteralName": "LFG_READY_CHECK_UPDATE", + "Type": "Event", + "Name": "LfgReadyCheckUpdate" + }, + { + "LiteralName": "LFG_ROLE_CHECK_DECLINED", + "Type": "Event", + "Name": "LfgRoleCheckDeclined" + }, + { + "LiteralName": "LFG_ROLE_CHECK_HIDE", + "Type": "Event", + "Name": "LfgRoleCheckHide" + }, + { + "LiteralName": "LFG_ROLE_CHECK_ROLE_CHOSEN", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "bool", "Name": "isTank" }, + { "Nilable": false, "Type": "bool", "Name": "isHealer" }, + { "Nilable": false, "Type": "bool", "Name": "isDamage" } + ], + "Type": "Event", + "Name": "LfgRoleCheckRoleChosen" + }, + { + "LiteralName": "LFG_ROLE_CHECK_SHOW", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isRequeue" }], + "Type": "Event", + "Name": "LfgRoleCheckShow" + }, + { + "LiteralName": "LFG_ROLE_CHECK_UPDATE", + "Type": "Event", + "Name": "LfgRoleCheckUpdate" + }, + { "LiteralName": "LFG_ROLE_UPDATE", "Type": "Event", "Name": "LfgRoleUpdate" }, + { "LiteralName": "LFG_UPDATE", "Type": "Event", "Name": "LfgUpdate" }, + { + "LiteralName": "LFG_UPDATE_RANDOM_INFO", + "Type": "Event", + "Name": "LfgUpdateRandomInfo" + }, + { + "LiteralName": "SHOW_LFG_EXPAND_SEARCH_PROMPT", + "Type": "Event", + "Name": "ShowLfgExpandSearchPrompt" + }, + { "LiteralName": "UPDATE_LFG_LIST", "Type": "Event", "Name": "UpdateLfgList" }, + { + "LiteralName": "WARFRONT_COMPLETED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "mapID" }, + { "Nilable": false, "Type": "number", "Name": "winner" } + ], + "Type": "Event", + "Name": "WarfrontCompleted" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "iconID" }, + { "Nilable": true, "Type": "string", "Name": "link" } + ], + "Type": "Structure", + "Name": "LFGDungeonInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "lfgID" }, + { "Nilable": false, "Type": "number", "Name": "reason" }, + { "Nilable": false, "Type": "bool", "Name": "hideEntry" } + ], + "Type": "Structure", + "Name": "LFGLockInfo" + } + ] + }, + { + "Namespace": "C_LFGList", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canUseAutoAccept" }], + "Type": "Function", + "Name": "CanActiveEntryUseAutoAccept" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canCreate" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "CanCreateQuestGroup" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canCreate" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scenarioID" }], + "Type": "Function", + "Name": "CanCreateScenarioGroup" + }, + { "Type": "Function", "Name": "ClearApplicationTextFields" }, + { "Type": "Function", "Name": "ClearCreationTextFields" }, + { "Type": "Function", "Name": "ClearSearchTextFields" }, + { "Type": "Function", "Name": "CopyActiveEntryInfoToCreationFields" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canCreate" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "activityID" }, + { "Nilable": false, "Type": "number", "Name": "itemLevel" }, + { "Nilable": false, "Type": "bool", "Name": "autoAccept" }, + { "Nilable": false, "Type": "bool", "Name": "privateGroup" }, + { "Nilable": false, "Type": "number", "Name": "scenarioID" } + ], + "Type": "Function", + "Name": "CreateScenarioListing" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "matches" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "activityID" }, + { "Nilable": false, "Type": "number", "Name": "groupID" }, + { "Nilable": true, "Type": "LFGEntryPlaystyle", "Name": "playstyle" } + ], + "Type": "Function", + "Name": "DoesEntryTitleMatchPrebuiltTitle" + }, + { + "Returns": [{ "Nilable": false, "Type": "LfgEntryData", "Name": "entryData" }], + "Type": "Function", + "Name": "GetActiveEntryInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "fullName" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "activityID" }, + { "Nilable": true, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "bool", "Name": "showWarmode" } + ], + "Type": "Function", + "Name": "GetActivityFullName" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "groupID" }], + "Type": "Function", + "Name": "GetActivityGroupInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "GroupFinderActivityInfo", "Name": "activityInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "activityID" }, + { "Nilable": true, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "bool", "Name": "showWarmode" } + ], + "Type": "Function", + "Name": "GetActivityInfoTable" + }, + { + "Returns": [ + { "Nilable": false, "Type": "AdvancedFilterOptions", "Name": "options" } + ], + "Type": "Function", + "Name": "GetAdvancedFilter" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "BestDungeonScoreMapInfo", + "Name": "bestDungeonScoreForListing" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "localID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "applicantIndex" } + ], + "Type": "Function", + "Name": "GetApplicantBestDungeonScore" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "BestDungeonScoreMapInfo", + "Name": "bestDungeonScoreForListing" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "localID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "applicantIndex" }, + { "Nilable": false, "Type": "number", "Name": "activityID" } + ], + "Type": "Function", + "Name": "GetApplicantDungeonScoreForListing" + }, + { + "Returns": [ + { "Nilable": false, "Type": "LfgApplicantData", "Name": "applicantData" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "applicantID" }], + "Type": "Function", + "Name": "GetApplicantInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "PvpRatingInfo", "Name": "pvpRatingInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "localID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "applicantIndex" }, + { "Nilable": false, "Type": "number", "Name": "activityID" } + ], + "Type": "Function", + "Name": "GetApplicantPvpRatingInfoForListing" + }, + { + "Returns": [ + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "totalResultsFound" + }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "filteredResults" + } + ], + "Type": "Function", + "Name": "GetFilteredSearchResults" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "level" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "activityID" }], + "Type": "Function", + "Name": "GetKeystoneForActivity" + }, + { + "Returns": [ + { "Nilable": false, "Type": "LfgCategoryData", "Name": "categoryData" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "categoryID" }], + "Type": "Function", + "Name": "GetLfgCategoryInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "activityID" }, + { "Nilable": false, "Type": "number", "Name": "groupID" }, + { "Nilable": false, "Type": "number", "Name": "keystoneLevel" } + ], + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "getTimewalking" } + ], + "Type": "Function", + "Name": "GetOwnedKeystoneActivityAndGroupAndLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "playstyleString" }], + "Arguments": [ + { "Nilable": false, "Type": "LFGEntryPlaystyle", "Name": "playstyle" }, + { "Nilable": false, "Type": "GroupFinderActivityInfo", "Name": "activityInfo" } + ], + "Type": "Function", + "Name": "GetPlaystyleString" + }, + { + "Returns": [ + { "Nilable": false, "Type": "LfgSearchResultData", "Name": "searchResultData" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "searchResultID" }], + "Type": "Function", + "Name": "GetSearchResultInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "totalResultsFound" + }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "results" } + ], + "Type": "Function", + "Name": "GetSearchResults" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasActiveEntryInfo" }], + "Type": "Function", + "Name": "HasActiveEntryInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasSearchResultInfo" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "searchResultID" }], + "Type": "Function", + "Name": "HasSearchResultInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAuthenticated" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "activityID" }], + "Type": "Function", + "Name": "IsPlayerAuthenticatedForLFG" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "AdvancedFilterOptions", "Name": "options" } + ], + "Type": "Function", + "Name": "SaveAdvancedFilter" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "categoryID" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "filter" }, + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "preferredFilters" + }, + { "Nilable": true, "Type": "WowLocale", "Name": "languageFilter" }, + { + "Nilable": true, + "Default": false, + "Type": "bool", + "Name": "searchCrossFactionListings" + }, + { "Nilable": true, "Type": "AdvancedFilterOptions", "Name": "advancedFilter" } + ], + "Type": "Function", + "Name": "Search" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "activityID" }, + { "Nilable": false, "Type": "number", "Name": "groupID" }, + { "Nilable": true, "Type": "LFGEntryPlaystyle", "Name": "playstyle" } + ], + "Type": "Function", + "Name": "SetEntryTitle" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "activityID" }], + "Type": "Function", + "Name": "SetSearchToActivity" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "SetSearchToQuestID" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scenarioID" }], + "Type": "Function", + "Name": "SetSearchToScenarioID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "passes" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "dungeonScore" }], + "Type": "Function", + "Name": "ValidateRequiredDungeonScore" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "passes" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "activityID" }, + { "Nilable": false, "Type": "number", "Name": "rating" } + ], + "Type": "Function", + "Name": "ValidateRequiredPvpRatingForActivity" + } + ], + "Type": "System", + "Name": "LFGList", + "Events": [ + { + "LiteralName": "LFG_GROUP_DELISTED_LEADERSHIP_CHANGE", + "Payload": [ + { "Nilable": false, "Type": "string", "Name": "listingName" }, + { "Nilable": false, "Type": "number", "Name": "automaticDelistTimeRemaining" } + ], + "Type": "Event", + "Name": "LfgGroupDelistedLeadershipChange" + }, + { + "LiteralName": "LFG_LIST_ACTIVE_ENTRY_UPDATE", + "Payload": [{ "Nilable": true, "Type": "bool", "Name": "created" }], + "Type": "Event", + "Name": "LfgListActiveEntryUpdate" + }, + { + "LiteralName": "LFG_LIST_APPLICANT_LIST_UPDATED", + "Payload": [ + { "Nilable": true, "Type": "bool", "Name": "newPendingEntry" }, + { "Nilable": true, "Type": "bool", "Name": "newPendingEntryWithData" } + ], + "Type": "Event", + "Name": "LfgListApplicantListUpdated" + }, + { + "LiteralName": "LFG_LIST_APPLICANT_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "applicantID" }], + "Type": "Event", + "Name": "LfgListApplicantUpdated" + }, + { + "LiteralName": "LFG_LIST_APPLICATION_STATUS_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "searchResultID" }, + { "Nilable": false, "Type": "cstring", "Name": "newStatus" }, + { "Nilable": false, "Type": "cstring", "Name": "oldStatus" }, + { "Nilable": false, "Type": "kstringLfgListChat", "Name": "groupName" } + ], + "Type": "Event", + "Name": "LfgListApplicationStatusUpdated" + }, + { + "LiteralName": "LFG_LIST_AVAILABILITY_UPDATE", + "Type": "Event", + "Name": "LfgListAvailabilityUpdate" + }, + { + "LiteralName": "LFG_LIST_ENTRY_CREATION_FAILED", + "Type": "Event", + "Name": "LfgListEntryCreationFailed" + }, + { + "LiteralName": "LFG_LIST_ENTRY_EXPIRED_TIMEOUT", + "Type": "Event", + "Name": "LfgListEntryExpiredTimeout" + }, + { + "LiteralName": "LFG_LIST_ENTRY_EXPIRED_TOO_MANY_PLAYERS", + "Type": "Event", + "Name": "LfgListEntryExpiredTooManyPlayers" + }, + { + "LiteralName": "LFG_LIST_JOINED_GROUP", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "searchResultID" }, + { "Nilable": false, "Type": "kstringLfgListChat", "Name": "groupName" } + ], + "Type": "Event", + "Name": "LfgListJoinedGroup" + }, + { + "LiteralName": "LFG_LIST_SEARCH_FAILED", + "Payload": [{ "Nilable": true, "Type": "cstring", "Name": "reason" }], + "Type": "Event", + "Name": "LfgListSearchFailed" + }, + { + "LiteralName": "LFG_LIST_SEARCH_RESULT_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "searchResultID" }], + "Type": "Event", + "Name": "LfgListSearchResultUpdated" + }, + { + "LiteralName": "LFG_LIST_SEARCH_RESULTS_RECEIVED", + "Type": "Event", + "Name": "LfgListSearchResultsReceived" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "LFGListDisplayType", + "Fields": [ + { "EnumValue": 0, "Type": "LFGListDisplayType", "Name": "RoleCount" }, + { "EnumValue": 1, "Type": "LFGListDisplayType", "Name": "RoleEnumerate" }, + { "EnumValue": 2, "Type": "LFGListDisplayType", "Name": "ClassEnumerate" }, + { "EnumValue": 3, "Type": "LFGListDisplayType", "Name": "HideAll" }, + { "EnumValue": 4, "Type": "LFGListDisplayType", "Name": "PlayerCount" }, + { "EnumValue": 5, "Type": "LFGListDisplayType", "Name": "Comment" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Fields": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "needsTank" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "needsHealer" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "needsDamage" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "needsMyClass" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "hasTank" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "hasHealer" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "activities" + }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "minimumRating" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "difficultyNormal" + }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "difficultyHeroic" + }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "difficultyMythic" + }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "difficultyMythicPlus" + } + ], + "Type": "Structure", + "Name": "AdvancedFilterOptions" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "mapScore" }, + { "Nilable": false, "Type": "string", "Name": "mapName" }, + { "Nilable": false, "Type": "number", "Name": "bestRunLevel" }, + { "Nilable": false, "Type": "bool", "Name": "finishedSuccess" }, + { "Nilable": false, "Type": "number", "Name": "bestRunDurationMs" }, + { "Nilable": false, "Type": "number", "Name": "bestLevelIncrement" } + ], + "Type": "Structure", + "Name": "BestDungeonScoreMapInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "fullName" }, + { "Nilable": false, "Type": "string", "Name": "shortName" }, + { "Nilable": false, "Type": "number", "Name": "categoryID" }, + { "Nilable": false, "Type": "number", "Name": "groupFinderActivityGroupID" }, + { "Nilable": false, "Type": "number", "Name": "ilvlSuggestion" }, + { "Nilable": false, "Type": "number", "Name": "filters" }, + { "Nilable": false, "Type": "number", "Name": "minLevel" }, + { "Nilable": false, "Type": "number", "Name": "maxNumPlayers" }, + { "Nilable": false, "Type": "LFGListDisplayType", "Name": "displayType" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "bool", "Name": "useHonorLevel" }, + { "Nilable": false, "Type": "bool", "Name": "showQuickJoinToast" }, + { "Nilable": false, "Type": "bool", "Name": "isMythicPlusActivity" }, + { "Nilable": false, "Type": "bool", "Name": "isRatedPvpActivity" }, + { "Nilable": false, "Type": "bool", "Name": "isCurrentRaidActivity" }, + { "Nilable": false, "Type": "bool", "Name": "isPvpActivity" }, + { "Nilable": false, "Type": "bool", "Name": "isMythicActivity" }, + { "Nilable": false, "Type": "bool", "Name": "allowCrossFaction" }, + { "Nilable": false, "Type": "bool", "Name": "isHeroicActivity" }, + { "Nilable": false, "Type": "bool", "Name": "isNormalActivity" }, + { "Nilable": false, "Type": "bool", "Name": "useDungeonRoleExpectations" } + ], + "Type": "Structure", + "Name": "GroupFinderActivityInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "applicantID" }, + { "Nilable": false, "Type": "cstring", "Name": "applicationStatus" }, + { "Nilable": true, "Type": "cstring", "Name": "pendingApplicationStatus" }, + { "Nilable": false, "Type": "number", "Name": "numMembers" }, + { "Nilable": false, "Type": "bool", "Name": "isNew" }, + { "Nilable": false, "Type": "kstringLfgListApplicant", "Name": "comment" }, + { "Nilable": false, "Type": "number", "Name": "displayOrderID" } + ], + "Type": "Structure", + "Name": "LfgApplicantData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "cstring", "Name": "searchPromptOverride" }, + { "Nilable": false, "Type": "bool", "Name": "separateRecommended" }, + { "Nilable": false, "Type": "bool", "Name": "autoChooseActivity" }, + { "Nilable": false, "Type": "bool", "Name": "preferCurrentArea" }, + { "Nilable": false, "Type": "bool", "Name": "showPlaystyleDropdown" }, + { "Nilable": false, "Type": "bool", "Name": "allowCrossFaction" } + ], + "Type": "Structure", + "Name": "LfgCategoryData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "activityID" }, + { "Nilable": false, "Type": "number", "Name": "requiredItemLevel" }, + { "Nilable": false, "Type": "number", "Name": "requiredHonorLevel" }, + { "Nilable": false, "Type": "kstringLfgListApplicant", "Name": "name" }, + { "Nilable": false, "Type": "kstringLfgListApplicant", "Name": "comment" }, + { "Nilable": false, "Type": "kstringLfgListApplicant", "Name": "voiceChat" }, + { "Nilable": false, "Type": "time_t", "Name": "duration" }, + { "Nilable": false, "Type": "bool", "Name": "autoAccept" }, + { "Nilable": false, "Type": "bool", "Name": "privateGroup" }, + { "Nilable": true, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "number", "Name": "requiredDungeonScore" }, + { "Nilable": true, "Type": "number", "Name": "requiredPvpRating" }, + { "Nilable": true, "Type": "LFGEntryPlaystyle", "Name": "playstyle" }, + { "Nilable": false, "Type": "bool", "Name": "isCrossFactionListing" } + ], + "Type": "Structure", + "Name": "LfgEntryData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "searchResultID" }, + { "Nilable": false, "Type": "number", "Name": "activityID" }, + { "Nilable": true, "Type": "string", "Name": "leaderName" }, + { "Nilable": false, "Type": "kstringLfgListSearch", "Name": "name" }, + { "Nilable": false, "Type": "kstringLfgListSearch", "Name": "comment" }, + { "Nilable": false, "Type": "kstringLfgListSearch", "Name": "voiceChat" }, + { "Nilable": false, "Type": "number", "Name": "requiredItemLevel" }, + { "Nilable": false, "Type": "number", "Name": "requiredHonorLevel" }, + { "Nilable": false, "Type": "bool", "Name": "hasSelf" }, + { "Nilable": false, "Type": "number", "Name": "numMembers" }, + { "Nilable": false, "Type": "number", "Name": "numBNetFriends" }, + { "Nilable": false, "Type": "number", "Name": "numCharFriends" }, + { "Nilable": false, "Type": "number", "Name": "numGuildMates" }, + { "Nilable": false, "Type": "bool", "Name": "isDelisted" }, + { "Nilable": false, "Type": "bool", "Name": "autoAccept" }, + { "Nilable": false, "Type": "bool", "Name": "isWarMode" }, + { "Nilable": false, "Type": "time_t", "Name": "age" }, + { "Nilable": true, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "number", "Name": "leaderOverallDungeonScore" }, + { + "Nilable": true, + "Type": "BestDungeonScoreMapInfo", + "Name": "leaderDungeonScoreInfo" + }, + { + "Nilable": true, + "Type": "BestDungeonScoreMapInfo", + "Name": "leaderBestDungeonScoreInfo" + }, + { "Nilable": true, "Type": "PvpRatingInfo", "Name": "leaderPvpRatingInfo" }, + { "Nilable": true, "Type": "number", "Name": "requiredDungeonScore" }, + { "Nilable": true, "Type": "number", "Name": "requiredPvpRating" }, + { "Nilable": true, "Type": "LFGEntryPlaystyle", "Name": "playstyle" }, + { "Nilable": true, "Type": "bool", "Name": "crossFactionListing" }, + { "Nilable": false, "Type": "number", "Name": "leaderFactionGroup" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "partyGUID" } + ], + "Type": "Structure", + "Name": "LfgSearchResultData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "bracket" }, + { "Nilable": false, "Type": "number", "Name": "rating" }, + { "Nilable": false, "Type": "string", "Name": "activityName" }, + { "Nilable": false, "Type": "number", "Name": "tier" } + ], + "Type": "Structure", + "Name": "PvpRatingInfo" + }, + { + "Fields": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enUS" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "koKR" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "frFR" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "deDE" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "zhCN" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "zhTW" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "esES" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "esMX" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "ruRU" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "ptBR" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "itIT" } + ], + "Type": "Structure", + "Name": "WowLocale" + } + ] + }, + { + "Namespace": "C_LegendaryCrafting", + "Functions": [ + { "Type": "Function", "Name": "CloseRuneforgeInteraction" }, + { + "Arguments": [ + { + "Nilable": false, + "Type": "RuneforgeLegendaryCraftDescription", + "Name": "description" + } + ], + "Type": "Function", + "Name": "CraftRuneforgeLegendary" + }, + { + "Returns": [ + { "Nilable": true, "Type": "RuneforgeItemPreviewInfo", "Name": "info" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "baseItem" + }, + { "Nilable": true, "Type": "number", "Name": "runeforgePowerID" }, + { "Nilable": true, "InnerType": "number", "Type": "table", "Name": "modifiers" } + ], + "Type": "Function", + "Name": "GetRuneforgeItemPreviewInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "RuneforgeLegendaryComponentInfo", + "Name": "componentInfo" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "runeforgeLegendary" + } + ], + "Type": "Function", + "Name": "GetRuneforgeLegendaryComponentInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CurrencyCost", + "Type": "table", + "Name": "cost" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "baseItem" + } + ], + "Type": "Function", + "Name": "GetRuneforgeLegendaryCost" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "GetRuneforgeLegendaryCraftSpellID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "currencies" + } + ], + "Type": "Function", + "Name": "GetRuneforgeLegendaryCurrencies" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CurrencyCost", + "Type": "table", + "Name": "cost" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "runeforgeLegendary" + }, + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "upgradeItem" + } + ], + "Type": "Function", + "Name": "GetRuneforgeLegendaryUpgradeCost" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { + "Nilable": false, + "InnerType": "string", + "Type": "table", + "Name": "description" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "baseItem" + }, + { "Nilable": true, "Type": "number", "Name": "powerID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "addedModifierIndex" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "modifiers" + } + ], + "Type": "Function", + "Name": "GetRuneforgeModifierInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "modifiedReagentItemIDs" + } + ], + "Type": "Function", + "Name": "GetRuneforgeModifiers" + }, + { + "Returns": [{ "Nilable": false, "Type": "RuneforgePower", "Name": "power" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "runeforgePowerID" }], + "Type": "Function", + "Name": "GetRuneforgePowerInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "cstring", + "Type": "table", + "Name": "slotNames" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "runeforgePowerID" }], + "Type": "Function", + "Name": "GetRuneforgePowerSlots" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "primaryRuneforgePowerIDs" + }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "otherRuneforgePowerIDs" + } + ], + "Arguments": [ + { + "Nilable": true, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "baseItem" + }, + { "Nilable": true, "Type": "RuneforgePowerFilter", "Name": "filter" } + ], + "Type": "Function", + "Name": "GetRuneforgePowers" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "runeforgePowerIDs" + } + ], + "Arguments": [ + { "Nilable": true, "Type": "number", "Name": "classID" }, + { "Nilable": true, "Type": "number", "Name": "specID" }, + { "Nilable": true, "Type": "number", "Name": "covenantID" }, + { "Nilable": true, "Type": "RuneforgePowerFilter", "Name": "filter" } + ], + "Type": "Function", + "Name": "GetRuneforgePowersByClassSpecAndCovenant" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRuneforgeLegendary" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + } + ], + "Type": "Function", + "Name": "IsRuneforgeLegendary" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isMaxLevel" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "runeforgeLegendary" + } + ], + "Type": "Function", + "Name": "IsRuneforgeLegendaryMaxLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isValid" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "runeforgeLegendary" + }, + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "upgradeItem" + } + ], + "Type": "Function", + "Name": "IsUpgradeItemValidForRuneforgeLegendary" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isValid" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "baseItem" + } + ], + "Type": "Function", + "Name": "IsValidRuneforgeBaseItem" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "RuneforgeLegendaryCraftDescription", + "Name": "description" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "baseItem" + }, + { "Nilable": false, "Type": "number", "Name": "runeforgePowerID" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "modifiers" + } + ], + "Type": "Function", + "Name": "MakeRuneforgeCraftDescription" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "runeforgeLegendary" + }, + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "upgradeItem" + } + ], + "Type": "Function", + "Name": "UpgradeRuneforgeLegendary" + } + ], + "Type": "System", + "Name": "LegendaryCrafting", + "Events": [ + { + "LiteralName": "NEW_RUNEFORGE_POWER_ADDED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "powerID" }], + "Type": "Event", + "Name": "NewRuneforgePowerAdded" + }, + { + "LiteralName": "RUNEFORGE_LEGENDARY_CRAFTING_CLOSED", + "Type": "Event", + "Name": "RuneforgeLegendaryCraftingClosed" + }, + { + "LiteralName": "RUNEFORGE_LEGENDARY_CRAFTING_OPENED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isUpgrade" }], + "Type": "Event", + "Name": "RuneforgeLegendaryCraftingOpened" + }, + { + "LiteralName": "RUNEFORGE_POWER_INFO_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "powerID" }], + "Type": "Event", + "Name": "RuneforgePowerInfoUpdated" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "RuneforgePowerFilter", + "Fields": [ + { "EnumValue": 0, "Type": "RuneforgePowerFilter", "Name": "All" }, + { "EnumValue": 1, "Type": "RuneforgePowerFilter", "Name": "Relevant" }, + { "EnumValue": 2, "Type": "RuneforgePowerFilter", "Name": "Available" }, + { "EnumValue": 3, "Type": "RuneforgePowerFilter", "Name": "Unavailable" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "RuneforgePowerState", + "Fields": [ + { "EnumValue": 0, "Type": "RuneforgePowerState", "Name": "Available" }, + { "EnumValue": 1, "Type": "RuneforgePowerState", "Name": "Unavailable" }, + { "EnumValue": 2, "Type": "RuneforgePowerState", "Name": "Invalid" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "amount" } + ], + "Type": "Structure", + "Name": "CurrencyCost" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }, + { "Nilable": false, "Type": "number", "Name": "itemLevel" }, + { "Nilable": false, "Type": "string", "Name": "itemName" } + ], + "Type": "Structure", + "Name": "RuneforgeItemPreviewInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "powerID" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "modifiers" + } + ], + "Type": "Structure", + "Name": "RuneforgeLegendaryComponentInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "baseItem" + }, + { "Nilable": false, "Type": "number", "Name": "runeforgePowerID" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "modifiers" + } + ], + "Type": "Structure", + "Name": "RuneforgeLegendaryCraftDescription" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "runeforgePowerID" }, + { "Nilable": false, "Type": "RuneforgePowerState", "Name": "state" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "descriptionSpellID" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": true, "Type": "cstring", "Name": "source" }, + { "Nilable": false, "Type": "fileID", "Name": "iconFileID" }, + { "Nilable": true, "Type": "cstring", "Name": "specName" }, + { "Nilable": false, "Type": "bool", "Name": "matchesSpec" }, + { "Nilable": false, "Type": "bool", "Name": "matchesCovenant" }, + { "Nilable": true, "Type": "number", "Name": "covenantID" }, + { "Nilable": false, "InnerType": "cstring", "Type": "table", "Name": "slots" } + ], + "Type": "Structure", + "Name": "RuneforgePower" + } + ] + }, + { + "Tables": [ + { + "Values": [ + { "Value": 10, "Type": "number", "Name": "MIN_RES_SICKNESS_LEVEL" }, + { "Value": 10, "Type": "number", "Name": "MIN_ACHIEVEMENT_LEVEL" } + ], + "Type": "Constants", + "Name": "LevelConstsExposed" + } + ] + }, + { + "Namespace": "C_LevelLink", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLocked" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "actionID" }], + "Type": "Function", + "Name": "IsActionLocked" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLocked" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "IsSpellLocked" + } + ], + "Type": "System", + "Name": "LevelLink", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_LevelSquish", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "squishedLevel" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "number", "Name": "maxFollowerLevel" } + ], + "Type": "Function", + "Name": "ConvertFollowerLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "squishedLevel" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "level" }], + "Type": "Function", + "Name": "ConvertPlayerLevel" + } + ], + "Type": "System", + "Name": "LevelSquish", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_LiveEvent", + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "timerunningSeasonID" } + ], + "Type": "Function", + "Name": "OnLiveEventBannerClicked" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "timerunningSeasonID" } + ], + "Type": "Function", + "Name": "OnLiveEventPopupClicked" + } + ], + "Type": "System", + "Name": "LiveEvent", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_LoadingScreen", + "Functions": [], + "Type": "System", + "Name": "LoadingScreen", + "Events": [ + { + "LiteralName": "LOADING_SCREEN_DISABLED", + "Type": "Event", + "Name": "LoadingScreenDisabled" + }, + { + "LiteralName": "LOADING_SCREEN_ENABLED", + "Type": "Event", + "Name": "LoadingScreenEnabled" + } + ], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "LocaleInfo", + "Type": "table", + "Name": "localeInfos" + } + ], + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "ignoreLocaleRestrictions" + } + ], + "Type": "Function", + "Name": "GetAvailableLocaleInfo" + }, + { + "Returns": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "string", + "Name": "unpackedPrimitiveType" + } + ], + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "ignoreLocaleRestrictions" + } + ], + "Type": "Function", + "Name": "GetAvailableLocales" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "region" }], + "Type": "Function", + "Name": "GetCurrentRegion" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "localeName" }], + "Type": "Function", + "Name": "GetLocale" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "localeName" }], + "Type": "Function", + "Name": "GetOSLocale" + } + ], + "Type": "System", + "Name": "Locale", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "localeId" }, + { "Nilable": false, "Type": "cstring", "Name": "localeName" } + ], + "Type": "Structure", + "Name": "LocaleInfo" + } + ] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "largeNumber" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "natural" } + ], + "Type": "Function", + "Name": "BreakUpLargeNumbers" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "CaseAccentInsensitiveParse" + }, + { + "Returns": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "string", + "Name": "declinedNames" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "number", "Name": "gender" }, + { "Nilable": false, "Type": "luaIndex", "Name": "declensionSet" } + ], + "Type": "Function", + "Name": "DeclineName" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numDeclensionSets" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "number", "Name": "gender" } + ], + "Type": "Function", + "Name": "GetNumDeclensionSets" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsEuropeanNumbers" + }, + { + "Returns": [{ "Nilable": false, "Type": "LuaValueVariant", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isFemale" } + ], + "Type": "Function", + "Name": "LocalizedClassList" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "SetEuropeanNumbers" + } + ], + "Type": "System", + "Name": "Localization", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "LootSlotType", + "Fields": [ + { "EnumValue": 0, "Type": "LootSlotType", "Name": "None" }, + { "EnumValue": 1, "Type": "LootSlotType", "Name": "Item" }, + { "EnumValue": 2, "Type": "LootSlotType", "Name": "Money" }, + { "EnumValue": 3, "Type": "LootSlotType", "Name": "Currency" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Values": [ + { "Value": 5, "Type": "number", "Name": "MasterLootQualityThreshold" } + ], + "Type": "Constants", + "Name": "LootConsts" + } + ] + }, + { + "Namespace": "C_Loot", + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "duration" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "rollID" }], + "Type": "Function", + "Name": "GetLootRollDuration" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isLegacyLootModeEnabled" } + ], + "Type": "Function", + "Name": "IsLegacyLootModeEnabled" + } + ], + "Type": "System", + "Name": "Loot", + "Events": [ + { + "LiteralName": "AZERITE_EMPOWERED_ITEM_LOOTED", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "itemLink" }], + "Type": "Event", + "Name": "AzeriteEmpoweredItemLooted" + }, + { + "LiteralName": "BONUS_ROLL_ACTIVATE", + "Type": "Event", + "Name": "BonusRollActivate" + }, + { + "LiteralName": "BONUS_ROLL_DEACTIVATE", + "Type": "Event", + "Name": "BonusRollDeactivate" + }, + { "LiteralName": "BONUS_ROLL_FAILED", "Type": "Event", "Name": "BonusRollFailed" }, + { + "LiteralName": "BONUS_ROLL_RESULT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "typeIdentifier" }, + { "Nilable": false, "Type": "cstring", "Name": "itemLink" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "Type": "number", "Name": "sex" }, + { "Nilable": false, "Type": "bool", "Name": "personalLootToast" }, + { "Nilable": true, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "bool", "Name": "isSecondaryResult" }, + { "Nilable": false, "Type": "bool", "Name": "corrupted" } + ], + "Type": "Event", + "Name": "BonusRollResult" + }, + { + "LiteralName": "BONUS_ROLL_STARTED", + "Type": "Event", + "Name": "BonusRollStarted" + }, + { + "LiteralName": "CANCEL_ALL_LOOT_ROLLS", + "Type": "Event", + "Name": "CancelAllLootRolls" + }, + { + "LiteralName": "CANCEL_LOOT_ROLL", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "rollID" }], + "Type": "Event", + "Name": "CancelLootRoll" + }, + { + "LiteralName": "CONFIRM_DISENCHANT_ROLL", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "rollID" }, + { "Nilable": false, "Type": "number", "Name": "rollType" } + ], + "Type": "Event", + "Name": "ConfirmDisenchantRoll" + }, + { + "LiteralName": "CONFIRM_LOOT_ROLL", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "rollID" }, + { "Nilable": false, "Type": "number", "Name": "rollType" }, + { "Nilable": false, "Type": "cstring", "Name": "confirmReason" } + ], + "Type": "Event", + "Name": "ConfirmLootRoll" + }, + { + "LiteralName": "ENCOUNTER_LOOT_RECEIVED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "encounterID" }, + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "cstring", "Name": "itemLink" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "cstring", "Name": "itemName" }, + { "Nilable": false, "Type": "cstring", "Name": "fileName" } + ], + "Type": "Event", + "Name": "EncounterLootReceived" + }, + { + "LiteralName": "GARRISON_MISSION_BONUS_ROLL_LOOT", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Event", + "Name": "GarrisonMissionBonusRollLoot" + }, + { + "LiteralName": "ITEM_PUSH", + "Payload": [ + { "Nilable": false, "Type": "luaIndex", "Name": "bagSlot" }, + { "Nilable": false, "Type": "number", "Name": "iconFileID" } + ], + "Type": "Event", + "Name": "ItemPush" + }, + { + "LiteralName": "LOOT_BIND_CONFIRM", + "Payload": [{ "Nilable": false, "Type": "luaIndex", "Name": "lootSlot" }], + "Type": "Event", + "Name": "LootBindConfirm" + }, + { "LiteralName": "LOOT_CLOSED", "Type": "Event", "Name": "LootClosed" }, + { + "LiteralName": "LOOT_ITEM_AVAILABLE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "itemTooltip" }, + { "Nilable": false, "Type": "number", "Name": "lootHandle" } + ], + "Type": "Event", + "Name": "LootItemAvailable" + }, + { + "LiteralName": "LOOT_ITEM_ROLL_WON", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "itemLink" }, + { "Nilable": false, "Type": "number", "Name": "rollQuantity" }, + { "Nilable": false, "Type": "number", "Name": "rollType" }, + { "Nilable": false, "Type": "number", "Name": "roll" }, + { "Nilable": false, "Type": "bool", "Name": "upgraded" } + ], + "Type": "Event", + "Name": "LootItemRollWon" + }, + { + "LiteralName": "LOOT_OPENED", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "autoLoot" }, + { "Nilable": false, "Type": "bool", "Name": "isFromItem" } + ], + "Type": "Event", + "Name": "LootOpened" + }, + { + "LiteralName": "LOOT_READY", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "autoloot" }], + "Type": "Event", + "Name": "LootReady" + }, + { + "LiteralName": "LOOT_ROLLS_COMPLETE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "lootHandle" }], + "Type": "Event", + "Name": "LootRollsComplete" + }, + { + "LiteralName": "LOOT_SLOT_CHANGED", + "Payload": [{ "Nilable": false, "Type": "luaIndex", "Name": "lootSlot" }], + "Type": "Event", + "Name": "LootSlotChanged" + }, + { + "LiteralName": "LOOT_SLOT_CLEARED", + "Payload": [{ "Nilable": false, "Type": "luaIndex", "Name": "lootSlot" }], + "Type": "Event", + "Name": "LootSlotCleared" + }, + { + "LiteralName": "MAIN_SPEC_NEED_ROLL", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "rollID" }, + { "Nilable": false, "Type": "number", "Name": "roll" }, + { "Nilable": false, "Type": "bool", "Name": "isWinning" } + ], + "Type": "Event", + "Name": "MainSpecNeedRoll" + }, + { + "LiteralName": "OPEN_MASTER_LOOT_LIST", + "Type": "Event", + "Name": "OpenMasterLootList" + }, + { + "LiteralName": "PET_BATTLE_LOOT_RECEIVED", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "typeIdentifier" }, + { "Nilable": false, "Type": "cstring", "Name": "itemLink" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Event", + "Name": "PetBattleLootReceived" + }, + { + "LiteralName": "PLAYER_LOOT_SPEC_UPDATED", + "Type": "Event", + "Name": "PlayerLootSpecUpdated" + }, + { + "LiteralName": "QUEST_CURRENCY_LOOT_RECEIVED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "currencyId" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Event", + "Name": "QuestCurrencyLootReceived" + }, + { + "LiteralName": "QUEST_LOOT_RECEIVED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "cstring", "Name": "itemLink" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Event", + "Name": "QuestLootReceived" + }, + { + "LiteralName": "SHOW_LOOT_TOAST", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "typeIdentifier" }, + { "Nilable": false, "Type": "cstring", "Name": "itemLink" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "Type": "number", "Name": "sex" }, + { "Nilable": false, "Type": "bool", "Name": "personalLootToast" }, + { "Nilable": false, "Type": "number", "Name": "toastMethod" }, + { "Nilable": false, "Type": "bool", "Name": "lessAwesome" }, + { "Nilable": false, "Type": "bool", "Name": "upgraded" }, + { "Nilable": false, "Type": "bool", "Name": "corrupted" } + ], + "Type": "Event", + "Name": "ShowLootToast" + }, + { + "LiteralName": "SHOW_LOOT_TOAST_LEGENDARY_LOOTED", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "itemLink" }], + "Type": "Event", + "Name": "ShowLootToastLegendaryLooted" + }, + { + "LiteralName": "SHOW_LOOT_TOAST_UPGRADE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "itemLink" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "Type": "number", "Name": "sex" }, + { "Nilable": false, "Type": "number", "Name": "baseQuality" }, + { "Nilable": false, "Type": "bool", "Name": "personalLootToast" }, + { "Nilable": false, "Type": "bool", "Name": "lessAwesome" } + ], + "Type": "Event", + "Name": "ShowLootToastUpgrade" + }, + { + "LiteralName": "SHOW_PVP_FACTION_LOOT_TOAST", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "typeIdentifier" }, + { "Nilable": false, "Type": "cstring", "Name": "itemLink" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "Type": "number", "Name": "sex" }, + { "Nilable": false, "Type": "bool", "Name": "personalLootToast" }, + { "Nilable": false, "Type": "bool", "Name": "lessAwesome" } + ], + "Type": "Event", + "Name": "ShowPvpFactionLootToast" + }, + { + "LiteralName": "SHOW_RATED_PVP_REWARD_TOAST", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "typeIdentifier" }, + { "Nilable": false, "Type": "cstring", "Name": "itemLink" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "Type": "number", "Name": "sex" }, + { "Nilable": false, "Type": "bool", "Name": "personalLootToast" }, + { "Nilable": false, "Type": "bool", "Name": "lessAwesome" } + ], + "Type": "Event", + "Name": "ShowRatedPvpRewardToast" + }, + { + "LiteralName": "START_LOOT_ROLL", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "rollID" }, + { "Nilable": false, "Type": "number", "Name": "rollTime" }, + { "Nilable": true, "Type": "number", "Name": "lootHandle" } + ], + "Type": "Event", + "Name": "StartLootRoll" + }, + { + "LiteralName": "TRIAL_CAP_REACHED_MONEY", + "Type": "Event", + "Name": "TrialCapReachedMoney" + }, + { + "LiteralName": "UPDATE_MASTER_LOOT_LIST", + "Type": "Event", + "Name": "UpdateMasterLootList" + } + ], + "Tables": [] + }, + { + "Namespace": "C_LootHistory", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "EncounterLootInfo", + "Type": "table", + "Name": "infos" + } + ], + "Type": "Function", + "Name": "GetAllEncounterInfos" + }, + { + "Returns": [{ "Nilable": true, "Type": "EncounterLootInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "encounterID" }], + "Type": "Function", + "Name": "GetInfoForEncounter" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "time" }], + "Type": "Function", + "Name": "GetLootHistoryTime" + }, + { + "Returns": [ + { + "Nilable": true, + "InnerType": "EncounterLootDropInfo", + "Type": "table", + "Name": "drops" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "encounterID" }], + "Type": "Function", + "Name": "GetSortedDropsForEncounter" + }, + { + "Returns": [{ "Nilable": true, "Type": "EncounterLootDropInfo", "Name": "info" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "encounterID" }, + { "Nilable": false, "Type": "number", "Name": "lootListID" } + ], + "Type": "Function", + "Name": "GetSortedInfoForDrop" + } + ], + "Type": "System", + "Name": "LootHistory", + "Events": [ + { + "LiteralName": "LOOT_HISTORY_CLEAR_HISTORY", + "Type": "Event", + "Name": "LootHistoryClearHistory" + }, + { + "LiteralName": "LOOT_HISTORY_GO_TO_ENCOUNTER", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "encounterID" }], + "Type": "Event", + "Name": "LootHistoryGoToEncounter" + }, + { + "LiteralName": "LOOT_HISTORY_ONE_HUNDRED_ROLL", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "encounterID" }, + { "Nilable": false, "Type": "number", "Name": "lootListID" } + ], + "Type": "Event", + "Name": "LootHistoryOneHundredRoll" + }, + { + "LiteralName": "LOOT_HISTORY_UPDATE_DROP", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "encounterID" }, + { "Nilable": false, "Type": "number", "Name": "lootListID" } + ], + "Type": "Event", + "Name": "LootHistoryUpdateDrop" + }, + { + "LiteralName": "LOOT_HISTORY_UPDATE_ENCOUNTER", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "encounterID" }], + "Type": "Event", + "Name": "LootHistoryUpdateEncounter" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "EncounterLootDropRollState", + "Fields": [ + { + "EnumValue": 0, + "Type": "EncounterLootDropRollState", + "Name": "NeedMainSpec" + }, + { "EnumValue": 1, "Type": "EncounterLootDropRollState", "Name": "NeedOffSpec" }, + { "EnumValue": 2, "Type": "EncounterLootDropRollState", "Name": "Transmog" }, + { "EnumValue": 3, "Type": "EncounterLootDropRollState", "Name": "Greed" }, + { "EnumValue": 4, "Type": "EncounterLootDropRollState", "Name": "NoRoll" }, + { "EnumValue": 5, "Type": "EncounterLootDropRollState", "Name": "Pass" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "lootListID" }, + { "Nilable": false, "Type": "string", "Name": "itemHyperlink" }, + { + "Nilable": false, + "Type": "EncounterLootDropRollState", + "Name": "playerRollState" + }, + { + "Nilable": true, + "Type": "EncounterLootDropRollInfo", + "Name": "currentLeader" + }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isTied" }, + { "Nilable": true, "Type": "EncounterLootDropRollInfo", "Name": "winner" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "allPassed" }, + { + "Nilable": false, + "InnerType": "EncounterLootDropRollInfo", + "Type": "table", + "Name": "rollInfos" + }, + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" } + ], + "Type": "Structure", + "Name": "EncounterLootDropInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "playerName" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "playerGUID" }, + { "Nilable": false, "Type": "string", "Name": "playerClass" }, + { "Nilable": false, "Type": "bool", "Name": "isSelf" }, + { "Nilable": false, "Type": "EncounterLootDropRollState", "Name": "state" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isWinner" }, + { "Nilable": true, "Type": "number", "Name": "roll" } + ], + "Type": "Structure", + "Name": "EncounterLootDropRollInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "encounterID" }, + { + "Nilable": false, + "InnerType": "EncounterLootDropInfo", + "Type": "table", + "Name": "drops" + } + ], + "Type": "Structure", + "Name": "EncounterLootDrops" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "encounterName" }, + { "Nilable": false, "Type": "number", "Name": "encounterID" }, + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" } + ], + "Type": "Structure", + "Name": "EncounterLootInfo" + } + ] + }, + { + "Namespace": "C_LootJournal", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "LootJournalItemInfo", + "Type": "table", + "Name": "items" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "setID" }], + "Type": "Function", + "Name": "GetItemSetItems" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "LootJournalItemSetInfo", + "Type": "table", + "Name": "itemSets" + } + ], + "Arguments": [ + { "Nilable": true, "Type": "number", "Name": "classID" }, + { "Nilable": true, "Type": "number", "Name": "specID" } + ], + "Type": "Function", + "Name": "GetItemSets" + } + ], + "Type": "System", + "Name": "LootJournal", + "Events": [ + { + "LiteralName": "LOOT_JOURNAL_ITEM_UPDATE", + "Type": "Event", + "Name": "LootJournalItemUpdate" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "luaIndex", "Name": "invType" } + ], + "Type": "Structure", + "Name": "LootJournalItemInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "setID" }, + { "Nilable": false, "Type": "number", "Name": "itemLevel" }, + { "Nilable": false, "Type": "cstring", "Name": "name" } + ], + "Type": "Structure", + "Name": "LootJournalItemSetInfo" + } + ] + }, + { + "Namespace": "C_LoreText", + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "campaignID" }], + "Type": "Function", + "Name": "RequestLoreTextForCampaignID" + } + ], + "Type": "System", + "Name": "LoreText", + "Events": [ + { + "LiteralName": "LORE_TEXT_UPDATED_CAMPAIGN", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "campaignID" }, + { + "Nilable": false, + "InnerType": "LoreTextEntry", + "Type": "table", + "Name": "textEntries" + } + ], + "Type": "Event", + "Name": "LoreTextUpdatedCampaign" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "bool", "Name": "isHeader" } + ], + "Type": "Structure", + "Name": "LoreTextEntry" + } + ] + }, + { + "Namespace": "C_LossOfControl", + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "LossOfControlData", "Name": "event" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetActiveLossOfControlData" + }, + { + "Returns": [{ "Nilable": true, "Type": "LossOfControlData", "Name": "event" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" } + ], + "Type": "Function", + "Name": "GetActiveLossOfControlDataByUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "count" }], + "Type": "Function", + "Name": "GetActiveLossOfControlDataCount" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "count" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "GetActiveLossOfControlDataCountByUnit" + } + ], + "Type": "System", + "Name": "LossOfControl", + "Events": [ + { + "LiteralName": "LOSS_OF_CONTROL_ADDED", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "luaIndex", "Name": "effectIndex" } + ], + "Type": "Event", + "Name": "LossOfControlAdded" + }, + { + "LiteralName": "LOSS_OF_CONTROL_COMMENTATOR_ADDED", + "Payload": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "victim" }, + { "Nilable": false, "Type": "luaIndex", "Name": "effectIndex" } + ], + "Type": "Event", + "Name": "LossOfControlCommentatorAdded" + }, + { + "LiteralName": "LOSS_OF_CONTROL_COMMENTATOR_UPDATE", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "victim" }], + "Type": "Event", + "Name": "LossOfControlCommentatorUpdate" + }, + { + "LiteralName": "LOSS_OF_CONTROL_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "LossOfControlUpdate" + }, + { + "LiteralName": "PLAYER_CONTROL_GAINED", + "Type": "Event", + "Name": "PlayerControlGained" + }, + { + "LiteralName": "PLAYER_CONTROL_LOST", + "Type": "Event", + "Name": "PlayerControlLost" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "locType" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "cstring", "Name": "displayText" }, + { "Nilable": false, "Type": "number", "Name": "iconTexture" }, + { "Nilable": true, "Type": "number", "Name": "startTime" }, + { "Nilable": true, "Type": "number", "Name": "timeRemaining" }, + { "Nilable": true, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "number", "Name": "lockoutSchool" }, + { "Nilable": false, "Type": "number", "Name": "priority" }, + { "Nilable": false, "Type": "number", "Name": "displayType" }, + { "Nilable": true, "Type": "number", "Name": "auraInstanceID" } + ], + "Type": "Structure", + "Name": "LossOfControlData" + } + ] + }, + { + "Namespace": "C_MacOptions", + "Functions": [ + { + "Returns": [ + { "Nilable": true, "Type": "bool", "Name": "osShortcutsDisabledCVar" }, + { "Nilable": false, "Type": "bool", "Name": "osShortcutsDisabled" } + ], + "Type": "Function", + "Name": "AreOSShortcutsDisabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Type": "Function", + "Name": "GetGameBundleName" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "HasNewStyleInputMonitoring" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsInputMonitoringEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsMicrophoneEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsUniversalAccessEnabled" + }, + { "Type": "Function", "Name": "OpenInputMonitoring" }, + { "Type": "Function", "Name": "OpenMicrophoneRequestDialogue" }, + { "Type": "Function", "Name": "OpenUniversalAccess" }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "disable" }], + "Type": "Function", + "Name": "SetOSShortcutsDisabled" + } + ], + "Type": "System", + "Name": "MacOptions", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_Mail", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canCheckInbox" }, + { "Nilable": false, "Type": "number", "Name": "secondsUntilAllowed" } + ], + "Type": "Function", + "Name": "CanCheckInbox" + }, + { + "Returns": [{ "Nilable": true, "Type": "CraftingOrderMailInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "inboxIndex" }], + "Type": "Function", + "Name": "GetCraftingOrderMailInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "inboxItemHasMoneyAttached" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "inboxIndex" }], + "Type": "Function", + "Name": "HasInboxMoney" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCommandPending" }], + "Type": "Function", + "Name": "IsCommandPending" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "openingAll" }], + "Type": "Function", + "Name": "SetOpeningAll" + } + ], + "Type": "System", + "Name": "MailInfo", + "Events": [ + { + "LiteralName": "CLOSE_INBOX_ITEM", + "Payload": [{ "Nilable": false, "Type": "luaIndex", "Name": "mailIndex" }], + "Type": "Event", + "Name": "CloseInboxItem" + }, + { "LiteralName": "MAIL_CLOSED", "Type": "Event", "Name": "MailClosed" }, + { + "LiteralName": "MAIL_FAILED", + "Payload": [{ "Nilable": true, "Type": "number", "Name": "itemID" }], + "Type": "Event", + "Name": "MailFailed" + }, + { "LiteralName": "MAIL_INBOX_UPDATE", "Type": "Event", "Name": "MailInboxUpdate" }, + { + "LiteralName": "MAIL_LOCK_SEND_ITEMS", + "Payload": [ + { "Nilable": false, "Type": "luaIndex", "Name": "attachSlot" }, + { "Nilable": false, "Type": "cstring", "Name": "itemLink" } + ], + "Type": "Event", + "Name": "MailLockSendItems" + }, + { + "LiteralName": "MAIL_SEND_INFO_UPDATE", + "Type": "Event", + "Name": "MailSendInfoUpdate" + }, + { "LiteralName": "MAIL_SEND_SUCCESS", "Type": "Event", "Name": "MailSendSuccess" }, + { "LiteralName": "MAIL_SHOW", "Type": "Event", "Name": "MailShow" }, + { + "LiteralName": "MAIL_SUCCESS", + "Payload": [{ "Nilable": true, "Type": "number", "Name": "itemID" }], + "Type": "Event", + "Name": "MailSuccess" + }, + { + "LiteralName": "MAIL_UNLOCK_SEND_ITEMS", + "Type": "Event", + "Name": "MailUnlockSendItems" + }, + { + "LiteralName": "SEND_MAIL_COD_CHANGED", + "Type": "Event", + "Name": "SendMailCodChanged" + }, + { + "LiteralName": "SEND_MAIL_MONEY_CHANGED", + "Type": "Event", + "Name": "SendMailMoneyChanged" + }, + { + "LiteralName": "UPDATE_PENDING_MAIL", + "Type": "Event", + "Name": "UpdatePendingMail" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "MajorFactionFeatureAbility", + "Fields": [ + { "EnumValue": 0, "Type": "MajorFactionFeatureAbility", "Name": "Generic" }, + { "EnumValue": 1, "Type": "MajorFactionFeatureAbility", "Name": "Fishing" }, + { "EnumValue": 2, "Type": "MajorFactionFeatureAbility", "Name": "Hunts" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "MajorFactionType", + "Fields": [ + { "EnumValue": 0, "Type": "MajorFactionType", "Name": "None" }, + { "EnumValue": 1, "Type": "MajorFactionType", "Name": "DragonscaleExpedition" }, + { "EnumValue": 2, "Type": "MajorFactionType", "Name": "MaruukCentaur" }, + { "EnumValue": 3, "Type": "MajorFactionType", "Name": "IskaaraTuskarr" }, + { "EnumValue": 4, "Type": "MajorFactionType", "Name": "ValdrakkenAccord" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Values": [ + { "Value": 19735, "Type": "number", "Name": "WORLD_STATE_RENOWN_CAP_10_0" }, + { + "Value": 20851, + "Type": "number", + "Name": "WORLD_STATE_RAPID_RENOWN_CAP_10_0" + }, + { "Value": 2593, "Type": "number", "Name": "PLUNDERSTORM_MAJOR_FACTION_ID" } + ], + "Type": "Constants", + "Name": "MajorFactionsConsts" + } + ] + }, + { + "Namespace": "C_MajorFactions", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "covenantID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "majorFactionID" }], + "Type": "Function", + "Name": "GetCovenantIDForMajorFaction" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "level" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "majorFactionID" }], + "Type": "Function", + "Name": "GetCurrentRenownLevel" + }, + { + "Returns": [{ "Nilable": true, "Type": "MajorFactionData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "majorFactionID" }], + "Type": "Function", + "Name": "GetMajorFactionData" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "majorFactionIDs" + } + ], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "expansionID" }], + "Type": "Function", + "Name": "GetMajorFactionIDs" + }, + { + "Returns": [ + { "Nilable": true, "Type": "MajorFactionRenownInfo", "Name": "data" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "majorFactionID" }], + "Type": "Function", + "Name": "GetMajorFactionRenownInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "MajorFactionRenownLevelInfo", + "Type": "table", + "Name": "levels" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "majorFactionID" }], + "Type": "Function", + "Name": "GetRenownLevels" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "renownNPCFactionID" }], + "Type": "Function", + "Name": "GetRenownNPCFactionID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "MajorFactionRenownRewardInfo", + "Type": "table", + "Name": "rewards" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "majorFactionID" }, + { "Nilable": false, "Type": "number", "Name": "renownLevel" } + ], + "Type": "Function", + "Name": "GetRenownRewardsForLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasMaxRenown" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "majorFactionID" }], + "Type": "Function", + "Name": "HasMaximumRenown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isWeeklyCapped" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "majorFactionID" }], + "Type": "Function", + "Name": "IsWeeklyRenownCapped" + } + ], + "Type": "System", + "Name": "MajorFactionsUI", + "Events": [ + { + "LiteralName": "MAJOR_FACTION_INTERACTION_ENDED", + "Type": "Event", + "Name": "MajorFactionInteractionEnded" + }, + { + "LiteralName": "MAJOR_FACTION_INTERACTION_STARTED", + "Type": "Event", + "Name": "MajorFactionInteractionStarted" + }, + { + "LiteralName": "MAJOR_FACTION_RENOWN_LEVEL_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "majorFactionID" }, + { "Nilable": false, "Type": "number", "Name": "newRenownLevel" }, + { "Nilable": false, "Type": "number", "Name": "oldRenownLevel" } + ], + "Type": "Event", + "Name": "MajorFactionRenownLevelChanged" + }, + { + "LiteralName": "MAJOR_FACTION_UNLOCKED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "majorFactionID" }], + "Type": "Event", + "Name": "MajorFactionUnlocked" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "factionID" }, + { "Nilable": false, "Type": "number", "Name": "expansionID" }, + { "Nilable": false, "Type": "number", "Name": "bountySetID" }, + { "Nilable": false, "Type": "bool", "Name": "isUnlocked" }, + { "Nilable": true, "Type": "cstring", "Name": "unlockDescription" }, + { "Nilable": false, "Type": "number", "Name": "uiPriority" }, + { "Nilable": false, "Type": "number", "Name": "renownLevel" }, + { "Nilable": false, "Type": "number", "Name": "renownReputationEarned" }, + { "Nilable": false, "Type": "number", "Name": "renownLevelThreshold" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "number", "Name": "celebrationSoundKit" }, + { "Nilable": false, "Type": "number", "Name": "renownFanfareSoundKitID" } + ], + "Type": "Structure", + "Name": "MajorFactionData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "renownLevel" }, + { "Nilable": false, "Type": "number", "Name": "renownReputationEarned" }, + { "Nilable": false, "Type": "number", "Name": "renownLevelThreshold" } + ], + "Type": "Structure", + "Name": "MajorFactionRenownInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "factionID" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "bool", "Name": "locked" }, + { "Nilable": false, "Type": "bool", "Name": "isMilestone" }, + { "Nilable": false, "Type": "bool", "Name": "isCapstone" } + ], + "Type": "Structure", + "Name": "MajorFactionRenownLevelInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "renownRewardID" }, + { "Nilable": false, "Type": "number", "Name": "uiOrder" }, + { "Nilable": false, "Type": "bool", "Name": "isAccountUnlock" }, + { "Nilable": true, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "number", "Name": "spellID" }, + { "Nilable": true, "Type": "number", "Name": "mountID" }, + { "Nilable": true, "Type": "number", "Name": "transmogID" }, + { "Nilable": true, "Type": "number", "Name": "transmogSetID" }, + { "Nilable": true, "Type": "number", "Name": "titleMaskID" }, + { "Nilable": true, "Type": "number", "Name": "transmogIllusionSourceID" }, + { "Nilable": true, "Type": "fileID", "Name": "icon" }, + { "Nilable": true, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "cstring", "Name": "description" }, + { "Nilable": true, "Type": "cstring", "Name": "toastDescription" } + ], + "Type": "Structure", + "Name": "MajorFactionRenownRewardInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "MapCanvasPosition", + "Fields": [ + { "EnumValue": 0, "Type": "MapCanvasPosition", "Name": "None" }, + { "EnumValue": 1, "Type": "MapCanvasPosition", "Name": "BottomLeft" }, + { "EnumValue": 2, "Type": "MapCanvasPosition", "Name": "BottomRight" }, + { "EnumValue": 3, "Type": "MapCanvasPosition", "Name": "TopLeft" }, + { "EnumValue": 4, "Type": "MapCanvasPosition", "Name": "TopRight" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "UIMapFlag", + "Fields": [ + { "EnumValue": 1, "Type": "UIMapFlag", "Name": "NoHighlight" }, + { "EnumValue": 2, "Type": "UIMapFlag", "Name": "ShowOverlays" }, + { "EnumValue": 4, "Type": "UIMapFlag", "Name": "ShowTaxiNodes" }, + { "EnumValue": 8, "Type": "UIMapFlag", "Name": "GarrisonMap" }, + { "EnumValue": 16, "Type": "UIMapFlag", "Name": "FallbackToParentMap" }, + { "EnumValue": 32, "Type": "UIMapFlag", "Name": "NoHighlightTexture" }, + { "EnumValue": 64, "Type": "UIMapFlag", "Name": "ShowTaskObjectives" }, + { "EnumValue": 128, "Type": "UIMapFlag", "Name": "NoWorldPositions" }, + { "EnumValue": 256, "Type": "UIMapFlag", "Name": "HideArchaeologyDigs" }, + { "EnumValue": 512, "Type": "UIMapFlag", "Name": "DoNotTranslateBranches" }, + { "EnumValue": 1024, "Type": "UIMapFlag", "Name": "HideIcons" }, + { "EnumValue": 2048, "Type": "UIMapFlag", "Name": "HideVignettes" }, + { "EnumValue": 4096, "Type": "UIMapFlag", "Name": "ForceAllOverlayExplored" }, + { "EnumValue": 8192, "Type": "UIMapFlag", "Name": "FlightMapShowZoomOut" }, + { "EnumValue": 16384, "Type": "UIMapFlag", "Name": "FlightMapAutoZoom" }, + { "EnumValue": 32768, "Type": "UIMapFlag", "Name": "ForceOnNavbar" }, + { "EnumValue": 65536, "Type": "UIMapFlag", "Name": "AlwaysAllowUserWaypoints" }, + { "EnumValue": 131072, "Type": "UIMapFlag", "Name": "AlwaysAllowTaxiPathing" }, + { "EnumValue": 262144, "Type": "UIMapFlag", "Name": "ForceAllowMapLinks" }, + { "EnumValue": 524288, "Type": "UIMapFlag", "Name": "DoNotShowOnNavbar" }, + { "EnumValue": 1048576, "Type": "UIMapFlag", "Name": "IsCityMap" } + ], + "MaxValue": 1048576, + "MinValue": 1, + "NumValues": 21 + }, + { + "Type": "Enumeration", + "Name": "UIMapGroupFlag", + "Fields": [ + { "EnumValue": 1, "Type": "UIMapGroupFlag", "Name": "ShowIconsAcrossFloors" } + ], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "UIMapSystem", + "Fields": [ + { "EnumValue": 0, "Type": "UIMapSystem", "Name": "World" }, + { "EnumValue": 1, "Type": "UIMapSystem", "Name": "Taxi" }, + { "EnumValue": 2, "Type": "UIMapSystem", "Name": "Adventure" }, + { "EnumValue": 3, "Type": "UIMapSystem", "Name": "Minimap" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "UIMapType", + "Fields": [ + { "EnumValue": 0, "Type": "UIMapType", "Name": "Cosmic" }, + { "EnumValue": 1, "Type": "UIMapType", "Name": "World" }, + { "EnumValue": 2, "Type": "UIMapType", "Name": "Continent" }, + { "EnumValue": 3, "Type": "UIMapType", "Name": "Zone" }, + { "EnumValue": 4, "Type": "UIMapType", "Name": "Dungeon" }, + { "EnumValue": 5, "Type": "UIMapType", "Name": "Micro" }, + { "EnumValue": 6, "Type": "UIMapType", "Name": "Orphan" } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + } + ] + }, + { + "Namespace": "C_Map", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canSet" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "CanSetUserWaypointOnMap" + }, + { "Type": "Function", "Name": "ClearUserWaypoint" }, + { "Type": "Function", "Name": "CloseWorldMapInteraction" }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "areaID" }], + "Type": "Function", + "Name": "GetAreaInfo" + }, + { + "Documentation": ["Only works for the player and party members."], + "Type": "Function", + "Name": "GetBestMapForUnit", + "Returns": [{ "Nilable": true, "Type": "number", "Name": "uiMapID" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }] + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "mapIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "bountySetID" }], + "Type": "Function", + "Name": "GetBountySetMaps" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetFallbackWorldMapID" + }, + { + "Returns": [{ "Nilable": false, "Type": "textureAtlas", "Name": "atlasName" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetMapArtBackgroundAtlas" + }, + { + "Returns": [ + { "Nilable": false, "Type": "MapCanvasPosition", "Name": "position" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetMapArtHelpTextPosition" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "uiMapArtID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetMapArtID" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "fileID", "Type": "table", "Name": "textures" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "layerIndex" } + ], + "Type": "Function", + "Name": "GetMapArtLayerTextures" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "UiMapLayerInfo", + "Type": "table", + "Name": "layerInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetMapArtLayers" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "MapBannerInfo", + "Type": "table", + "Name": "mapBanners" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetMapBannersForMap" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "UiMapDetails", + "Type": "table", + "Name": "info" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { "Nilable": true, "Type": "UIMapType", "Name": "mapType" }, + { "Nilable": true, "Type": "bool", "Name": "allDescendants" } + ], + "Type": "Function", + "Name": "GetMapChildrenInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hideIcons" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetMapDisplayInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "uiMapGroupID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetMapGroupID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "UiMapGroupMemberInfo", + "Type": "table", + "Name": "info" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapGroupID" }], + "Type": "Function", + "Name": "GetMapGroupMembersInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "fileID", "Name": "fileDataID" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "atlasID" }, + { "Nilable": false, "Type": "number", "Name": "texturePercentageX" }, + { "Nilable": false, "Type": "number", "Name": "texturePercentageY" }, + { "Nilable": false, "Type": "number", "Name": "textureX" }, + { "Nilable": false, "Type": "number", "Name": "textureY" }, + { "Nilable": false, "Type": "number", "Name": "scrollChildX" }, + { "Nilable": false, "Type": "number", "Name": "scrollChildY" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" } + ], + "Type": "Function", + "Name": "GetMapHighlightInfoAtPosition" + }, + { + "Returns": [ + { "Nilable": false, "Type": "fileID", "Name": "fileDataID" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "atlasID" }, + { "Nilable": false, "Type": "number", "Name": "texturePercentageX" }, + { "Nilable": false, "Type": "number", "Name": "texturePercentageY" }, + { "Nilable": false, "Type": "number", "Name": "textureX" }, + { "Nilable": false, "Type": "number", "Name": "textureY" }, + { "Nilable": false, "Type": "number", "Name": "scrollChildX" }, + { "Nilable": false, "Type": "number", "Name": "scrollChildY" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetMapHighlightPulseInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "UiMapDetails", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetMapInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "UiMapDetails", "Name": "info" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" }, + { "Nilable": true, "Type": "bool", "Name": "ignoreZoneMapPositionData" } + ], + "Type": "Function", + "Name": "GetMapInfoAtPosition" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "playerMinLevel" }, + { "Nilable": false, "Type": "number", "Name": "playerMaxLevel" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "petMinLevel" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "petMaxLevel" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetMapLevels" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "MapLinkInfo", + "Type": "table", + "Name": "mapLinks" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetMapLinksForMap" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "mapPosition" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "continentID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "worldPosition" + }, + { "Nilable": true, "Type": "number", "Name": "overrideUiMapID" } + ], + "Type": "Function", + "Name": "GetMapPosFromWorldPos" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "minX" }, + { "Nilable": false, "Type": "number", "Name": "maxX" }, + { "Nilable": false, "Type": "number", "Name": "minY" }, + { "Nilable": false, "Type": "number", "Name": "maxY" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { "Nilable": false, "Type": "number", "Name": "topUiMapID" } + ], + "Type": "Function", + "Name": "GetMapRectOnMap" + }, + { + "Documentation": [ + "Returns the size in yards of the area represented by the map." + ], + "Type": "Function", + "Name": "GetMapWorldSize", + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "width" }, + { "Nilable": false, "Type": "number", "Name": "height" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }] + }, + { + "Documentation": ["Only works for the player and party members."], + "Type": "Function", + "Name": "GetPlayerMapPosition", + "Returns": [ + { + "Nilable": true, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" } + ] + }, + { + "Returns": [{ "Nilable": false, "Type": "UiMapPoint", "Name": "point" }], + "Type": "Function", + "Name": "GetUserWaypoint" + }, + { + "Returns": [{ "Nilable": false, "Type": "UiMapPoint", "Name": "point" }], + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "hyperlink" }], + "Type": "Function", + "Name": "GetUserWaypointFromHyperlink" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "hyperlink" }], + "Type": "Function", + "Name": "GetUserWaypointHyperlink" + }, + { + "Returns": [ + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "mapPosition" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetUserWaypointPositionForMap" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "continentID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "worldPosition" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "mapPosition" + } + ], + "Type": "Function", + "Name": "GetWorldPosFromMapPos" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasUserWaypoint" }], + "Type": "Function", + "Name": "HasUserWaypoint" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCityMap" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "IsCityMap" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isValid" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "IsMapValidForNavBarDropdown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasArt" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "MapHasArt" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "RequestPreloadMap" + }, + { + "Arguments": [{ "Nilable": false, "Type": "UiMapPoint", "Name": "point" }], + "Type": "Function", + "Name": "SetUserWaypoint" + } + ], + "Type": "System", + "Name": "MapUI", + "Events": [ + { "LiteralName": "NEW_WMO_CHUNK", "Type": "Event", "Name": "NewWmoChunk" }, + { + "LiteralName": "PLAYER_MAP_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "oldMapID" }, + { "Nilable": false, "Type": "number", "Name": "newMapID" } + ], + "Type": "Event", + "Name": "PlayerMapChanged" + }, + { + "LiteralName": "USER_WAYPOINT_UPDATED", + "Type": "Event", + "Name": "UserWaypointUpdated" + }, + { + "LiteralName": "WORLD_MAP_OPEN", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Event", + "Name": "WorldMapOpen" + }, + { "LiteralName": "ZONE_CHANGED", "Type": "Event", "Name": "ZoneChanged" }, + { + "LiteralName": "ZONE_CHANGED_INDOORS", + "Type": "Event", + "Name": "ZoneChangedIndoors" + }, + { + "LiteralName": "ZONE_CHANGED_NEW_AREA", + "Type": "Event", + "Name": "ZoneChangedNewArea" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "areaPoiID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "atlasName" }, + { "Nilable": true, "Type": "textureKit", "Name": "uiTextureKit" } + ], + "Type": "Structure", + "Name": "MapBannerInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "areaPoiID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "atlasName" }, + { "Nilable": false, "Type": "number", "Name": "linkedUiMapID" } + ], + "Type": "Structure", + "Name": "MapLinkInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "mapID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "UIMapType", "Name": "mapType" }, + { "Nilable": false, "Type": "number", "Name": "parentMapID" }, + { "Nilable": false, "Type": "UIMapFlag", "Name": "flags" } + ], + "Type": "Structure", + "Name": "UiMapDetails" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "mapID" }, + { "Nilable": false, "Type": "number", "Name": "relativeHeightIndex" }, + { "Nilable": false, "Type": "cstring", "Name": "name" } + ], + "Type": "Structure", + "Name": "UiMapGroupMemberInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "fileID", "Name": "fileDataID" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "atlasID" }, + { "Nilable": false, "Type": "number", "Name": "texturePercentageX" }, + { "Nilable": false, "Type": "number", "Name": "texturePercentageY" }, + { "Nilable": false, "Type": "number", "Name": "textureX" }, + { "Nilable": false, "Type": "number", "Name": "textureY" }, + { "Nilable": false, "Type": "number", "Name": "scrollChildX" }, + { "Nilable": false, "Type": "number", "Name": "scrollChildY" } + ], + "Type": "Structure", + "Name": "UiMapHighlightInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "layerWidth" }, + { "Nilable": false, "Type": "number", "Name": "layerHeight" }, + { "Nilable": false, "Type": "number", "Name": "tileWidth" }, + { "Nilable": false, "Type": "number", "Name": "tileHeight" }, + { "Nilable": false, "Type": "number", "Name": "minScale" }, + { "Nilable": false, "Type": "number", "Name": "maxScale" }, + { "Nilable": false, "Type": "number", "Name": "additionalZoomSteps" } + ], + "Type": "Structure", + "Name": "UiMapLayerInfo" + } + ] + }, + { + "Namespace": "C_MapExplorationInfo", + "Functions": [ + { + "Returns": [ + { "Nilable": true, "InnerType": "number", "Type": "table", "Name": "areaID" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "normalizedPosition" + } + ], + "Type": "Function", + "Name": "GetExploredAreaIDsAtPosition" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "UiMapExplorationInfo", + "Type": "table", + "Name": "overlayInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetExploredMapTextures" + } + ], + "Type": "System", + "Name": "MapExplorationInfo", + "Events": [ + { + "LiteralName": "MAP_EXPLORATION_UPDATED", + "Type": "Event", + "Name": "MapExplorationUpdated" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "top" }, + { "Nilable": false, "Type": "number", "Name": "bottom" }, + { "Nilable": false, "Type": "number", "Name": "left" }, + { "Nilable": false, "Type": "number", "Name": "right" } + ], + "Type": "Structure", + "Name": "UiMapExplorationHitRect" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "textureWidth" }, + { "Nilable": false, "Type": "number", "Name": "textureHeight" }, + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" }, + { "Nilable": false, "Type": "bool", "Name": "isShownByMouseOver" }, + { "Nilable": false, "Type": "bool", "Name": "isDrawOnTopLayer" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "fileDataIDs" + }, + { "Nilable": false, "Type": "UiMapExplorationHitRect", "Name": "hitRect" } + ], + "Type": "Structure", + "Name": "UiMapExplorationInfo" + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_MerchantFrame", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "buybackItemID" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "buybackSlotIndex" } + ], + "Type": "Function", + "Name": "GetBuybackItemID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numJunkItems" }], + "Type": "Function", + "Name": "GetNumJunkItems" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "refundable" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "IsMerchantItemRefundable" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsSellAllJunkEnabled" + }, + { "Type": "Function", "Name": "SellAllJunkItems" } + ], + "Type": "System", + "Name": "MerchantFrame", + "Events": [ + { "LiteralName": "MERCHANT_CLOSED", "Type": "Event", "Name": "MerchantClosed" }, + { + "LiteralName": "MERCHANT_FILTER_ITEM_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Event", + "Name": "MerchantFilterItemUpdate" + }, + { "LiteralName": "MERCHANT_SHOW", "Type": "Event", "Name": "MerchantShow" }, + { "LiteralName": "MERCHANT_UPDATE", "Type": "Event", "Name": "MerchantUpdate" } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "MinimapTrackingFilter", + "Fields": [ + { "EnumValue": 0, "Type": "MinimapTrackingFilter", "Name": "Unfiltered" }, + { "EnumValue": 1, "Type": "MinimapTrackingFilter", "Name": "Auctioneer" }, + { "EnumValue": 2, "Type": "MinimapTrackingFilter", "Name": "Banker" }, + { "EnumValue": 4, "Type": "MinimapTrackingFilter", "Name": "Battlemaster" }, + { "EnumValue": 8, "Type": "MinimapTrackingFilter", "Name": "TaxiNode" }, + { "EnumValue": 16, "Type": "MinimapTrackingFilter", "Name": "VenderFood" }, + { "EnumValue": 32, "Type": "MinimapTrackingFilter", "Name": "Innkeeper" }, + { "EnumValue": 64, "Type": "MinimapTrackingFilter", "Name": "Mailbox" }, + { + "EnumValue": 128, + "Type": "MinimapTrackingFilter", + "Name": "TrainerProfession" + }, + { "EnumValue": 256, "Type": "MinimapTrackingFilter", "Name": "VendorReagent" }, + { "EnumValue": 512, "Type": "MinimapTrackingFilter", "Name": "Repair" }, + { "EnumValue": 1024, "Type": "MinimapTrackingFilter", "Name": "TrivialQuests" }, + { "EnumValue": 2048, "Type": "MinimapTrackingFilter", "Name": "Stablemaster" }, + { + "EnumValue": 4096, + "Type": "MinimapTrackingFilter", + "Name": "Transmogrifier" + }, + { "EnumValue": 8192, "Type": "MinimapTrackingFilter", "Name": "POI" }, + { "EnumValue": 16384, "Type": "MinimapTrackingFilter", "Name": "Target" }, + { "EnumValue": 32768, "Type": "MinimapTrackingFilter", "Name": "Focus" }, + { "EnumValue": 65536, "Type": "MinimapTrackingFilter", "Name": "QuestPoIs" }, + { "EnumValue": 131072, "Type": "MinimapTrackingFilter", "Name": "Digsites" }, + { "EnumValue": 262144, "Type": "MinimapTrackingFilter", "Name": "Barber" }, + { "EnumValue": 524288, "Type": "MinimapTrackingFilter", "Name": "ItemUpgrade" }, + { + "EnumValue": 1048576, + "Type": "MinimapTrackingFilter", + "Name": "VendorPoison" + }, + { + "EnumValue": 2097152, + "Type": "MinimapTrackingFilter", + "Name": "AccountCompletedQuests" + }, + { + "EnumValue": 4194304, + "Type": "MinimapTrackingFilter", + "Name": "AccountBanker" + } + ], + "MaxValue": 4194304, + "MinValue": 0, + "NumValues": 24 + } + ] + }, + { + "Namespace": "C_Minimap", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "CanTrackBattlePets" }], + "Type": "Function", + "Name": "CanTrackBattlePets" + }, + { "Type": "Function", "Name": "ClearAllTracking" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "defaultValue" }], + "Arguments": [ + { "Nilable": false, "Type": "MinimapTrackingFilter", "Name": "filterType" } + ], + "Type": "Function", + "Name": "GetDefaultTrackingValue" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "draw" }], + "Type": "Function", + "Name": "GetDrawGroundTextures" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "worldEffectCount" }], + "Type": "Function", + "Name": "GetNumQuestPOIWorldEffects" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numTrackingTypes" }], + "Type": "Function", + "Name": "GetNumTrackingTypes" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "textureCoordsX" }, + { "Nilable": false, "Type": "number", "Name": "textureCoordsY" }, + { "Nilable": false, "Type": "number", "Name": "textureCoordsZ" }, + { "Nilable": false, "Type": "number", "Name": "textureCoordsW" } + ], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "GetObjectIconTextureCoords" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "textureCoordsX" }, + { "Nilable": false, "Type": "number", "Name": "textureCoordsY" }, + { "Nilable": false, "Type": "number", "Name": "textureCoordsZ" }, + { "Nilable": false, "Type": "number", "Name": "textureCoordsW" } + ], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "GetPOITextureCoords" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "MinimapScriptTrackingFilter", + "Name": "trackingType" + } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "spellIndex" }], + "Type": "Function", + "Name": "GetTrackingFilter" + }, + { + "Returns": [ + { "Nilable": true, "Type": "MinimapScriptTrackingInfo", "Name": "trackingInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "spellIndex" }], + "Type": "Function", + "Name": "GetTrackingInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetUiMapID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "yards" }], + "Type": "Function", + "Name": "GetViewRadius" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFiltered" }], + "Arguments": [ + { "Nilable": false, "Type": "MinimapTrackingFilter", "Name": "filterType" } + ], + "Type": "Function", + "Name": "IsFilteredOut" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isIgnored" }], + "Type": "Function", + "Name": "IsRotateMinimapIgnored" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "IsTrackingAccountCompletedQuests" } + ], + "Type": "Function", + "Name": "IsTrackingAccountCompletedQuests" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTrackingBattlePets" }], + "Type": "Function", + "Name": "IsTrackingBattlePets" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isTrackingHiddenQuests" } + ], + "Type": "Function", + "Name": "IsTrackingHiddenQuests" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "draw" }], + "Type": "Function", + "Name": "SetDrawGroundTextures" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "ignore" }], + "Type": "Function", + "Name": "SetIgnoreRotateMinimap" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "bool", "Name": "on" } + ], + "Type": "Function", + "Name": "SetTracking" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "shouldUse" }], + "Type": "Function", + "Name": "ShouldUseHybridMinimap" + } + ], + "Type": "System", + "Name": "Minimap", + "Events": [ + { + "LiteralName": "MINIMAP_PING", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "number", "Name": "y" }, + { "Nilable": false, "Type": "number", "Name": "x" } + ], + "Type": "Event", + "Name": "MinimapPing" + }, + { + "LiteralName": "MINIMAP_UPDATE_TRACKING", + "Type": "Event", + "Name": "MinimapUpdateTracking" + }, + { + "LiteralName": "MINIMAP_UPDATE_ZOOM", + "Type": "Event", + "Name": "MinimapUpdateZoom" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "spellID" }, + { "Nilable": true, "Type": "MinimapTrackingFilter", "Name": "filterID" } + ], + "Type": "Structure", + "Name": "MinimapScriptTrackingFilter" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "texture" }, + { "Nilable": false, "Type": "bool", "Name": "active" }, + { "Nilable": false, "Type": "cstring", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "subType" }, + { "Nilable": true, "Type": "number", "Name": "spellID" } + ], + "Type": "Structure", + "Name": "MinimapScriptTrackingInfo" + } + ] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetPingPosition" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "zoomFactor" }], + "Arguments": [], + "Type": "Function", + "Name": "GetZoom" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "zoomLevels" }], + "Arguments": [], + "Type": "Function", + "Name": "GetZoomLevels" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "locationX" }, + { "Nilable": false, "Type": "number", "Name": "locationY" } + ], + "Type": "Function", + "Name": "PingLocation" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetArchBlobInsideAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetArchBlobInsideTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetArchBlobOutsideAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetArchBlobOutsideTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetArchBlobRingAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scalar" }], + "Type": "Function", + "Name": "SetArchBlobRingScalar" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetArchBlobRingTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetBlipTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetCorpsePOIArrowTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetIconTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetMaskTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetPOIArrowTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetPlayerTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetQuestBlobInsideAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetQuestBlobInsideTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetQuestBlobOutsideAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetQuestBlobOutsideTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetQuestBlobRingAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scalar" }], + "Type": "Function", + "Name": "SetQuestBlobRingScalar" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetQuestBlobRingTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetStaticPOIArrowTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetTaskBlobInsideAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetTaskBlobInsideTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetTaskBlobOutsideAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetTaskBlobOutsideTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetTaskBlobRingAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scalar" }], + "Type": "Function", + "Name": "SetTaskBlobRingScalar" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetTaskBlobRingTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "zoomFactor" }], + "Type": "Function", + "Name": "SetZoom" + }, + { "Arguments": [], "Type": "Function", "Name": "UpdateBlips" } + ], + "Type": "ScriptObject", + "Name": "MinimapFrameAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "startValue" }, + { "Nilable": false, "Type": "number", "Name": "maxValue" }, + { "Nilable": false, "Type": "number", "Name": "scale" }, + { "Nilable": false, "Type": "number", "Name": "paused" }, + { "Nilable": false, "Type": "cstring", "Name": "label" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "timerIndex" }], + "Type": "Function", + "Name": "GetMirrorTimerInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "progress" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "timerName" }], + "Type": "Function", + "Name": "GetMirrorTimerProgress" + } + ], + "Type": "System", + "Name": "MirrorTimer", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "startValue" }, + { "Nilable": false, "Type": "number", "Name": "maxValue" }, + { "Nilable": false, "Type": "number", "Name": "scale" }, + { "Nilable": false, "Type": "number", "Name": "paused" }, + { "Nilable": false, "Type": "cstring", "Name": "label" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Structure", + "Name": "MirrorTimerInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ModelBlendOperation", + "Fields": [ + { "EnumValue": 0, "Type": "ModelBlendOperation", "Name": "None" }, + { "EnumValue": 1, "Type": "ModelBlendOperation", "Name": "Anim" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + } + ] + }, + { "Tables": [] }, + { + "Tables": [ + { + "Values": [ + { + "Value": 10, + "Type": "number", + "Name": "GOLD_REWARD_THRESHOLD_TO_HIDE_COPPER" + } + ], + "Type": "Constants", + "Name": "MoneyFormattingConstants" + } + ] + }, + { + "Tables": [ + { + "Values": [ + { "Value": 1, "Type": "number", "Name": "TRAIT_SYSTEM_ID" }, + { "Value": 672, "Type": "number", "Name": "TREE_ID" } + ], + "Type": "Constants", + "Name": "MountDynamicFlightConsts" + } + ] + }, + { + "Namespace": "C_MountJournal", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canContinue" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "ApplyMountEquipment" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "areEffectsSuppressed" }], + "Type": "Function", + "Name": "AreMountEquipmentEffectsSuppressed" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mountID" }], + "Type": "Function", + "Name": "ClearFanfare" + }, + { "Type": "Function", "Name": "ClearRecentFanfares" }, + { "Type": "Function", "Name": "Dismiss" }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "creatureDisplayIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mountID" }], + "Type": "Function", + "Name": "GetAllCreatureDisplayIDsForMountID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetAppliedMountEquipmentID" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "mountIDs" } + ], + "Type": "Function", + "Name": "GetCollectedDragonridingMounts" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isChecked" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "filterIndex" }], + "Type": "Function", + "Name": "GetCollectedFilterSetting" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "MountCreatureDisplayInfo", + "Type": "table", + "Name": "allDisplayInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "mountIndex" }], + "Type": "Function", + "Name": "GetDisplayedMountAllCreatureDisplayInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "mountID" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "displayIndex" }], + "Type": "Function", + "Name": "GetDisplayedMountID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "bool", "Name": "isActive" }, + { "Nilable": false, "Type": "bool", "Name": "isUsable" }, + { "Nilable": false, "Type": "number", "Name": "sourceType" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" }, + { "Nilable": false, "Type": "bool", "Name": "isFactionSpecific" }, + { "Nilable": true, "Type": "number", "Name": "faction" }, + { "Nilable": false, "Type": "bool", "Name": "shouldHideOnChar" }, + { "Nilable": false, "Type": "bool", "Name": "isCollected" }, + { "Nilable": false, "Type": "number", "Name": "mountID" }, + { "Nilable": false, "Type": "bool", "Name": "isSteadyFlight" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "displayIndex" }], + "Type": "Function", + "Name": "GetDisplayedMountInfo" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "creatureDisplayInfoID" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "cstring", "Name": "source" }, + { "Nilable": false, "Type": "bool", "Name": "isSelfMount" }, + { "Nilable": false, "Type": "number", "Name": "mountTypeID" }, + { "Nilable": false, "Type": "number", "Name": "uiModelSceneID" }, + { "Nilable": false, "Type": "number", "Name": "animID" }, + { "Nilable": false, "Type": "number", "Name": "spellVisualKitID" }, + { "Nilable": false, "Type": "bool", "Name": "disablePlayerMountPreview" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "mountIndex" }], + "Type": "Function", + "Name": "GetDisplayedMountInfoExtra" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "GetDynamicFlightModeSpellID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isFavorite" }, + { "Nilable": false, "Type": "bool", "Name": "canSetFavorite" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "mountIndex" }], + "Type": "Function", + "Name": "GetIsFavorite" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "MountCreatureDisplayInfo", + "Type": "table", + "Name": "allDisplayInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mountID" }], + "Type": "Function", + "Name": "GetMountAllCreatureDisplayInfoByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "level" }], + "Type": "Function", + "Name": "GetMountEquipmentUnlockLevel" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "mountID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetMountFromItem" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "mountID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "GetMountFromSpell" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "mountIDs" } + ], + "Type": "Function", + "Name": "GetMountIDs" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "bool", "Name": "isActive" }, + { "Nilable": false, "Type": "bool", "Name": "isUsable" }, + { "Nilable": false, "Type": "number", "Name": "sourceType" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" }, + { "Nilable": false, "Type": "bool", "Name": "isFactionSpecific" }, + { "Nilable": true, "Type": "number", "Name": "faction" }, + { "Nilable": false, "Type": "bool", "Name": "shouldHideOnChar" }, + { "Nilable": false, "Type": "bool", "Name": "isCollected" }, + { "Nilable": false, "Type": "number", "Name": "mountID" }, + { "Nilable": false, "Type": "bool", "Name": "isSteadyFlight" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mountID" }], + "Type": "Function", + "Name": "GetMountInfoByID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "creatureDisplayInfoID" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "cstring", "Name": "source" }, + { "Nilable": false, "Type": "bool", "Name": "isSelfMount" }, + { "Nilable": false, "Type": "number", "Name": "mountTypeID" }, + { "Nilable": false, "Type": "number", "Name": "uiModelSceneID" }, + { "Nilable": false, "Type": "number", "Name": "animID" }, + { "Nilable": false, "Type": "number", "Name": "spellVisualKitID" }, + { "Nilable": false, "Type": "bool", "Name": "disablePlayerMountPreview" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mountID" }], + "Type": "Function", + "Name": "GetMountInfoExtraByID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "string", "Name": "mountCreatureDisplayInfoLink" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "GetMountLink" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isUsable" }, + { "Nilable": true, "Type": "cstring", "Name": "useError" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "mountID" }, + { "Nilable": false, "Type": "bool", "Name": "checkIndoors" } + ], + "Type": "Function", + "Name": "GetMountUsabilityByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numMounts" }], + "Type": "Function", + "Name": "GetNumDisplayedMounts" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numMounts" }], + "Type": "Function", + "Name": "GetNumMounts" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numMountsNeedingFanfare" } + ], + "Type": "Function", + "Name": "GetNumMountsNeedingFanfare" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isUnlocked" }], + "Documentation": [ + "Returns whether the player has unlocked the ability to switch between Skyriding and steady flight styles for flying mounts ." + ], + "Type": "Function", + "Name": "IsDragonridingUnlocked" + }, + { + "Documentation": [ + "Determines if the item is mount equipment based on its class and subclass." + ], + "Type": "Function", + "Name": "IsItemMountEquipment", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isMountEquipment" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isApplied" }], + "Type": "Function", + "Name": "IsMountEquipmentApplied" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isChecked" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "filterIndex" }], + "Type": "Function", + "Name": "IsSourceChecked" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isChecked" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "filterIndex" }], + "Type": "Function", + "Name": "IsTypeChecked" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isUsingDefaultFilters" } + ], + "Type": "Function", + "Name": "IsUsingDefaultFilters" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isValid" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "filterIndex" }], + "Type": "Function", + "Name": "IsValidSourceFilter" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isValid" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "filterIndex" }], + "Type": "Function", + "Name": "IsValidTypeFilter" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "needsFanfare" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mountID" }], + "Type": "Function", + "Name": "NeedsFanfare" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "displayIndex" }], + "Type": "Function", + "Name": "Pickup" + }, + { "Type": "Function", "Name": "PickupDynamicFlightMode" }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "isChecked" }], + "Type": "Function", + "Name": "SetAllSourceFilters" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "isChecked" }], + "Type": "Function", + "Name": "SetAllTypeFilters" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "filterIndex" }, + { "Nilable": false, "Type": "bool", "Name": "isChecked" } + ], + "Type": "Function", + "Name": "SetCollectedFilterSetting" + }, + { "Type": "Function", "Name": "SetDefaultFilters" }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "mountIndex" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" } + ], + "Type": "Function", + "Name": "SetIsFavorite" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "searchValue" }], + "Type": "Function", + "Name": "SetSearch" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "filterIndex" }, + { "Nilable": false, "Type": "bool", "Name": "isChecked" } + ], + "Type": "Function", + "Name": "SetSourceFilter" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "filterIndex" }, + { "Nilable": false, "Type": "bool", "Name": "isChecked" } + ], + "Type": "Function", + "Name": "SetTypeFilter" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mountID" }], + "Type": "Function", + "Name": "SummonByID" + }, + { "Type": "Function", "Name": "SwapDynamicFlightMode" } + ], + "Type": "System", + "Name": "MountJournal", + "Events": [ + { + "LiteralName": "MOUNT_EQUIPMENT_APPLY_RESULT", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Type": "Event", + "Name": "MountEquipmentApplyResult" + }, + { + "LiteralName": "MOUNT_JOURNAL_SEARCH_UPDATED", + "Type": "Event", + "Name": "MountJournalSearchUpdated" + }, + { + "LiteralName": "MOUNT_JOURNAL_USABILITY_CHANGED", + "Type": "Event", + "Name": "MountJournalUsabilityChanged" + }, + { + "LiteralName": "NEW_MOUNT_ADDED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "mountID" }], + "Type": "Event", + "Name": "NewMountAdded" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "MountType", + "Fields": [ + { "EnumValue": 0, "Type": "MountType", "Name": "Ground" }, + { "EnumValue": 1, "Type": "MountType", "Name": "Flying" }, + { "EnumValue": 2, "Type": "MountType", "Name": "Aquatic" }, + { "EnumValue": 3, "Type": "MountType", "Name": "Dragonriding" }, + { "EnumValue": 4, "Type": "MountType", "Name": "RideAlong" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "MountTypeFlag", + "Fields": [ + { "EnumValue": 1, "Type": "MountTypeFlag", "Name": "IsFlyingMount" }, + { "EnumValue": 2, "Type": "MountTypeFlag", "Name": "IsAquaticMount" }, + { "EnumValue": 4, "Type": "MountTypeFlag", "Name": "IsDragonRidingMount" }, + { "EnumValue": 8, "Type": "MountTypeFlag", "Name": "IsRideAlongMount" } + ], + "MaxValue": 8, + "MinValue": 1, + "NumValues": 4 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "creatureDisplayID" }, + { "Nilable": false, "Type": "bool", "Name": "isVisible" } + ], + "Type": "Structure", + "Name": "MountCreatureDisplayInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "bool", "Name": "isActive" }, + { "Nilable": false, "Type": "bool", "Name": "isUsable" }, + { "Nilable": false, "Type": "number", "Name": "sourceType" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" }, + { "Nilable": false, "Type": "bool", "Name": "isFactionSpecific" }, + { "Nilable": true, "Type": "number", "Name": "faction" }, + { "Nilable": false, "Type": "bool", "Name": "shouldHideOnChar" }, + { "Nilable": false, "Type": "bool", "Name": "isCollected" }, + { "Nilable": false, "Type": "number", "Name": "mountID" }, + { "Nilable": false, "Type": "bool", "Name": "isSteadyFlight" } + ], + "Type": "Structure", + "Name": "MountInfo" + }, + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "creatureDisplayInfoID" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "cstring", "Name": "source" }, + { "Nilable": false, "Type": "bool", "Name": "isSelfMount" }, + { "Nilable": false, "Type": "number", "Name": "mountTypeID" }, + { "Nilable": false, "Type": "number", "Name": "uiModelSceneID" }, + { "Nilable": false, "Type": "number", "Name": "animID" }, + { "Nilable": false, "Type": "number", "Name": "spellVisualKitID" }, + { "Nilable": false, "Type": "bool", "Name": "disablePlayerMountPreview" } + ], + "Type": "Structure", + "Name": "MountInfoExtra" + } + ] + }, + { + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "movieId" }], + "Type": "Function", + "Name": "CancelPreloadingMovie" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "inProgress" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "downloaded" }, + { "Nilable": false, "Type": "BigUInteger", "Name": "total" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "movieId" }], + "Type": "Function", + "Name": "GetMovieDownloadProgress" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLocal" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "movieId" }], + "Type": "Function", + "Name": "IsMovieLocal" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPlayable" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "movieId" }], + "Type": "Function", + "Name": "IsMoviePlayable" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "readable" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "movieId" }], + "Type": "Function", + "Name": "IsMovieReadable" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "movieId" }], + "Type": "Function", + "Name": "PreloadMovie" + } + ], + "Type": "System", + "Name": "Movie", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_MythicPlus", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "MythicPlusKeystoneAffix", + "Type": "table", + "Name": "affixIDs" + } + ], + "Type": "Function", + "Name": "GetCurrentAffixes" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "seasonID" }], + "Type": "Function", + "Name": "GetCurrentSeason" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "displaySeasonID" }, + { "Nilable": false, "Type": "number", "Name": "milestoneSeasonID" }, + { "Nilable": false, "Type": "number", "Name": "rewardSeasonID" } + ], + "Type": "Function", + "Name": "GetCurrentSeasonValues" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "seasonID" }], + "Type": "Function", + "Name": "GetCurrentUIDisplaySeason" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "sequenceLevel" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "keystoneLevel" }], + "Type": "Function", + "Name": "GetEndOfRunGearSequenceLevel" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "challengeMapId" }, + { "Nilable": false, "Type": "number", "Name": "level" } + ], + "Type": "Function", + "Name": "GetLastWeeklyBestInformation" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "challengeMapID" }], + "Type": "Function", + "Name": "GetOwnedKeystoneChallengeMapID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "keyStoneLevel" }], + "Type": "Function", + "Name": "GetOwnedKeystoneLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "mapID" }], + "Type": "Function", + "Name": "GetOwnedKeystoneMapID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "weeklyRewardLevel" }, + { "Nilable": false, "Type": "number", "Name": "endOfRunRewardLevel" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "difficultyLevel" }], + "Type": "Function", + "Name": "GetRewardLevelForDifficultyLevel" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "rewardLevel" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "keystoneLevel" }], + "Type": "Function", + "Name": "GetRewardLevelFromKeystoneLevel" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "MythicPlusRunInfo", + "Type": "table", + "Name": "runs" + } + ], + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "includePreviousWeeks" + }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "includeIncompleteRuns" + } + ], + "Type": "Function", + "Name": "GetRunHistory" + }, + { + "Documentation": [ + "Gets the active players best runs by the seasonal tracked affixes as well as their overall score for the current season." + ], + "Type": "Function", + "Name": "GetSeasonBestAffixScoreInfoForMap", + "Returns": [ + { + "Nilable": false, + "InnerType": "MythicPlusAffixScoreInfo", + "Type": "table", + "Name": "affixScores" + }, + { "Nilable": false, "Type": "number", "Name": "bestOverAllScore" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "mapChallengeModeID" } + ] + }, + { + "Returns": [ + { "Nilable": true, "Type": "MapSeasonBestInfo", "Name": "intimeInfo" }, + { "Nilable": true, "Type": "MapSeasonBestInfo", "Name": "overtimeInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "mapChallengeModeID" } + ], + "Type": "Function", + "Name": "GetSeasonBestForMap" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "bestSeasonScore" }, + { "Nilable": false, "Type": "number", "Name": "bestSeason" } + ], + "Type": "Function", + "Name": "GetSeasonBestMythicRatingFromThisExpansion" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "durationSec" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "MythicPlusDate", "Name": "completionDate" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "affixIDs" + }, + { + "Nilable": false, + "InnerType": "MythicPlusMember", + "Type": "table", + "Name": "members" + }, + { "Nilable": false, "Type": "number", "Name": "dungeonScore" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "mapChallengeModeID" } + ], + "Type": "Function", + "Name": "GetWeeklyBestForMap" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "currentWeekBestLevel" }, + { "Nilable": false, "Type": "number", "Name": "weeklyRewardLevel" }, + { + "Nilable": false, + "Type": "number", + "Name": "nextDifficultyWeeklyRewardLevel" + }, + { "Nilable": false, "Type": "number", "Name": "nextBestLevel" } + ], + "Type": "Function", + "Name": "GetWeeklyChestRewardLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isMythicPlusActive" }], + "Type": "Function", + "Name": "IsMythicPlusActive" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "weeklyRewardAvailable" } + ], + "Type": "Function", + "Name": "IsWeeklyRewardAvailable" + }, + { "Type": "Function", "Name": "RequestCurrentAffixes" }, + { "Type": "Function", "Name": "RequestMapInfo" }, + { "Type": "Function", "Name": "RequestRewards" } + ], + "Type": "System", + "Name": "MythicPlusInfo", + "Events": [ + { + "LiteralName": "MYTHIC_PLUS_CURRENT_AFFIX_UPDATE", + "Type": "Event", + "Name": "MythicPlusCurrentAffixUpdate" + }, + { + "LiteralName": "MYTHIC_PLUS_NEW_WEEKLY_RECORD", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "mapChallengeModeID" }, + { "Nilable": false, "Type": "number", "Name": "completionMilliseconds" }, + { "Nilable": false, "Type": "number", "Name": "level" } + ], + "Type": "Event", + "Name": "MythicPlusNewWeeklyRecord" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "durationSec" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "MythicPlusDate", "Name": "completionDate" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "affixIDs" + }, + { + "Nilable": false, + "InnerType": "MythicPlusMember", + "Type": "table", + "Name": "members" + }, + { "Nilable": false, "Type": "number", "Name": "dungeonScore" } + ], + "Type": "Structure", + "Name": "MapSeasonBestInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "year" }, + { "Nilable": false, "Type": "number", "Name": "month" }, + { "Nilable": false, "Type": "number", "Name": "day" }, + { "Nilable": false, "Type": "number", "Name": "hour" }, + { "Nilable": false, "Type": "number", "Name": "minute" } + ], + "Type": "Structure", + "Name": "MythicPlusDate" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "number", "Name": "seasonID" } + ], + "Type": "Structure", + "Name": "MythicPlusKeystoneAffix" + }, + { + "Fields": [ + { "Nilable": true, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "Type": "number", "Name": "classID" } + ], + "Type": "Structure", + "Name": "MythicPlusMember" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "mapChallengeModeID" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "bool", "Name": "thisWeek" }, + { "Nilable": false, "Type": "bool", "Name": "completed" }, + { "Nilable": false, "Type": "number", "Name": "runScore" } + ], + "Type": "Structure", + "Name": "MythicPlusRunInfo" + } + ] + }, + { + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "score" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "number", "Name": "durationSec" }, + { "Nilable": false, "Type": "bool", "Name": "overTime" } + ], + "Documentation": ["Information about a specific M+ run"], + "Type": "Structure", + "Name": "MythicPlusAffixScoreInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "mapChallengeModeID" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "number", "Name": "completedInTime" }, + { "Nilable": false, "Type": "number", "Name": "dungeonScore" }, + { "Nilable": false, "Type": "string", "Name": "name" } + ], + "Type": "Structure", + "Name": "MythicPlusRatingLinkInfo" + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_NamePlateManager", + "Functions": [], + "Type": "System", + "Name": "NamePlateManager", + "Events": [ + { + "LiteralName": "FORBIDDEN_NAME_PLATE_CREATED", + "Payload": [ + { "Nilable": false, "Type": "NamePlateFrame", "Name": "namePlateFrame" } + ], + "Type": "Event", + "Name": "ForbiddenNamePlateCreated" + }, + { + "LiteralName": "FORBIDDEN_NAME_PLATE_UNIT_ADDED", + "Payload": [{ "Nilable": false, "Type": "string", "Name": "unitToken" }], + "Type": "Event", + "Name": "ForbiddenNamePlateUnitAdded" + }, + { + "LiteralName": "FORBIDDEN_NAME_PLATE_UNIT_REMOVED", + "Payload": [{ "Nilable": false, "Type": "string", "Name": "unitToken" }], + "Type": "Event", + "Name": "ForbiddenNamePlateUnitRemoved" + }, + { + "LiteralName": "NAME_PLATE_CREATED", + "Payload": [ + { "Nilable": false, "Type": "NamePlateFrame", "Name": "namePlateFrame" } + ], + "Type": "Event", + "Name": "NamePlateCreated" + }, + { + "LiteralName": "NAME_PLATE_UNIT_ADDED", + "Payload": [{ "Nilable": false, "Type": "string", "Name": "unitToken" }], + "Type": "Event", + "Name": "NamePlateUnitAdded" + }, + { + "LiteralName": "NAME_PLATE_UNIT_REMOVED", + "Payload": [{ "Nilable": false, "Type": "string", "Name": "unitToken" }], + "Type": "Event", + "Name": "NamePlateUnitRemoved" + } + ], + "Tables": [] + }, + { + "Namespace": "C_NewItems", + "Functions": [ + { "Type": "Function", "Name": "ClearAll" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isNew" }], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "IsNewItem" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "containerIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "RemoveNewItem" + } + ], + "Type": "System", + "Name": "NewItems", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "length" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "removeMarkup" } + ], + "Type": "Function", + "Name": "CopyToClipboard" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "time" }], + "Type": "Function", + "Name": "GetTimePreciseSec" + } + ], + "Type": "System", + "Name": "Os", + "Events": [], + "Tables": [] + }, + { "Tables": [] }, + { + "Namespace": "C_PaperDollInfo", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canAutoEquip" }], + "Type": "Function", + "Name": "CanAutoEquipCursorItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canOccupySlot" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" }], + "Type": "Function", + "Name": "CanCursorCanGoInSlot" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "effectiveness" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "armor" }, + { "Nilable": false, "Type": "number", "Name": "attackerLevel" } + ], + "Type": "Function", + "Name": "GetArmorEffectiveness" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "effectiveness" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "armor" }], + "Type": "Function", + "Name": "GetArmorEffectivenessAgainstTarget" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "azeritePowerIDs" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "luaIndex", "Name": "equipmentSlotIndex" } + ], + "Type": "Function", + "Name": "GetInspectAzeriteItemEmpoweredChoices" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "achievementPoints" }, + { "Nilable": false, "Type": "number", "Name": "numMembers" }, + { "Nilable": false, "Type": "string", "Name": "guildName" }, + { "Nilable": false, "Type": "string", "Name": "realmName" } + ], + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "unitString" }], + "Type": "Function", + "Name": "GetInspectGuildInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "equippedItemLevel" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "GetInspectItemLevel" + }, + { + "Returns": [ + { "Nilable": false, "Type": "InspectPVPData", "Name": "ratedBGBlitzData" } + ], + "Type": "Function", + "Name": "GetInspectRatedBGBlitzData" + }, + { + "Returns": [ + { "Nilable": false, "Type": "InspectPVPData", "Name": "ratedSoloShuffleData" } + ], + "Type": "Function", + "Name": "GetInspectRatedSoloShuffleData" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "minItemLevel" }], + "Type": "Function", + "Name": "GetMinItemLevel" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "stagger" }, + { "Nilable": true, "Type": "number", "Name": "staggerAgainstTarget" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "GetStaggerPercentage" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "offhandHasShield" }], + "Type": "Function", + "Name": "OffhandHasShield" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "offhandHasWeapon" }], + "Type": "Function", + "Name": "OffhandHasWeapon" + } + ], + "Type": "System", + "Name": "PaperDollInfo", + "Events": [ + { "LiteralName": "AVOIDANCE_UPDATE", "Type": "Event", "Name": "AvoidanceUpdate" }, + { + "LiteralName": "CHARACTER_POINTS_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "change" }], + "Type": "Event", + "Name": "CharacterPointsChanged" + }, + { + "LiteralName": "CHARACTER_UPGRADE_SPELL_TIER_SET", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "tierIndex" }], + "Type": "Event", + "Name": "CharacterUpgradeSpellTierSet" + }, + { + "LiteralName": "COMBAT_RATING_UPDATE", + "Type": "Event", + "Name": "CombatRatingUpdate" + }, + { "LiteralName": "DISABLE_XP_GAIN", "Type": "Event", "Name": "DisableXpGain" }, + { "LiteralName": "ENABLE_XP_GAIN", "Type": "Event", "Name": "EnableXpGain" }, + { + "LiteralName": "EQUIP_BIND_CONFIRM", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "slot" }, + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Event", + "Name": "EquipBindConfirm" + }, + { + "LiteralName": "INSPECT_HONOR_UPDATE", + "Type": "Event", + "Name": "InspectHonorUpdate" + }, + { + "LiteralName": "INSPECT_READY", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "inspecteeGUID" }], + "Type": "Event", + "Name": "InspectReady" + }, + { "LiteralName": "LIFESTEAL_UPDATE", "Type": "Event", "Name": "LifestealUpdate" }, + { "LiteralName": "MASTERY_UPDATE", "Type": "Event", "Name": "MasteryUpdate" }, + { + "LiteralName": "PET_SPELL_POWER_UPDATE", + "Type": "Event", + "Name": "PetSpellPowerUpdate" + }, + { + "LiteralName": "PLAYER_AVG_ITEM_LEVEL_UPDATE", + "Type": "Event", + "Name": "PlayerAvgItemLevelUpdate" + }, + { + "LiteralName": "PLAYER_EQUIPMENT_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "equipmentSlot" }, + { "Nilable": false, "Type": "bool", "Name": "hasCurrent" } + ], + "Type": "Event", + "Name": "PlayerEquipmentChanged" + }, + { + "LiteralName": "PROFESSION_EQUIPMENT_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "skillLineID" }, + { "Nilable": false, "Type": "bool", "Name": "isTool" } + ], + "Type": "Event", + "Name": "ProfessionEquipmentChanged" + }, + { "LiteralName": "PVP_POWER_UPDATE", "Type": "Event", "Name": "PvpPowerUpdate" }, + { "LiteralName": "SPEED_UPDATE", "Type": "Event", "Name": "SpeedUpdate" }, + { + "LiteralName": "SPELL_POWER_CHANGED", + "Type": "Event", + "Name": "SpellPowerChanged" + }, + { "LiteralName": "STURDINESS_UPDATE", "Type": "Event", "Name": "SturdinessUpdate" }, + { "LiteralName": "UPDATE_FACTION", "Type": "Event", "Name": "UpdateFaction" }, + { + "LiteralName": "UPDATE_INVENTORY_ALERTS", + "Type": "Event", + "Name": "UpdateInventoryAlerts" + }, + { + "LiteralName": "UPDATE_INVENTORY_DURABILITY", + "Type": "Event", + "Name": "UpdateInventoryDurability" + }, + { + "LiteralName": "WEAPON_SLOT_CHANGED", + "Type": "Event", + "Name": "WeaponSlotChanged" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "achievementPoints" }, + { "Nilable": false, "Type": "number", "Name": "numMembers" }, + { "Nilable": false, "Type": "string", "Name": "guildName" }, + { "Nilable": false, "Type": "string", "Name": "realmName" } + ], + "Type": "Structure", + "Name": "InspectGuildInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "rating" }, + { "Nilable": false, "Type": "number", "Name": "gamesWon" }, + { "Nilable": false, "Type": "number", "Name": "gamesPlayed" }, + { "Nilable": false, "Type": "number", "Name": "roundsWon" }, + { "Nilable": false, "Type": "number", "Name": "roundsPlayed" } + ], + "Type": "Structure", + "Name": "InspectPVPData" + } + ] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "remaining" }], + "Type": "Function", + "Name": "GetSecondsUntilParentalControlsKick" + } + ], + "Type": "System", + "Name": "ParentalControls", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "AvgItemLevelCategories", + "Fields": [ + { "EnumValue": 0, "Type": "AvgItemLevelCategories", "Name": "Base" }, + { "EnumValue": 1, "Type": "AvgItemLevelCategories", "Name": "EquippedBase" }, + { + "EnumValue": 2, + "Type": "AvgItemLevelCategories", + "Name": "EquippedEffective" + }, + { "EnumValue": 3, "Type": "AvgItemLevelCategories", "Name": "PvP" }, + { "EnumValue": 4, "Type": "AvgItemLevelCategories", "Name": "PvPWeighted" }, + { + "EnumValue": 5, + "Type": "AvgItemLevelCategories", + "Name": "EquippedEffectiveWeighted" + } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "RestrictPingsTo", + "Fields": [ + { "EnumValue": 0, "Type": "RestrictPingsTo", "Name": "None" }, + { "EnumValue": 1, "Type": "RestrictPingsTo", "Name": "Lead" }, + { "EnumValue": 2, "Type": "RestrictPingsTo", "Name": "Assist" }, + { "EnumValue": 3, "Type": "RestrictPingsTo", "Name": "TankHealer" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Namespace": "C_PartyInfo", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "allowed" }], + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "toRaid" }], + "Type": "Function", + "Name": "AllowedToDoPartyConversion" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canFormCrossFactionParties" } + ], + "Type": "Function", + "Name": "CanFormCrossFactionParties" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "allowedToInvite" }], + "Type": "Function", + "Name": "CanInvite" + }, + { + "Documentation": [ + "Immediately convert to raid with no regard for potentially destructive actions." + ], + "Type": "Function", + "Name": "ConfirmConvertToRaid" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "targetName" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "targetGUID" } + ], + "Type": "Function", + "Name": "ConfirmInviteTravelPass" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "targetName" }], + "Documentation": [ + "Immediately invites the named unit to a party, with no regard for potentially destructive actions." + ], + "Type": "Function", + "Name": "ConfirmInviteUnit" + }, + { + "Arguments": [{ "Nilable": true, "Type": "luaIndex", "Name": "category" }], + "Documentation": [ + "Immediately leave the party with no regard for potentially destructive actions" + ], + "Type": "Function", + "Name": "ConfirmLeaveParty" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "targetName" }, + { "Nilable": true, "Type": "bool", "Name": "tank" }, + { "Nilable": true, "Type": "bool", "Name": "healer" }, + { "Nilable": true, "Type": "bool", "Name": "dps" } + ], + "Documentation": [ + "Immediately request an invite into the target party, this is the confirmation function to call after RequestInviteFromUnit, or if you would like to skip the confirmation process." + ], + "Type": "Function", + "Name": "ConfirmRequestInviteFromUnit" + }, + { "Type": "Function", "Name": "ConvertToParty" }, + { + "Documentation": [ + "Usually this will convert to raid immediately. In some cases (e.g. PartySync) the user will be prompted to confirm converting to raid, because it's potentially destructive." + ], + "Type": "Function", + "Name": "ConvertToRaid" + }, + { "Type": "Function", "Name": "DelveTeleportOut" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "seconds" }], + "Type": "Function", + "Name": "DoCountdown" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "categories" + } + ], + "Type": "Function", + "Name": "GetActiveCategories" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "QueueSpecificInfo", + "Type": "table", + "Name": "invalidQueues" + } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "inviteGUID" }], + "Type": "Function", + "Name": "GetInviteConfirmationInvalidQueues" + }, + { + "Returns": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "outReferredByGuid" }, + { "Nilable": false, "Type": "cstring", "Name": "outReferredByName" }, + { + "Nilable": false, + "Type": "PartyRequestJoinRelation", + "Name": "outRelationType" + }, + { "Nilable": false, "Type": "bool", "Name": "outIsQuickJoin" }, + { "Nilable": false, "Type": "ClubId", "Name": "outClubId" } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "inviteGUID" }], + "Type": "Function", + "Name": "GetInviteReferralInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "minItemLevel" }, + { "Nilable": false, "Type": "cstring", "Name": "playerNameWithLowestItemLevel" } + ], + "Arguments": [ + { + "Nilable": false, + "Documentation": ["The active party is always used"], + "Type": "AvgItemLevelCategories", + "Name": "avgItemLevelCategory" + } + ], + "Type": "Function", + "Name": "GetMinItemLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "minLevel" }], + "Arguments": [ + { + "Nilable": true, + "Documentation": ["If not provided, the active party is used"], + "Type": "luaIndex", + "Name": "category" + } + ], + "Type": "Function", + "Name": "GetMinLevel" + }, + { + "Returns": [ + { "Nilable": false, "Type": "RestrictPingsTo", "Name": "restrictTo" } + ], + "Type": "Function", + "Name": "GetRestrictPings" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "targetName" }], + "Documentation": [ + "Attempt to invite the named unit to a party, requires confirmation in some cases (e.g. the party will convert to a raid, or if there is a party sync in progress)." + ], + "Type": "Function", + "Name": "InviteUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCrossFactionParty" }], + "Arguments": [ + { + "Nilable": true, + "Documentation": ["If not provided, the active party is used"], + "Type": "luaIndex", + "Name": "category" + } + ], + "Type": "Function", + "Name": "IsCrossFactionParty" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDelveComplete" }], + "Type": "Function", + "Name": "IsDelveComplete" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDelveComplete" }], + "Type": "Function", + "Name": "IsDelveInProgress" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFull" }], + "Arguments": [ + { + "Nilable": true, + "Documentation": ["If not provided, the active party is used"], + "Type": "luaIndex", + "Name": "category" + } + ], + "Type": "Function", + "Name": "IsPartyFull" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isPartyInJailersTower" } + ], + "Type": "Function", + "Name": "IsPartyInJailersTower" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPartyWalkIn" }], + "Type": "Function", + "Name": "IsPartyWalkIn" + }, + { + "Arguments": [{ "Nilable": true, "Type": "luaIndex", "Name": "category" }], + "Documentation": [ + "Usually this will leave the party immediately. In some cases (e.g. PartySync) the user will be prompted to confirm leaving the party, because it's potentially destructive" + ], + "Type": "Function", + "Name": "LeaveParty" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "targetName" }, + { "Nilable": true, "Type": "bool", "Name": "tank" }, + { "Nilable": true, "Type": "bool", "Name": "healer" }, + { "Nilable": true, "Type": "bool", "Name": "dps" } + ], + "Documentation": [ + "Attempt to request an invite into the target party, requires confirmation in some cases (e.g. there is a party sync in progress)." + ], + "Type": "Function", + "Name": "RequestInviteFromUnit" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "RestrictPingsTo", "Name": "restrictTo" } + ], + "Type": "Function", + "Name": "SetRestrictPings" + } + ], + "Type": "System", + "Name": "PartyInfo", + "Events": [ + { + "LiteralName": "BNET_REQUEST_INVITE_CONFIRMATION", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "gameAccountID" }, + { "Nilable": false, "Type": "bool", "Name": "questSessionActive" }, + { "Nilable": false, "Type": "bool", "Name": "tank" }, + { "Nilable": false, "Type": "bool", "Name": "healer" }, + { "Nilable": false, "Type": "bool", "Name": "dps" } + ], + "Type": "Event", + "Name": "BnetRequestInviteConfirmation" + }, + { + "LiteralName": "CONVERT_TO_RAID_CONFIRMATION", + "Type": "Event", + "Name": "ConvertToRaidConfirmation" + }, + { + "LiteralName": "ENTERED_DIFFERENT_INSTANCE_FROM_PARTY", + "Type": "Event", + "Name": "EnteredDifferentInstanceFromParty" + }, + { + "LiteralName": "GROUP_FORMED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "category" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "partyGUID" } + ], + "Type": "Event", + "Name": "GroupFormed" + }, + { + "LiteralName": "GROUP_INVITE_CONFIRMATION", + "Type": "Event", + "Name": "GroupInviteConfirmation" + }, + { + "LiteralName": "GROUP_JOINED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "category" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "partyGUID" } + ], + "Type": "Event", + "Name": "GroupJoined" + }, + { + "LiteralName": "GROUP_LEFT", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "category" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "partyGUID" } + ], + "Type": "Event", + "Name": "GroupLeft" + }, + { + "LiteralName": "GROUP_ROSTER_UPDATE", + "Type": "Event", + "Name": "GroupRosterUpdate" + }, + { + "LiteralName": "INSTANCE_BOOT_START", + "Type": "Event", + "Name": "InstanceBootStart" + }, + { + "LiteralName": "INSTANCE_BOOT_STOP", + "Type": "Event", + "Name": "InstanceBootStop" + }, + { + "LiteralName": "INSTANCE_GROUP_SIZE_CHANGED", + "Type": "Event", + "Name": "InstanceGroupSizeChanged" + }, + { + "LiteralName": "INVITE_TO_PARTY_CONFIRMATION", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "targetName" }, + { "Nilable": false, "Type": "bool", "Name": "willConvertToRaid" }, + { "Nilable": false, "Type": "bool", "Name": "questSessionActive" } + ], + "Type": "Event", + "Name": "InviteToPartyConfirmation" + }, + { + "LiteralName": "INVITE_TRAVEL_PASS_CONFIRMATION", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "targetName" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "targetGUID" }, + { "Nilable": false, "Type": "bool", "Name": "willConvertToRaid" }, + { "Nilable": false, "Type": "bool", "Name": "questSessionActive" } + ], + "Type": "Event", + "Name": "InviteTravelPassConfirmation" + }, + { + "LiteralName": "LEAVE_PARTY_CONFIRMATION", + "Type": "Event", + "Name": "LeavePartyConfirmation" + }, + { + "LiteralName": "PARTY_INVITE_CANCEL", + "Type": "Event", + "Name": "PartyInviteCancel" + }, + { + "LiteralName": "PARTY_INVITE_REQUEST", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "bool", "Name": "isTank" }, + { "Nilable": false, "Type": "bool", "Name": "isHealer" }, + { "Nilable": false, "Type": "bool", "Name": "isDamage" }, + { "Nilable": false, "Type": "bool", "Name": "isNativeRealm" }, + { "Nilable": false, "Type": "bool", "Name": "allowMultipleRoles" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "inviterGUID" }, + { "Nilable": false, "Type": "bool", "Name": "questSessionActive" } + ], + "Type": "Event", + "Name": "PartyInviteRequest" + }, + { + "LiteralName": "PARTY_LEADER_CHANGED", + "Type": "Event", + "Name": "PartyLeaderChanged" + }, + { + "LiteralName": "PARTY_LFG_RESTRICTED", + "Type": "Event", + "Name": "PartyLfgRestricted" + }, + { + "LiteralName": "PARTY_LOOT_METHOD_CHANGED", + "Type": "Event", + "Name": "PartyLootMethodChanged" + }, + { + "LiteralName": "PARTY_MEMBER_DISABLE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "PartyMemberDisable" + }, + { + "LiteralName": "PARTY_MEMBER_ENABLE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "PartyMemberEnable" + }, + { + "LiteralName": "PLAYER_DIFFICULTY_CHANGED", + "Type": "Event", + "Name": "PlayerDifficultyChanged" + }, + { + "LiteralName": "PLAYER_ROLES_ASSIGNED", + "Type": "Event", + "Name": "PlayerRolesAssigned" + }, + { + "LiteralName": "RAID_ROSTER_UPDATE", + "Type": "Event", + "Name": "RaidRosterUpdate" + }, + { + "LiteralName": "READY_CHECK", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "initiatorName" }, + { "Nilable": false, "Type": "time_t", "Name": "readyCheckTimeLeft" } + ], + "Type": "Event", + "Name": "ReadyCheck" + }, + { + "LiteralName": "READY_CHECK_CONFIRM", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "bool", "Name": "isReady" } + ], + "Type": "Event", + "Name": "ReadyCheckConfirm" + }, + { + "LiteralName": "READY_CHECK_FINISHED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "preempted" }], + "Type": "Event", + "Name": "ReadyCheckFinished" + }, + { + "LiteralName": "REQUEST_INVITE_CONFIRMATION", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "targetName" }, + { "Nilable": false, "Type": "number", "Name": "partyLevelLink" }, + { "Nilable": false, "Type": "bool", "Name": "questSessionActive" }, + { "Nilable": true, "Type": "bool", "Name": "tank" }, + { "Nilable": true, "Type": "bool", "Name": "healer" }, + { "Nilable": true, "Type": "bool", "Name": "dps" } + ], + "Type": "Event", + "Name": "RequestInviteConfirmation" + }, + { + "LiteralName": "ROLE_CHANGED_INFORM", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "changedName" }, + { "Nilable": false, "Type": "cstring", "Name": "fromName" }, + { "Nilable": false, "Type": "cstring", "Name": "oldRole" }, + { "Nilable": false, "Type": "cstring", "Name": "newRole" } + ], + "Type": "Event", + "Name": "RoleChangedInform" + }, + { + "LiteralName": "ROLE_POLL_BEGIN", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "fromName" }], + "Type": "Event", + "Name": "RolePollBegin" + }, + { + "LiteralName": "VOTE_KICK_REASON_NEEDED", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "resultGUID" } + ], + "Type": "Event", + "Name": "VoteKickReasonNeeded" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "PartyRequestJoinRelation", + "Fields": [ + { "EnumValue": 0, "Type": "PartyRequestJoinRelation", "Name": "None" }, + { "EnumValue": 1, "Type": "PartyRequestJoinRelation", "Name": "Friend" }, + { "EnumValue": 2, "Type": "PartyRequestJoinRelation", "Name": "Guild" }, + { "EnumValue": 3, "Type": "PartyRequestJoinRelation", "Name": "Club" }, + { + "EnumValue": 4, + "Type": "PartyRequestJoinRelation", + "Name": "NumPartyRequestJoinRelations" + } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "PartyPoseFlags", + "Fields": [ + { "EnumValue": 1, "Type": "PartyPoseFlags", "Name": "HideLeaveInstanceButton" } + ], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + } + ] + }, + { + "Namespace": "C_PartyPose", + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "partyPoseID" }], + "Type": "Function", + "Name": "ExtraAction" + }, + { + "Returns": [{ "Nilable": false, "Type": "PartyPoseInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mapID" }], + "Type": "Function", + "Name": "GetPartyPoseInfoByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "PartyPoseInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mapID" }], + "Type": "Function", + "Name": "GetPartyPoseInfoByMapID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasExtraAction" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "partyPoseID" }], + "Type": "Function", + "Name": "HasExtraAction" + } + ], + "Type": "System", + "Name": "PartyPose", + "Events": [ + { + "LiteralName": "SHOW_PARTY_POSE_UI", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "mapID" }, + { "Nilable": false, "Type": "bool", "Name": "won" } + ], + "Type": "Event", + "Name": "ShowPartyPoseUI" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "partyPoseID" }, + { "Nilable": false, "Type": "number", "Name": "mapID" }, + { "Nilable": true, "Type": "number", "Name": "widgetSetID" }, + { "Nilable": false, "Type": "number", "Name": "victoryModelSceneID" }, + { "Nilable": false, "Type": "number", "Name": "defeatModelSceneID" }, + { "Nilable": false, "Type": "number", "Name": "victorySoundKitID" }, + { "Nilable": false, "Type": "number", "Name": "defeatSoundKitID" }, + { "Nilable": true, "Type": "textureKit", "Name": "uiTextureKit" }, + { "Nilable": true, "Type": "string", "Name": "titleText" }, + { "Nilable": true, "Type": "string", "Name": "extraButtonText" }, + { "Nilable": false, "Type": "PartyPoseFlags", "Name": "flags" } + ], + "Type": "Structure", + "Name": "PartyPoseInfo" + } + ] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "uiAddon", "Name": "name" }], + "Type": "Function", + "Name": "GetAddOnCPUUsage" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "uiAddon", "Name": "name" }], + "Type": "Function", + "Name": "GetAddOnMemoryUsage" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "call_time" }, + { "Nilable": false, "Type": "number", "Name": "call_count" } + ], + "Arguments": [ + { "Nilable": false, "Type": "SimpleFrame", "Name": "frame" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "includeChildren" + } + ], + "Type": "Function", + "Name": "GetFrameCPUUsage" + }, + { "Type": "Function", "Name": "ResetCPUUsage" }, + { "Type": "Function", "Name": "UpdateAddOnCPUUsage" }, + { "Type": "Function", "Name": "UpdateAddOnMemoryUsage" } + ], + "Type": "System", + "Name": "PerformanceScript", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_PerksActivities", + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "perksActivityID" }], + "Type": "Function", + "Name": "AddTrackedPerksActivity" + }, + { "Type": "Function", "Name": "ClearPerksActivitiesPendingCompletion" }, + { + "Returns": [{ "Nilable": false, "Type": "PerksActivityTags", "Name": "tags" }], + "Type": "Function", + "Name": "GetAllPerksActivityTags" + }, + { + "Returns": [{ "Nilable": false, "Type": "PerksActivitiesInfo", "Name": "info" }], + "Type": "Function", + "Name": "GetPerksActivitiesInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "PerksActivitiesPending", "Name": "pending" } + ], + "Type": "Function", + "Name": "GetPerksActivitiesPendingCompletion" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "link" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "perksActivityID" }], + "Type": "Function", + "Name": "GetPerksActivityChatLink" + }, + { + "Returns": [{ "Nilable": true, "Type": "PerksActivityInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "perksActivityID" }], + "Type": "Function", + "Name": "GetPerksActivityInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "kitPrefix" }], + "Type": "Function", + "Name": "GetPerksUIThemePrefix" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "PerksActivitiesTracked", + "Name": "trackedPerksActivities" + } + ], + "Type": "Function", + "Name": "GetTrackedPerksActivities" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "perksActivityID" }], + "Type": "Function", + "Name": "RemoveTrackedPerksActivity" + } + ], + "Type": "System", + "Name": "PerksActivities", + "Events": [ + { + "LiteralName": "PERKS_ACTIVITIES_TRACKED_LIST_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "perksActivityID" }, + { "Nilable": false, "Type": "bool", "Name": "added" } + ], + "Type": "Event", + "Name": "PerksActivitiesTrackedListChanged" + }, + { + "LiteralName": "PERKS_ACTIVITIES_TRACKED_UPDATED", + "Type": "Event", + "Name": "PerksActivitiesTrackedUpdated" + }, + { + "LiteralName": "PERKS_ACTIVITIES_UPDATED", + "Type": "Event", + "Name": "PerksActivitiesUpdated" + }, + { + "LiteralName": "PERKS_ACTIVITY_COMPLETED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "perksActivityID" }], + "Type": "Event", + "Name": "PerksActivityCompleted" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "activePerksMonth" }, + { "Nilable": false, "Type": "cstring", "Name": "displayMonthName" }, + { "Nilable": false, "Type": "time_t", "Name": "secondsRemaining" }, + { + "Nilable": false, + "InnerType": "PerksActivityInfo", + "Type": "table", + "Name": "activities" + }, + { + "Nilable": false, + "InnerType": "PerksActivityThresholdInfo", + "Type": "table", + "Name": "thresholds" + } + ], + "Type": "Structure", + "Name": "PerksActivitiesInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "pendingIDs" + } + ], + "Type": "Structure", + "Name": "PerksActivitiesPending" + }, + { + "Fields": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "trackedIDs" + } + ], + "Type": "Structure", + "Name": "PerksActivitiesTracked" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "isMet" }, + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "number", "Name": "uiPriority" } + ], + "Type": "Structure", + "Name": "PerksActivityCondition" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "criteriaID" }, + { "Nilable": false, "Type": "number", "Name": "requiredValue" } + ], + "Type": "Structure", + "Name": "PerksActivityCriteria" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "cstring", "Name": "activityName" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "thresholdContributionAmount" }, + { "Nilable": false, "Type": "bool", "Name": "completed" }, + { "Nilable": false, "Type": "bool", "Name": "inProgress" }, + { "Nilable": false, "Type": "bool", "Name": "tracked" }, + { "Nilable": false, "Type": "number", "Name": "supersedes" }, + { "Nilable": false, "Type": "number", "Name": "uiPriority" }, + { "Nilable": false, "Type": "bool", "Name": "areAllConditionsMet" }, + { + "Nilable": false, + "InnerType": "PerksActivityCondition", + "Type": "table", + "Name": "conditions" + }, + { "Nilable": true, "Type": "cstring", "Name": "eventName" }, + { "Nilable": true, "Type": "time_t", "Name": "eventStartTime" }, + { "Nilable": true, "Type": "time_t", "Name": "eventEndTime" }, + { + "Nilable": false, + "InnerType": "PerksActivityRequirement", + "Type": "table", + "Name": "requirementsList" + }, + { + "Nilable": false, + "InnerType": "PerksActivityCriteria", + "Type": "table", + "Name": "criteriaList" + }, + { "Nilable": false, "InnerType": "string", "Type": "table", "Name": "tagNames" } + ], + "Type": "Structure", + "Name": "PerksActivityInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "completed" }, + { "Nilable": false, "Type": "string", "Name": "requirementText" } + ], + "Type": "Structure", + "Name": "PerksActivityRequirement" + }, + { + "Fields": [ + { "Nilable": false, "InnerType": "string", "Type": "table", "Name": "tagName" } + ], + "Type": "Structure", + "Name": "PerksActivityTags" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "thresholdOrderIndex" }, + { "Nilable": false, "Type": "number", "Name": "currencyAwardAmount" }, + { "Nilable": false, "Type": "number", "Name": "requiredContributionAmount" }, + { "Nilable": false, "Type": "bool", "Name": "pendingReward" }, + { "Nilable": true, "Type": "number", "Name": "itemReward" } + ], + "Type": "Structure", + "Name": "PerksActivityThresholdInfo" + } + ] + }, + { + "Namespace": "C_PerksProgram", + "Functions": [ + { "Type": "Function", "Name": "ClearFrozenPerksVendorItem" }, + { "Type": "Function", "Name": "CloseInteraction" }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "categoryIDs" + } + ], + "Type": "Function", + "Name": "GetAvailableCategoryIDs" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "vendorItemIDs" + } + ], + "Type": "Function", + "Name": "GetAvailableVendorItemIDs" + }, + { + "Returns": [ + { "Nilable": false, "Type": "PerksVendorCategoryInfo", "Name": "categoryInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "categoryID" }], + "Type": "Function", + "Name": "GetCategoryInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "currencyAmount" }], + "Type": "Function", + "Name": "GetCurrencyAmount" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "perksVendorItemID" }], + "Type": "Function", + "Name": "GetDraggedPerksVendorItem" + }, + { + "Returns": [ + { "Nilable": false, "Type": "PerksVendorItemInfo", "Name": "vendorItemInfo" } + ], + "Type": "Function", + "Name": "GetFrozenPerksVendorItemInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "PerksProgramPendingChestRewards", + "Type": "table", + "Name": "pendingRewards" + } + ], + "Type": "Function", + "Name": "GetPendingChestRewards" + }, + { + "Returns": [ + { "Nilable": false, "Type": "PerksProgramItemDisplayInfo", "Name": "item" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "id" }], + "Type": "Function", + "Name": "GetPerksProgramItemDisplayInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "time_t", "Name": "timeRemaining" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "vendorItemID" }], + "Type": "Function", + "Name": "GetTimeRemaining" + }, + { + "Returns": [ + { "Nilable": false, "Type": "PerksVendorItemInfo", "Name": "vendorItemInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "vendorItemID" }], + "Type": "Function", + "Name": "GetVendorItemInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "time_t", "Name": "refundTimeRemaining" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "vendorItemID" }], + "Type": "Function", + "Name": "GetVendorItemInfoRefundTimeLeft" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isAttackAnimToggleEnabled" } + ], + "Type": "Function", + "Name": "IsAttackAnimToggleEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFrozen" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "perksVendorItemID" } + ], + "Type": "Function", + "Name": "IsFrozenPerksVendorItem" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isMountSpecialAnimToggleEnabled" } + ], + "Type": "Function", + "Name": "IsMountSpecialAnimToggleEnabled" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "perksVendorItemID" } + ], + "Type": "Function", + "Name": "ItemSelectedTelemetry" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "perksVendorItemID" } + ], + "Type": "Function", + "Name": "PickupPerksVendorItem" + }, + { "Type": "Function", "Name": "RequestPendingChestRewards" }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "perksVendorItemID" } + ], + "Type": "Function", + "Name": "RequestPurchase" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "perksVendorItemID" } + ], + "Type": "Function", + "Name": "RequestRefund" + }, + { "Type": "Function", "Name": "ResetHeldItemDragAndDrop" }, + { "Type": "Function", "Name": "SetFrozenPerksVendorItem" } + ], + "Type": "System", + "Name": "PerksProgram", + "Events": [ + { + "LiteralName": "CHEST_REWARDS_UPDATED_FROM_SERVER", + "Type": "Event", + "Name": "ChestRewardsUpdatedFromServer" + }, + { + "LiteralName": "PERKS_PROGRAM_ADD_PENDING_SHOP_ITEM", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "vendorItemID" }], + "Type": "Event", + "Name": "PerksProgramAddPendingShopItem" + }, + { + "LiteralName": "PERKS_PROGRAM_CLOSE", + "Type": "Event", + "Name": "PerksProgramClose" + }, + { + "LiteralName": "PERKS_PROGRAM_CURRENCY_AWARDED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "value" }], + "Type": "Event", + "Name": "PerksProgramCurrencyAwarded" + }, + { + "LiteralName": "PERKS_PROGRAM_CURRENCY_REFRESH", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "oldValue" }, + { "Nilable": false, "Type": "number", "Name": "newValue" } + ], + "Type": "Event", + "Name": "PerksProgramCurrencyRefresh" + }, + { + "LiteralName": "PERKS_PROGRAM_DATA_REFRESH", + "Type": "Event", + "Name": "PerksProgramDataRefresh" + }, + { + "LiteralName": "PERKS_PROGRAM_DATA_SPECIFIC_ITEM_REFRESH", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "vendorItemID" }], + "Type": "Event", + "Name": "PerksProgramDataSpecificItemRefresh" + }, + { + "LiteralName": "PERKS_PROGRAM_DISABLED", + "Type": "Event", + "Name": "PerksProgramDisabled" + }, + { + "LiteralName": "PERKS_PROGRAM_OPEN", + "Type": "Event", + "Name": "PerksProgramOpen" + }, + { + "LiteralName": "PERKS_PROGRAM_PURCHASE_SUCCESS", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "vendorItemID" }], + "Type": "Event", + "Name": "PerksProgramPurchaseSuccess" + }, + { + "LiteralName": "PERKS_PROGRAM_REFUND_SUCCESS", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "vendorItemID" }], + "Type": "Event", + "Name": "PerksProgramRefundSuccess" + }, + { + "LiteralName": "PERKS_PROGRAM_REMOVE_PENDING_SHOP_ITEM", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "vendorItemID" }], + "Type": "Event", + "Name": "PerksProgramRemovePendingShopItem" + }, + { + "LiteralName": "PERKS_PROGRAM_RESULT_ERROR", + "Type": "Event", + "Name": "PerksProgramResultError" + }, + { + "LiteralName": "PERKS_PROGRAM_SET_FROZEN_ITEM", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "vendorItemID" }], + "Type": "Event", + "Name": "PerksProgramSetFrozenItem" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "actorID" }, + { "Nilable": true, "Type": "string", "Name": "scriptTag" }, + { "Nilable": true, "Type": "number", "Name": "posX" }, + { "Nilable": true, "Type": "number", "Name": "posY" }, + { "Nilable": true, "Type": "number", "Name": "posZ" }, + { "Nilable": true, "Type": "number", "Name": "yaw" }, + { "Nilable": true, "Type": "number", "Name": "pitch" }, + { "Nilable": true, "Type": "number", "Name": "roll" }, + { "Nilable": true, "Type": "number", "Name": "normalizedScale" } + ], + "Type": "Structure", + "Name": "ModelSceneActorData" + }, + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "cameraID" }, + { "Nilable": true, "Type": "string", "Name": "scriptTag" }, + { "Nilable": true, "Type": "number", "Name": "targetX" }, + { "Nilable": true, "Type": "number", "Name": "targetY" }, + { "Nilable": true, "Type": "number", "Name": "targetZ" }, + { "Nilable": true, "Type": "number", "Name": "yaw" }, + { "Nilable": true, "Type": "number", "Name": "pitch" }, + { "Nilable": true, "Type": "number", "Name": "roll" }, + { "Nilable": true, "Type": "number", "Name": "defaultZoom" }, + { "Nilable": true, "Type": "number", "Name": "zoomMin" }, + { "Nilable": true, "Type": "number", "Name": "zoomMax" } + ], + "Type": "Structure", + "Name": "ModelSceneCameraData" + }, + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "overrideModelSceneID" }, + { "Nilable": true, "Type": "number", "Name": "creatureDisplayInfoID" }, + { + "Nilable": true, + "Type": "number", + "Name": "mainHandItemModifiedAppearanceID" + }, + { "Nilable": true, "Type": "number", "Name": "offHandItemModifiedAppearanceID" } + ], + "Type": "Structure", + "Name": "PerksProgramItemDisplayInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "rewardTypeID" }, + { "Nilable": true, "Type": "number", "Name": "perksVendorItemID" }, + { "Nilable": false, "Type": "number", "Name": "rewardAmount" }, + { "Nilable": true, "Type": "string", "Name": "monthRewarded" }, + { "Nilable": false, "Type": "number", "Name": "activityMonthID" }, + { "Nilable": false, "Type": "number", "Name": "thresholdOrderIndex" } + ], + "Type": "Structure", + "Name": "PerksProgramPendingChestRewards" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "cstring", "Name": "displayName" }, + { "Nilable": false, "Type": "number", "Name": "defaultUIModelSceneID" } + ], + "Type": "Structure", + "Name": "PerksVendorCategoryInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "perksVendorCategoryID" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "time_t", "Name": "timeRemaining" }, + { "Nilable": false, "Type": "bool", "Name": "purchased" }, + { "Nilable": false, "Type": "bool", "Name": "refundable" }, + { "Nilable": false, "Type": "bool", "Name": "subItemsLoaded" }, + { "Nilable": false, "Type": "bool", "Name": "isPurchasePending" }, + { "Nilable": false, "Type": "bool", "Name": "doesNotExpire" }, + { "Nilable": false, "Type": "number", "Name": "price" }, + { "Nilable": false, "Type": "number", "Name": "perksVendorItemID" }, + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "string", "Name": "iconTexture" }, + { "Nilable": false, "Type": "number", "Name": "mountID" }, + { "Nilable": false, "Type": "string", "Name": "mountTypeName" }, + { "Nilable": false, "Type": "number", "Name": "speciesID" }, + { "Nilable": false, "Type": "number", "Name": "transmogSetID" }, + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" }, + { + "Nilable": false, + "InnerType": "PerksVendorSubItemInfo", + "Type": "table", + "Name": "subItems" + }, + { "Nilable": true, "Type": "PerksVendorItemUIGroupInfo", "Name": "uiGroupInfo" } + ], + "Type": "Structure", + "Name": "PerksVendorItemInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "priority" } + ], + "Type": "Structure", + "Name": "PerksVendorItemUIGroupInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": false, "Type": "string", "Name": "invType" }, + { "Nilable": false, "Type": "ItemQuality", "Name": "quality" } + ], + "Type": "Structure", + "Name": "PerksVendorSubItemInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "PerksVendorCategoryType", + "Fields": [ + { "EnumValue": 1, "Type": "PerksVendorCategoryType", "Name": "Transmog" }, + { "EnumValue": 2, "Type": "PerksVendorCategoryType", "Name": "Mount" }, + { "EnumValue": 3, "Type": "PerksVendorCategoryType", "Name": "Pet" }, + { "EnumValue": 5, "Type": "PerksVendorCategoryType", "Name": "Toy" }, + { "EnumValue": 7, "Type": "PerksVendorCategoryType", "Name": "Illusion" }, + { "EnumValue": 8, "Type": "PerksVendorCategoryType", "Name": "Transmogset" } + ], + "MaxValue": 8, + "MinValue": 1, + "NumValues": 6 + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "PetBattleQueueStatus", + "Fields": [ + { "EnumValue": 0, "Type": "PetBattleQueueStatus", "Name": "None" }, + { "EnumValue": 1, "Type": "PetBattleQueueStatus", "Name": "Queued" }, + { "EnumValue": 2, "Type": "PetBattleQueueStatus", "Name": "QueuedUpdate" }, + { "EnumValue": 3, "Type": "PetBattleQueueStatus", "Name": "AlreadyQueued" }, + { "EnumValue": 4, "Type": "PetBattleQueueStatus", "Name": "JoinFailed" }, + { "EnumValue": 5, "Type": "PetBattleQueueStatus", "Name": "JoinFailedSlots" }, + { + "EnumValue": 6, + "Type": "PetBattleQueueStatus", + "Name": "JoinFailedJournalLock" + }, + { "EnumValue": 7, "Type": "PetBattleQueueStatus", "Name": "JoinFailedNeutral" }, + { "EnumValue": 8, "Type": "PetBattleQueueStatus", "Name": "MatchAccepted" }, + { "EnumValue": 9, "Type": "PetBattleQueueStatus", "Name": "MatchDeclined" }, + { + "EnumValue": 10, + "Type": "PetBattleQueueStatus", + "Name": "MatchOpponentDeclined" + }, + { "EnumValue": 11, "Type": "PetBattleQueueStatus", "Name": "ProposalTimedOut" }, + { "EnumValue": 12, "Type": "PetBattleQueueStatus", "Name": "Removed" }, + { + "EnumValue": 13, + "Type": "PetBattleQueueStatus", + "Name": "RequeuedAfterInternalError" + }, + { + "EnumValue": 14, + "Type": "PetBattleQueueStatus", + "Name": "RequeuedAfterOpponentRemoved" + }, + { "EnumValue": 15, "Type": "PetBattleQueueStatus", "Name": "Matchmaking" }, + { "EnumValue": 16, "Type": "PetBattleQueueStatus", "Name": "LostConnection" }, + { "EnumValue": 17, "Type": "PetBattleQueueStatus", "Name": "Shutdown" }, + { "EnumValue": 18, "Type": "PetBattleQueueStatus", "Name": "Suspended" }, + { "EnumValue": 19, "Type": "PetBattleQueueStatus", "Name": "Unsuspended" }, + { "EnumValue": 20, "Type": "PetBattleQueueStatus", "Name": "InBattle" }, + { "EnumValue": 21, "Type": "PetBattleQueueStatus", "Name": "NoBattlingHere" } + ], + "MaxValue": 21, + "MinValue": 0, + "NumValues": 22 + }, + { + "Type": "Enumeration", + "Name": "PetbattleAuraStateFlags", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleAuraStateFlags", "Name": "None" }, + { "EnumValue": 1, "Type": "PetbattleAuraStateFlags", "Name": "Infinite" }, + { "EnumValue": 2, "Type": "PetbattleAuraStateFlags", "Name": "Canceled" }, + { "EnumValue": 4, "Type": "PetbattleAuraStateFlags", "Name": "InitDisabled" }, + { + "EnumValue": 8, + "Type": "PetbattleAuraStateFlags", + "Name": "CountdownFirstRound" + }, + { "EnumValue": 16, "Type": "PetbattleAuraStateFlags", "Name": "JustApplied" }, + { + "EnumValue": 32, + "Type": "PetbattleAuraStateFlags", + "Name": "RemoveEventHandled" + } + ], + "MaxValue": 32, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "PetbattleCheatFlags", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleCheatFlags", "Name": "None" }, + { "EnumValue": 1, "Type": "PetbattleCheatFlags", "Name": "AutoPlay" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "PetbattleEffectFlags", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleEffectFlags", "Name": "None" }, + { "EnumValue": 1, "Type": "PetbattleEffectFlags", "Name": "InvalidTarget" }, + { "EnumValue": 2, "Type": "PetbattleEffectFlags", "Name": "Miss" }, + { "EnumValue": 4, "Type": "PetbattleEffectFlags", "Name": "Crit" }, + { "EnumValue": 8, "Type": "PetbattleEffectFlags", "Name": "Blocked" }, + { "EnumValue": 16, "Type": "PetbattleEffectFlags", "Name": "Dodge" }, + { "EnumValue": 32, "Type": "PetbattleEffectFlags", "Name": "Heal" }, + { "EnumValue": 64, "Type": "PetbattleEffectFlags", "Name": "Unkillable" }, + { "EnumValue": 128, "Type": "PetbattleEffectFlags", "Name": "Reflect" }, + { "EnumValue": 256, "Type": "PetbattleEffectFlags", "Name": "Absorb" }, + { "EnumValue": 512, "Type": "PetbattleEffectFlags", "Name": "Immune" }, + { "EnumValue": 1024, "Type": "PetbattleEffectFlags", "Name": "Strong" }, + { "EnumValue": 2048, "Type": "PetbattleEffectFlags", "Name": "Weak" }, + { "EnumValue": 4096, "Type": "PetbattleEffectFlags", "Name": "SuccessChain" }, + { "EnumValue": 8192, "Type": "PetbattleEffectFlags", "Name": "AuraReapply" } + ], + "MaxValue": 8192, + "MinValue": 0, + "NumValues": 15 + }, + { + "Type": "Enumeration", + "Name": "PetbattleEffectType", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleEffectType", "Name": "SetHealth" }, + { "EnumValue": 1, "Type": "PetbattleEffectType", "Name": "AuraApply" }, + { "EnumValue": 2, "Type": "PetbattleEffectType", "Name": "AuraCancel" }, + { "EnumValue": 3, "Type": "PetbattleEffectType", "Name": "AuraChange" }, + { "EnumValue": 4, "Type": "PetbattleEffectType", "Name": "PetSwap" }, + { "EnumValue": 5, "Type": "PetbattleEffectType", "Name": "StatusChange" }, + { "EnumValue": 6, "Type": "PetbattleEffectType", "Name": "SetState" }, + { "EnumValue": 7, "Type": "PetbattleEffectType", "Name": "SetMaxHealth" }, + { "EnumValue": 8, "Type": "PetbattleEffectType", "Name": "SetSpeed" }, + { "EnumValue": 9, "Type": "PetbattleEffectType", "Name": "SetPower" }, + { "EnumValue": 10, "Type": "PetbattleEffectType", "Name": "TriggerAbility" }, + { "EnumValue": 11, "Type": "PetbattleEffectType", "Name": "AbilityChange" }, + { "EnumValue": 12, "Type": "PetbattleEffectType", "Name": "NpcEmote" }, + { + "EnumValue": 13, + "Type": "PetbattleEffectType", + "Name": "AuraProcessingBegin" + }, + { "EnumValue": 14, "Type": "PetbattleEffectType", "Name": "AuraProcessingEnd" }, + { "EnumValue": 15, "Type": "PetbattleEffectType", "Name": "ReplacePet" }, + { "EnumValue": 16, "Type": "PetbattleEffectType", "Name": "OverrideAbility" }, + { "EnumValue": 17, "Type": "PetbattleEffectType", "Name": "WorldStateUpdate" } + ], + "MaxValue": 17, + "MinValue": 0, + "NumValues": 18 + }, + { + "Type": "Enumeration", + "Name": "PetbattleEnviros", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleEnviros", "Name": "Pad0" }, + { "EnumValue": 1, "Type": "PetbattleEnviros", "Name": "Pad1" }, + { "EnumValue": 2, "Type": "PetbattleEnviros", "Name": "Weather" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "PetbattleInputMoveMsgDebugFlag", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleInputMoveMsgDebugFlag", "Name": "None" }, + { + "EnumValue": 1, + "Type": "PetbattleInputMoveMsgDebugFlag", + "Name": "DontValidate" + }, + { + "EnumValue": 2, + "Type": "PetbattleInputMoveMsgDebugFlag", + "Name": "EnemyCast" + } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "PetbattleMoveType", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleMoveType", "Name": "Quit" }, + { "EnumValue": 1, "Type": "PetbattleMoveType", "Name": "Ability" }, + { "EnumValue": 2, "Type": "PetbattleMoveType", "Name": "Swap" }, + { "EnumValue": 3, "Type": "PetbattleMoveType", "Name": "Trap" }, + { "EnumValue": 4, "Type": "PetbattleMoveType", "Name": "FinalRoundOk" }, + { "EnumValue": 5, "Type": "PetbattleMoveType", "Name": "Pass" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "PetbattlePboid", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattlePboid", "Name": "P0Pet_0" }, + { "EnumValue": 1, "Type": "PetbattlePboid", "Name": "P0Pet_1" }, + { "EnumValue": 2, "Type": "PetbattlePboid", "Name": "P0Pet_2" }, + { "EnumValue": 3, "Type": "PetbattlePboid", "Name": "P1Pet_0" }, + { "EnumValue": 4, "Type": "PetbattlePboid", "Name": "P1Pet_1" }, + { "EnumValue": 5, "Type": "PetbattlePboid", "Name": "P1Pet_2" }, + { "EnumValue": 6, "Type": "PetbattlePboid", "Name": "EnvPad_0" }, + { "EnumValue": 7, "Type": "PetbattlePboid", "Name": "EnvPad_1" }, + { "EnumValue": 8, "Type": "PetbattlePboid", "Name": "EnvWeather" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "PetbattlePetStatus", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattlePetStatus", "Name": "FlagNone" }, + { "EnumValue": 1, "Type": "PetbattlePetStatus", "Name": "FlagTrapped" }, + { "EnumValue": 2, "Type": "PetbattlePetStatus", "Name": "Stunned" }, + { "EnumValue": 4, "Type": "PetbattlePetStatus", "Name": "SwapOutLocked" }, + { "EnumValue": 8, "Type": "PetbattlePetStatus", "Name": "SwapInLocked" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "PetbattlePlayer", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattlePlayer", "Name": "Player_0" }, + { "EnumValue": 1, "Type": "PetbattlePlayer", "Name": "Player_1" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "PetbattlePlayerInputFlags", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattlePlayerInputFlags", "Name": "None" }, + { + "EnumValue": 1, + "Type": "PetbattlePlayerInputFlags", + "Name": "TurnInProgress" + }, + { + "EnumValue": 2, + "Type": "PetbattlePlayerInputFlags", + "Name": "AbilityLocked" + }, + { "EnumValue": 4, "Type": "PetbattlePlayerInputFlags", "Name": "SwapLocked" }, + { "EnumValue": 8, "Type": "PetbattlePlayerInputFlags", "Name": "WaitingForPet" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "PetbattleResult", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleResult", "Name": "FailUnknown" }, + { "EnumValue": 1, "Type": "PetbattleResult", "Name": "FailNotHere" }, + { "EnumValue": 2, "Type": "PetbattleResult", "Name": "FailNotHereOnTransport" }, + { + "EnumValue": 3, + "Type": "PetbattleResult", + "Name": "FailNotHereUnevenGround" + }, + { "EnumValue": 4, "Type": "PetbattleResult", "Name": "FailNotHereObstructed" }, + { "EnumValue": 5, "Type": "PetbattleResult", "Name": "FailNotWhileInCombat" }, + { "EnumValue": 6, "Type": "PetbattleResult", "Name": "FailNotWhileDead" }, + { "EnumValue": 7, "Type": "PetbattleResult", "Name": "FailNotWhileFlying" }, + { "EnumValue": 8, "Type": "PetbattleResult", "Name": "FailTargetInvalid" }, + { "EnumValue": 9, "Type": "PetbattleResult", "Name": "FailTargetOutOfRange" }, + { + "EnumValue": 10, + "Type": "PetbattleResult", + "Name": "FailTargetNotCapturable" + }, + { "EnumValue": 11, "Type": "PetbattleResult", "Name": "FailNotATrainer" }, + { "EnumValue": 12, "Type": "PetbattleResult", "Name": "FailDeclined" }, + { "EnumValue": 13, "Type": "PetbattleResult", "Name": "FailInBattle" }, + { "EnumValue": 14, "Type": "PetbattleResult", "Name": "FailInvalidLoadout" }, + { + "EnumValue": 15, + "Type": "PetbattleResult", + "Name": "FailInvalidLoadoutAllDead" + }, + { + "EnumValue": 16, + "Type": "PetbattleResult", + "Name": "FailInvalidLoadoutNoneSlotted" + }, + { "EnumValue": 17, "Type": "PetbattleResult", "Name": "FailNoJournalLock" }, + { "EnumValue": 18, "Type": "PetbattleResult", "Name": "FailWildPetTapped" }, + { "EnumValue": 19, "Type": "PetbattleResult", "Name": "FailRestrictedAccount" }, + { + "EnumValue": 20, + "Type": "PetbattleResult", + "Name": "FailOpponentNotAvailable" + }, + { "EnumValue": 21, "Type": "PetbattleResult", "Name": "FailLogout" }, + { "EnumValue": 22, "Type": "PetbattleResult", "Name": "FailDisconnect" }, + { "EnumValue": 23, "Type": "PetbattleResult", "Name": "Success" } + ], + "MaxValue": 23, + "MinValue": 0, + "NumValues": 24 + }, + { + "Type": "Enumeration", + "Name": "PetbattleSlot", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleSlot", "Name": "Slot_0" }, + { "EnumValue": 1, "Type": "PetbattleSlot", "Name": "Slot_1" }, + { "EnumValue": 2, "Type": "PetbattleSlot", "Name": "Slot_2" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "PetbattleSlotAbility", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleSlotAbility", "Name": "Ability_0" }, + { "EnumValue": 1, "Type": "PetbattleSlotAbility", "Name": "Ability_1" }, + { "EnumValue": 2, "Type": "PetbattleSlotAbility", "Name": "Ability_2" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "PetbattleSlotResult", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleSlotResult", "Name": "Success" }, + { "EnumValue": 1, "Type": "PetbattleSlotResult", "Name": "SlotLocked" }, + { "EnumValue": 2, "Type": "PetbattleSlotResult", "Name": "SlotEmpty" }, + { "EnumValue": 3, "Type": "PetbattleSlotResult", "Name": "NoTracker" }, + { "EnumValue": 4, "Type": "PetbattleSlotResult", "Name": "NoSpeciesRec" }, + { "EnumValue": 5, "Type": "PetbattleSlotResult", "Name": "CantBattle" }, + { "EnumValue": 6, "Type": "PetbattleSlotResult", "Name": "Revoked" }, + { "EnumValue": 7, "Type": "PetbattleSlotResult", "Name": "Dead" }, + { "EnumValue": 8, "Type": "PetbattleSlotResult", "Name": "NoPet" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "PetbattleState", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleState", "Name": "Created" }, + { "EnumValue": 1, "Type": "PetbattleState", "Name": "WaitingPreBattle" }, + { "EnumValue": 2, "Type": "PetbattleState", "Name": "RoundInProgress" }, + { "EnumValue": 3, "Type": "PetbattleState", "Name": "WaitingForFrontPets" }, + { "EnumValue": 4, "Type": "PetbattleState", "Name": "CreatedFailed" }, + { "EnumValue": 5, "Type": "PetbattleState", "Name": "FinalRound" }, + { "EnumValue": 6, "Type": "PetbattleState", "Name": "Finished" } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "PetbattleTrapstatus", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleTrapstatus", "Name": "Invalid" }, + { "EnumValue": 1, "Type": "PetbattleTrapstatus", "Name": "CanTrap" }, + { "EnumValue": 2, "Type": "PetbattleTrapstatus", "Name": "CantTrapNewbie" }, + { "EnumValue": 3, "Type": "PetbattleTrapstatus", "Name": "CantTrapPetDead" }, + { "EnumValue": 4, "Type": "PetbattleTrapstatus", "Name": "CantTrapPetHealth" }, + { + "EnumValue": 5, + "Type": "PetbattleTrapstatus", + "Name": "CantTrapNoRoomInJournal" + }, + { + "EnumValue": 6, + "Type": "PetbattleTrapstatus", + "Name": "CantTrapPetNotCapturable" + }, + { + "EnumValue": 7, + "Type": "PetbattleTrapstatus", + "Name": "CantTrapTrainerBattle" + }, + { "EnumValue": 8, "Type": "PetbattleTrapstatus", "Name": "CantTrapTwice" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "PetbattleType", + "Fields": [ + { "EnumValue": 0, "Type": "PetbattleType", "Name": "PvE" }, + { "EnumValue": 1, "Type": "PetbattleType", "Name": "PvP" }, + { "EnumValue": 2, "Type": "PetbattleType", "Name": "Lfpb" }, + { "EnumValue": 3, "Type": "PetbattleType", "Name": "Npc" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Namespace": "C_PetBattles", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "BattlePetBreedQuality", "Name": "quality" } + ], + "Arguments": [ + { "Nilable": false, "Type": "BattlePetOwner", "Name": "petOwner" }, + { "Nilable": false, "Type": "number", "Name": "slot" } + ], + "Type": "Function", + "Name": "GetBreedQuality" + }, + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "iconFileID" }], + "Arguments": [ + { "Nilable": false, "Type": "BattlePetOwner", "Name": "petOwner" }, + { "Nilable": false, "Type": "number", "Name": "slot" } + ], + "Type": "Function", + "Name": "GetIcon" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "customName" }, + { "Nilable": false, "Type": "string", "Name": "speciesName" } + ], + "Arguments": [ + { "Nilable": false, "Type": "BattlePetOwner", "Name": "petOwner" }, + { "Nilable": false, "Type": "number", "Name": "slot" } + ], + "Type": "Function", + "Name": "GetName" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPlayerNPC" }], + "Type": "Function", + "Name": "IsPlayerNPC" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isWildBattle" }], + "Type": "Function", + "Name": "IsWildBattle" + } + ], + "Type": "System", + "Name": "PetBattles", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Values": [ + { "Value": 200, "Type": "number", "Name": "MAX_STABLE_SLOTS" }, + { "Value": 25, "Type": "number", "Name": "MAX_SUMMONABLE_PETS" }, + { "Value": 5, "Type": "number", "Name": "MAX_SUMMONABLE_HUNTER_PETS" }, + { + "Value": 5, + "Type": "number", + "Name": "NUM_PET_SLOTS_THAT_NEED_LEARNED_SPELL" + }, + { "Value": 205, "Type": "number", "Name": "NUM_PET_SLOTS" }, + { "Value": 5, "Type": "number", "Name": "EXTRA_PET_STABLE_SLOT" }, + { "Value": 6, "Type": "number", "Name": "STABLED_PETS_FIRST_SLOT_INDEX" } + ], + "Type": "Constants", + "Name": "PetConsts_PostCata" + }, + { + "Values": [ + { "Value": 2, "Type": "number", "Name": "MAX_STABLE_SLOTS" }, + { "Value": 25, "Type": "number", "Name": "MAX_SUMMONABLE_PETS" }, + { "Value": 1, "Type": "number", "Name": "MAX_SUMMONABLE_HUNTER_PETS" }, + { + "Value": 1, + "Type": "number", + "Name": "NUM_PET_SLOTS_THAT_NEED_LEARNED_SPELL" + }, + { "Value": 205, "Type": "number", "Name": "NUM_PET_SLOTS" }, + { "Value": 0, "Type": "number", "Name": "EXTRA_PET_STABLE_SLOT" }, + { "Value": 6, "Type": "number", "Name": "STABLED_PETS_FIRST_SLOT_INDEX" } + ], + "Type": "Constants", + "Name": "PetConsts_PreWrath" + }, + { + "Values": [ + { "Value": 4, "Type": "number", "Name": "MAX_STABLE_SLOTS" }, + { "Value": 25, "Type": "number", "Name": "MAX_SUMMONABLE_PETS" }, + { "Value": 1, "Type": "number", "Name": "MAX_SUMMONABLE_HUNTER_PETS" }, + { + "Value": 1, + "Type": "number", + "Name": "NUM_PET_SLOTS_THAT_NEED_LEARNED_SPELL" + }, + { "Value": 205, "Type": "number", "Name": "NUM_PET_SLOTS" }, + { "Value": 0, "Type": "number", "Name": "EXTRA_PET_STABLE_SLOT" }, + { "Value": 6, "Type": "number", "Name": "STABLED_PETS_FIRST_SLOT_INDEX" } + ], + "Type": "Constants", + "Name": "PetConsts_Wrath" + } + ] + }, + { + "Namespace": "C_PetInfo", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "PetTamerMapInfo", + "Type": "table", + "Name": "petTamers" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetPetTamersForMap" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "spellID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "actionID" }], + "Type": "Function", + "Name": "GetSpellForPetAction" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPassive" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "actionID" }], + "Type": "Function", + "Name": "IsPetActionPassive" + }, + { + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "petNumber" }], + "Type": "Function", + "Name": "PetAbandon" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "number", "Name": "petNumber" }, + { + "Nilable": true, + "InnerType": "cstring", + "Type": "table", + "Name": "declensions" + } + ], + "Type": "Function", + "Name": "PetRename" + } + ], + "Type": "System", + "Name": "PetInfo", + "Events": [ + { "LiteralName": "PET_ATTACK_START", "Type": "Event", "Name": "PetAttackStart" }, + { "LiteralName": "PET_ATTACK_STOP", "Type": "Event", "Name": "PetAttackStop" }, + { "LiteralName": "PET_BAR_HIDEGRID", "Type": "Event", "Name": "PetBarHidegrid" }, + { "LiteralName": "PET_BAR_SHOWGRID", "Type": "Event", "Name": "PetBarShowgrid" }, + { + "LiteralName": "PET_BAR_UPDATE_COOLDOWN", + "Type": "Event", + "Name": "PetBarUpdateCooldown" + }, + { + "LiteralName": "PET_DISMISS_START", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "delay" }], + "Type": "Event", + "Name": "PetDismissStart" + }, + { + "LiteralName": "PET_FORCE_NAME_DECLENSION", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "number", "Name": "petNumber" }, + { "Nilable": true, "Type": "cstring", "Name": "declinedName1" }, + { "Nilable": true, "Type": "cstring", "Name": "declinedName2" }, + { "Nilable": true, "Type": "cstring", "Name": "declinedName3" }, + { "Nilable": true, "Type": "cstring", "Name": "declinedName4" }, + { "Nilable": true, "Type": "cstring", "Name": "declinedName5" } + ], + "Type": "Event", + "Name": "PetForceNameDeclension" + }, + { "LiteralName": "PET_UI_CLOSE", "Type": "Event", "Name": "PetUiClose" }, + { "LiteralName": "RAISED_AS_GHOUL", "Type": "Event", "Name": "RaisedAsGhoul" }, + { + "LiteralName": "UPDATE_POSSESS_BAR", + "Type": "Event", + "Name": "UpdatePossessBar" + }, + { + "LiteralName": "UPDATE_VEHICLE_ACTIONBAR", + "Type": "Event", + "Name": "UpdateVehicleActionbar" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "areaPoiID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "string", "Name": "atlasName" }, + { "Nilable": true, "Type": "number", "Name": "textureIndex" } + ], + "Type": "Structure", + "Name": "PetTamerMapInfo" + } + ] + }, + { + "Namespace": "C_PetJournal", + "Functions": [ + { "Type": "Function", "Name": "ClearHoveredBattlePet" }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "displayID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "speciesID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" } + ], + "Type": "Function", + "Name": "GetDisplayIDByIndex" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "displayProbability" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "speciesID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" } + ], + "Type": "Function", + "Name": "GetDisplayProbabilityByIndex" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "numDisplays" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "speciesID" }], + "Type": "Function", + "Name": "GetNumDisplays" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "maxAllowed" }, + { "Nilable": false, "Type": "number", "Name": "numPets" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "creatureID" }], + "Type": "Function", + "Name": "GetNumPetsInJournal" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "petType" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "abilityID" }], + "Type": "Function", + "Name": "GetPetAbilityInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "PetAbilityLevelInfo", + "Type": "table", + "Name": "info" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "speciesID" }], + "Type": "Function", + "Name": "GetPetAbilityListTable" + }, + { + "Returns": [{ "Nilable": false, "Type": "PetJournalPetInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "petID" }], + "Type": "Function", + "Name": "GetPetInfoTableByPetID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "WOWGUID", "Name": "petID" }, + { "Nilable": false, "Type": "number", "Name": "ability1ID" }, + { "Nilable": false, "Type": "number", "Name": "ability2ID" }, + { "Nilable": false, "Type": "number", "Name": "ability3ID" }, + { "Nilable": false, "Type": "bool", "Name": "locked" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetPetLoadOutInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isSummonable" }, + { "Nilable": false, "Type": "PetJournalError", "Name": "error" }, + { "Nilable": false, "Type": "cstring", "Name": "errorText" } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "battlePetGUID" }], + "Type": "Function", + "Name": "GetPetSummonInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFavorites" }], + "Type": "Function", + "Name": "HasFavoritePets" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isUsingDefaultFilters" } + ], + "Type": "Function", + "Name": "IsUsingDefaultFilters" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSummonable" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "battlePetGUID" }], + "Type": "Function", + "Name": "PetIsSummonable" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "usesRandomDisplay" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "speciesID" }], + "Type": "Function", + "Name": "PetUsesRandomDisplay" + }, + { "Type": "Function", "Name": "SetDefaultFilters" }, + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "battlePetGUID" }], + "Type": "Function", + "Name": "SetHoveredBattlePet" + }, + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "battlePetGUID" }], + "Type": "Function", + "Name": "SpellTargetBattlePet" + } + ], + "Type": "System", + "Name": "PetJournalInfo", + "Events": [ + { + "LiteralName": "BATTLEPET_FORCE_NAME_DECLENSION", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "battlePetGUID" } + ], + "Type": "Event", + "Name": "BattlepetForceNameDeclension" + }, + { "LiteralName": "COMPANION_LEARNED", "Type": "Event", "Name": "CompanionLearned" }, + { + "LiteralName": "COMPANION_UNLEARNED", + "Type": "Event", + "Name": "CompanionUnlearned" + }, + { + "LiteralName": "COMPANION_UPDATE", + "Payload": [{ "Nilable": true, "Type": "cstring", "Name": "companionType" }], + "Type": "Event", + "Name": "CompanionUpdate" + }, + { + "LiteralName": "NEW_PET_ADDED", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "battlePetGUID" }], + "Type": "Event", + "Name": "NewPetAdded" + }, + { + "LiteralName": "PET_JOURNAL_AUTO_SLOTTED_PET", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "slotIndex" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "battlePetGUID" } + ], + "Type": "Event", + "Name": "PetJournalAutoSlottedPet" + }, + { + "LiteralName": "PET_JOURNAL_CAGE_FAILED", + "Type": "Event", + "Name": "PetJournalCageFailed" + }, + { + "LiteralName": "PET_JOURNAL_LIST_UPDATE", + "Type": "Event", + "Name": "PetJournalListUpdate" + }, + { + "LiteralName": "PET_JOURNAL_NEW_BATTLE_SLOT", + "Type": "Event", + "Name": "PetJournalNewBattleSlot" + }, + { + "LiteralName": "PET_JOURNAL_PET_DELETED", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "battlePetGUID" }], + "Type": "Event", + "Name": "PetJournalPetDeleted" + }, + { + "LiteralName": "PET_JOURNAL_PET_RESTORED", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "battlePetGUID" }], + "Type": "Event", + "Name": "PetJournalPetRestored" + }, + { + "LiteralName": "PET_JOURNAL_PET_REVOKED", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "battlePetGUID" }], + "Type": "Event", + "Name": "PetJournalPetRevoked" + }, + { + "LiteralName": "PET_JOURNAL_PETS_HEALED", + "Type": "Event", + "Name": "PetJournalPetsHealed" + }, + { + "LiteralName": "PET_JOURNAL_TRAP_LEVEL_SET", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "trapLevel" }], + "Type": "Event", + "Name": "PetJournalTrapLevelSet" + }, + { + "LiteralName": "UPDATE_SUMMONPETS_ACTION", + "Type": "Event", + "Name": "UpdateSummonpetsAction" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "PetJournalError", + "Fields": [ + { "EnumValue": 0, "Type": "PetJournalError", "Name": "None" }, + { "EnumValue": 1, "Type": "PetJournalError", "Name": "PetIsDead" }, + { "EnumValue": 2, "Type": "PetJournalError", "Name": "JournalIsLocked" }, + { "EnumValue": 3, "Type": "PetJournalError", "Name": "InvalidFaction" }, + { "EnumValue": 4, "Type": "PetJournalError", "Name": "NoFavoritesToSummon" }, + { "EnumValue": 5, "Type": "PetJournalError", "Name": "NoValidRandomSummon" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "abilityID" }, + { "Nilable": false, "Type": "number", "Name": "level" } + ], + "Type": "Structure", + "Name": "PetAbilityLevelInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "speciesID" }, + { "Nilable": true, "Type": "string", "Name": "customName" }, + { "Nilable": false, "Type": "number", "Name": "petLevel" }, + { "Nilable": false, "Type": "number", "Name": "xp" }, + { "Nilable": false, "Type": "number", "Name": "maxXP" }, + { "Nilable": false, "Type": "number", "Name": "displayID" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "petType" }, + { "Nilable": false, "Type": "number", "Name": "creatureID" }, + { "Nilable": true, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "sourceText" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "bool", "Name": "isWild" }, + { "Nilable": false, "Type": "bool", "Name": "canBattle" }, + { "Nilable": false, "Type": "bool", "Name": "tradable" }, + { "Nilable": false, "Type": "bool", "Name": "unique" }, + { "Nilable": false, "Type": "bool", "Name": "obtainable" } + ], + "Type": "Structure", + "Name": "PetJournalPetInfo" + } + ] + }, + { "Tables": [] }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "PingMode", + "Fields": [ + { "EnumValue": 0, "Type": "PingMode", "Name": "KeyDown" }, + { "EnumValue": 1, "Type": "PingMode", "Name": "ClickDrag" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "PingResult", + "Fields": [ + { "EnumValue": 0, "Type": "PingResult", "Name": "Success" }, + { "EnumValue": 1, "Type": "PingResult", "Name": "FailedGeneric" }, + { "EnumValue": 2, "Type": "PingResult", "Name": "FailedSpamming" }, + { "EnumValue": 3, "Type": "PingResult", "Name": "FailedDisabledByLeader" }, + { "EnumValue": 4, "Type": "PingResult", "Name": "FailedDisabledBySettings" }, + { "EnumValue": 5, "Type": "PingResult", "Name": "FailedOutOfPingArea" }, + { "EnumValue": 6, "Type": "PingResult", "Name": "FailedSquelched" }, + { "EnumValue": 7, "Type": "PingResult", "Name": "FailedUnspecified" } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + }, + { + "Type": "Enumeration", + "Name": "PingSubjectType", + "Fields": [ + { "EnumValue": 0, "Type": "PingSubjectType", "Name": "Attack" }, + { "EnumValue": 1, "Type": "PingSubjectType", "Name": "Warning" }, + { "EnumValue": 2, "Type": "PingSubjectType", "Name": "Assist" }, + { "EnumValue": 3, "Type": "PingSubjectType", "Name": "OnMyWay" }, + { "EnumValue": 4, "Type": "PingSubjectType", "Name": "AlertThreat" }, + { "EnumValue": 5, "Type": "PingSubjectType", "Name": "AlertNotThreat" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "PingTypeFlags", + "Fields": [{ "EnumValue": 1, "Type": "PingTypeFlags", "Name": "DefaultPing" }], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + }, + { + "Fields": [ + { "Nilable": true, "Type": "PingSubjectType", "Name": "contextualPingType" }, + { "Nilable": false, "Type": "PingResult", "Name": "result" } + ], + "Type": "Structure", + "Name": "ContextualWorldPingResult" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "startTimeMs" }, + { "Nilable": false, "Type": "number", "Name": "endTimeMs" } + ], + "Type": "Structure", + "Name": "PingCooldownInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "PingSubjectType", "Name": "type" }, + { "Nilable": false, "Type": "textureKit", "Name": "uiTextureKitID" } + ], + "Type": "Structure", + "Name": "PingTypeInfo" + } + ] + }, + { + "Namespace": "C_Ping", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "PingSubjectType", "Name": "type" }], + "Arguments": [{ "Nilable": true, "Type": "WOWGUID", "Name": "targetUnit" }], + "Type": "Function", + "Name": "GetContextualPingTypeForUnit" + }, + { + "Returns": [ + { "Nilable": false, "Type": "PingCooldownInfo", "Name": "cooldownInfo" } + ], + "Type": "Function", + "Name": "GetCooldownInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "PingTypeInfo", + "Type": "table", + "Name": "pingTypes" + } + ], + "Type": "Function", + "Name": "GetDefaultPingOptions" + }, + { + "Returns": [{ "Nilable": false, "Type": "textureKit", "Name": "uiTextureKitID" }], + "Arguments": [{ "Nilable": false, "Type": "PingSubjectType", "Name": "type" }], + "Type": "Function", + "Name": "GetTextureKitForType" + }, + { + "Arguments": [ + { "Nilable": true, "Type": "PingSubjectType", "Name": "type" }, + { "Nilable": true, "Type": "cstring", "Name": "targetToken" } + ], + "Type": "Function", + "Name": "SendMacroPing" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "Function", + "Name": "TogglePingListener" + } + ], + "Type": "System", + "Name": "PingManager", + "Events": [ + { + "LiteralName": "PING_SYSTEM_ERROR", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "error" }], + "Type": "Event", + "Name": "PingSystemError" + } + ], + "Tables": [] + }, + { + "Namespace": "C_PingSecure", + "Functions": [ + { "Type": "Function", "Name": "ClearPendingPingInfo" }, + { "Type": "Function", "Name": "CreateFrame" }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "error" }], + "Type": "Function", + "Name": "DisplayError" + }, + { + "Returns": [{ "Nilable": false, "Type": "ScriptRegion", "Name": "frame" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "mousePosX" }, + { "Nilable": false, "Type": "number", "Name": "mousePosY" } + ], + "Type": "Function", + "Name": "GetTargetPingReceiver" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "foundTarget" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "mousePosX" }, + { "Nilable": false, "Type": "number", "Name": "mousePosY" } + ], + "Type": "Function", + "Name": "GetTargetWorldPing" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ContextualWorldPingResult", "Name": "result" } + ], + "Type": "Function", + "Name": "GetTargetWorldPingAndSend" + }, + { + "Returns": [{ "Nilable": false, "Type": "PingResult", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "PingSubjectType", "Name": "type" }, + { "Nilable": true, "Type": "WOWGUID", "Name": "target" } + ], + "Type": "Function", + "Name": "SendPing" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "PendingPingOffScreenCallback", "Name": "cb" } + ], + "Type": "Function", + "Name": "SetPendingPingOffScreenCallback" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "PingCooldownStartedCallback", "Name": "cb" } + ], + "Type": "Function", + "Name": "SetPingCooldownStartedCallback" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "PingPinFrameAddedCallback", "Name": "cb" } + ], + "Type": "Function", + "Name": "SetPingPinFrameAddedCallback" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "PingPinFrameRemovedCallback", "Name": "cb" } + ], + "Type": "Function", + "Name": "SetPingPinFrameRemovedCallback" + }, + { + "Arguments": [ + { + "Nilable": false, + "Type": "PingPinFrameScreenClampStateUpdatedCallback", + "Name": "cb" + } + ], + "Type": "Function", + "Name": "SetPingPinFrameScreenClampStateUpdatedCallback" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "PingRadialWheelCreatedCallback", "Name": "cb" } + ], + "Type": "Function", + "Name": "SetPingRadialWheelCreatedCallback" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SendMacroPingCallback", "Name": "cb" } + ], + "Type": "Function", + "Name": "SetSendMacroPingCallback" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "TogglePingListenerCallback", "Name": "cb" } + ], + "Type": "Function", + "Name": "SetTogglePingListenerCallback" + } + ], + "Type": "System", + "Name": "PingManagerSecure", + "Events": [], + "Tables": [ + { "Type": "CallbackType", "Name": "PendingPingOffScreenCallback" }, + { + "Arguments": [{ "Nilable": false, "Type": "PingCooldownInfo", "Name": "info" }], + "Type": "CallbackType", + "Name": "PingCooldownStartedCallback" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ScriptRegion", "Name": "region" }, + { "Nilable": false, "Type": "textureKit", "Name": "uiTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "isWorldPoint" } + ], + "Type": "CallbackType", + "Name": "PingPinFrameAddedCallback" + }, + { + "Arguments": [{ "Nilable": false, "Type": "ScriptRegion", "Name": "region" }], + "Type": "CallbackType", + "Name": "PingPinFrameRemovedCallback" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ScriptRegion", "Name": "region" }, + { "Nilable": false, "Type": "bool", "Name": "state" } + ], + "Type": "CallbackType", + "Name": "PingPinFrameScreenClampStateUpdatedCallback" + }, + { + "Arguments": [{ "Nilable": false, "Type": "ScriptRegion", "Name": "region" }], + "Type": "CallbackType", + "Name": "PingRadialWheelCreatedCallback" + }, + { + "Arguments": [ + { "Nilable": true, "Type": "PingSubjectType", "Name": "type" }, + { "Nilable": true, "Type": "cstring", "Name": "targetToken" } + ], + "Type": "CallbackType", + "Name": "SendMacroPingCallback" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "down" }], + "Type": "CallbackType", + "Name": "TogglePingListenerCallback" + } + ] + }, + { + "Functions": [], + "Type": "ScriptObject", + "Name": "PingPinFrameAPI", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_Platform", + "Functions": [], + "Type": "System", + "Name": "Platform", + "Events": [], + "Tables": [ + { + "Type": "Enumeration", + "Name": "ClientPlatformType", + "Fields": [ + { "EnumValue": 0, "Type": "ClientPlatformType", "Name": "Windows" }, + { "EnumValue": 1, "Type": "ClientPlatformType", "Name": "Macintosh" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + } + ] + }, + { + "Namespace": "C_PlayerChoice", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "PlayerChoiceInfo", "Name": "choiceInfo" } + ], + "Type": "Function", + "Name": "GetCurrentPlayerChoiceInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numRerolls" }], + "Type": "Function", + "Name": "GetNumRerolls" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "remainingTime" }], + "Type": "Function", + "Name": "GetRemainingTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isWaitingForResponse" }], + "Type": "Function", + "Name": "IsWaitingForPlayerChoiceResponse" + }, + { "Type": "Function", "Name": "OnUIClosed" }, + { "Type": "Function", "Name": "RequestRerollPlayerChoice" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "responseID" }], + "Type": "Function", + "Name": "SendPlayerChoiceResponse" + } + ], + "Type": "System", + "Name": "PlayerChoice", + "Events": [ + { + "LiteralName": "PLAYER_CHOICE_CLOSE", + "Type": "Event", + "Name": "PlayerChoiceClose" + }, + { + "LiteralName": "PLAYER_CHOICE_UPDATE", + "Type": "Event", + "Name": "PlayerChoiceUpdate" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "PlayerChoiceRarity", + "Fields": [ + { "EnumValue": 0, "Type": "PlayerChoiceRarity", "Name": "Common" }, + { "EnumValue": 1, "Type": "PlayerChoiceRarity", "Name": "Uncommon" }, + { "EnumValue": 2, "Type": "PlayerChoiceRarity", "Name": "Rare" }, + { "EnumValue": 3, "Type": "PlayerChoiceRarity", "Name": "Epic" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Fields": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "objectGUID" }, + { "Nilable": false, "Type": "number", "Name": "choiceID" }, + { "Nilable": false, "Type": "string", "Name": "questionText" }, + { "Nilable": false, "Type": "string", "Name": "pendingChoiceText" }, + { "Nilable": false, "Type": "textureKit", "Name": "uiTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hideWarboardHeader" }, + { "Nilable": false, "Type": "bool", "Name": "keepOpenAfterChoice" }, + { + "Nilable": false, + "InnerType": "PlayerChoiceOptionInfo", + "Type": "table", + "Name": "options" + }, + { "Nilable": true, "Type": "number", "Name": "soundKitID" }, + { "Nilable": true, "Type": "number", "Name": "closeUISoundKitID" } + ], + "Type": "Structure", + "Name": "PlayerChoiceInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "bool", "Name": "disabled" }, + { "Nilable": true, "Type": "string", "Name": "confirmation" }, + { "Nilable": true, "Type": "string", "Name": "tooltip" }, + { "Nilable": true, "Type": "number", "Name": "rewardQuestID" }, + { "Nilable": true, "Type": "number", "Name": "soundKitID" } + ], + "Type": "Structure", + "Name": "PlayerChoiceOptionButtonInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "string", "Name": "header" }, + { "Nilable": false, "Type": "number", "Name": "choiceArtID" }, + { "Nilable": false, "Type": "bool", "Name": "desaturatedArt" }, + { "Nilable": false, "Type": "bool", "Name": "disabledOption" }, + { "Nilable": false, "Type": "bool", "Name": "hasRewards" }, + { + "Nilable": false, + "Type": "PlayerChoiceOptionRewardInfo", + "Name": "rewardInfo" + }, + { "Nilable": false, "Type": "textureKit", "Name": "uiTextureKit" }, + { "Nilable": false, "Type": "number", "Name": "maxStacks" }, + { + "Nilable": false, + "InnerType": "PlayerChoiceOptionButtonInfo", + "Type": "table", + "Name": "buttons" + }, + { "Nilable": true, "Type": "number", "Name": "widgetSetID" }, + { "Nilable": true, "Type": "number", "Name": "spellID" }, + { "Nilable": true, "Type": "PlayerChoiceRarity", "Name": "rarity" }, + { + "Nilable": true, + "Mixin": "ColorMixin", + "Type": "colorRGBA", + "Name": "rarityColor" + }, + { "Nilable": true, "Type": "number", "Name": "typeArtID" }, + { "Nilable": true, "Type": "string", "Name": "headerIconAtlasElement" }, + { "Nilable": true, "Type": "string", "Name": "subHeader" }, + { "Nilable": false, "Type": "bool", "Name": "consolidateWidgets" } + ], + "Type": "Structure", + "Name": "PlayerChoiceOptionInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "InnerType": "PlayerChoiceRewardCurrencyInfo", + "Type": "table", + "Name": "currencyRewards" + }, + { + "Nilable": false, + "InnerType": "PlayerChoiceRewardItemInfo", + "Type": "table", + "Name": "itemRewards" + }, + { + "Nilable": false, + "InnerType": "PlayerChoiceRewardReputationInfo", + "Type": "table", + "Name": "repRewards" + } + ], + "Type": "Structure", + "Name": "PlayerChoiceOptionRewardInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "currencyId" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "currencyTexture" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "bool", "Name": "isCurrencyContainer" } + ], + "Type": "Structure", + "Name": "PlayerChoiceRewardCurrencyInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemId" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Structure", + "Name": "PlayerChoiceRewardItemInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "factionId" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Structure", + "Name": "PlayerChoiceRewardReputationInfo" + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_PlayerInfo", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canEnter" }], + "Type": "Function", + "Name": "CanPlayerEnterChromieTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canUseAreaLoot" }], + "Type": "Function", + "Name": "CanPlayerUseAreaLoot" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canUseMountEquipment" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "CanPlayerUseMountEquipment" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isUseable" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "CanUseItem" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasAlternateForm" }, + { "Nilable": false, "Type": "bool", "Name": "inAlternateForm" } + ], + "Type": "Function", + "Name": "GetAlternateFormInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "RelativeContentDifficulty", "Name": "difficulty" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "GetContentDifficultyCreatureForPlayer" + }, + { + "Returns": [ + { "Nilable": false, "Type": "RelativeContentDifficulty", "Name": "difficulty" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetContentDifficultyQuestForPlayer" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "displayID" }], + "Type": "Function", + "Name": "GetDisplayID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isGliding" }, + { "Nilable": false, "Type": "bool", "Name": "canGlide" }, + { "Nilable": false, "Type": "number", "Name": "forwardSpeed" } + ], + "Type": "Function", + "Name": "GetGlidingInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "dungeonID" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "bool", "Name": "isRaid" } + ], + "Type": "Function", + "Name": "GetInstancesUnlockedAtLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "nativeDisplayID" }], + "Type": "Function", + "Name": "GetNativeDisplayID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "creatureDisplayInfoID" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "GetPetStableCreatureDisplayInfoID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "PlayerInfoCharacterData", "Name": "characterData" } + ], + "Type": "Function", + "Name": "GetPlayerCharacterData" + }, + { + "Documentation": [ + "Returns the players mythic+ rating summary which includes the runs they've completed as well as their current season m+ rating" + ], + "Type": "Function", + "Name": "GetPlayerMythicPlusRatingSummary", + "Returns": [ + { "Nilable": false, "Type": "MythicPlusRatingSummary", "Name": "ratingSummary" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "playerToken" }] + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasAccountInventoryLock" } + ], + "Type": "Function", + "Name": "HasAccountInventoryLock" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isVisible" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "HasVisibleInvSlot" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDisplayRaceNative" }], + "Type": "Function", + "Name": "IsDisplayRaceNative" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isUnlocked" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "expansionID" }], + "Type": "Function", + "Name": "IsExpansionLandingPageUnlockedForPlayer" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isMirrorImage" }], + "Type": "Function", + "Name": "IsMirrorImage" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isEligible" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "IsPlayerEligibleForNPE" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isEligible" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "IsPlayerEligibleForNPEv2" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "inChromieTime" }], + "Type": "Function", + "Name": "IsPlayerInChromieTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRestricted" }], + "Type": "Function", + "Name": "IsPlayerNPERestricted" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "active" }], + "Type": "Function", + "Name": "IsSelfFoundActive" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAvailable" }], + "Type": "Function", + "Name": "IsTradingPostAvailable" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAvailable" }], + "Type": "Function", + "Name": "IsTravelersLogAvailable" + } + ], + "Type": "System", + "Name": "PlayerInfo", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "challengeModeID" }, + { "Nilable": false, "Type": "number", "Name": "mapScore" }, + { "Nilable": false, "Type": "number", "Name": "bestRunLevel" }, + { "Nilable": false, "Type": "number", "Name": "bestRunDurationMS" }, + { "Nilable": false, "Type": "bool", "Name": "finishedSuccess" } + ], + "Documentation": ["Specific information about a completed mythic plus run."], + "Type": "Structure", + "Name": "MythicPlusRatingMapSummary" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "currentSeasonScore" }, + { + "Nilable": false, + "InnerType": "MythicPlusRatingMapSummary", + "Type": "table", + "Name": "runs" + } + ], + "Documentation": [ + "The current season rating and well as a list of completed mythic plus runs." + ], + "Type": "Structure", + "Name": "MythicPlusRatingSummary" + } + ] + }, + { + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "raceID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "fileName" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "createScreenIconAtlas" } + ], + "Type": "Structure", + "Name": "CharacterAlternateFormData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "fileName" }, + { + "Nilable": true, + "Type": "CharacterAlternateFormData", + "Name": "alternateFormRaceData" + }, + { "Nilable": false, "Type": "textureAtlas", "Name": "createScreenIconAtlas" }, + { "Nilable": false, "Type": "UnitSex", "Name": "sex" } + ], + "Type": "Structure", + "Name": "PlayerInfoCharacterData" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "PlayerInteractionType", + "Fields": [ + { "EnumValue": 0, "Type": "PlayerInteractionType", "Name": "None" }, + { "EnumValue": 1, "Type": "PlayerInteractionType", "Name": "TradePartner" }, + { "EnumValue": 2, "Type": "PlayerInteractionType", "Name": "Item" }, + { "EnumValue": 3, "Type": "PlayerInteractionType", "Name": "Gossip" }, + { "EnumValue": 4, "Type": "PlayerInteractionType", "Name": "QuestGiver" }, + { "EnumValue": 5, "Type": "PlayerInteractionType", "Name": "Merchant" }, + { "EnumValue": 6, "Type": "PlayerInteractionType", "Name": "TaxiNode" }, + { "EnumValue": 7, "Type": "PlayerInteractionType", "Name": "Trainer" }, + { "EnumValue": 8, "Type": "PlayerInteractionType", "Name": "Banker" }, + { + "EnumValue": 9, + "Type": "PlayerInteractionType", + "Name": "AlliedRaceDetailsGiver" + }, + { "EnumValue": 10, "Type": "PlayerInteractionType", "Name": "GuildBanker" }, + { "EnumValue": 11, "Type": "PlayerInteractionType", "Name": "Registrar" }, + { "EnumValue": 12, "Type": "PlayerInteractionType", "Name": "Vendor" }, + { "EnumValue": 13, "Type": "PlayerInteractionType", "Name": "PetitionVendor" }, + { + "EnumValue": 14, + "Type": "PlayerInteractionType", + "Name": "GuildTabardVendor" + }, + { "EnumValue": 15, "Type": "PlayerInteractionType", "Name": "TalentMaster" }, + { + "EnumValue": 16, + "Type": "PlayerInteractionType", + "Name": "SpecializationMaster" + }, + { "EnumValue": 17, "Type": "PlayerInteractionType", "Name": "MailInfo" }, + { "EnumValue": 18, "Type": "PlayerInteractionType", "Name": "SpiritHealer" }, + { + "EnumValue": 19, + "Type": "PlayerInteractionType", + "Name": "AreaSpiritHealer" + }, + { "EnumValue": 20, "Type": "PlayerInteractionType", "Name": "Binder" }, + { "EnumValue": 21, "Type": "PlayerInteractionType", "Name": "Auctioneer" }, + { "EnumValue": 22, "Type": "PlayerInteractionType", "Name": "StableMaster" }, + { "EnumValue": 23, "Type": "PlayerInteractionType", "Name": "BattleMaster" }, + { "EnumValue": 24, "Type": "PlayerInteractionType", "Name": "Transmogrifier" }, + { "EnumValue": 25, "Type": "PlayerInteractionType", "Name": "LFGDungeon" }, + { + "EnumValue": 26, + "Type": "PlayerInteractionType", + "Name": "VoidStorageBanker" + }, + { + "EnumValue": 27, + "Type": "PlayerInteractionType", + "Name": "BlackMarketAuctioneer" + }, + { "EnumValue": 28, "Type": "PlayerInteractionType", "Name": "AdventureMap" }, + { "EnumValue": 29, "Type": "PlayerInteractionType", "Name": "WorldMap" }, + { "EnumValue": 30, "Type": "PlayerInteractionType", "Name": "GarrArchitect" }, + { "EnumValue": 31, "Type": "PlayerInteractionType", "Name": "GarrTradeskill" }, + { "EnumValue": 32, "Type": "PlayerInteractionType", "Name": "GarrMission" }, + { "EnumValue": 33, "Type": "PlayerInteractionType", "Name": "ShipmentCrafter" }, + { "EnumValue": 34, "Type": "PlayerInteractionType", "Name": "GarrRecruitment" }, + { "EnumValue": 35, "Type": "PlayerInteractionType", "Name": "GarrTalent" }, + { "EnumValue": 36, "Type": "PlayerInteractionType", "Name": "Trophy" }, + { "EnumValue": 37, "Type": "PlayerInteractionType", "Name": "PlayerChoice" }, + { "EnumValue": 38, "Type": "PlayerInteractionType", "Name": "ArtifactForge" }, + { "EnumValue": 39, "Type": "PlayerInteractionType", "Name": "ObliterumForge" }, + { + "EnumValue": 40, + "Type": "PlayerInteractionType", + "Name": "ScrappingMachine" + }, + { + "EnumValue": 41, + "Type": "PlayerInteractionType", + "Name": "ContributionCollector" + }, + { "EnumValue": 42, "Type": "PlayerInteractionType", "Name": "AzeriteRespec" }, + { "EnumValue": 43, "Type": "PlayerInteractionType", "Name": "IslandQueue" }, + { "EnumValue": 44, "Type": "PlayerInteractionType", "Name": "ItemInteraction" }, + { "EnumValue": 45, "Type": "PlayerInteractionType", "Name": "ChromieTime" }, + { "EnumValue": 46, "Type": "PlayerInteractionType", "Name": "CovenantPreview" }, + { "EnumValue": 47, "Type": "PlayerInteractionType", "Name": "AnimaDiversion" }, + { + "EnumValue": 48, + "Type": "PlayerInteractionType", + "Name": "LegendaryCrafting" + }, + { "EnumValue": 49, "Type": "PlayerInteractionType", "Name": "WeeklyRewards" }, + { "EnumValue": 50, "Type": "PlayerInteractionType", "Name": "Soulbind" }, + { "EnumValue": 51, "Type": "PlayerInteractionType", "Name": "CovenantSanctum" }, + { "EnumValue": 52, "Type": "PlayerInteractionType", "Name": "NewPlayerGuide" }, + { "EnumValue": 53, "Type": "PlayerInteractionType", "Name": "ItemUpgrade" }, + { + "EnumValue": 54, + "Type": "PlayerInteractionType", + "Name": "AdventureJournal" + }, + { "EnumValue": 55, "Type": "PlayerInteractionType", "Name": "Renown" }, + { "EnumValue": 56, "Type": "PlayerInteractionType", "Name": "AzeriteForge" }, + { + "EnumValue": 57, + "Type": "PlayerInteractionType", + "Name": "PerksProgramVendor" + }, + { + "EnumValue": 58, + "Type": "PlayerInteractionType", + "Name": "ProfessionsCraftingOrder" + }, + { "EnumValue": 59, "Type": "PlayerInteractionType", "Name": "Professions" }, + { + "EnumValue": 60, + "Type": "PlayerInteractionType", + "Name": "ProfessionsCustomerOrder" + }, + { "EnumValue": 61, "Type": "PlayerInteractionType", "Name": "TraitSystem" }, + { "EnumValue": 62, "Type": "PlayerInteractionType", "Name": "BarbersChoice" }, + { + "EnumValue": 63, + "Type": "PlayerInteractionType", + "Name": "JailersTowerBuffs" + }, + { + "EnumValue": 64, + "Type": "PlayerInteractionType", + "Name": "MajorFactionRenown" + }, + { + "EnumValue": 65, + "Type": "PlayerInteractionType", + "Name": "PersonalTabardVendor" + }, + { "EnumValue": 66, "Type": "PlayerInteractionType", "Name": "ForgeMaster" }, + { "EnumValue": 67, "Type": "PlayerInteractionType", "Name": "CharacterBanker" }, + { "EnumValue": 68, "Type": "PlayerInteractionType", "Name": "AccountBanker" } + ], + "MaxValue": 68, + "MinValue": 0, + "NumValues": 69 + } + ] + }, + { + "Namespace": "C_PlayerInteractionManager", + "Functions": [ + { + "Arguments": [ + { "Nilable": true, "Type": "PlayerInteractionType", "Name": "type" } + ], + "Type": "Function", + "Name": "ClearInteraction" + }, + { + "Arguments": [ + { "Nilable": true, "Type": "PlayerInteractionType", "Name": "type" } + ], + "Type": "Function", + "Name": "ConfirmationInteraction" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "unit" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "exactMatch" }, + { "Nilable": false, "Default": true, "Type": "bool", "Name": "looseTargeting" } + ], + "Type": "Function", + "Name": "InteractUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "interacting" }], + "Arguments": [ + { "Nilable": false, "Type": "PlayerInteractionType", "Name": "type" } + ], + "Type": "Function", + "Name": "IsInteractingWithNpcOfType" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "replacing" }], + "Type": "Function", + "Name": "IsReplacingUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isValidInteraction" }], + "Arguments": [ + { "Nilable": false, "Type": "PlayerInteractionType", "Name": "type" } + ], + "Type": "Function", + "Name": "IsValidNPCInteraction" + }, + { "Type": "Function", "Name": "ReopenInteraction" } + ], + "Type": "System", + "Name": "PlayerInteractionManager", + "Events": [ + { + "LiteralName": "PLAYER_INTERACTION_MANAGER_FRAME_HIDE", + "Payload": [ + { "Nilable": false, "Type": "PlayerInteractionType", "Name": "type" } + ], + "Type": "Event", + "Name": "PlayerInteractionManagerFrameHide" + }, + { + "LiteralName": "PLAYER_INTERACTION_MANAGER_FRAME_SHOW", + "Payload": [ + { "Nilable": false, "Type": "PlayerInteractionType", "Name": "type" } + ], + "Type": "Event", + "Name": "PlayerInteractionManagerFrameShow" + } + ], + "Tables": [] + }, + { + "Namespace": "C_PlayerInfo", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPlayer" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "GUIDIsPlayer" + }, + { + "Returns": [ + { "Nilable": true, "Type": "cstring", "Name": "className" }, + { "Nilable": true, "Type": "cstring", "Name": "classFilename" }, + { "Nilable": true, "Type": "number", "Name": "classID" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "GetClass" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "name" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "GetName" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "raceID" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "GetRace" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "sex" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "GetSex" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "isConnected" }], + "Arguments": [ + { + "Nilable": true, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "IsConnected" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "unitIsSameServer" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "UnitIsSameServer" + } + ], + "Type": "System", + "Name": "PlayerLocationInfo", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "PlayerMentorshipApplicationResult", + "Fields": [ + { + "EnumValue": 0, + "Type": "PlayerMentorshipApplicationResult", + "Name": "Success" + }, + { + "EnumValue": 1, + "Type": "PlayerMentorshipApplicationResult", + "Name": "AlreadyMentor" + }, + { + "EnumValue": 2, + "Type": "PlayerMentorshipApplicationResult", + "Name": "Ineligible" + } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "PlayerMentorshipStatus", + "Fields": [ + { "EnumValue": 0, "Type": "PlayerMentorshipStatus", "Name": "None" }, + { "EnumValue": 1, "Type": "PlayerMentorshipStatus", "Name": "Newcomer" }, + { "EnumValue": 2, "Type": "PlayerMentorshipStatus", "Name": "Mentor" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + } + ] + }, + { + "Namespace": "C_PlayerMentorship", + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "level" }], + "Type": "Function", + "Name": "GetMentorLevelRequirement" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "achievementIDs" + }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "optionalAchievementIDs" + }, + { "Nilable": false, "Type": "number", "Name": "optionalCompleteAtLeastCount" } + ], + "Type": "Function", + "Name": "GetMentorRequirements" + }, + { + "Returns": [ + { "Nilable": false, "Type": "PlayerMentorshipStatus", "Name": "status" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "GetMentorshipStatus" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isConsideredNewcomer" }], + "Type": "Function", + "Name": "IsActivePlayerConsideredNewcomer" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRestricted" }], + "Type": "Function", + "Name": "IsMentorRestricted" + } + ], + "Type": "System", + "Name": "PlayerMentorship", + "Events": [ + { + "LiteralName": "MENTORSHIP_STATUS_CHANGED", + "Type": "Event", + "Name": "MentorshipStatusChanged" + }, + { + "LiteralName": "NEWCOMER_GRADUATION", + "Type": "Event", + "Name": "NewcomerGraduation" + } + ], + "Tables": [] + }, + { + "Functions": [ + { "Type": "Function", "Name": "AcceptAreaSpiritHeal" }, + { "Type": "Function", "Name": "AcceptGuild" }, + { "Type": "Function", "Name": "AcceptResurrect" }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "fullName" }, + { "Nilable": false, "Type": "cstring", "Name": "context" } + ], + "Type": "Function", + "Name": "Ambiguate" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "AreAccountAchievementsHidden" + }, + { "Type": "Function", "Name": "AutoEquipCursorItem" }, + { "Type": "Function", "Name": "BeginTrade" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "CanDualWield" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "targetGUID" }], + "Type": "Function", + "Name": "CanInspect" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasLoot" }, + { "Nilable": false, "Type": "bool", "Name": "canLoot" } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "targetUnit" }], + "Type": "Function", + "Name": "CanLootUnit" + }, + { "Type": "Function", "Name": "CancelAreaSpiritHeal" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "CancelPendingEquip" + }, + { "Type": "Function", "Name": "CancelTrade" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitGUID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "distIndex" } + ], + "Type": "Function", + "Name": "CheckInteractDistance" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "CheckTalentMasterDist" + }, + { "Type": "Function", "Name": "ClearPendingBindConversionItem" }, + { "Type": "Function", "Name": "ConfirmTalentWipe" }, + { "Type": "Function", "Name": "ConvertItemToBindToAccount" }, + { "Type": "Function", "Name": "DeclineGuild" }, + { "Type": "Function", "Name": "DeclineResurrect" }, + { "Type": "Function", "Name": "Dismount" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "EquipPendingItem" + }, + { + "Arguments": [ + { "Nilable": false, "Default": "0", "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "exactMatch" } + ], + "Type": "Function", + "Name": "FollowUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "GetAllowLowLevelRaid" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetAreaSpiritHealerTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "stat" }, + { "Nilable": false, "Type": "number", "Name": "value" } + ], + "Type": "Function", + "Name": "GetAttackPowerForStat" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "GetAutoDeclineGuildInvites" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetAvoidance" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Type": "Function", + "Name": "GetBindLocation" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetBlockChance" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetCemeteryPreference" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "ratingIndex" }], + "Type": "Function", + "Name": "GetCombatRating" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "ratingIndex" }], + "Type": "Function", + "Name": "GetCombatRatingBonus" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "ratingIndex" }, + { "Nilable": false, "Type": "number", "Name": "value" } + ], + "Type": "Function", + "Name": "GetCombatRatingBonusForCombatRatingValue" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetCorpseRecoveryDelay" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetCorruption" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetCorruptionResistance" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetCritChance" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "GetCritChanceProvidesParryEffect" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetDodgeChance" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetDodgeChanceFromAttribute" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "mainhandExpertise" }, + { "Nilable": false, "Type": "number", "Name": "offhandExpertise" }, + { "Nilable": false, "Type": "number", "Name": "rangedExpertise" } + ], + "Type": "Function", + "Name": "GetExpertise" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetHaste" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetHitModifier" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetJailersTowerLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetLifesteal" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "specializationID" }], + "Type": "Function", + "Name": "GetLootSpecialization" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "baseManaRegen" }, + { "Nilable": false, "Type": "number", "Name": "castingManaRegen" } + ], + "Type": "Function", + "Name": "GetManaRegen" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetMastery" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "masteryEffect" }, + { "Nilable": false, "Type": "number", "Name": "bonusCoefficient" } + ], + "Type": "Function", + "Name": "GetMasteryEffect" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "ratingIndex" }], + "Type": "Function", + "Name": "GetMaxCombatRatingBonus" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxPlayerLevel" }], + "Type": "Function", + "Name": "GetMaxPlayerLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetMeleeHaste" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetModResilienceDamageReduction" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetMoney" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Type": "Function", + "Name": "GetNormalizedRealmName" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetOverrideAPBySpellPower" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetOverrideSpellPowerByAP" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "GetPVPDesired" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "GetPVPGearStatRules" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "lifetimeHonorableKills" }, + { "Nilable": false, "Type": "number", "Name": "lifetimeMaxPVPRank" } + ], + "Type": "Function", + "Name": "GetPVPLifetimeStats" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "honorableKills" }, + { "Nilable": false, "Type": "number", "Name": "dishonorableKills" } + ], + "Type": "Function", + "Name": "GetPVPSessionStats" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetPVPTimer" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "honorableKills" }, + { "Nilable": false, "Type": "number", "Name": "dishonorableKills" } + ], + "Type": "Function", + "Name": "GetPVPYesterdayStats" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetParryChance" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetParryChanceFromAttribute" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetPetMeleeHaste" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetPetSpellBonusDamage" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetPlayerFacing" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "localizedClass" }, + { "Nilable": false, "Type": "cstring", "Name": "englishClass" }, + { "Nilable": false, "Type": "cstring", "Name": "localizedRace" }, + { "Nilable": false, "Type": "cstring", "Name": "englishRace" }, + { "Nilable": false, "Type": "number", "Name": "sex" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "realmName" } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "GetPlayerInfoByGUID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "basePowerRegen" }, + { "Nilable": false, "Type": "number", "Name": "castingPowerRegen" } + ], + "Type": "Function", + "Name": "GetPowerRegen" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "basePowerRegen" }, + { "Nilable": false, "Type": "number", "Name": "castingPowerRegen" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "powerType" }], + "Type": "Function", + "Name": "GetPowerRegenForPowerType" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetPvpPowerDamage" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetPvpPowerHealing" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetRangedCritChance" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetRangedHaste" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetReleaseTimeRemaining" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "result" }], + "Type": "Function", + "Name": "GetResSicknessDuration" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "exhaustionID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "factor" } + ], + "Type": "Function", + "Name": "GetRestState" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "maxLevel" }, + { "Nilable": false, "Type": "WOWMONEY", "Name": "maxMoney" }, + { "Nilable": false, "Type": "number", "Name": "professionCap" } + ], + "Type": "Function", + "Name": "GetRestrictedAccountData" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "bool", "Name": "isRuneReady" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "runeIndex" }], + "Type": "Function", + "Name": "GetRuneCooldown" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "runeIndex" }], + "Type": "Function", + "Name": "GetRuneCount" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetSheathState" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetShieldBlock" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetSpeed" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "school" }], + "Type": "Function", + "Name": "GetSpellBonusDamage" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetSpellBonusHealing" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetSpellCritChance" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetSpellHitModifier" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetSpellPenetration" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetSturdiness" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "GetTaxiBenchmarkMode" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "combatRating" }], + "Type": "Function", + "Name": "GetVersatilityBonus" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetXPExhaustion" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "HasAPEffectsSpellPower" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "HasDualWieldPenalty" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "HasFullControl" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "HasIgnoreDualWieldWeapon" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasKey" }], + "Type": "Function", + "Name": "HasKey" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasCannotReleaseEffect" }, + { "Nilable": false, "Type": "number", "Name": "longestDuration" }, + { "Nilable": false, "Type": "bool", "Name": "hasUntilCancelledDuration" } + ], + "Type": "Function", + "Name": "HasNoReleaseAura" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "HasSPEffectsAttackPower" + }, + { + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "guid" }], + "Type": "Function", + "Name": "InitiateTrade" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsAccountSecured" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsAdvancedFlyableArea" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsCemeterySelectionAvailable" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "newlyBoosted" }], + "Type": "Function", + "Name": "IsCharacterNewlyBoosted" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsDualWielding" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsFlyableArea" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsGuildLeader" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsInGuild" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsInJailersTower" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsIndoors" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsInsane" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isItemPreferredArmorType" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "IsItemPreferredArmorType" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "layerLevel" }], + "Type": "Function", + "Name": "IsJailersTowerLayerTimeLocked" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsLoggedIn" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsMounted" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsOnGroundFloorInJailersTower" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsOutOfBounds" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsOutdoors" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsPVPTimerRunning" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsPlayerInWorld" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsPlayerMoving" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsRangedWeapon" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsResting" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsRestrictedAccount" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsStealthed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsXPUserDisabled" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "NoPlayTime" + }, + { + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "targetGUID" }], + "Type": "Function", + "Name": "NotifyInspect" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "PartialPlayTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "PlayerCanTeleport" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "mainHandAttackPower" }, + { "Nilable": false, "Type": "number", "Name": "offHandAttackPower" }, + { "Nilable": false, "Type": "number", "Name": "rangedAttackPower" } + ], + "Type": "Function", + "Name": "PlayerEffectiveAttackPower" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "timerunningSeasonID" }], + "Type": "Function", + "Name": "PlayerGetTimerunningSeasonID" + }, + { "Type": "Function", "Name": "PortGraveyard" }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "min" }, + { "Nilable": false, "Type": "number", "Name": "max" } + ], + "Type": "Function", + "Name": "RandomRoll" + }, + { "Type": "Function", "Name": "RepopMe" }, + { "Type": "Function", "Name": "RequestTimePlayed" }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "acceptLock" }], + "Type": "Function", + "Name": "RespondInstanceLock" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "ResurrectGetOfferer" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "ResurrectHasSickness" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "ResurrectHasTimer" + }, + { "Type": "Function", "Name": "RetrieveCorpse" }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "allow" } + ], + "Type": "Function", + "Name": "SetAllowLowLevelRaid" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "allow" } + ], + "Type": "Function", + "Name": "SetAutoDeclineGuildInvites" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "cemetaryID" }], + "Type": "Function", + "Name": "SetCemeteryPreference" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "specializationID" }], + "Type": "Function", + "Name": "SetLootSpecialization" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enable" } + ], + "Type": "Function", + "Name": "SetTaxiBenchmarkMode" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "ShouldShowIslandsWeeklyPOI" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "ShouldShowSpecialSplashScreen" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "hide" } + ], + "Type": "Function", + "Name": "ShowAccountAchievements" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "show" }], + "Type": "Function", + "Name": "ShowCloak" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "show" }], + "Type": "Function", + "Name": "ShowHelm" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "ShowingCloak" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "ShowingHelm" + }, + { "Type": "Function", "Name": "SitStandOrDescendStart" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "SplashFrameCanBeShown" + }, + { + "Arguments": [ + { "Nilable": false, "Default": "0", "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "exactMatch" } + ], + "Type": "Function", + "Name": "StartAttack" + }, + { "Type": "Function", "Name": "StopAttack" }, + { "Type": "Function", "Name": "Stuck" }, + { "Type": "Function", "Name": "TimeoutResurrect" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "ToggleSelfHighlight" + }, + { "Type": "Function", "Name": "ToggleSheath" } + ], + "Type": "System", + "Name": "PlayerScript", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_Pony", + "Documentation": [ + "A pony is not simply a small horse., Time to pony up some documentation., See? Pony." + ], + "Type": "System", + "Name": "Pony", + "Tables": [], + "Events": [], + "Functions": [] + }, + { + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }, + { "Nilable": false, "Type": "TextureAssetDisk", "Name": "asset" } + ], + "Type": "Function", + "Name": "SetPortraitToTexture" + } + ], + "Type": "System", + "Name": "Portrait", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "BalanceType", + "Fields": [ + { "EnumValue": -1, "Type": "BalanceType", "Name": "None" }, + { "EnumValue": 0, "Type": "BalanceType", "Name": "Eclipse" } + ], + "MaxValue": 0, + "MinValue": -1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "PowerType", + "Fields": [ + { "EnumValue": 0, "Type": "PowerType", "Name": "Mana" }, + { "EnumValue": 1, "Type": "PowerType", "Name": "Rage" }, + { "EnumValue": 2, "Type": "PowerType", "Name": "Focus" }, + { "EnumValue": 3, "Type": "PowerType", "Name": "Energy" }, + { "EnumValue": 4, "Type": "PowerType", "Name": "ComboPoints" }, + { "EnumValue": 5, "Type": "PowerType", "Name": "Runes" }, + { "EnumValue": 6, "Type": "PowerType", "Name": "RunicPower" }, + { "EnumValue": 7, "Type": "PowerType", "Name": "SoulShards" }, + { "EnumValue": 8, "Type": "PowerType", "Name": "LunarPower" }, + { "EnumValue": 9, "Type": "PowerType", "Name": "HolyPower" }, + { "EnumValue": 10, "Type": "PowerType", "Name": "Alternate" }, + { "EnumValue": 11, "Type": "PowerType", "Name": "Maelstrom" }, + { "EnumValue": 12, "Type": "PowerType", "Name": "Chi" }, + { "EnumValue": 13, "Type": "PowerType", "Name": "Insanity" }, + { "EnumValue": 14, "Type": "PowerType", "Name": "Obsolete" }, + { "EnumValue": 15, "Type": "PowerType", "Name": "Obsolete2" }, + { "EnumValue": 16, "Type": "PowerType", "Name": "ArcaneCharges" }, + { "EnumValue": 17, "Type": "PowerType", "Name": "Fury" }, + { "EnumValue": 18, "Type": "PowerType", "Name": "Pain" }, + { "EnumValue": 19, "Type": "PowerType", "Name": "Essence" }, + { "EnumValue": 20, "Type": "PowerType", "Name": "RuneBlood" }, + { "EnumValue": 21, "Type": "PowerType", "Name": "RuneFrost" }, + { "EnumValue": 22, "Type": "PowerType", "Name": "RuneUnholy" }, + { "EnumValue": 23, "Type": "PowerType", "Name": "AlternateQuest" }, + { "EnumValue": 24, "Type": "PowerType", "Name": "AlternateEncounter" }, + { "EnumValue": 25, "Type": "PowerType", "Name": "AlternateMount" }, + { "EnumValue": 26, "Type": "PowerType", "Name": "Balance" } + ], + "MaxValue": 26, + "MinValue": 0, + "NumValues": 27 + }, + { + "Type": "Enumeration", + "Name": "PowerTypeSign", + "Fields": [ + { "EnumValue": -1, "Type": "PowerTypeSign", "Name": "None" }, + { "EnumValue": 0, "Type": "PowerTypeSign", "Name": "Positive" }, + { "EnumValue": 1, "Type": "PowerTypeSign", "Name": "Negative" } + ], + "MaxValue": 1, + "MinValue": -1, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "PowerTypeSlot", + "Fields": [ + { "EnumValue": 0, "Type": "PowerTypeSlot", "Name": "Slot_0" }, + { "EnumValue": 1, "Type": "PowerTypeSlot", "Name": "Slot_1" }, + { "EnumValue": 2, "Type": "PowerTypeSlot", "Name": "Slot_2" }, + { "EnumValue": 3, "Type": "PowerTypeSlot", "Name": "Slot_3" }, + { "EnumValue": 4, "Type": "PowerTypeSlot", "Name": "Slot_4" }, + { "EnumValue": 5, "Type": "PowerTypeSlot", "Name": "Slot_5" }, + { "EnumValue": 6, "Type": "PowerTypeSlot", "Name": "Slot_6" }, + { "EnumValue": 7, "Type": "PowerTypeSlot", "Name": "Slot_7" }, + { "EnumValue": 8, "Type": "PowerTypeSlot", "Name": "Slot_8" }, + { "EnumValue": 9, "Type": "PowerTypeSlot", "Name": "Slot_9" } + ], + "MaxValue": 9, + "MinValue": 0, + "NumValues": 10 + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "CraftingOrderDuration", + "Fields": [ + { "EnumValue": 0, "Type": "CraftingOrderDuration", "Name": "Short" }, + { "EnumValue": 1, "Type": "CraftingOrderDuration", "Name": "Medium" }, + { "EnumValue": 2, "Type": "CraftingOrderDuration", "Name": "Long" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "CraftingOrderFlags", + "Fields": [ + { "EnumValue": 1, "Type": "CraftingOrderFlags", "Name": "IsRecraft" }, + { "EnumValue": 2, "Type": "CraftingOrderFlags", "Name": "HasNoneReagents" }, + { "EnumValue": 4, "Type": "CraftingOrderFlags", "Name": "HasSomeReagents" }, + { "EnumValue": 8, "Type": "CraftingOrderFlags", "Name": "HasAllReagents" }, + { "EnumValue": 16, "Type": "CraftingOrderFlags", "Name": "IsFulfillable" } + ], + "MaxValue": 16, + "MinValue": 1, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "CraftingOrderItemType", + "Fields": [ + { "EnumValue": 0, "Type": "CraftingOrderItemType", "Name": "Reagent" }, + { "EnumValue": 1, "Type": "CraftingOrderItemType", "Name": "Recraft" }, + { "EnumValue": 2, "Type": "CraftingOrderItemType", "Name": "CraftedResult" }, + { "EnumValue": 3, "Type": "CraftingOrderItemType", "Name": "RemoveReagent" }, + { "EnumValue": 4, "Type": "CraftingOrderItemType", "Name": "NpcProvided" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "CraftingOrderReagentSource", + "Fields": [ + { "EnumValue": 0, "Type": "CraftingOrderReagentSource", "Name": "Any" }, + { "EnumValue": 1, "Type": "CraftingOrderReagentSource", "Name": "Customer" }, + { "EnumValue": 2, "Type": "CraftingOrderReagentSource", "Name": "Crafter" }, + { "EnumValue": 3, "Type": "CraftingOrderReagentSource", "Name": "None" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "CraftingOrderResult", + "Fields": [ + { "EnumValue": 0, "Type": "CraftingOrderResult", "Name": "Ok" }, + { "EnumValue": 1, "Type": "CraftingOrderResult", "Name": "Aborted" }, + { "EnumValue": 2, "Type": "CraftingOrderResult", "Name": "AlreadyClaimed" }, + { "EnumValue": 3, "Type": "CraftingOrderResult", "Name": "AlreadyCrafted" }, + { "EnumValue": 4, "Type": "CraftingOrderResult", "Name": "CannotBeOrdered" }, + { "EnumValue": 5, "Type": "CraftingOrderResult", "Name": "CannotCancel" }, + { "EnumValue": 6, "Type": "CraftingOrderResult", "Name": "CannotClaim" }, + { + "EnumValue": 7, + "Type": "CraftingOrderResult", + "Name": "CannotClaimOwnOrder" + }, + { "EnumValue": 8, "Type": "CraftingOrderResult", "Name": "CannotCraft" }, + { "EnumValue": 9, "Type": "CraftingOrderResult", "Name": "CannotCreate" }, + { "EnumValue": 10, "Type": "CraftingOrderResult", "Name": "CannotFulfill" }, + { "EnumValue": 11, "Type": "CraftingOrderResult", "Name": "CannotRecraft" }, + { "EnumValue": 12, "Type": "CraftingOrderResult", "Name": "CannotReject" }, + { "EnumValue": 13, "Type": "CraftingOrderResult", "Name": "CannotRelease" }, + { "EnumValue": 14, "Type": "CraftingOrderResult", "Name": "CrafterIsIgnored" }, + { "EnumValue": 15, "Type": "CraftingOrderResult", "Name": "DatabaseError" }, + { "EnumValue": 16, "Type": "CraftingOrderResult", "Name": "Expired" }, + { "EnumValue": 17, "Type": "CraftingOrderResult", "Name": "Locked" }, + { "EnumValue": 18, "Type": "CraftingOrderResult", "Name": "InvalidDuration" }, + { "EnumValue": 19, "Type": "CraftingOrderResult", "Name": "InvalidMinQuality" }, + { "EnumValue": 20, "Type": "CraftingOrderResult", "Name": "InvalidNotes" }, + { "EnumValue": 21, "Type": "CraftingOrderResult", "Name": "InvalidReagent" }, + { "EnumValue": 22, "Type": "CraftingOrderResult", "Name": "InvalidRealm" }, + { "EnumValue": 23, "Type": "CraftingOrderResult", "Name": "InvalidRecipe" }, + { + "EnumValue": 24, + "Type": "CraftingOrderResult", + "Name": "InvalidRecraftItem" + }, + { "EnumValue": 25, "Type": "CraftingOrderResult", "Name": "InvalidSort" }, + { "EnumValue": 26, "Type": "CraftingOrderResult", "Name": "InvalidTarget" }, + { "EnumValue": 27, "Type": "CraftingOrderResult", "Name": "InvalidType" }, + { "EnumValue": 28, "Type": "CraftingOrderResult", "Name": "MaxOrdersReached" }, + { + "EnumValue": 29, + "Type": "CraftingOrderResult", + "Name": "MissingCraftingTable" + }, + { "EnumValue": 30, "Type": "CraftingOrderResult", "Name": "MissingItem" }, + { "EnumValue": 31, "Type": "CraftingOrderResult", "Name": "MissingNpc" }, + { "EnumValue": 32, "Type": "CraftingOrderResult", "Name": "MissingOrder" }, + { + "EnumValue": 33, + "Type": "CraftingOrderResult", + "Name": "MissingRecraftItem" + }, + { "EnumValue": 34, "Type": "CraftingOrderResult", "Name": "NoAccountItems" }, + { "EnumValue": 35, "Type": "CraftingOrderResult", "Name": "NotClaimed" }, + { "EnumValue": 36, "Type": "CraftingOrderResult", "Name": "NotCrafted" }, + { "EnumValue": 37, "Type": "CraftingOrderResult", "Name": "NotInGuild" }, + { "EnumValue": 38, "Type": "CraftingOrderResult", "Name": "NotYetImplemented" }, + { + "EnumValue": 39, + "Type": "CraftingOrderResult", + "Name": "OutOfPublicOrderCapacity" + }, + { + "EnumValue": 40, + "Type": "CraftingOrderResult", + "Name": "ServerIsNotAvailable" + }, + { "EnumValue": 41, "Type": "CraftingOrderResult", "Name": "ThrottleViolation" }, + { "EnumValue": 42, "Type": "CraftingOrderResult", "Name": "TargetCannotCraft" }, + { "EnumValue": 43, "Type": "CraftingOrderResult", "Name": "TargetLocked" }, + { "EnumValue": 44, "Type": "CraftingOrderResult", "Name": "Timeout" }, + { "EnumValue": 45, "Type": "CraftingOrderResult", "Name": "TooManyItems" }, + { "EnumValue": 46, "Type": "CraftingOrderResult", "Name": "WrongVersion" } + ], + "MaxValue": 46, + "MinValue": 0, + "NumValues": 47 + }, + { + "Type": "Enumeration", + "Name": "CraftingOrderSortType", + "Fields": [ + { "EnumValue": 0, "Type": "CraftingOrderSortType", "Name": "ItemName" }, + { "EnumValue": 1, "Type": "CraftingOrderSortType", "Name": "AveTip" }, + { "EnumValue": 2, "Type": "CraftingOrderSortType", "Name": "MaxTip" }, + { "EnumValue": 3, "Type": "CraftingOrderSortType", "Name": "Quantity" }, + { "EnumValue": 4, "Type": "CraftingOrderSortType", "Name": "Reagents" }, + { "EnumValue": 5, "Type": "CraftingOrderSortType", "Name": "Tip" }, + { "EnumValue": 6, "Type": "CraftingOrderSortType", "Name": "TimeRemaining" }, + { "EnumValue": 7, "Type": "CraftingOrderSortType", "Name": "Status" } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + }, + { + "Type": "Enumeration", + "Name": "CraftingOrderState", + "Fields": [ + { "EnumValue": 0, "Type": "CraftingOrderState", "Name": "None" }, + { "EnumValue": 1, "Type": "CraftingOrderState", "Name": "Creating" }, + { "EnumValue": 2, "Type": "CraftingOrderState", "Name": "Created" }, + { "EnumValue": 3, "Type": "CraftingOrderState", "Name": "Claiming" }, + { "EnumValue": 4, "Type": "CraftingOrderState", "Name": "Claimed" }, + { "EnumValue": 5, "Type": "CraftingOrderState", "Name": "Rejecting" }, + { "EnumValue": 6, "Type": "CraftingOrderState", "Name": "Rejected" }, + { "EnumValue": 7, "Type": "CraftingOrderState", "Name": "Releasing" }, + { "EnumValue": 8, "Type": "CraftingOrderState", "Name": "Crafting" }, + { "EnumValue": 9, "Type": "CraftingOrderState", "Name": "Recrafting" }, + { "EnumValue": 10, "Type": "CraftingOrderState", "Name": "Fulfilling" }, + { "EnumValue": 11, "Type": "CraftingOrderState", "Name": "Fulfilled" }, + { "EnumValue": 12, "Type": "CraftingOrderState", "Name": "Canceling" }, + { "EnumValue": 13, "Type": "CraftingOrderState", "Name": "Canceled" }, + { "EnumValue": 14, "Type": "CraftingOrderState", "Name": "Expiring" }, + { "EnumValue": 15, "Type": "CraftingOrderState", "Name": "Expired" } + ], + "MaxValue": 15, + "MinValue": 0, + "NumValues": 16 + }, + { + "Type": "Enumeration", + "Name": "CraftingOrderType", + "Fields": [ + { "EnumValue": 0, "Type": "CraftingOrderType", "Name": "Public" }, + { "EnumValue": 1, "Type": "CraftingOrderType", "Name": "Guild" }, + { "EnumValue": 2, "Type": "CraftingOrderType", "Name": "Personal" }, + { "EnumValue": 3, "Type": "CraftingOrderType", "Name": "Npc" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "CraftingReagentType", + "Fields": [ + { "EnumValue": 0, "Type": "CraftingReagentType", "Name": "Modifying" }, + { "EnumValue": 1, "Type": "CraftingReagentType", "Name": "Basic" }, + { "EnumValue": 2, "Type": "CraftingReagentType", "Name": "Finishing" }, + { "EnumValue": 3, "Type": "CraftingReagentType", "Name": "Automatic" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ItemRecraftFlags", + "Fields": [ + { "EnumValue": 1, "Type": "ItemRecraftFlags", "Name": "ItemRecraftFlagInvalid" } + ], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "NpcCraftingOrderSetFlags", + "Fields": [ + { + "EnumValue": 1, + "Type": "NpcCraftingOrderSetFlags", + "Name": "CraftingOrderFlagAllowMultiple" + }, + { + "EnumValue": 2, + "Type": "NpcCraftingOrderSetFlags", + "Name": "CraftingOrderFlagAllowDuplicate" + } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "Profession", + "Fields": [ + { "EnumValue": 0, "Type": "Profession", "Name": "FirstAid" }, + { "EnumValue": 1, "Type": "Profession", "Name": "Blacksmithing" }, + { "EnumValue": 2, "Type": "Profession", "Name": "Leatherworking" }, + { "EnumValue": 3, "Type": "Profession", "Name": "Alchemy" }, + { "EnumValue": 4, "Type": "Profession", "Name": "Herbalism" }, + { "EnumValue": 5, "Type": "Profession", "Name": "Cooking" }, + { "EnumValue": 6, "Type": "Profession", "Name": "Mining" }, + { "EnumValue": 7, "Type": "Profession", "Name": "Tailoring" }, + { "EnumValue": 8, "Type": "Profession", "Name": "Engineering" }, + { "EnumValue": 9, "Type": "Profession", "Name": "Enchanting" }, + { "EnumValue": 10, "Type": "Profession", "Name": "Fishing" }, + { "EnumValue": 11, "Type": "Profession", "Name": "Skinning" }, + { "EnumValue": 12, "Type": "Profession", "Name": "Jewelcrafting" }, + { "EnumValue": 13, "Type": "Profession", "Name": "Inscription" }, + { "EnumValue": 14, "Type": "Profession", "Name": "Archaeology" } + ], + "MaxValue": 14, + "MinValue": 0, + "NumValues": 15 + }, + { + "Type": "Enumeration", + "Name": "ProfessionActionType", + "Fields": [ + { "EnumValue": 0, "Type": "ProfessionActionType", "Name": "Craft" }, + { "EnumValue": 1, "Type": "ProfessionActionType", "Name": "Gather" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "ProfessionEffect", + "Fields": [ + { "EnumValue": 0, "Type": "ProfessionEffect", "Name": "Skill" }, + { "EnumValue": 1, "Type": "ProfessionEffect", "Name": "StatInspiration" }, + { "EnumValue": 2, "Type": "ProfessionEffect", "Name": "StatResourcefulness" }, + { "EnumValue": 3, "Type": "ProfessionEffect", "Name": "StatFinesse" }, + { "EnumValue": 4, "Type": "ProfessionEffect", "Name": "StatDeftness" }, + { "EnumValue": 5, "Type": "ProfessionEffect", "Name": "StatPerception" }, + { "EnumValue": 6, "Type": "ProfessionEffect", "Name": "StatCraftingSpeed" }, + { "EnumValue": 7, "Type": "ProfessionEffect", "Name": "StatMulticraft" }, + { "EnumValue": 8, "Type": "ProfessionEffect", "Name": "UnlockReagentSlot" }, + { "EnumValue": 9, "Type": "ProfessionEffect", "Name": "ModInspiration" }, + { "EnumValue": 10, "Type": "ProfessionEffect", "Name": "ModResourcefulness" }, + { "EnumValue": 11, "Type": "ProfessionEffect", "Name": "ModFinesse" }, + { "EnumValue": 12, "Type": "ProfessionEffect", "Name": "ModDeftness" }, + { "EnumValue": 13, "Type": "ProfessionEffect", "Name": "ModPerception" }, + { "EnumValue": 14, "Type": "ProfessionEffect", "Name": "ModCraftingSpeed" }, + { "EnumValue": 15, "Type": "ProfessionEffect", "Name": "ModMulticraft" }, + { "EnumValue": 16, "Type": "ProfessionEffect", "Name": "ModUnused_1" }, + { "EnumValue": 17, "Type": "ProfessionEffect", "Name": "ModUnused_2" }, + { + "EnumValue": 18, + "Type": "ProfessionEffect", + "Name": "ModCraftExtraQuantity" + }, + { + "EnumValue": 19, + "Type": "ProfessionEffect", + "Name": "ModGatherExtraQuantity" + }, + { "EnumValue": 20, "Type": "ProfessionEffect", "Name": "ModCraftCritSize" }, + { + "EnumValue": 21, + "Type": "ProfessionEffect", + "Name": "ModCraftReductionQuantity" + }, + { "EnumValue": 22, "Type": "ProfessionEffect", "Name": "DecreaseDifficulty" }, + { "EnumValue": 23, "Type": "ProfessionEffect", "Name": "IncreaseDifficulty" }, + { "EnumValue": 24, "Type": "ProfessionEffect", "Name": "ModSkillGain" }, + { + "EnumValue": 25, + "Type": "ProfessionEffect", + "Name": "AccumulateRanksByLabel" + }, + { "EnumValue": 26, "Type": "ProfessionEffect", "Name": "StatIngenuity" }, + { "EnumValue": 27, "Type": "ProfessionEffect", "Name": "ModConcentration" }, + { "EnumValue": 28, "Type": "ProfessionEffect", "Name": "Tokenizer" }, + { "EnumValue": 29, "Type": "ProfessionEffect", "Name": "ModIngenuity" }, + { "EnumValue": 30, "Type": "ProfessionEffect", "Name": "ConcentrationRefund" } + ], + "MaxValue": 30, + "MinValue": 0, + "NumValues": 31 + }, + { + "Type": "Enumeration", + "Name": "ProfessionRating", + "Fields": [ + { "EnumValue": 0, "Type": "ProfessionRating", "Name": "Inspiration" }, + { "EnumValue": 1, "Type": "ProfessionRating", "Name": "Resourcefulness" }, + { "EnumValue": 2, "Type": "ProfessionRating", "Name": "Finesse" }, + { "EnumValue": 3, "Type": "ProfessionRating", "Name": "Deftness" }, + { "EnumValue": 4, "Type": "ProfessionRating", "Name": "Perception" }, + { "EnumValue": 5, "Type": "ProfessionRating", "Name": "CraftingSpeed" }, + { "EnumValue": 6, "Type": "ProfessionRating", "Name": "Multicraft" }, + { "EnumValue": 7, "Type": "ProfessionRating", "Name": "Ingenuity" }, + { "EnumValue": 8, "Type": "ProfessionRating", "Name": "Unused_2" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "ProfessionRatingType", + "Fields": [ + { "EnumValue": 0, "Type": "ProfessionRatingType", "Name": "Craft" }, + { "EnumValue": 1, "Type": "ProfessionRatingType", "Name": "Gather" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "RcoCloseReason", + "Fields": [ + { "EnumValue": 0, "Type": "RcoCloseReason", "Name": "RcoCloseFulfill" }, + { "EnumValue": 1, "Type": "RcoCloseReason", "Name": "RcoCloseExpire" }, + { "EnumValue": 2, "Type": "RcoCloseReason", "Name": "RcoCloseCancel" }, + { "EnumValue": 3, "Type": "RcoCloseReason", "Name": "RcoCloseReject" }, + { "EnumValue": 4, "Type": "RcoCloseReason", "Name": "RcoCloseGmCancel" }, + { "EnumValue": 5, "Type": "RcoCloseReason", "Name": "RcoCloseCrafterFulfill" }, + { "EnumValue": 6, "Type": "RcoCloseReason", "Name": "RcoCloseInvalid" } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "SkinningState", + "Fields": [ + { "EnumValue": 0, "Type": "SkinningState", "Name": "None" }, + { "EnumValue": 1, "Type": "SkinningState", "Name": "Reserved" }, + { "EnumValue": 2, "Type": "SkinningState", "Name": "Skinning" }, + { "EnumValue": 3, "Type": "SkinningState", "Name": "Looting" }, + { "EnumValue": 4, "Type": "SkinningState", "Name": "Skinned" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Values": [ + { "Value": 2, "Type": "number", "Name": "NUM_PRIMARY_PROFESSIONS" }, + { + "Value": 4, + "Type": "number", + "Name": "CLASSIC_PROFESSION_PARENT_TIER_INDEX" + }, + { "Value": 960, "Type": "number", "Name": "RUNEFORGING_SKILL_LINE_ID" }, + { "Value": 210, "Type": "number", "Name": "RUNEFORGING_ROOT_CATEGORY_ID" }, + { "Value": 12, "Type": "number", "Name": "MAX_CRAFTING_REAGENT_SLOTS" }, + { "Value": 0, "Type": "number", "Name": "CRAFTING_ORDER_CLAIM_DURATION" }, + { + "Value": 0, + "Type": "number", + "Name": "PUBLIC_CRAFTING_ORDER_STALE_THRESHOLD" + }, + { "Value": 30, "Type": "number", "Name": "CRAFTING_ORDER_ITEM_RETENTION" } + ], + "Type": "Constants", + "Name": "ProfessionConsts" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ProfTraitPerkNodeFlags", + "Fields": [ + { "EnumValue": 1, "Type": "ProfTraitPerkNodeFlags", "Name": "UnlocksSubpath" }, + { "EnumValue": 2, "Type": "ProfTraitPerkNodeFlags", "Name": "IsMajorBonus" } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "ProfessionsSpecPathState", + "Fields": [ + { "EnumValue": 0, "Type": "ProfessionsSpecPathState", "Name": "Locked" }, + { "EnumValue": 1, "Type": "ProfessionsSpecPathState", "Name": "Progressing" }, + { "EnumValue": 2, "Type": "ProfessionsSpecPathState", "Name": "Completed" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ProfessionsSpecPerkState", + "Fields": [ + { "EnumValue": 0, "Type": "ProfessionsSpecPerkState", "Name": "Unearned" }, + { "EnumValue": 1, "Type": "ProfessionsSpecPerkState", "Name": "Pending" }, + { "EnumValue": 2, "Type": "ProfessionsSpecPerkState", "Name": "Earned" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ProfessionsSpecTabState", + "Fields": [ + { "EnumValue": 0, "Type": "ProfessionsSpecTabState", "Name": "Locked" }, + { "EnumValue": 1, "Type": "ProfessionsSpecTabState", "Name": "Unlocked" }, + { "EnumValue": 2, "Type": "ProfessionsSpecTabState", "Name": "Unlockable" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [{ "Nilable": false, "Type": "cstring", "Name": "description" }], + "Type": "Structure", + "Name": "ProfTabHighlight" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "rootNodeID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "rootIconID" }, + { + "Nilable": false, + "InnerType": "ProfTabHighlight", + "Type": "table", + "Name": "highlights" + } + ], + "Type": "Structure", + "Name": "ProfTabInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "perkID" }, + { "Nilable": false, "Type": "bool", "Name": "isMajorPerk" } + ], + "Type": "Structure", + "Name": "SpecPerkInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "numAvailable" }, + { "Nilable": false, "Type": "cstring", "Name": "currencyName" } + ], + "Type": "Structure", + "Name": "SpecializationCurrencyInfo" + }, + { + "Fields": [ + { "Nilable": false, "Default": true, "Type": "bool", "Name": "enabled" }, + { "Nilable": false, "Type": "cstring", "Name": "errorReason" } + ], + "Type": "Structure", + "Name": "SpecializationTabInfo" + } + ] + }, + { + "Namespace": "C_ProfSpecs", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canRefund" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "pathID" }, + { "Nilable": false, "Type": "number", "Name": "configID" } + ], + "Type": "Function", + "Name": "CanRefundPath" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canUnlock" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "tabTreeID" }, + { "Nilable": false, "Type": "number", "Name": "configID" } + ], + "Type": "Function", + "Name": "CanUnlockTab" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "childIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "pathID" }], + "Type": "Function", + "Name": "GetChildrenForPath" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "GetConfigIDForSkillLine" + }, + { + "Returns": [ + { "Nilable": false, "Type": "SpecializationCurrencyInfo", "Name": "info" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "GetCurrencyInfoForSkillLine" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "defaultSpecSkillLine" } + ], + "Type": "Function", + "Name": "GetDefaultSpecSkillLine" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "description" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "pathID" }], + "Type": "Function", + "Name": "GetDescriptionForPath" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "description" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "perkID" }], + "Type": "Function", + "Name": "GetDescriptionForPerk" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "entryID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "perkID" }], + "Type": "Function", + "Name": "GetEntryIDForPerk" + }, + { + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "profName" }], + "Type": "Function", + "Name": "GetNewSpecReminderProfName" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "SpecPerkInfo", + "Type": "table", + "Name": "perkInfos" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "pathID" }], + "Type": "Function", + "Name": "GetPerksForPath" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "rootPathID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "tabTreeID" }], + "Type": "Function", + "Name": "GetRootPathForTab" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "sourceText" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "pathID" }, + { "Nilable": false, "Type": "number", "Name": "configID" } + ], + "Type": "Function", + "Name": "GetSourceTextForPath" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "specTabIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "GetSpecTabIDsForSkillLine" + }, + { + "Returns": [ + { "Nilable": false, "Type": "SpecializationTabInfo", "Name": "specTabInfo" } + ], + "Type": "Function", + "Name": "GetSpecTabInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "currencyID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "pathID" }], + "Type": "Function", + "Name": "GetSpendCurrencyForPath" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "entryID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "pathID" }], + "Type": "Function", + "Name": "GetSpendEntryForPath" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ProfessionsSpecPathState", "Name": "state" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "pathID" }, + { "Nilable": false, "Type": "number", "Name": "configID" } + ], + "Type": "Function", + "Name": "GetStateForPath" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ProfessionsSpecPerkState", "Name": "state" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "perkID" }, + { "Nilable": false, "Type": "number", "Name": "configID" } + ], + "Type": "Function", + "Name": "GetStateForPerk" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ProfessionsSpecTabState", "Name": "tabInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "tabTreeID" }, + { "Nilable": false, "Type": "number", "Name": "configID" } + ], + "Type": "Function", + "Name": "GetStateForTab" + }, + { + "Returns": [{ "Nilable": true, "Type": "ProfTabInfo", "Name": "tabInfo" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "tabTreeID" }], + "Type": "Function", + "Name": "GetTabInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "entryID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "pathID" }], + "Type": "Function", + "Name": "GetUnlockEntryForPath" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "unlockRank" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "perkID" }], + "Type": "Function", + "Name": "GetUnlockRankForPerk" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "showReminder" }], + "Type": "Function", + "Name": "ShouldShowPointsReminder" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "showReminder" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "ShouldShowPointsReminderForSkillLine" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "showSpecTab" }], + "Type": "Function", + "Name": "ShouldShowSpecTab" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasSpecialization" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "SkillLineHasSpecialization" + } + ], + "Type": "System", + "Name": "ProfessionSpecUI", + "Events": [ + { + "LiteralName": "SKILL_LINE_SPECS_RANKS_CHANGED", + "Type": "Event", + "Name": "SkillLineSpecsRanksChanged" + }, + { + "LiteralName": "SKILL_LINE_SPECS_UNLOCKED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "skillLineID" }, + { "Nilable": false, "Type": "number", "Name": "tradeSkillID" } + ], + "Type": "Event", + "Name": "SkillLineSpecsUnlocked" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "PvPFaction", + "Fields": [ + { "EnumValue": 0, "Type": "PvPFaction", "Name": "Horde" }, + { "EnumValue": 1, "Type": "PvPFaction", "Name": "Alliance" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + } + ] + }, + { + "Tables": [ + { + "Values": [{ "Value": 80, "Type": "number", "Name": "MaxPlayersPerInstance" }], + "Type": "Constants", + "Name": "PvpInfoConsts" + } + ] + }, + { + "Namespace": "C_PvP", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "arePvpTalentsUnlocked" } + ], + "Type": "Function", + "Name": "ArePvpTalentsUnlocked" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canDisplay" }], + "Type": "Function", + "Name": "CanDisplayDamage" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canDisplay" }], + "Type": "Function", + "Name": "CanDisplayDeaths" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canDisplay" }], + "Type": "Function", + "Name": "CanDisplayHealing" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canDisplay" }], + "Type": "Function", + "Name": "CanDisplayHonorableKills" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canDisplay" }], + "Type": "Function", + "Name": "CanDisplayKillingBlows" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canUse" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "CanPlayerUseRatedPVPUI" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canTogglePvP" }], + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "toggle" }], + "Type": "Function", + "Name": "CanToggleWarMode" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canTogglePvPInArea" }], + "Type": "Function", + "Name": "CanToggleWarModeInArea" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "doesAffect" }], + "Type": "Function", + "Name": "DoesMatchOutcomeAffectRating" + }, + { + "Returns": [{ "Nilable": true, "Type": "PvpBrawlInfo", "Name": "brawlInfo" }], + "Type": "Function", + "Name": "GetActiveBrawlInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "bracket" }], + "Type": "Function", + "Name": "GetActiveMatchBracket" + }, + { + "Returns": [{ "Nilable": false, "Type": "time_t", "Name": "seconds" }], + "Type": "Function", + "Name": "GetActiveMatchDuration" + }, + { + "Returns": [{ "Nilable": false, "Type": "PvPMatchState", "Name": "state" }], + "Type": "Function", + "Name": "GetActiveMatchState" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "winner" }], + "Type": "Function", + "Name": "GetActiveMatchWinner" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "playerToken" }], + "Type": "Function", + "Name": "GetArenaCrowdControlInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "honor" }, + { "Nilable": false, "Type": "number", "Name": "experience" }, + { + "Nilable": true, + "InnerType": "BattlefieldItemReward", + "Type": "table", + "Name": "itemRewards" + }, + { + "Nilable": true, + "InnerType": "BattlefieldCurrencyReward", + "Type": "table", + "Name": "currencyRewards" + }, + { "Nilable": true, "Type": "RoleShortageReward", "Name": "roleShortageBonus" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "teamSize" }], + "Type": "Function", + "Name": "GetArenaRewards" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "honor" }, + { "Nilable": false, "Type": "number", "Name": "experience" }, + { + "Nilable": true, + "InnerType": "BattlefieldItemReward", + "Type": "table", + "Name": "itemRewards" + }, + { + "Nilable": true, + "InnerType": "BattlefieldCurrencyReward", + "Type": "table", + "Name": "currencyRewards" + }, + { "Nilable": true, "Type": "RoleShortageReward", "Name": "roleShortageBonus" } + ], + "Type": "Function", + "Name": "GetArenaSkirmishRewards" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "specializationID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "queueID" }], + "Type": "Function", + "Name": "GetAssignedSpecForBattlefieldQueue" + }, + { + "Returns": [{ "Nilable": true, "Type": "PvpBrawlInfo", "Name": "brawlInfo" }], + "Documentation": [ + "If nil is returned, PVP_BRAWL_INFO_UPDATED event will be sent when the data is ready." + ], + "Type": "Function", + "Name": "GetAvailableBrawlInfo" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "uiPosx" }, + { "Nilable": true, "Type": "number", "Name": "uiPosy" }, + { "Nilable": false, "Type": "number", "Name": "flagTexture" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "flagIndex" }, + { "Nilable": false, "Type": "number", "Name": "uiMapId" } + ], + "Type": "Function", + "Name": "GetBattlefieldFlagPosition" + }, + { + "Returns": [ + { "Nilable": false, "Type": "BattlefieldVehicleInfo", "Name": "info" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "vehicleIndex" }, + { "Nilable": false, "Type": "number", "Name": "uiMapID" } + ], + "Type": "Function", + "Name": "GetBattlefieldVehicleInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "BattlefieldVehicleInfo", + "Type": "table", + "Name": "vehicles" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetBattlefieldVehicles" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "honor" }, + { "Nilable": false, "Type": "number", "Name": "experience" }, + { + "Nilable": true, + "InnerType": "BattlefieldItemReward", + "Type": "table", + "Name": "itemRewards" + }, + { + "Nilable": true, + "InnerType": "BattlefieldCurrencyReward", + "Type": "table", + "Name": "currencyRewards" + }, + { "Nilable": true, "Type": "RoleShortageReward", "Name": "roleShortageBonus" }, + { "Nilable": false, "Type": "bool", "Name": "hasWon" } + ], + "Arguments": [{ "Nilable": false, "Type": "BrawlType", "Name": "brawlType" }], + "Type": "Function", + "Name": "GetBrawlRewards" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "minItemLevel" }], + "Type": "Function", + "Name": "GetBrawlSoloRBGMinItemLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "statID" }], + "Type": "Function", + "Name": "GetCustomVictoryStatID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "PvpScalingData", + "Type": "table", + "Name": "pvpScalingData" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "specializationID" }], + "Type": "Function", + "Name": "GetGlobalPvpScalingInfoForSpecID" + }, + { + "Returns": [{ "Nilable": true, "Type": "HonorRewardInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "honorLevel" }], + "Type": "Function", + "Name": "GetHonorRewardInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "LevelUpBattlegroundInfo", + "Type": "table", + "Name": "battlefields" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "level" }], + "Type": "Function", + "Name": "GetLevelUpBattlegrounds" + }, + { + "Returns": [{ "Nilable": true, "Type": "MatchPVPStatColumn", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "pvpStatID" }], + "Type": "Function", + "Name": "GetMatchPVPStatColumn" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "MatchPVPStatColumn", + "Type": "table", + "Name": "columns" + } + ], + "Type": "Function", + "Name": "GetMatchPVPStatColumns" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "nextHonorLevelWithReward" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "honorLevel" }], + "Type": "Function", + "Name": "GetNextHonorLevelForReward" + }, + { + "Returns": [{ "Nilable": false, "Type": "time_t", "Name": "pvpWaitTime" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetOutdoorPvPWaitTime" + }, + { + "Returns": [{ "Nilable": true, "Type": "PVPPersonalRatedInfo", "Name": "info" }], + "Type": "Function", + "Name": "GetPVPActiveMatchPersonalRatedInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "RatedMatchDeserterPenalty", + "Name": "deserterPenalty" + } + ], + "Type": "Function", + "Name": "GetPVPActiveRatedMatchDeserterPenalty" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "achievementID" }], + "Type": "Function", + "Name": "GetPVPSeasonRewardAchievementID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "RatedBGBlitzSpecStats", "Name": "specStats" } + ], + "Type": "Function", + "Name": "GetPersonalRatedBGBlitzSpecStats" + }, + { + "Returns": [ + { "Nilable": true, "Type": "RatedSoloShuffleSpecStats", "Name": "specStats" } + ], + "Type": "Function", + "Name": "GetPersonalRatedSoloShuffleSpecStats" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "PVPPostMatchCurrencyReward", + "Type": "table", + "Name": "rewards" + } + ], + "Type": "Function", + "Name": "GetPostMatchCurrencyRewards" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "PVPPostMatchItemReward", + "Type": "table", + "Name": "rewards" + } + ], + "Type": "Function", + "Name": "GetPostMatchItemRewards" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "unlockLevel" }], + "Type": "Function", + "Name": "GetPvpTalentsUnlockedLevel" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "id" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "tierEnum" }, + { "Nilable": false, "Type": "luaIndex", "Name": "bracketEnum" } + ], + "Type": "Function", + "Name": "GetPvpTierID" + }, + { + "Returns": [{ "Nilable": true, "Type": "PvpTierInfo", "Name": "pvpTierInfo" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "tierID" }], + "Type": "Function", + "Name": "GetPvpTierInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "RandomBGInfo", "Name": "info" }], + "Type": "Function", + "Name": "GetRandomBGInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "honor" }, + { "Nilable": false, "Type": "number", "Name": "experience" }, + { + "Nilable": true, + "InnerType": "BattlefieldItemReward", + "Type": "table", + "Name": "itemRewards" + }, + { + "Nilable": true, + "InnerType": "BattlefieldCurrencyReward", + "Type": "table", + "Name": "currencyRewards" + }, + { "Nilable": true, "Type": "RoleShortageReward", "Name": "roleShortageBonus" } + ], + "Type": "Function", + "Name": "GetRandomBGRewards" + }, + { + "Returns": [{ "Nilable": false, "Type": "RandomBGInfo", "Name": "info" }], + "Type": "Function", + "Name": "GetRandomEpicBGInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "honor" }, + { "Nilable": false, "Type": "number", "Name": "experience" }, + { + "Nilable": true, + "InnerType": "BattlefieldItemReward", + "Type": "table", + "Name": "itemRewards" + }, + { + "Nilable": true, + "InnerType": "BattlefieldCurrencyReward", + "Type": "table", + "Name": "currencyRewards" + }, + { "Nilable": true, "Type": "RoleShortageReward", "Name": "roleShortageBonus" } + ], + "Type": "Function", + "Name": "GetRandomEpicBGRewards" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "honor" }, + { "Nilable": false, "Type": "number", "Name": "experience" }, + { + "Nilable": true, + "InnerType": "BattlefieldItemReward", + "Type": "table", + "Name": "itemRewards" + }, + { + "Nilable": true, + "InnerType": "BattlefieldCurrencyReward", + "Type": "table", + "Name": "currencyRewards" + }, + { "Nilable": true, "Type": "RoleShortageReward", "Name": "roleShortageBonus" } + ], + "Type": "Function", + "Name": "GetRatedBGRewards" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "minItemLevel" }], + "Type": "Function", + "Name": "GetRatedSoloRBGMinItemLevel" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "honor" }, + { "Nilable": false, "Type": "number", "Name": "experience" }, + { + "Nilable": true, + "InnerType": "BattlefieldItemReward", + "Type": "table", + "Name": "itemRewards" + }, + { + "Nilable": true, + "InnerType": "BattlefieldCurrencyReward", + "Type": "table", + "Name": "currencyRewards" + }, + { "Nilable": true, "Type": "RoleShortageReward", "Name": "roleShortageBonus" } + ], + "Type": "Function", + "Name": "GetRatedSoloRBGRewards" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "minItemLevel" }], + "Type": "Function", + "Name": "GetRatedSoloShuffleMinItemLevel" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "honor" }, + { "Nilable": false, "Type": "number", "Name": "experience" }, + { + "Nilable": true, + "InnerType": "BattlefieldItemReward", + "Type": "table", + "Name": "itemRewards" + }, + { + "Nilable": true, + "InnerType": "BattlefieldCurrencyReward", + "Type": "table", + "Name": "currencyRewards" + }, + { "Nilable": true, "Type": "RoleShortageReward", "Name": "roleShortageBonus" } + ], + "Type": "Function", + "Name": "GetRatedSoloShuffleRewards" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "activityItemLevel" }, + { "Nilable": false, "Type": "number", "Name": "weeklyItemLevel" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "pvpTierEnum" }], + "Type": "Function", + "Name": "GetRewardItemLevelsByTierEnum" + }, + { + "Returns": [{ "Nilable": true, "Type": "PVPScoreInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "offsetIndex" }], + "Type": "Function", + "Name": "GetScoreInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "PVPScoreInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "GetScoreInfoByPlayerGuid" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "tierID" }, + { "Nilable": true, "Type": "number", "Name": "nextTierID" } + ], + "Type": "Function", + "Name": "GetSeasonBestInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "BattlemasterListInfo", + "Name": "battlemasterListInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "pvpBracket" }], + "Type": "Function", + "Name": "GetSkirmishInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "PvpBrawlInfo", "Name": "brawlInfo" }], + "Type": "Function", + "Name": "GetSpecialEventBrawlInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "PVPTeamInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "factionIndex" }], + "Type": "Function", + "Name": "GetTeamInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "uiDisplaySeason" }], + "Type": "Function", + "Name": "GetUIDisplaySeason" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "rewardBonus" }], + "Type": "Function", + "Name": "GetWarModeRewardBonus" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "defaultBonus" }], + "Type": "Function", + "Name": "GetWarModeRewardBonusDefault" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "rewardAchieved" }, + { "Nilable": false, "Type": "bool", "Name": "lastWeekRewardAchieved" }, + { "Nilable": false, "Type": "bool", "Name": "lastWeekRewardClaimed" }, + { "Nilable": false, "Type": "number", "Name": "pvpTierMaxFromWins" } + ], + "Type": "Function", + "Name": "GetWeeklyChestInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "pvpType" }, + { "Nilable": false, "Type": "bool", "Name": "isSubZonePvP" }, + { "Nilable": true, "Type": "cstring", "Name": "factionName" } + ], + "Type": "Function", + "Name": "GetZonePVPInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasArenaSkirmishWinToday" } + ], + "Type": "Function", + "Name": "HasArenaSkirmishWinToday" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isActiveBattlefield" }], + "Type": "Function", + "Name": "IsActiveBattlefield" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "registered" }], + "Type": "Function", + "Name": "IsActiveMatchRegistered" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isArena" }], + "Type": "Function", + "Name": "IsArena" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isBattleground" }], + "Type": "Function", + "Name": "IsBattleground" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "battlegroundActive" }, + { "Nilable": false, "Type": "bool", "Name": "brawlActive" } + ], + "Type": "Function", + "Name": "IsBattlegroundEnlistmentBonusActive" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isBrawlSoloRBG" }], + "Type": "Function", + "Name": "IsBrawlSoloRBG" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isBrawlSoloShuffle" }], + "Type": "Function", + "Name": "IsBrawlSoloShuffle" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isInBrawl" }], + "Type": "Function", + "Name": "IsInBrawl" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "bool", + "Name": "isInRatedMatchWithDeserterPenalty" + } + ], + "Type": "Function", + "Name": "IsInRatedMatchWithDeserterPenalty" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isActive" }], + "Type": "Function", + "Name": "IsMatchActive" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isComplete" }], + "Type": "Function", + "Name": "IsMatchComplete" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "asArena" }], + "Type": "Function", + "Name": "IsMatchConsideredArena" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFactional" }], + "Type": "Function", + "Name": "IsMatchFactional" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPVPMap" }], + "Type": "Function", + "Name": "IsPVPMap" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRatedArena" }], + "Type": "Function", + "Name": "IsRatedArena" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRatedBattleground" }], + "Type": "Function", + "Name": "IsRatedBattleground" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRatedMap" }], + "Type": "Function", + "Name": "IsRatedMap" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRatedSoloRBG" }], + "Type": "Function", + "Name": "IsRatedSoloRBG" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRatedSoloShuffle" }], + "Type": "Function", + "Name": "IsRatedSoloShuffle" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSoloRBG" }], + "Type": "Function", + "Name": "IsSoloRBG" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSoloShuffle" }], + "Type": "Function", + "Name": "IsSoloShuffle" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsSubZonePVPPOI" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "warModeActive" }], + "Type": "Function", + "Name": "IsWarModeActive" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "warModeDesired" }], + "Type": "Function", + "Name": "IsWarModeDesired" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "warModeEnabled" }], + "Type": "Function", + "Name": "IsWarModeFeatureEnabled" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isSpecialBrawl" } + ], + "Type": "Function", + "Name": "JoinBrawl" + }, + { "Type": "Function", "Name": "JoinRatedBGBlitz" }, + { + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "playerToken" }], + "Type": "Function", + "Name": "RequestCrowdControlSpell" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enablePVP" } + ], + "Type": "Function", + "Name": "SetPVP" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "warModeDesired" }], + "Type": "Function", + "Name": "SetWarModeDesired" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "args" }], + "Type": "Function", + "Name": "StartSoloRBGWarGameByName" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "opaqueID1" }, + { "Nilable": false, "Type": "number", "Name": "opaqueID2" }, + { "Nilable": false, "Type": "cstring", "Name": "specifiedMap" }, + { "Nilable": false, "Type": "bool", "Name": "tournamentRules" } + ], + "Type": "Function", + "Name": "StartSpectatorSoloRBGWarGame" + }, + { "Type": "Function", "Name": "TogglePVP" }, + { "Type": "Function", "Name": "ToggleWarMode" } + ], + "Type": "System", + "Name": "PvpInfo", + "Events": [ + { + "LiteralName": "ARENA_OPPONENT_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "unitToken" }, + { "Nilable": false, "Type": "cstring", "Name": "updateReason" } + ], + "Type": "Event", + "Name": "ArenaOpponentUpdate" + }, + { + "LiteralName": "ARENA_PREP_OPPONENT_SPECIALIZATIONS", + "Type": "Event", + "Name": "ArenaPrepOpponentSpecializations" + }, + { + "LiteralName": "ARENA_SEASON_WORLD_STATE", + "Type": "Event", + "Name": "ArenaSeasonWorldState" + }, + { + "LiteralName": "BATTLEFIELD_AUTO_QUEUE", + "Type": "Event", + "Name": "BattlefieldAutoQueue" + }, + { + "LiteralName": "BATTLEFIELD_AUTO_QUEUE_EJECT", + "Type": "Event", + "Name": "BattlefieldAutoQueueEject" + }, + { + "LiteralName": "BATTLEFIELD_QUEUE_TIMEOUT", + "Type": "Event", + "Name": "BattlefieldQueueTimeout" + }, + { + "LiteralName": "BATTLEFIELDS_CLOSED", + "Type": "Event", + "Name": "BattlefieldsClosed" + }, + { + "LiteralName": "BATTLEFIELDS_SHOW", + "Payload": [ + { "Nilable": true, "Type": "bool", "Name": "isArena" }, + { "Nilable": true, "Type": "number", "Name": "battleMasterListID" } + ], + "Type": "Event", + "Name": "BattlefieldsShow" + }, + { + "LiteralName": "BATTLEGROUND_OBJECTIVES_UPDATE", + "Type": "Event", + "Name": "BattlegroundObjectivesUpdate" + }, + { + "LiteralName": "BATTLEGROUND_POINTS_UPDATE", + "Type": "Event", + "Name": "BattlegroundPointsUpdate" + }, + { "LiteralName": "GDF_SIM_COMPLETE", "Type": "Event", "Name": "GdfSimComplete" }, + { + "LiteralName": "HONOR_LEVEL_UPDATE", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isHigherLevel" }], + "Type": "Event", + "Name": "HonorLevelUpdate" + }, + { + "LiteralName": "NOTIFY_PVP_AFK_RESULT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "offender" }, + { "Nilable": false, "Type": "number", "Name": "numBlackMarksOnOffender" }, + { "Nilable": false, "Type": "number", "Name": "numPlayersIHaveReported" } + ], + "Type": "Event", + "Name": "NotifyPvpAfkResult" + }, + { + "LiteralName": "PLAYER_ENTERING_BATTLEGROUND", + "Type": "Event", + "Name": "PlayerEnteringBattleground" + }, + { + "LiteralName": "PLAYER_JOINED_PVP_MATCH", + "Type": "Event", + "Name": "PlayerJoinedPvpMatch" + }, + { + "LiteralName": "POST_MATCH_CURRENCY_REWARD_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "PVPPostMatchCurrencyReward", "Name": "reward" } + ], + "Type": "Event", + "Name": "PostMatchCurrencyRewardUpdate" + }, + { + "LiteralName": "POST_MATCH_ITEM_REWARD_UPDATE", + "Type": "Event", + "Name": "PostMatchItemRewardUpdate" + }, + { + "LiteralName": "PVP_BRAWL_INFO_UPDATED", + "Type": "Event", + "Name": "PvpBrawlInfoUpdated" + }, + { "LiteralName": "PVP_MATCH_ACTIVE", "Type": "Event", "Name": "PvpMatchActive" }, + { + "LiteralName": "PVP_MATCH_COMPLETE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "winner" }, + { "Nilable": false, "Type": "time_t", "Name": "duration" } + ], + "Type": "Event", + "Name": "PvpMatchComplete" + }, + { + "LiteralName": "PVP_MATCH_INACTIVE", + "Type": "Event", + "Name": "PvpMatchInactive" + }, + { + "LiteralName": "PVP_MATCH_STATE_CHANGED", + "Type": "Event", + "Name": "PvpMatchStateChanged" + }, + { + "LiteralName": "PVP_RATED_STATS_UPDATE", + "Type": "Event", + "Name": "PvpRatedStatsUpdate" + }, + { + "LiteralName": "PVP_REWARDS_UPDATE", + "Type": "Event", + "Name": "PvpRewardsUpdate" + }, + { + "LiteralName": "PVP_ROLE_POPUP_HIDE", + "Payload": [ + { "Nilable": true, "Type": "PvpReadyCheckInfo", "Name": "readyCheckInfo" } + ], + "Type": "Event", + "Name": "PvpRolePopupHide" + }, + { + "LiteralName": "PVP_ROLE_POPUP_SHOW", + "Payload": [ + { "Nilable": false, "Type": "PvpReadyCheckInfo", "Name": "readyCheckInfo" } + ], + "Type": "Event", + "Name": "PvpRolePopupShow" + }, + { "LiteralName": "PVP_ROLE_UPDATE", "Type": "Event", "Name": "PvpRoleUpdate" }, + { + "LiteralName": "PVP_SPECIAL_EVENT_INFO_UPDATED", + "Type": "Event", + "Name": "PvpSpecialEventInfoUpdated" + }, + { + "LiteralName": "PVP_TYPES_ENABLED", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "wargameBattlegrounds" }, + { "Nilable": false, "Type": "bool", "Name": "ratedBattlegrounds" }, + { "Nilable": false, "Type": "bool", "Name": "ratedArenas" }, + { "Nilable": false, "Type": "bool", "Name": "ratedSoloShuffle" }, + { "Nilable": false, "Type": "bool", "Name": "ratedBGBlitz" } + ], + "Type": "Event", + "Name": "PvpTypesEnabled" + }, + { + "LiteralName": "PVP_VEHICLE_INFO_UPDATED", + "Type": "Event", + "Name": "PvpVehicleInfoUpdated" + }, + { + "LiteralName": "PVP_WORLDSTATE_UPDATE", + "Type": "Event", + "Name": "PvpWorldstateUpdate" + }, + { + "LiteralName": "PVPQUEUE_ANYWHERE_SHOW", + "Type": "Event", + "Name": "PvpqueueAnywhereShow" + }, + { + "LiteralName": "PVPQUEUE_ANYWHERE_UPDATE_AVAILABLE", + "Type": "Event", + "Name": "PvpqueueAnywhereUpdateAvailable" + }, + { + "LiteralName": "UPDATE_ACTIVE_BATTLEFIELD", + "Type": "Event", + "Name": "UpdateActiveBattlefield" + }, + { + "LiteralName": "UPDATE_BATTLEFIELD_SCORE", + "Type": "Event", + "Name": "UpdateBattlefieldScore" + }, + { + "LiteralName": "UPDATE_BATTLEFIELD_STATUS", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "battleFieldIndex" }], + "Type": "Event", + "Name": "UpdateBattlefieldStatus" + }, + { + "LiteralName": "WAR_MODE_STATUS_UPDATE", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "warModeEnabled" }], + "Type": "Event", + "Name": "WarModeStatusUpdate" + }, + { + "LiteralName": "WARGAME_INVITE_SENT", + "Type": "Event", + "Name": "WargameInviteSent" + }, + { + "LiteralName": "WARGAME_REQUEST_RESPONSE", + "Payload": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "responderGUID" }, + { "Nilable": true, "Type": "cstring", "Name": "responderName" }, + { "Nilable": false, "Type": "bool", "Name": "accepted" } + ], + "Type": "Event", + "Name": "WargameRequestResponse" + }, + { + "LiteralName": "WARGAME_REQUESTED", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "opposingPartyMemberName" }, + { "Nilable": false, "Type": "cstring", "Name": "battlegroundName" }, + { "Nilable": false, "Type": "time_t", "Name": "timeoutSeconds" }, + { "Nilable": false, "Type": "bool", "Name": "tournamentRules" } + ], + "Type": "Event", + "Name": "WargameRequested" + }, + { "LiteralName": "WORLD_PVP_QUEUE", "Type": "Event", "Name": "WorldPvpQueue" } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "BrawlType", + "Fields": [ + { "EnumValue": 0, "Type": "BrawlType", "Name": "None" }, + { "EnumValue": 1, "Type": "BrawlType", "Name": "Battleground" }, + { "EnumValue": 2, "Type": "BrawlType", "Name": "Arena" }, + { "EnumValue": 3, "Type": "BrawlType", "Name": "LFG" }, + { "EnumValue": 4, "Type": "BrawlType", "Name": "SoloShuffle" }, + { "EnumValue": 5, "Type": "BrawlType", "Name": "SoloRbg" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "PvPMatchState", + "Fields": [ + { "EnumValue": 0, "Type": "PvPMatchState", "Name": "Inactive" }, + { "EnumValue": 1, "Type": "PvPMatchState", "Name": "Waiting" }, + { "EnumValue": 2, "Type": "PvPMatchState", "Name": "StartUp" }, + { "EnumValue": 3, "Type": "PvPMatchState", "Name": "Engaged" }, + { "EnumValue": 4, "Type": "PvPMatchState", "Name": "PostRound" }, + { "EnumValue": 5, "Type": "PvPMatchState", "Name": "Complete" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Structure", + "Name": "BattlefieldCurrencyReward" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Structure", + "Name": "BattlefieldItemReward" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "honor" }, + { "Nilable": false, "Type": "number", "Name": "experience" }, + { + "Nilable": true, + "InnerType": "BattlefieldItemReward", + "Type": "table", + "Name": "itemRewards" + }, + { + "Nilable": true, + "InnerType": "BattlefieldCurrencyReward", + "Type": "table", + "Name": "currencyRewards" + }, + { "Nilable": true, "Type": "RoleShortageReward", "Name": "roleShortageBonus" } + ], + "Type": "Structure", + "Name": "BattlefieldRewards" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "bool", "Name": "isOccupied" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }, + { "Nilable": false, "Type": "number", "Name": "textureWidth" }, + { "Nilable": false, "Type": "number", "Name": "textureHeight" }, + { "Nilable": false, "Type": "number", "Name": "facing" }, + { "Nilable": false, "Type": "bool", "Name": "isPlayer" }, + { "Nilable": false, "Type": "bool", "Name": "isAlive" }, + { "Nilable": false, "Type": "bool", "Name": "shouldDrawBelowPlayerBlips" } + ], + "Type": "Structure", + "Name": "BattlefieldVehicleInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "instanceType" }, + { "Nilable": false, "Type": "number", "Name": "minPlayers" }, + { "Nilable": false, "Type": "number", "Name": "maxPlayers" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "string", "Name": "longDescription" }, + { "Nilable": false, "Type": "string", "Name": "shortDescription" } + ], + "Type": "Structure", + "Name": "BattlemasterListInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "honorLevelName" }, + { "Nilable": false, "Type": "fileID", "Name": "badgeFileDataID" }, + { "Nilable": false, "Type": "number", "Name": "achievementRewardedID" } + ], + "Type": "Structure", + "Name": "HonorRewardInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "bool", "Name": "isEpic" } + ], + "Type": "Structure", + "Name": "LevelUpBattlegroundInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "pvpStatID" }, + { "Nilable": false, "Type": "number", "Name": "columnHeaderID" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "tooltipTitle" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" } + ], + "Type": "Structure", + "Name": "MatchPVPStatColumn" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "brawlID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "shortDescription" }, + { "Nilable": false, "Type": "string", "Name": "longDescription" }, + { "Nilable": false, "Type": "bool", "Name": "canQueue" }, + { "Nilable": false, "Type": "number", "Name": "minLevel" }, + { "Nilable": false, "Type": "number", "Name": "maxLevel" }, + { "Nilable": false, "Type": "bool", "Name": "groupsAllowed" }, + { "Nilable": true, "Type": "number", "Name": "timeLeftUntilNextChange" }, + { "Nilable": false, "Type": "BrawlType", "Name": "brawlType" }, + { + "Nilable": false, + "InnerType": "string", + "Type": "table", + "Name": "mapNames" + }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "includesAllArenas" + }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "minItemLevel" } + ], + "Type": "Structure", + "Name": "PvpBrawlInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "personalRating" }, + { "Nilable": false, "Type": "number", "Name": "bestSeasonRating" }, + { "Nilable": false, "Type": "number", "Name": "bestWeeklyRating" }, + { "Nilable": false, "Type": "number", "Name": "seasonPlayed" }, + { "Nilable": false, "Type": "number", "Name": "seasonWon" }, + { "Nilable": false, "Type": "number", "Name": "weeklyPlayed" }, + { "Nilable": false, "Type": "number", "Name": "weeklyWon" }, + { "Nilable": false, "Type": "number", "Name": "lastWeeksBestRating" }, + { "Nilable": false, "Type": "bool", "Name": "hasWonBracketToday" }, + { "Nilable": false, "Type": "number", "Name": "tier" }, + { "Nilable": true, "Type": "number", "Name": "ranking" }, + { "Nilable": false, "Type": "number", "Name": "roundsSeasonPlayed" }, + { "Nilable": false, "Type": "number", "Name": "roundsSeasonWon" }, + { "Nilable": false, "Type": "number", "Name": "roundsWeeklyPlayed" }, + { "Nilable": false, "Type": "number", "Name": "roundsWeeklyWon" } + ], + "Type": "Structure", + "Name": "PVPPersonalRatedInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "currencyType" }, + { "Nilable": false, "Type": "number", "Name": "quantityChanged" } + ], + "Type": "Structure", + "Name": "PVPPostMatchCurrencyReward" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "type" }, + { "Nilable": false, "Type": "string", "Name": "link" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": false, "Type": "number", "Name": "sex" }, + { "Nilable": false, "Type": "bool", "Name": "isUpgraded" } + ], + "Type": "Structure", + "Name": "PVPPostMatchItemReward" + }, + { + "Fields": [ + { + "Nilable": false, + "InnerType": "PvpRoleQueueInfo", + "Type": "table", + "Name": "roles" + }, + { "Nilable": false, "Type": "number", "Name": "numPlayersAccepted" }, + { "Nilable": false, "Type": "number", "Name": "numPlayersDeclined" }, + { "Nilable": false, "Type": "number", "Name": "totalNumPlayers" } + ], + "Type": "Structure", + "Name": "PvpReadyCheckInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "role" }, + { "Nilable": false, "Type": "number", "Name": "totalRole" }, + { "Nilable": false, "Type": "number", "Name": "totalAccepted" }, + { "Nilable": false, "Type": "number", "Name": "totalDeclined" } + ], + "Type": "Structure", + "Name": "PvpRoleQueueInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "scalingDataID" }, + { "Nilable": false, "Type": "number", "Name": "specializationID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "value" } + ], + "Type": "Structure", + "Name": "PvpScalingData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "number", "Name": "killingBlows" }, + { "Nilable": false, "Type": "number", "Name": "honorableKills" }, + { "Nilable": false, "Type": "number", "Name": "deaths" }, + { "Nilable": false, "Type": "number", "Name": "honorGained" }, + { "Nilable": false, "Type": "number", "Name": "faction" }, + { "Nilable": false, "Type": "string", "Name": "raceName" }, + { "Nilable": false, "Type": "string", "Name": "className" }, + { "Nilable": false, "Type": "string", "Name": "classToken" }, + { "Nilable": false, "Type": "number", "Name": "damageDone" }, + { "Nilable": false, "Type": "number", "Name": "healingDone" }, + { "Nilable": false, "Type": "number", "Name": "rating" }, + { "Nilable": false, "Type": "number", "Name": "ratingChange" }, + { "Nilable": false, "Type": "number", "Name": "prematchMMR" }, + { "Nilable": false, "Type": "number", "Name": "mmrChange" }, + { "Nilable": false, "Type": "number", "Name": "postmatchMMR" }, + { "Nilable": false, "Type": "string", "Name": "talentSpec" }, + { "Nilable": false, "Type": "number", "Name": "honorLevel" }, + { "Nilable": false, "Type": "number", "Name": "roleAssigned" }, + { + "Nilable": false, + "InnerType": "PVPStatInfo", + "Type": "table", + "Name": "stats" + } + ], + "Type": "Structure", + "Name": "PVPScoreInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "pvpStatID" }, + { "Nilable": false, "Type": "number", "Name": "pvpStatValue" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "string", "Name": "iconName" } + ], + "Type": "Structure", + "Name": "PVPStatInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "size" }, + { "Nilable": false, "Type": "number", "Name": "rating" }, + { "Nilable": false, "Type": "number", "Name": "ratingNew" }, + { "Nilable": false, "Type": "number", "Name": "ratingMMR" } + ], + "Type": "Structure", + "Name": "PVPTeamInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "descendRating" }, + { "Nilable": false, "Type": "number", "Name": "ascendRating" }, + { "Nilable": false, "Type": "number", "Name": "descendTier" }, + { "Nilable": false, "Type": "number", "Name": "ascendTier" }, + { "Nilable": false, "Type": "number", "Name": "pvpTierEnum" }, + { "Nilable": false, "Type": "fileID", "Name": "tierIconID" } + ], + "Type": "Structure", + "Name": "PvpTierInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "canQueue" }, + { "Nilable": false, "Type": "number", "Name": "bgID" }, + { "Nilable": false, "Type": "bool", "Name": "hasRandomWinToday" }, + { "Nilable": false, "Type": "number", "Name": "minLevel" }, + { "Nilable": false, "Type": "number", "Name": "maxLevel" } + ], + "Type": "Structure", + "Name": "RandomBGInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "weeklyMostPlayedSpecID" }, + { "Nilable": false, "Type": "number", "Name": "weeklyMostPlayedSpecGames" }, + { "Nilable": false, "Type": "number", "Name": "seasonMostPlayedSpecID" }, + { "Nilable": false, "Type": "number", "Name": "seasonMostPlayedSpecGames" } + ], + "Type": "Structure", + "Name": "RatedBGBlitzSpecStats" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "personalRatingChange" }, + { "Nilable": false, "Type": "number", "Name": "queuePenaltySpellID" }, + { "Nilable": false, "Type": "number", "Name": "queuePenaltyDuration" } + ], + "Type": "Structure", + "Name": "RatedMatchDeserterPenalty" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "weeklyMostPlayedSpecID" }, + { "Nilable": false, "Type": "number", "Name": "weeklyMostPlayedSpecRounds" }, + { "Nilable": false, "Type": "number", "Name": "seasonMostPlayedSpecID" }, + { "Nilable": false, "Type": "number", "Name": "seasonMostPlayedSpecRounds" } + ], + "Type": "Structure", + "Name": "RatedSoloShuffleSpecStats" + }, + { + "Fields": [ + { + "Nilable": false, + "InnerType": "cstring", + "Type": "table", + "Name": "validRoles" + }, + { "Nilable": false, "Type": "number", "Name": "rewardSpellID" }, + { "Nilable": false, "Type": "number", "Name": "rewardItemID" } + ], + "Type": "Structure", + "Name": "RoleShortageReward" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "CombinedQuestLogStatus", + "Fields": [ + { "EnumValue": 0, "Type": "CombinedQuestLogStatus", "Name": "Available" }, + { "EnumValue": 1, "Type": "CombinedQuestLogStatus", "Name": "Complete" }, + { "EnumValue": 2, "Type": "CombinedQuestLogStatus", "Name": "CompleteDaily" }, + { "EnumValue": 3, "Type": "CombinedQuestLogStatus", "Name": "CompleteWeekly" }, + { "EnumValue": 4, "Type": "CombinedQuestLogStatus", "Name": "CompleteMonthly" }, + { "EnumValue": 5, "Type": "CombinedQuestLogStatus", "Name": "CompleteYearly" }, + { + "EnumValue": 6, + "Type": "CombinedQuestLogStatus", + "Name": "CompleteGameReset" + }, + { "EnumValue": 7, "Type": "CombinedQuestLogStatus", "Name": "Reset" } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + }, + { + "Type": "Enumeration", + "Name": "CombinedQuestStatus", + "Fields": [ + { "EnumValue": 0, "Type": "CombinedQuestStatus", "Name": "Invalid" }, + { "EnumValue": 1, "Type": "CombinedQuestStatus", "Name": "Completed" }, + { "EnumValue": 2, "Type": "CombinedQuestStatus", "Name": "NotCompleted" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "QuestCompleteSpellType", + "Fields": [ + { "EnumValue": 0, "Type": "QuestCompleteSpellType", "Name": "LegacyBehavior" }, + { "EnumValue": 1, "Type": "QuestCompleteSpellType", "Name": "Follower" }, + { "EnumValue": 2, "Type": "QuestCompleteSpellType", "Name": "Tradeskill" }, + { "EnumValue": 3, "Type": "QuestCompleteSpellType", "Name": "Ability" }, + { "EnumValue": 4, "Type": "QuestCompleteSpellType", "Name": "Aura" }, + { "EnumValue": 5, "Type": "QuestCompleteSpellType", "Name": "Spell" }, + { "EnumValue": 6, "Type": "QuestCompleteSpellType", "Name": "Unlock" }, + { "EnumValue": 7, "Type": "QuestCompleteSpellType", "Name": "Companion" }, + { "EnumValue": 8, "Type": "QuestCompleteSpellType", "Name": "QuestlineUnlock" }, + { "EnumValue": 9, "Type": "QuestCompleteSpellType", "Name": "QuestlineReward" }, + { + "EnumValue": 10, + "Type": "QuestCompleteSpellType", + "Name": "QuestlineUnlockPart" + } + ], + "MaxValue": 10, + "MinValue": 0, + "NumValues": 11 + }, + { + "Type": "Enumeration", + "Name": "QuestRepeatability", + "Fields": [ + { "EnumValue": 0, "Type": "QuestRepeatability", "Name": "None" }, + { "EnumValue": 1, "Type": "QuestRepeatability", "Name": "Daily" }, + { "EnumValue": 2, "Type": "QuestRepeatability", "Name": "Weekly" }, + { "EnumValue": 3, "Type": "QuestRepeatability", "Name": "Turnin" }, + { "EnumValue": 4, "Type": "QuestRepeatability", "Name": "World" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "QuestRewardContextFlags", + "Fields": [ + { "EnumValue": 0, "Type": "QuestRewardContextFlags", "Name": "None" }, + { + "EnumValue": 1, + "Type": "QuestRewardContextFlags", + "Name": "FirstCompletionBonus" + }, + { + "EnumValue": 2, + "Type": "QuestRewardContextFlags", + "Name": "RepeatCompletionBonus" + } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "QuestTagType", + "Fields": [ + { "EnumValue": 0, "Type": "QuestTagType", "Name": "Tag" }, + { "EnumValue": 1, "Type": "QuestTagType", "Name": "Profession" }, + { "EnumValue": 2, "Type": "QuestTagType", "Name": "Normal" }, + { "EnumValue": 3, "Type": "QuestTagType", "Name": "PvP" }, + { "EnumValue": 4, "Type": "QuestTagType", "Name": "PetBattle" }, + { "EnumValue": 5, "Type": "QuestTagType", "Name": "Bounty" }, + { "EnumValue": 6, "Type": "QuestTagType", "Name": "Dungeon" }, + { "EnumValue": 7, "Type": "QuestTagType", "Name": "Invasion" }, + { "EnumValue": 8, "Type": "QuestTagType", "Name": "Raid" }, + { "EnumValue": 9, "Type": "QuestTagType", "Name": "Contribution" }, + { "EnumValue": 10, "Type": "QuestTagType", "Name": "RatedReward" }, + { "EnumValue": 11, "Type": "QuestTagType", "Name": "InvasionWrapper" }, + { "EnumValue": 12, "Type": "QuestTagType", "Name": "FactionAssault" }, + { "EnumValue": 13, "Type": "QuestTagType", "Name": "Islands" }, + { "EnumValue": 14, "Type": "QuestTagType", "Name": "Threat" }, + { "EnumValue": 15, "Type": "QuestTagType", "Name": "CovenantCalling" }, + { "EnumValue": 16, "Type": "QuestTagType", "Name": "DragonRiderRacing" }, + { "EnumValue": 17, "Type": "QuestTagType", "Name": "Capstone" }, + { "EnumValue": 18, "Type": "QuestTagType", "Name": "WorldBoss" } + ], + "MaxValue": 18, + "MinValue": 0, + "NumValues": 19 + }, + { + "Type": "Enumeration", + "Name": "QuestTreasurePickerType", + "Fields": [ + { "EnumValue": 0, "Type": "QuestTreasurePickerType", "Name": "Visible" }, + { "EnumValue": 1, "Type": "QuestTreasurePickerType", "Name": "Hidden" }, + { "EnumValue": 2, "Type": "QuestTreasurePickerType", "Name": "Select" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "RelativeContentDifficulty", + "Fields": [ + { "EnumValue": 0, "Type": "RelativeContentDifficulty", "Name": "Trivial" }, + { "EnumValue": 1, "Type": "RelativeContentDifficulty", "Name": "Easy" }, + { "EnumValue": 2, "Type": "RelativeContentDifficulty", "Name": "Fair" }, + { "EnumValue": 3, "Type": "RelativeContentDifficulty", "Name": "Difficult" }, + { "EnumValue": 4, "Type": "RelativeContentDifficulty", "Name": "Impossible" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Values": [ + { "Value": 25, "Type": "number", "Name": "MAX_QUEST_WATCHES" }, + { "Value": 1, "Type": "number", "Name": "MAX_WORLD_QUEST_WATCHES_AUTOMATIC" }, + { "Value": 5, "Type": "number", "Name": "MAX_WORLD_QUEST_WATCHES_MANUAL" } + ], + "Type": "Constants", + "Name": "QuestWatchConsts" + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_QuestHub", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRelated" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "areaPoiID" } + ], + "Type": "Function", + "Name": "IsQuestCurrentlyRelatedToHub" + } + ], + "Type": "System", + "Name": "QuestHubUI", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "QuestClassification", + "Fields": [ + { "EnumValue": 0, "Type": "QuestClassification", "Name": "Important" }, + { "EnumValue": 1, "Type": "QuestClassification", "Name": "Legendary" }, + { "EnumValue": 2, "Type": "QuestClassification", "Name": "Campaign" }, + { "EnumValue": 3, "Type": "QuestClassification", "Name": "Calling" }, + { "EnumValue": 4, "Type": "QuestClassification", "Name": "Meta" }, + { "EnumValue": 5, "Type": "QuestClassification", "Name": "Recurring" }, + { "EnumValue": 6, "Type": "QuestClassification", "Name": "Questline" }, + { "EnumValue": 7, "Type": "QuestClassification", "Name": "Normal" }, + { "EnumValue": 8, "Type": "QuestClassification", "Name": "BonusObjective" }, + { "EnumValue": 9, "Type": "QuestClassification", "Name": "Threat" }, + { "EnumValue": 10, "Type": "QuestClassification", "Name": "WorldQuest" } + ], + "MaxValue": 10, + "MinValue": 0, + "NumValues": 11 + } + ] + }, + { + "Namespace": "C_QuestInfoSystem", + "Functions": [ + { + "Returns": [ + { "Nilable": true, "Type": "QuestClassification", "Name": "classification" } + ], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestClassification" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "QuestRewardCurrencyInfo", + "Type": "table", + "Name": "questRewardCurrencyInfo" + } + ], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestRewardCurrencies" + }, + { + "Returns": [{ "Nilable": true, "Type": "QuestRewardSpellInfo", "Name": "info" }], + "Arguments": [ + { "Nilable": true, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Function", + "Name": "GetQuestRewardSpellInfo" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "spellIDs" } + ], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestRewardSpells" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "shouldToast" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestShouldToastCompletion" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasQuestRewardCurrencies" } + ], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "HasQuestRewardCurrencies" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasRewardSpells" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "HasQuestRewardSpells" + } + ], + "Type": "System", + "Name": "QuestInfoSystem", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_QuestItemUse", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canUse" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "item" + }, + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": true, "Type": "bool", "Name": "checkRange" } + ], + "Type": "Function", + "Name": "CanUseQuestItemOnObject" + } + ], + "Type": "System", + "Name": "QuestItemUse", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_QuestLine", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "QuestLineInfo", + "Type": "table", + "Name": "questLines" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetAvailableQuestLines" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "questIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetForceVisibleQuests" + }, + { + "Returns": [ + { "Nilable": true, "Type": "QuestLineInfo", "Name": "questLineInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "number", "Name": "uiMapID" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "displayableOnly" + } + ], + "Type": "Function", + "Name": "GetQuestLineInfo" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "questIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questLineID" }], + "Type": "Function", + "Name": "GetQuestLineQuests" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isComplete" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questLineID" }], + "Type": "Function", + "Name": "IsComplete" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "bool", + "Name": "questLineIgnoresAccountCompletedFiltering" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { "Nilable": false, "Type": "number", "Name": "questLineID" } + ], + "Type": "Function", + "Name": "QuestLineIgnoresAccountCompletedFiltering" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "RequestQuestLinesForMap" + } + ], + "Type": "System", + "Name": "QuestLineUI", + "Events": [], + "Tables": [ + { + "Type": "Enumeration", + "Name": "QuestLineFloorLocation", + "Fields": [ + { "EnumValue": 0, "Type": "QuestLineFloorLocation", "Name": "Above" }, + { "EnumValue": 1, "Type": "QuestLineFloorLocation", "Name": "Below" }, + { "EnumValue": 2, "Type": "QuestLineFloorLocation", "Name": "Same" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "questLineName" }, + { "Nilable": false, "Type": "cstring", "Name": "questName" }, + { "Nilable": false, "Type": "number", "Name": "questLineID" }, + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" }, + { "Nilable": false, "Type": "bool", "Name": "isHidden" }, + { "Nilable": false, "Type": "bool", "Name": "isLegendary" }, + { "Nilable": false, "Type": "bool", "Name": "isLocalStory" }, + { "Nilable": false, "Type": "bool", "Name": "isDaily" }, + { "Nilable": false, "Type": "bool", "Name": "isCampaign" }, + { "Nilable": false, "Type": "bool", "Name": "isImportant" }, + { "Nilable": false, "Type": "bool", "Name": "isAccountCompleted" }, + { "Nilable": false, "Type": "bool", "Name": "isCombatAllyQuest" }, + { "Nilable": false, "Type": "bool", "Name": "isMeta" }, + { "Nilable": false, "Type": "bool", "Name": "inProgress" }, + { "Nilable": false, "Type": "bool", "Name": "isQuestStart" }, + { "Nilable": false, "Type": "QuestLineFloorLocation", "Name": "floorLocation" } + ], + "Type": "Structure", + "Name": "QuestLineInfo" + } + ] + }, + { + "Namespace": "C_QuestLog", + "Functions": [ + { "Type": "Function", "Name": "AbandonQuest" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wasWatched" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "AddQuestWatch" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wasWatched" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "QuestWatchType", "Name": "watchType" } + ], + "Type": "Function", + "Name": "AddWorldQuestWatch" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canAbandon" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "CanAbandonQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "awardsReputation" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "factionID" } + ], + "Type": "Function", + "Name": "DoesQuestAwardReputationWithFaction" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetAbandonQuest" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "itemIDs" } + ], + "Type": "Function", + "Name": "GetAbandonQuestItems" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "uiMapIDs" } + ], + "Type": "Function", + "Name": "GetActiveThreatMaps" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "quests" } + ], + "Type": "Function", + "Name": "GetAllCompletedQuestIDs" + }, + { + "Returns": [ + { + "Nilable": true, + "InnerType": "BountyInfo", + "Type": "table", + "Name": "bounties" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetBountiesForMapID" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "MapOverlayDisplayLocation", + "Name": "displayLocation" + }, + { "Nilable": false, "Type": "number", "Name": "lockQuestID" }, + { "Nilable": false, "Type": "number", "Name": "bountySetID" }, + { "Nilable": false, "Type": "bool", "Name": "isActivitySet" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetBountySetInfoForMapID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "distanceSq" }, + { "Nilable": false, "Type": "bool", "Name": "onContinent" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetDistanceSqToQuest" + }, + { + "Returns": [{ "Nilable": true, "Type": "luaIndex", "Name": "index" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetHeaderIndexForQuest" + }, + { + "Returns": [{ "Nilable": true, "Type": "QuestInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "questLogIndex" }], + "Type": "Function", + "Name": "GetInfo" + }, + { + "Documentation": ["Only returns a log index for actual quests, not headers"], + "Type": "Function", + "Name": "GetLogIndexForQuestID", + "Returns": [{ "Nilable": true, "Type": "luaIndex", "Name": "questLogIndex" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }] + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetMapForQuestPOIs" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxNumQuests" }], + "Documentation": [ + "This is the maximum number of quests a player can be on, including hidden quests, world quests, emissaries etc" + ], + "Type": "Function", + "Name": "GetMaxNumQuests" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "maxNumQuestsCanAccept" } + ], + "Documentation": [ + "This is the maximum number of standard quests a player can accept. These are quests that are normally visible in the quest log." + ], + "Type": "Function", + "Name": "GetMaxNumQuestsCanAccept" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "mapID" }, + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetNextWaypoint" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "uiMapID" } + ], + "Type": "Function", + "Name": "GetNextWaypointForMap" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "waypointText" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetNextWaypointText" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numShownEntries" }, + { "Nilable": false, "Type": "number", "Name": "numQuests" } + ], + "Type": "Function", + "Name": "GetNumQuestLogEntries" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "leaderboardCount" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetNumQuestObjectives" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numQuestWatches" }], + "Type": "Function", + "Name": "GetNumQuestWatches" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numQuestWatches" }], + "Type": "Function", + "Name": "GetNumWorldQuestWatches" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "uiMapID" }, + { "Nilable": false, "Type": "bool", "Name": "worldQuests" }, + { "Nilable": false, "Type": "bool", "Name": "worldQuestsElite" }, + { "Nilable": false, "Type": "bool", "Name": "dungeons" }, + { "Nilable": false, "Type": "bool", "Name": "treasures" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestAdditionalHighlights" + }, + { + "Returns": [{ "Nilable": true, "Type": "QuestTheme", "Name": "theme" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestDetailsTheme" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "level" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestDifficultyLevel" + }, + { + "Documentation": ["Only returns a questID for actual quests, not headers"], + "Type": "Function", + "Name": "GetQuestIDForLogIndex", + "Returns": [{ "Nilable": true, "Type": "number", "Name": "questID" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "questLogIndex" }] + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "questID" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "questWatchIndex" } + ], + "Type": "Function", + "Name": "GetQuestIDForQuestWatchIndex" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "questID" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "questWatchIndex" } + ], + "Type": "Function", + "Name": "GetQuestIDForWorldQuestWatchIndex" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "QuestRewardReputationInfo", + "Type": "table", + "Name": "reputationRewards" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestLogMajorFactionReputationRewards" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "portraitGiver" }, + { "Nilable": false, "Type": "cstring", "Name": "portraitGiverText" }, + { "Nilable": false, "Type": "cstring", "Name": "portraitGiverName" }, + { "Nilable": false, "Type": "number", "Name": "portraitGiverMount" }, + { "Nilable": true, "Type": "number", "Name": "portraitGiverModelSceneID" } + ], + "Arguments": [{ "Nilable": true, "Type": "luaIndex", "Name": "questLogIndex" }], + "Type": "Function", + "Name": "GetQuestLogPortraitGiver" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "QuestObjectiveInfo", + "Type": "table", + "Name": "objectives" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestObjectives" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "QuestRewardCurrencyInfo", + "Type": "table", + "Name": "questRewardCurrencies" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestRewardCurrencies" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "QuestRewardCurrencyInfo", + "Name": "questRewardCurrencyInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "currencyIndex" }, + { "Nilable": false, "Type": "bool", "Name": "isChoice" } + ], + "Type": "Function", + "Name": "GetQuestRewardCurrencyInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "QuestTagInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestTagInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "questType" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestType" + }, + { + "Returns": [{ "Nilable": true, "Type": "QuestWatchType", "Name": "watchType" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestWatchType" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "QuestOnMapInfo", + "Type": "table", + "Name": "quests" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetQuestsOnMap" + }, + { + "Documentation": ["Uses the selected quest if no questID is provided"], + "Type": "Function", + "Name": "GetRequiredMoney", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "requiredMoney" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "questID" }] + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetSelectedQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "suggestedGroupSize" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetSuggestedGroupSize" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "totalTime" }, + { "Nilable": false, "Type": "number", "Name": "elapsedTime" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetTimeAllowed" + }, + { + "Documentation": ["Returns a valid title for anything that is in the quest log."], + "Type": "Function", + "Name": "GetTitleForLogIndex", + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "title" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "questLogIndex" }] + }, + { + "Documentation": [ + "Only returns a valid title for quests, header titles cannot be discovered using this." + ], + "Type": "Function", + "Name": "GetTitleForQuestID", + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "title" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }] + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "achievementID" }, + { "Nilable": false, "Type": "number", "Name": "storyMapID" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetZoneStoryInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasActiveThreats" }], + "Type": "Function", + "Name": "HasActiveThreats" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAccountQuest" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsAccountQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isComplete" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsComplete" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFailed" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsFailed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isImportant" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsImportantQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLegendaryQuest" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsLegendaryQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isMeta" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsMetaQuest" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "onMap" }, + { "Nilable": false, "Type": "bool", "Name": "hasLocalPOI" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsOnMap" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isOnQuest" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsOnQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPushable" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsPushableQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isBounty" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsQuestBounty" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCalling" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsQuestCalling" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCriteriaForBounty" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "bountyQuestID" } + ], + "Type": "Function", + "Name": "IsQuestCriteriaForBounty" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDisabled" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsQuestDisabledForSession" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCompleted" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsQuestFlaggedCompleted" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCompletedOnAccount" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsQuestFlaggedCompletedOnAccount" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFromContentPush" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsQuestFromContentPush" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isInvasion" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsQuestInvasion" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRepeatableType" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsQuestRepeatableType" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isReplayable" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsQuestReplayable" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "recentlyReplayed" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsQuestReplayedRecently" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTask" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsQuestTask" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTrivial" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsQuestTrivial" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRepeatable" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsRepeatableQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isThreat" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsThreatQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isOnQuest" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "number", "Name": "questID" } + ], + "Type": "Function", + "Name": "IsUnitOnQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isWorldQuest" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsWorldQuest" + }, + { + "Documentation": [ + "Tests whether a quest is eligible for warmode bonuses (e.g. most world quests, some daily quests" + ], + "Type": "Function", + "Name": "QuestCanHaveWarModeBonus", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasBonus" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasBonus" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "QuestHasQuestSessionBonus" + }, + { + "Documentation": [ + "Tests whether a quest in the player's quest log that is eligible for warmode bonuses (see 'QuestCanHaveWarModeBOnus') has been completed in warmode (including accepting it)" + ], + "Type": "Function", + "Name": "QuestHasWarModeBonus", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasBonus" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }] + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "bool", + "Name": "questIgnoresAccountCompletedFiltering" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "QuestIgnoresAccountCompletedFiltering" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "readyForTurnIn" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "ReadyForTurnIn" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wasRemoved" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "RemoveQuestWatch" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wasRemoved" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "RemoveWorldQuestWatch" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "RequestLoadQuestByID" + }, + { "Type": "Function", "Name": "SetAbandonQuest" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "SetMapForQuestPOIs" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "SetSelectedQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "displayTimeRemaining" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "ShouldDisplayTimeRemaining" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "shouldShow" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "ShouldShowQuestRewards" + }, + { "Type": "Function", "Name": "SortQuestWatches" }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isRelatedToActiveQuest" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsRelatedToActiveQuest" + }, + { "Type": "Function", "Name": "UpdateCampaignHeaders" } + ], + "Type": "System", + "Name": "QuestLog", + "Events": [ + { + "LiteralName": "QUEST_ACCEPTED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "questId" }], + "Type": "Event", + "Name": "QuestAccepted" + }, + { + "LiteralName": "QUEST_AUTOCOMPLETE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "questId" }], + "Type": "Event", + "Name": "QuestAutocomplete" + }, + { "LiteralName": "QUEST_COMPLETE", "Type": "Event", "Name": "QuestComplete" }, + { + "LiteralName": "QUEST_DATA_LOAD_RESULT", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "bool", "Name": "success" } + ], + "Type": "Event", + "Name": "QuestDataLoadResult" + }, + { + "LiteralName": "QUEST_DETAIL", + "Payload": [{ "Nilable": true, "Type": "number", "Name": "questStartItemID" }], + "Type": "Event", + "Name": "QuestDetail" + }, + { + "LiteralName": "QUEST_LOG_CRITERIA_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "specificTreeID" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "numFulfilled" }, + { "Nilable": false, "Type": "number", "Name": "numRequired" } + ], + "Type": "Event", + "Name": "QuestLogCriteriaUpdate" + }, + { "LiteralName": "QUEST_LOG_UPDATE", "Type": "Event", "Name": "QuestLogUpdate" }, + { "LiteralName": "QUEST_POI_UPDATE", "Type": "Event", "Name": "QuestPoiUpdate" }, + { + "LiteralName": "QUEST_REMOVED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "bool", "Name": "wasReplayQuest" } + ], + "Type": "Event", + "Name": "QuestRemoved" + }, + { + "LiteralName": "QUEST_TURNED_IN", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "xpReward" }, + { "Nilable": false, "Type": "number", "Name": "moneyReward" } + ], + "Type": "Event", + "Name": "QuestTurnedIn" + }, + { + "LiteralName": "QUEST_WATCH_LIST_CHANGED", + "Payload": [ + { "Nilable": true, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "bool", "Name": "added" } + ], + "Type": "Event", + "Name": "QuestWatchListChanged" + }, + { + "LiteralName": "QUEST_WATCH_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Event", + "Name": "QuestWatchUpdate" + }, + { + "LiteralName": "QUESTLINE_UPDATE", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "requestRequired" }], + "Type": "Event", + "Name": "QuestlineUpdate" + }, + { + "LiteralName": "TASK_PROGRESS_UPDATE", + "Type": "Event", + "Name": "TaskProgressUpdate" + }, + { + "LiteralName": "TREASURE_PICKER_CACHE_FLUSH", + "Type": "Event", + "Name": "TreasurePickerCacheFlush" + }, + { "LiteralName": "WAYPOINT_UPDATE", "Type": "Event", "Name": "WaypointUpdate" }, + { + "LiteralName": "WORLD_QUEST_COMPLETED_BY_SPELL", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Event", + "Name": "WorldQuestCompletedBySpell" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "MapOverlayDisplayLocation", + "Fields": [ + { "EnumValue": 0, "Type": "MapOverlayDisplayLocation", "Name": "Default" }, + { "EnumValue": 1, "Type": "MapOverlayDisplayLocation", "Name": "BottomLeft" }, + { "EnumValue": 2, "Type": "MapOverlayDisplayLocation", "Name": "TopLeft" }, + { "EnumValue": 3, "Type": "MapOverlayDisplayLocation", "Name": "BottomRight" }, + { "EnumValue": 4, "Type": "MapOverlayDisplayLocation", "Name": "TopRight" }, + { "EnumValue": 5, "Type": "MapOverlayDisplayLocation", "Name": "Hidden" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "QuestFrequency", + "Fields": [ + { "EnumValue": 0, "Type": "QuestFrequency", "Name": "Default" }, + { "EnumValue": 1, "Type": "QuestFrequency", "Name": "Daily" }, + { "EnumValue": 2, "Type": "QuestFrequency", "Name": "Weekly" }, + { "EnumValue": 3, "Type": "QuestFrequency", "Name": "ResetByScheduler" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "QuestTag", + "Fields": [ + { "EnumValue": 1, "Type": "QuestTag", "Name": "Group" }, + { "EnumValue": 41, "Type": "QuestTag", "Name": "PvP" }, + { "EnumValue": 62, "Type": "QuestTag", "Name": "Raid" }, + { "EnumValue": 81, "Type": "QuestTag", "Name": "Dungeon" }, + { "EnumValue": 83, "Type": "QuestTag", "Name": "Legendary" }, + { "EnumValue": 85, "Type": "QuestTag", "Name": "Heroic" }, + { "EnumValue": 88, "Type": "QuestTag", "Name": "Raid10" }, + { "EnumValue": 89, "Type": "QuestTag", "Name": "Raid25" }, + { "EnumValue": 98, "Type": "QuestTag", "Name": "Scenario" }, + { "EnumValue": 102, "Type": "QuestTag", "Name": "Account" }, + { "EnumValue": 266, "Type": "QuestTag", "Name": "CombatAlly" }, + { "EnumValue": 288, "Type": "QuestTag", "Name": "Delve" } + ], + "MaxValue": 288, + "MinValue": 1, + "NumValues": 12 + }, + { + "Type": "Enumeration", + "Name": "QuestWatchType", + "Fields": [ + { "EnumValue": 0, "Type": "QuestWatchType", "Name": "Automatic" }, + { "EnumValue": 1, "Type": "QuestWatchType", "Name": "Manual" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "WorldQuestQuality", + "Fields": [ + { "EnumValue": 0, "Type": "WorldQuestQuality", "Name": "Common" }, + { "EnumValue": 1, "Type": "WorldQuestQuality", "Name": "Rare" }, + { "EnumValue": 2, "Type": "WorldQuestQuality", "Name": "Epic" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "title" }, + { "Nilable": false, "Type": "luaIndex", "Name": "questLogIndex" }, + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "number", "Name": "campaignID" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "number", "Name": "difficultyLevel" }, + { "Nilable": false, "Type": "number", "Name": "suggestedGroup" }, + { "Nilable": true, "Type": "QuestFrequency", "Name": "frequency" }, + { "Nilable": false, "Type": "bool", "Name": "isHeader" }, + { "Nilable": false, "Type": "bool", "Name": "useMinimalHeader" }, + { "Nilable": false, "Type": "bool", "Name": "sortAsNormalQuest" }, + { "Nilable": false, "Type": "bool", "Name": "isCollapsed" }, + { "Nilable": false, "Type": "bool", "Name": "startEvent" }, + { "Nilable": false, "Type": "bool", "Name": "isTask" }, + { "Nilable": false, "Type": "bool", "Name": "isBounty" }, + { "Nilable": false, "Type": "bool", "Name": "isStory" }, + { "Nilable": false, "Type": "bool", "Name": "isScaling" }, + { "Nilable": false, "Type": "bool", "Name": "isOnMap" }, + { "Nilable": false, "Type": "bool", "Name": "hasLocalPOI" }, + { "Nilable": false, "Type": "bool", "Name": "isHidden" }, + { "Nilable": false, "Type": "bool", "Name": "isAutoComplete" }, + { "Nilable": false, "Type": "bool", "Name": "overridesSortOrder" }, + { + "Nilable": false, + "Default": true, + "Type": "bool", + "Name": "readyForTranslation" + }, + { "Nilable": false, "Type": "bool", "Name": "isInternalOnly" }, + { "Nilable": false, "Type": "bool", "Name": "isAbandonOnDisable" }, + { "Nilable": true, "Type": "number", "Name": "headerSortKey" }, + { + "Nilable": false, + "Type": "QuestClassification", + "Name": "questClassification" + } + ], + "Type": "Structure", + "Name": "QuestInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "string", "Name": "type" }, + { "Nilable": false, "Type": "bool", "Name": "finished" }, + { "Nilable": false, "Type": "number", "Name": "numFulfilled" }, + { "Nilable": false, "Type": "number", "Name": "numRequired" } + ], + "Type": "Structure", + "Name": "QuestObjectiveInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" }, + { "Nilable": false, "Type": "number", "Name": "type" }, + { "Nilable": false, "Type": "bool", "Name": "isMapIndicatorQuest" } + ], + "Type": "Structure", + "Name": "QuestOnMapInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "tagName" }, + { "Nilable": false, "Type": "number", "Name": "tagID" }, + { "Nilable": true, "Type": "number", "Name": "worldQuestType" }, + { "Nilable": true, "Type": "WorldQuestQuality", "Name": "quality" }, + { "Nilable": true, "Type": "number", "Name": "tradeskillLineID" }, + { "Nilable": true, "Type": "bool", "Name": "isElite" }, + { "Nilable": true, "Type": "bool", "Name": "displayExpiration" } + ], + "Type": "Structure", + "Name": "QuestTagInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "textureAtlas", "Name": "background" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "seal" }, + { "Nilable": false, "Type": "cstring", "Name": "signature" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "poiIcon" } + ], + "Type": "Structure", + "Name": "QuestTheme" + } + ] + }, + { + "Namespace": "C_QuestOffer", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hideRequiredItems" }], + "Type": "Function", + "Name": "GetHideRequiredItems" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "QuestRewardReputationInfo", + "Type": "table", + "Name": "reputationRewards" + } + ], + "Type": "Function", + "Name": "GetQuestOfferMajorFactionReputationRewards" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "QuestRequiredCurrencyInfo", + "Name": "questRequiredCurrencyInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "questRewardIndex" } + ], + "Type": "Function", + "Name": "GetQuestRequiredCurrencyInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "QuestRewardCurrencyInfo", + "Name": "questRewardCurrencyInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "questInfoType" }, + { "Nilable": false, "Type": "luaIndex", "Name": "questRewardIndex" } + ], + "Type": "Function", + "Name": "GetQuestRewardCurrencyInfo" + } + ], + "Type": "System", + "Name": "QuestOffer", + "Events": [ + { + "LiteralName": "QUEST_ACCEPT_CONFIRM", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "questTitle" } + ], + "Type": "Event", + "Name": "QuestAcceptConfirm" + }, + { "LiteralName": "QUEST_FINISHED", "Type": "Event", "Name": "QuestFinished" }, + { "LiteralName": "QUEST_GREETING", "Type": "Event", "Name": "QuestGreeting" }, + { "LiteralName": "QUEST_ITEM_UPDATE", "Type": "Event", "Name": "QuestItemUpdate" }, + { "LiteralName": "QUEST_PROGRESS", "Type": "Event", "Name": "QuestProgress" } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "fileID", "Name": "texture" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "quality" }, + { "Nilable": false, "Type": "number", "Name": "requiredAmount" } + ], + "Type": "Structure", + "Name": "QuestRequiredCurrencyInfo" + } + ] + }, + { + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "fileID", "Name": "texture" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Type": "number", "Name": "quality" }, + { "Nilable": false, "Type": "number", "Name": "baseRewardAmount" }, + { "Nilable": false, "Type": "number", "Name": "bonusRewardAmount" }, + { "Nilable": false, "Type": "number", "Name": "totalRewardAmount" }, + { + "Nilable": true, + "Type": "QuestRewardContextFlags", + "Name": "questRewardContextFlags" + } + ], + "Type": "Structure", + "Name": "QuestRewardCurrencyInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "factionID" }, + { "Nilable": false, "Type": "number", "Name": "rewardAmount" } + ], + "Type": "Structure", + "Name": "QuestRewardReputationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "fileID", "Name": "texture" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "number", "Name": "garrFollowerID" }, + { "Nilable": false, "Type": "bool", "Name": "isTradeskill" }, + { "Nilable": false, "Type": "bool", "Name": "isSpellLearned" }, + { "Nilable": false, "Type": "bool", "Name": "hideSpellLearnText" }, + { "Nilable": false, "Type": "bool", "Name": "isBoostSpell" }, + { "Nilable": false, "Type": "bool", "Name": "genericUnlock" }, + { "Nilable": false, "Type": "QuestCompleteSpellType", "Name": "type" } + ], + "Type": "Structure", + "Name": "QuestRewardSpellInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "QuestSessionCommand", + "Fields": [ + { "EnumValue": 0, "Type": "QuestSessionCommand", "Name": "None" }, + { "EnumValue": 1, "Type": "QuestSessionCommand", "Name": "Start" }, + { "EnumValue": 2, "Type": "QuestSessionCommand", "Name": "Stop" }, + { + "EnumValue": 3, + "Type": "QuestSessionCommand", + "Name": "SessionActiveNoCommand" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "QuestSessionResult", + "Fields": [ + { "EnumValue": 0, "Type": "QuestSessionResult", "Name": "Ok" }, + { "EnumValue": 1, "Type": "QuestSessionResult", "Name": "NotInParty" }, + { "EnumValue": 2, "Type": "QuestSessionResult", "Name": "InvalidOwner" }, + { "EnumValue": 3, "Type": "QuestSessionResult", "Name": "AlreadyActive" }, + { "EnumValue": 4, "Type": "QuestSessionResult", "Name": "NotActive" }, + { "EnumValue": 5, "Type": "QuestSessionResult", "Name": "InRaid" }, + { "EnumValue": 6, "Type": "QuestSessionResult", "Name": "OwnerRefused" }, + { "EnumValue": 7, "Type": "QuestSessionResult", "Name": "Timeout" }, + { "EnumValue": 8, "Type": "QuestSessionResult", "Name": "Disabled" }, + { "EnumValue": 9, "Type": "QuestSessionResult", "Name": "Started" }, + { "EnumValue": 10, "Type": "QuestSessionResult", "Name": "Stopped" }, + { "EnumValue": 11, "Type": "QuestSessionResult", "Name": "Joined" }, + { "EnumValue": 12, "Type": "QuestSessionResult", "Name": "Left" }, + { "EnumValue": 13, "Type": "QuestSessionResult", "Name": "OwnerLeft" }, + { "EnumValue": 14, "Type": "QuestSessionResult", "Name": "ReadyCheckFailed" }, + { "EnumValue": 15, "Type": "QuestSessionResult", "Name": "PartyDestroyed" }, + { "EnumValue": 16, "Type": "QuestSessionResult", "Name": "MemberTimeout" }, + { "EnumValue": 17, "Type": "QuestSessionResult", "Name": "AlreadyMember" }, + { "EnumValue": 18, "Type": "QuestSessionResult", "Name": "NotOwner" }, + { "EnumValue": 19, "Type": "QuestSessionResult", "Name": "AlreadyOwner" }, + { "EnumValue": 20, "Type": "QuestSessionResult", "Name": "AlreadyJoined" }, + { "EnumValue": 21, "Type": "QuestSessionResult", "Name": "NotMember" }, + { "EnumValue": 22, "Type": "QuestSessionResult", "Name": "Busy" }, + { "EnumValue": 23, "Type": "QuestSessionResult", "Name": "JoinRejected" }, + { "EnumValue": 24, "Type": "QuestSessionResult", "Name": "Logout" }, + { "EnumValue": 25, "Type": "QuestSessionResult", "Name": "Empty" }, + { "EnumValue": 26, "Type": "QuestSessionResult", "Name": "QuestNotCompleted" }, + { "EnumValue": 27, "Type": "QuestSessionResult", "Name": "Resync" }, + { "EnumValue": 28, "Type": "QuestSessionResult", "Name": "Restricted" }, + { "EnumValue": 29, "Type": "QuestSessionResult", "Name": "InPetBattle" }, + { "EnumValue": 30, "Type": "QuestSessionResult", "Name": "InvalidPublicParty" }, + { "EnumValue": 31, "Type": "QuestSessionResult", "Name": "Unknown" }, + { "EnumValue": 32, "Type": "QuestSessionResult", "Name": "InCombat" }, + { "EnumValue": 33, "Type": "QuestSessionResult", "Name": "MemberInCombat" }, + { + "EnumValue": 34, + "Type": "QuestSessionResult", + "Name": "RestrictedCrossFaction" + } + ], + "MaxValue": 34, + "MinValue": 0, + "NumValues": 35 + } + ] + }, + { + "Namespace": "C_QuestSession", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "allowed" }], + "Type": "Function", + "Name": "CanStart" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "allowed" }], + "Type": "Function", + "Name": "CanStop" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "exists" }], + "Type": "Function", + "Name": "Exists" + }, + { + "Returns": [ + { "Nilable": false, "Type": "QuestSessionCommand", "Name": "command" } + ], + "Type": "Function", + "Name": "GetAvailableSessionCommand" + }, + { + "Returns": [ + { "Nilable": false, "Type": "QuestSessionCommand", "Name": "command" } + ], + "Type": "Function", + "Name": "GetPendingCommand" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "proposedMaxLevel" }], + "Type": "Function", + "Name": "GetProposedMaxLevelForSession" + }, + { + "Returns": [ + { "Nilable": true, "Type": "QuestSessionPlayerDetails", "Name": "details" } + ], + "Type": "Function", + "Name": "GetSessionBeginDetails" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetSuperTrackedQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasJoined" }], + "Type": "Function", + "Name": "HasJoined" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasPendingCommand" }], + "Type": "Function", + "Name": "HasPendingCommand" + }, + { "Type": "Function", "Name": "RequestSessionStart" }, + { "Type": "Function", "Name": "RequestSessionStop" }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "beginSession" }], + "Type": "Function", + "Name": "SendSessionBeginResponse" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "bool", "Name": "superTrack" } + ], + "Type": "Function", + "Name": "SetQuestIsSuperTracked" + } + ], + "Type": "System", + "Name": "QuestSession", + "Events": [ + { + "LiteralName": "QUEST_SESSION_CREATED", + "Type": "Event", + "Name": "QuestSessionCreated" + }, + { + "LiteralName": "QUEST_SESSION_DESTROYED", + "Type": "Event", + "Name": "QuestSessionDestroyed" + }, + { + "LiteralName": "QUEST_SESSION_ENABLED_STATE_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Event", + "Name": "QuestSessionEnabledStateChanged" + }, + { + "LiteralName": "QUEST_SESSION_JOINED", + "Type": "Event", + "Name": "QuestSessionJoined" + }, + { + "LiteralName": "QUEST_SESSION_LEFT", + "Type": "Event", + "Name": "QuestSessionLeft" + }, + { + "LiteralName": "QUEST_SESSION_MEMBER_CONFIRM", + "Type": "Event", + "Name": "QuestSessionMemberConfirm" + }, + { + "LiteralName": "QUEST_SESSION_MEMBER_START_RESPONSE", + "Payload": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": false, "Type": "bool", "Name": "response" } + ], + "Type": "Event", + "Name": "QuestSessionMemberStartResponse" + }, + { + "LiteralName": "QUEST_SESSION_NOTIFICATION", + "Payload": [ + { "Nilable": false, "Type": "QuestSessionResult", "Name": "result" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" } + ], + "Type": "Event", + "Name": "QuestSessionNotification" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" } + ], + "Type": "Structure", + "Name": "QuestSessionPlayerDetails" + } + ] + }, + { + "Namespace": "C_TaskQuest", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "showsTaskQuestObjectives" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "DoesMapShowTaskQuestObjectives" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "widgetSet" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestIconUIWidgetSet" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "questTitle" }, + { "Nilable": true, "Type": "number", "Name": "factionID" }, + { "Nilable": true, "Type": "bool", "Name": "capped" }, + { "Nilable": true, "Type": "bool", "Name": "displayAsObjective" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestInfoByQuestID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "locationX" }, + { "Nilable": false, "Type": "number", "Name": "locationY" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": false, "Type": "number", "Name": "uiMapID" } + ], + "Type": "Function", + "Name": "GetQuestLocation" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "progress" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestProgressBarInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "minutesLeft" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestTimeLeftMinutes" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "secondsLeft" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestTimeLeftSeconds" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "widgetSet" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestTooltipUIWidgetSet" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetQuestZoneID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TaskPOIData", + "Type": "table", + "Name": "taskPOIs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetQuestsForPlayerByMapID" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "quests" } + ], + "Type": "Function", + "Name": "GetThreatQuests" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "active" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsActive" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "RequestPreloadRewardData" + } + ], + "Type": "System", + "Name": "QuestTaskInfo", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "questId" }, + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" }, + { "Nilable": false, "Type": "bool", "Name": "inProgress" }, + { "Nilable": false, "Type": "number", "Name": "numObjectives" }, + { "Nilable": false, "Type": "number", "Name": "mapID" }, + { "Nilable": false, "Type": "bool", "Name": "isQuestStart" }, + { "Nilable": false, "Type": "bool", "Name": "isDaily" }, + { "Nilable": false, "Type": "bool", "Name": "isCombatAllyQuest" }, + { "Nilable": false, "Type": "bool", "Name": "isMeta" }, + { "Nilable": true, "Type": "number", "Name": "childDepth" } + ], + "Type": "Structure", + "Name": "TaskPOIData" + } + ] + }, + { + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "queueType" }, + { "Nilable": true, "InnerType": "number", "Type": "table", "Name": "lfgIDs" }, + { "Nilable": true, "Type": "number", "Name": "lfgListID" }, + { "Nilable": true, "Type": "number", "Name": "activityID" }, + { "Nilable": true, "Type": "cstring", "Name": "battlefieldType" }, + { "Nilable": true, "Type": "number", "Name": "listID" }, + { "Nilable": true, "Type": "cstring", "Name": "mapName" }, + { "Nilable": true, "Type": "bool", "Name": "rated" }, + { "Nilable": true, "Type": "bool", "Name": "isBrawl" }, + { "Nilable": true, "Type": "number", "Name": "teamSize" } + ], + "Type": "Structure", + "Name": "QueueSpecificInfo" + } + ] + }, + { + "Namespace": "C_RaidLocks", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "encounterIsComplete" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "mapID" }, + { "Nilable": false, "Type": "number", "Name": "encounterID" }, + { "Nilable": true, "Type": "number", "Name": "difficultyID" } + ], + "Type": "Function", + "Name": "IsEncounterComplete" + } + ], + "Type": "System", + "Name": "RaidLocks", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_RecruitAFriend", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "CanSummonFriend" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "activityID" }, + { "Nilable": false, "Type": "RecruitAcceptanceID", "Name": "acceptanceID" } + ], + "Type": "Function", + "Name": "ClaimActivityReward" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { + "Nilable": true, + "Type": "RecruitAFriendRewardsVersion", + "Name": "rafVersion" + } + ], + "Type": "Function", + "Name": "ClaimNextReward" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Type": "Function", + "Name": "GenerateRecruitmentLink" + }, + { + "Returns": [{ "Nilable": false, "Type": "RafInfo", "Name": "info" }], + "Type": "Function", + "Name": "GetRAFInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "RafSystemInfo", "Name": "systemInfo" }], + "Type": "Function", + "Name": "GetRAFSystemInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "string", + "Type": "table", + "Name": "requirementsText" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "activityID" }, + { "Nilable": false, "Type": "RecruitAcceptanceID", "Name": "acceptanceID" } + ], + "Type": "Function", + "Name": "GetRecruitActivityRequirementsText" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "active" }, + { "Nilable": false, "Type": "number", "Name": "faction" } + ], + "Type": "Function", + "Name": "GetRecruitInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTimeSeconds" }, + { "Nilable": false, "Type": "number", "Name": "durationSeconds" }, + { "Nilable": false, "Type": "bool", "Name": "enableCooldownTimer" } + ], + "Type": "Function", + "Name": "GetSummonFriendCooldown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "IsRecruitAFriendLinked" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsRecruitingEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "wowAccountGUID" }], + "Type": "Function", + "Name": "RemoveRAFRecruit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Type": "Function", + "Name": "RequestUpdatedRecruitmentInfo" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "target" }, + { "Nilable": false, "Type": "cstring", "Name": "name" } + ], + "Type": "Function", + "Name": "SummonFriend" + } + ], + "Type": "System", + "Name": "RecruitAFriend", + "Events": [ + { + "LiteralName": "RAF_INFO_UPDATED", + "Payload": [{ "Nilable": false, "Type": "RafInfo", "Name": "info" }], + "Type": "Event", + "Name": "RafInfoUpdated" + }, + { + "LiteralName": "RAF_RECRUITING_ENABLED_STATUS", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Event", + "Name": "RafRecruitingEnabledStatus" + }, + { + "LiteralName": "RAF_REWARD_CLAIM_FAILED", + "Type": "Event", + "Name": "RafRewardClaimFailed" + }, + { + "LiteralName": "RAF_SYSTEM_ENABLED_STATUS", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Event", + "Name": "RafSystemEnabledStatus" + }, + { + "LiteralName": "RAF_SYSTEM_INFO_UPDATED", + "Payload": [{ "Nilable": false, "Type": "RafSystemInfo", "Name": "systemInfo" }], + "Type": "Event", + "Name": "RafSystemInfoUpdated" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "RafRecruitActivityState", + "Fields": [ + { "EnumValue": 0, "Type": "RafRecruitActivityState", "Name": "Incomplete" }, + { "EnumValue": 1, "Type": "RafRecruitActivityState", "Name": "Complete" }, + { "EnumValue": 2, "Type": "RafRecruitActivityState", "Name": "RewardClaimed" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "RafRecruitSubStatus", + "Fields": [ + { "EnumValue": 0, "Type": "RafRecruitSubStatus", "Name": "Trial" }, + { "EnumValue": 1, "Type": "RafRecruitSubStatus", "Name": "Active" }, + { "EnumValue": 2, "Type": "RafRecruitSubStatus", "Name": "Inactive" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "RafRewardType", + "Fields": [ + { "EnumValue": 0, "Type": "RafRewardType", "Name": "Pet" }, + { "EnumValue": 1, "Type": "RafRewardType", "Name": "Mount" }, + { "EnumValue": 2, "Type": "RafRewardType", "Name": "Appearance" }, + { "EnumValue": 3, "Type": "RafRewardType", "Name": "Title" }, + { "EnumValue": 4, "Type": "RafRewardType", "Name": "GameTime" }, + { "EnumValue": 5, "Type": "RafRewardType", "Name": "AppearanceSet" }, + { "EnumValue": 6, "Type": "RafRewardType", "Name": "Illusion" }, + { "EnumValue": 7, "Type": "RafRewardType", "Name": "Invalid" } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + }, + { + "Fields": [{ "Nilable": false, "Type": "number", "Name": "appearanceID" }], + "Type": "Structure", + "Name": "RafAppearanceInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "setID" }, + { "Nilable": false, "Type": "string", "Name": "setName" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "appearanceIDs" + } + ], + "Type": "Structure", + "Name": "RafAppearanceSetInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "spellItemEnchantmentID" } + ], + "Type": "Structure", + "Name": "RafIllusionInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "InnerType": "RafVersionInfo", + "Type": "table", + "Name": "versions" + }, + { "Nilable": true, "Type": "RafRecruitmentinfo", "Name": "recruitmentInfo" }, + { + "Nilable": false, + "InnerType": "RafRecruit", + "Type": "table", + "Name": "recruits" + }, + { "Nilable": false, "Type": "bool", "Name": "claimInProgress" } + ], + "Type": "Structure", + "Name": "RafInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "lifetimeMonths" }, + { "Nilable": false, "Type": "number", "Name": "spentMonths" }, + { "Nilable": false, "Type": "number", "Name": "availableMonths" } + ], + "Type": "Structure", + "Name": "RafMonthCount" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "mountID" } + ], + "Type": "Structure", + "Name": "RafMountInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "creatureID" }, + { "Nilable": false, "Type": "number", "Name": "speciesID" }, + { "Nilable": false, "Type": "number", "Name": "displayID" }, + { "Nilable": false, "Type": "string", "Name": "speciesName" }, + { "Nilable": false, "Type": "string", "Name": "description" } + ], + "Type": "Structure", + "Name": "RafPetInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "bnetAccountID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "wowAccountGUID" }, + { "Nilable": false, "Type": "string", "Name": "battleTag" }, + { "Nilable": false, "Type": "number", "Name": "monthsRemaining" }, + { "Nilable": false, "Type": "RafRecruitSubStatus", "Name": "subStatus" }, + { "Nilable": false, "Type": "RecruitAcceptanceID", "Name": "acceptanceID" }, + { + "Nilable": false, + "Type": "RecruitAFriendRewardsVersion", + "Name": "versionRecruited" + }, + { + "Nilable": false, + "InnerType": "RafRecruitActivity", + "Type": "table", + "Name": "activities" + } + ], + "Type": "Structure", + "Name": "RafRecruit" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "activityID" }, + { "Nilable": false, "Type": "number", "Name": "rewardQuestID" }, + { "Nilable": false, "Type": "RafRecruitActivityState", "Name": "state" } + ], + "Type": "Structure", + "Name": "RafRecruitActivity" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "recruitmentCode" }, + { "Nilable": false, "Type": "string", "Name": "recruitmentURL" }, + { "Nilable": false, "Type": "number", "Name": "expireTime" }, + { "Nilable": false, "Type": "number", "Name": "remainingTimeSeconds" }, + { "Nilable": false, "Type": "number", "Name": "totalUses" }, + { "Nilable": false, "Type": "number", "Name": "remainingUses" }, + { "Nilable": false, "Type": "string", "Name": "sourceRealm" }, + { "Nilable": false, "Type": "string", "Name": "sourceFaction" } + ], + "Type": "Structure", + "Name": "RafRecruitmentinfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "rewardID" }, + { + "Nilable": false, + "Type": "RecruitAFriendRewardsVersion", + "Name": "rafVersion" + }, + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "RafRewardType", "Name": "rewardType" }, + { "Nilable": true, "Type": "RafPetInfo", "Name": "petInfo" }, + { "Nilable": true, "Type": "RafMountInfo", "Name": "mountInfo" }, + { "Nilable": true, "Type": "RafAppearanceInfo", "Name": "appearanceInfo" }, + { "Nilable": true, "Type": "RafTitleInfo", "Name": "titleInfo" }, + { + "Nilable": true, + "Type": "RafAppearanceSetInfo", + "Name": "appearanceSetInfo" + }, + { "Nilable": true, "Type": "RafIllusionInfo", "Name": "illusionInfo" }, + { "Nilable": false, "Type": "bool", "Name": "canClaim" }, + { "Nilable": false, "Type": "bool", "Name": "claimed" }, + { "Nilable": false, "Type": "bool", "Name": "canAfford" }, + { "Nilable": false, "Type": "bool", "Name": "repeatable" }, + { "Nilable": false, "Type": "number", "Name": "repeatableClaimCount" }, + { "Nilable": false, "Type": "number", "Name": "monthsRequired" }, + { "Nilable": false, "Type": "number", "Name": "monthCost" }, + { "Nilable": false, "Type": "number", "Name": "availableInMonths" }, + { "Nilable": false, "Type": "fileID", "Name": "iconID" } + ], + "Type": "Structure", + "Name": "RafReward" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "maxRecruits" }, + { "Nilable": false, "Type": "number", "Name": "maxRecruitMonths" }, + { "Nilable": false, "Type": "number", "Name": "maxRecruitmentUses" }, + { "Nilable": false, "Type": "number", "Name": "daysInCycle" } + ], + "Type": "Structure", + "Name": "RafSystemInfo" + }, + { + "Fields": [{ "Nilable": false, "Type": "number", "Name": "titleMaskID" }], + "Type": "Structure", + "Name": "RafTitleInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "Type": "RecruitAFriendRewardsVersion", + "Name": "rafVersion" + }, + { "Nilable": false, "Type": "RafMonthCount", "Name": "monthCount" }, + { + "Nilable": false, + "InnerType": "RafReward", + "Type": "table", + "Name": "rewards" + }, + { "Nilable": true, "Type": "RafReward", "Name": "nextReward" }, + { "Nilable": false, "Type": "number", "Name": "numAffordableRewards" }, + { "Nilable": false, "Type": "number", "Name": "numRecruits" } + ], + "Type": "Structure", + "Name": "RafVersionInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "RafLinkType", + "Fields": [ + { "EnumValue": 0, "Type": "RafLinkType", "Name": "None" }, + { "EnumValue": 1, "Type": "RafLinkType", "Name": "Recruit" }, + { "EnumValue": 2, "Type": "RafLinkType", "Name": "Friend" }, + { "EnumValue": 3, "Type": "RafLinkType", "Name": "Both" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "RecruitAFriendRewardsVersion", + "Fields": [ + { + "EnumValue": 0, + "Type": "RecruitAFriendRewardsVersion", + "Name": "InvalidVersion" + }, + { + "EnumValue": 1, + "Type": "RecruitAFriendRewardsVersion", + "Name": "UnusedVersionOne" + }, + { + "EnumValue": 2, + "Type": "RecruitAFriendRewardsVersion", + "Name": "VersionTwo" + }, + { + "EnumValue": 3, + "Type": "RecruitAFriendRewardsVersion", + "Name": "VersionThree" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ReportMajorCategory", + "Fields": [ + { + "EnumValue": 0, + "Type": "ReportMajorCategory", + "Name": "InappropriateCommunication" + }, + { "EnumValue": 1, "Type": "ReportMajorCategory", "Name": "GameplaySabotage" }, + { "EnumValue": 2, "Type": "ReportMajorCategory", "Name": "Cheating" }, + { "EnumValue": 3, "Type": "ReportMajorCategory", "Name": "InappropriateName" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ReportMinorCategory", + "Fields": [ + { "EnumValue": 1, "Type": "ReportMinorCategory", "Name": "TextChat" }, + { "EnumValue": 2, "Type": "ReportMinorCategory", "Name": "Boosting" }, + { "EnumValue": 4, "Type": "ReportMinorCategory", "Name": "Spam" }, + { "EnumValue": 8, "Type": "ReportMinorCategory", "Name": "Afk" }, + { + "EnumValue": 16, + "Type": "ReportMinorCategory", + "Name": "IntentionallyFeeding" + }, + { "EnumValue": 32, "Type": "ReportMinorCategory", "Name": "BlockingProgress" }, + { "EnumValue": 64, "Type": "ReportMinorCategory", "Name": "Hacking" }, + { "EnumValue": 128, "Type": "ReportMinorCategory", "Name": "Botting" }, + { "EnumValue": 256, "Type": "ReportMinorCategory", "Name": "Advertisement" }, + { "EnumValue": 512, "Type": "ReportMinorCategory", "Name": "BTag" }, + { "EnumValue": 1024, "Type": "ReportMinorCategory", "Name": "GroupName" }, + { "EnumValue": 2048, "Type": "ReportMinorCategory", "Name": "CharacterName" }, + { "EnumValue": 4096, "Type": "ReportMinorCategory", "Name": "GuildName" }, + { "EnumValue": 8192, "Type": "ReportMinorCategory", "Name": "Description" }, + { "EnumValue": 16384, "Type": "ReportMinorCategory", "Name": "Name" }, + { "EnumValue": 32768, "Type": "ReportMinorCategory", "Name": "HarmfulToMinors" } + ], + "MaxValue": 32768, + "MinValue": 1, + "NumValues": 16 + }, + { + "Type": "Enumeration", + "Name": "ReportSubComplaintTypes", + "Fields": [ + { "EnumValue": 0, "Type": "ReportSubComplaintTypes", "Name": "Inappropriate" }, + { "EnumValue": 1, "Type": "ReportSubComplaintTypes", "Name": "Advertising" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "ReportType", + "Fields": [ + { "EnumValue": 0, "Type": "ReportType", "Name": "Chat" }, + { "EnumValue": 1, "Type": "ReportType", "Name": "InWorld" }, + { "EnumValue": 2, "Type": "ReportType", "Name": "ClubFinderPosting" }, + { "EnumValue": 3, "Type": "ReportType", "Name": "ClubFinderApplicant" }, + { "EnumValue": 4, "Type": "ReportType", "Name": "GroupFinderPosting" }, + { "EnumValue": 5, "Type": "ReportType", "Name": "GroupFinderApplicant" }, + { "EnumValue": 6, "Type": "ReportType", "Name": "ClubMember" }, + { "EnumValue": 7, "Type": "ReportType", "Name": "GroupMember" }, + { "EnumValue": 8, "Type": "ReportType", "Name": "Friend" }, + { "EnumValue": 9, "Type": "ReportType", "Name": "Pet" }, + { "EnumValue": 10, "Type": "ReportType", "Name": "BattlePet" }, + { "EnumValue": 11, "Type": "ReportType", "Name": "Calendar" }, + { "EnumValue": 12, "Type": "ReportType", "Name": "Mail" }, + { "EnumValue": 13, "Type": "ReportType", "Name": "PvP" }, + { "EnumValue": 14, "Type": "ReportType", "Name": "PvPScoreboard" }, + { "EnumValue": 15, "Type": "ReportType", "Name": "PvPGroupMember" }, + { "EnumValue": 16, "Type": "ReportType", "Name": "CraftingOrder" } + ], + "MaxValue": 16, + "MinValue": 0, + "NumValues": 17 + } + ] + }, + { + "Namespace": "C_ReportSystem", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canReport" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "CanReportPlayer" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canReport" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "CanReportPlayerForLanguage" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ReportMajorCategory", + "Type": "table", + "Name": "majorCategories" + } + ], + "Arguments": [{ "Nilable": false, "Type": "ReportType", "Name": "reportType" }], + "Type": "Function", + "Name": "GetMajorCategoriesForReportType" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "majorCategoryString" } + ], + "Arguments": [ + { "Nilable": false, "Type": "ReportMajorCategory", "Name": "majorCategory" } + ], + "Type": "Function", + "Name": "GetMajorCategoryString" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ReportMinorCategory", + "Type": "table", + "Name": "minorCategories" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "ReportType", "Name": "reportType" }, + { "Nilable": false, "Type": "ReportMajorCategory", "Name": "majorCategory" } + ], + "Type": "Function", + "Name": "GetMinorCategoriesForReportTypeAndMajorCategory" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "minorCategoryString" } + ], + "Arguments": [ + { "Nilable": false, "Type": "ReportMinorCategory", "Name": "minorCategory" } + ], + "Type": "Function", + "Name": "GetMinorCategoryString" + }, + { "Type": "Function", "Name": "ReportServerLag" }, + { "Type": "Function", "Name": "ReportStuckInCombat" }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ReportInfoMixin", + "Type": "ReportInfo", + "Name": "reportInfo" + }, + { + "Nilable": true, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Documentation": ["Not allowed to be called by addons"], + "Type": "Function", + "Name": "SendReport" + } + ], + "Type": "System", + "Name": "ReportSystem", + "Events": [ + { + "LiteralName": "REPORT_PLAYER_RESULT", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "success" }, + { "Nilable": false, "Type": "ReportType", "Name": "reportType" } + ], + "Type": "Event", + "Name": "ReportPlayerResult" + } + ], + "Tables": [] + }, + { + "Namespace": "C_Reputation", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "areLegacyReputationsShown" } + ], + "Type": "Function", + "Name": "AreLegacyReputationsShown" + }, + { "Type": "Function", "Name": "CollapseAllFactionHeaders" }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "factionSortIndex" } + ], + "Type": "Function", + "Name": "CollapseFactionHeader" + }, + { "Type": "Function", "Name": "ExpandAllFactionHeaders" }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "factionSortIndex" } + ], + "Type": "Function", + "Name": "ExpandFactionHeader" + }, + { + "Returns": [{ "Nilable": true, "Type": "FactionData", "Name": "factionData" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "factionID" }], + "Type": "Function", + "Name": "GetFactionDataByID" + }, + { + "Returns": [{ "Nilable": true, "Type": "FactionData", "Name": "factionData" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "factionSortIndex" } + ], + "Type": "Function", + "Name": "GetFactionDataByIndex" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "currentValue" }, + { "Nilable": false, "Type": "number", "Name": "threshold" }, + { "Nilable": false, "Type": "number", "Name": "rewardQuestID" }, + { "Nilable": false, "Type": "bool", "Name": "hasRewardPending" }, + { "Nilable": false, "Type": "bool", "Name": "tooLowLevelForParagon" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "factionID" }], + "Type": "Function", + "Name": "GetFactionParagonInfo" + }, + { + "Returns": [ + { "Nilable": true, "Type": "FactionData", "Name": "guildFactionData" } + ], + "Type": "Function", + "Name": "GetGuildFactionData" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "expirationTime" }], + "Type": "Function", + "Name": "GetGuildRepExpirationTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numFactions" }], + "Type": "Function", + "Name": "GetNumFactions" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ReputationSortType", "Name": "sortType" } + ], + "Type": "Function", + "Name": "GetReputationSortType" + }, + { + "Returns": [ + { "Nilable": false, "Type": "luaIndex", "Name": "selectedFactionSortIndex" } + ], + "Type": "Function", + "Name": "GetSelectedFaction" + }, + { + "Returns": [ + { "Nilable": true, "Type": "FactionData", "Name": "watchedFactionData" } + ], + "Type": "Function", + "Name": "GetWatchedFactionData" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAccountWide" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "factionID" }], + "Type": "Function", + "Name": "IsAccountWideReputation" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isActive" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "factionSortIndex" } + ], + "Type": "Function", + "Name": "IsFactionActive" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasParagon" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "factionID" }], + "Type": "Function", + "Name": "IsFactionParagon" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isMajorFaction" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "factionID" }], + "Type": "Function", + "Name": "IsMajorFaction" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "factionID" }], + "Type": "Function", + "Name": "RequestFactionParagonPreloadRewardData" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "factionSortIndex" }, + { "Nilable": false, "Type": "bool", "Name": "setActive" } + ], + "Type": "Function", + "Name": "SetFactionActive" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "bool", "Name": "showLegacyReputations" } + ], + "Type": "Function", + "Name": "SetLegacyReputationsShown" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ReputationSortType", "Name": "sortType" } + ], + "Type": "Function", + "Name": "SetReputationSortType" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "factionSortIndex" } + ], + "Type": "Function", + "Name": "SetSelectedFaction" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "factionID" }], + "Type": "Function", + "Name": "SetWatchedFactionByID" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "factionSortIndex" } + ], + "Type": "Function", + "Name": "SetWatchedFactionByIndex" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "factionSortIndex" } + ], + "Type": "Function", + "Name": "ToggleFactionAtWar" + } + ], + "Type": "System", + "Name": "ReputationInfo", + "Events": [], + "Tables": [ + { + "Type": "Enumeration", + "Name": "ReputationSortType", + "Fields": [ + { "EnumValue": 0, "Type": "ReputationSortType", "Name": "None" }, + { "EnumValue": 1, "Type": "ReputationSortType", "Name": "Account" }, + { "EnumValue": 2, "Type": "ReputationSortType", "Name": "Character" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "factionID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "luaIndex", "Name": "reaction" }, + { "Nilable": false, "Type": "number", "Name": "currentReactionThreshold" }, + { "Nilable": false, "Type": "number", "Name": "nextReactionThreshold" }, + { "Nilable": false, "Type": "number", "Name": "currentStanding" }, + { "Nilable": false, "Type": "bool", "Name": "atWarWith" }, + { "Nilable": false, "Type": "bool", "Name": "canToggleAtWar" }, + { "Nilable": false, "Type": "bool", "Name": "isChild" }, + { "Nilable": false, "Type": "bool", "Name": "isHeader" }, + { "Nilable": false, "Type": "bool", "Name": "isHeaderWithRep" }, + { "Nilable": false, "Type": "bool", "Name": "isCollapsed" }, + { "Nilable": false, "Type": "bool", "Name": "isWatched" }, + { "Nilable": false, "Type": "bool", "Name": "hasBonusRepGain" }, + { "Nilable": false, "Type": "bool", "Name": "canSetInactive" }, + { "Nilable": false, "Type": "bool", "Name": "isAccountWide" } + ], + "Type": "Structure", + "Name": "FactionData" + } + ] + }, + { + "Namespace": "C_ResearchInfo", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "DigSiteMapInfo", + "Type": "table", + "Name": "digSites" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "GetDigSitesForMap" + } + ], + "Type": "System", + "Name": "ResearchInfo", + "Events": [ + { + "LiteralName": "ARCHAEOLOGY_CLOSED", + "Type": "Event", + "Name": "ArchaeologyClosed" + }, + { + "LiteralName": "ARCHAEOLOGY_FIND_COMPLETE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "numFindsCompleted" }, + { "Nilable": false, "Type": "number", "Name": "totalFinds" }, + { "Nilable": false, "Type": "number", "Name": "researchBranchID" } + ], + "Type": "Event", + "Name": "ArchaeologyFindComplete" + }, + { + "LiteralName": "ARCHAEOLOGY_SURVEY_CAST", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "numFindsCompleted" }, + { "Nilable": false, "Type": "number", "Name": "totalFinds" }, + { "Nilable": false, "Type": "number", "Name": "researchBranchID" }, + { "Nilable": false, "Type": "number", "Name": "successfulFind" } + ], + "Type": "Event", + "Name": "ArchaeologySurveyCast" + }, + { + "LiteralName": "ARCHAEOLOGY_TOGGLE", + "Type": "Event", + "Name": "ArchaeologyToggle" + }, + { + "LiteralName": "ARTIFACT_DIGSITE_COMPLETE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "researchBranchID" }], + "Type": "Event", + "Name": "ArtifactDigsiteComplete" + }, + { + "LiteralName": "RESEARCH_ARTIFACT_COMPLETE", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Event", + "Name": "ResearchArtifactComplete" + }, + { + "LiteralName": "RESEARCH_ARTIFACT_DIG_SITE_UPDATED", + "Type": "Event", + "Name": "ResearchArtifactDigSiteUpdated" + }, + { + "LiteralName": "RESEARCH_ARTIFACT_UPDATE", + "Type": "Event", + "Name": "ResearchArtifactUpdate" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "researchSiteID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "poiBlobID" }, + { "Nilable": false, "Type": "number", "Name": "textureIndex" } + ], + "Type": "Structure", + "Name": "DigSiteMapInfo" + } + ] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "inCombatLockdown" }], + "Type": "Function", + "Name": "InCombatLockdown" + } + ], + "Type": "System", + "Name": "RestrictedActions", + "Events": [ + { + "LiteralName": "ADDON_ACTION_BLOCKED", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "isTainted" }, + { "Nilable": false, "Type": "cstring", "Name": "function" } + ], + "Type": "Event", + "Name": "AddonActionBlocked" + }, + { + "LiteralName": "ADDON_ACTION_FORBIDDEN", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "isTainted" }, + { "Nilable": false, "Type": "cstring", "Name": "function" } + ], + "Type": "Event", + "Name": "AddonActionForbidden" + }, + { + "LiteralName": "MACRO_ACTION_BLOCKED", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "function" }], + "Type": "Event", + "Name": "MacroActionBlocked" + }, + { + "LiteralName": "MACRO_ACTION_FORBIDDEN", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "function" }], + "Type": "Event", + "Name": "MacroActionForbidden" + } + ], + "Tables": [] + }, + { + "Namespace": "C_ReturningPlayerUI", + "Functions": [ + { "Type": "Function", "Name": "AcceptPrompt" }, + { "Type": "Function", "Name": "DeclinePrompt" } + ], + "Type": "System", + "Name": "ReturningPlayerUI", + "Events": [ + { + "LiteralName": "RETURNING_PLAYER_PROMPT", + "Type": "Event", + "Name": "ReturningPlayerPrompt" + } + ], + "Tables": [] + }, + { + "Namespace": "C_ScenarioInfo", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "Type": "ScenarioCriteriaInfo", + "Name": "scenarioCriteriaInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "criteriaIndex" }], + "Type": "Function", + "Name": "GetCriteriaInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "ScenarioCriteriaInfo", + "Name": "scenarioCriteriaInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "stepID" }, + { "Nilable": false, "Type": "number", "Name": "criteriaIndex" } + ], + "Type": "Function", + "Name": "GetCriteriaInfoByStep" + }, + { + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "typeString" }], + "Arguments": [ + { "Nilable": false, "Type": "JailersTowerType", "Name": "runType" } + ], + "Type": "Function", + "Name": "GetJailersTowerTypeString" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ScenarioInformation", "Name": "scenarioInfo" } + ], + "Type": "Function", + "Name": "GetScenarioInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ScenarioStepInfo", "Name": "scenarioStepInfo" } + ], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "scenarioStepID" }], + "Type": "Function", + "Name": "GetScenarioStepInfo" + } + ], + "Type": "System", + "Name": "ScenarioInfo", + "Events": [ + { + "LiteralName": "JAILERS_TOWER_LEVEL_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "JailersTowerType", "Name": "type" } + ], + "Type": "Event", + "Name": "JailersTowerLevelUpdate" + }, + { + "LiteralName": "SCENARIO_BONUS_OBJECTIVE_COMPLETE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "bonusObjectiveID" }], + "Type": "Event", + "Name": "ScenarioBonusObjectiveComplete" + }, + { + "LiteralName": "SCENARIO_BONUS_VISIBILITY_UPDATE", + "Type": "Event", + "Name": "ScenarioBonusVisibilityUpdate" + }, + { + "LiteralName": "SCENARIO_COMPLETED", + "Payload": [ + { "Nilable": true, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "number", "Name": "xp" }, + { "Nilable": true, "Type": "number", "Name": "money" } + ], + "Type": "Event", + "Name": "ScenarioCompleted" + }, + { + "LiteralName": "SCENARIO_CRITERIA_SHOW_STATE_UPDATE", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "show" }], + "Type": "Event", + "Name": "ScenarioCriteriaShowStateUpdate" + }, + { + "LiteralName": "SCENARIO_CRITERIA_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "criteriaID" }], + "Type": "Event", + "Name": "ScenarioCriteriaUpdate" + }, + { + "LiteralName": "SCENARIO_POI_UPDATE", + "Type": "Event", + "Name": "ScenarioPoiUpdate" + }, + { + "LiteralName": "SCENARIO_SPELL_UPDATE", + "Type": "Event", + "Name": "ScenarioSpellUpdate" + }, + { + "LiteralName": "SCENARIO_UPDATE", + "Payload": [{ "Nilable": true, "Type": "bool", "Name": "newStep" }], + "Type": "Event", + "Name": "ScenarioUpdate" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "JailersTowerType", + "Fields": [ + { "EnumValue": 0, "Type": "JailersTowerType", "Name": "TwistingCorridors" }, + { "EnumValue": 1, "Type": "JailersTowerType", "Name": "SkoldusHalls" }, + { "EnumValue": 2, "Type": "JailersTowerType", "Name": "FractureChambers" }, + { "EnumValue": 3, "Type": "JailersTowerType", "Name": "Soulforges" }, + { "EnumValue": 4, "Type": "JailersTowerType", "Name": "Coldheart" }, + { "EnumValue": 5, "Type": "JailersTowerType", "Name": "Mortregar" }, + { "EnumValue": 6, "Type": "JailersTowerType", "Name": "UpperReaches" }, + { "EnumValue": 7, "Type": "JailersTowerType", "Name": "ArkobanHall" }, + { "EnumValue": 8, "Type": "JailersTowerType", "Name": "TormentChamberJaina" }, + { "EnumValue": 9, "Type": "JailersTowerType", "Name": "TormentChamberThrall" }, + { "EnumValue": 10, "Type": "JailersTowerType", "Name": "TormentChamberAnduin" }, + { "EnumValue": 11, "Type": "JailersTowerType", "Name": "AdamantVaults" }, + { "EnumValue": 12, "Type": "JailersTowerType", "Name": "ForgottenCatacombs" }, + { "EnumValue": 13, "Type": "JailersTowerType", "Name": "Ossuary" }, + { "EnumValue": 14, "Type": "JailersTowerType", "Name": "BossRush" } + ], + "MaxValue": 14, + "MinValue": 0, + "NumValues": 15 + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "criteriaType" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "completed" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "totalQuantity" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "flags" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "assetID" }, + { "Nilable": false, "Type": "number", "Name": "criteriaID" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "elapsed" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "failed" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "isWeightedProgress" + }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isFormatted" } + ], + "Type": "Structure", + "Name": "ScenarioCriteriaInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "currentStage" }, + { "Nilable": false, "Type": "number", "Name": "numStages" }, + { "Nilable": false, "Type": "number", "Name": "flags" }, + { "Nilable": false, "Type": "bool", "Name": "isComplete" }, + { "Nilable": false, "Type": "number", "Name": "xp" }, + { "Nilable": false, "Type": "number", "Name": "money" }, + { "Nilable": false, "Type": "number", "Name": "type" }, + { "Nilable": false, "Type": "string", "Name": "area" }, + { "Nilable": false, "Type": "textureKit", "Name": "uiTextureKit" }, + { "Nilable": false, "Type": "number", "Name": "scenarioID" } + ], + "Type": "Structure", + "Name": "ScenarioInformation" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "title" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "numCriteria" }, + { "Nilable": false, "Type": "bool", "Name": "stepFailed" }, + { "Nilable": false, "Type": "bool", "Name": "isBonusStep" }, + { "Nilable": false, "Type": "bool", "Name": "isForCurrentStepOnly" }, + { "Nilable": false, "Type": "bool", "Name": "shouldShowBonusObjective" }, + { + "Nilable": false, + "InnerType": "ScenarioStepSpellInfo", + "Type": "table", + "Name": "spells" + }, + { "Nilable": true, "Type": "number", "Name": "weightedProgress" }, + { "Nilable": false, "Type": "number", "Name": "rewardQuestID" }, + { "Nilable": true, "Type": "number", "Name": "widgetSetID" }, + { "Nilable": false, "Type": "number", "Name": "stepID" } + ], + "Type": "Structure", + "Name": "ScenarioStepInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "icon" } + ], + "Type": "Structure", + "Name": "ScenarioStepSpellInfo" + } + ] + }, + { + "Namespace": "C_ScrappingMachineUI", + "Functions": [ + { "Type": "Function", "Name": "CloseScrappingMachine" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "DropPendingScrapItemFromCursor" + }, + { + "Returns": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLoc" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "GetCurrentPendingScrapItemLocationByIndex" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "GetScrapSpellID" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "name" }], + "Type": "Function", + "Name": "GetScrappingMachineName" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasScrappableItems" }], + "Type": "Function", + "Name": "HasScrappableItems" + }, + { "Type": "Function", "Name": "RemoveAllScrapItems" }, + { "Type": "Function", "Name": "RemoveCurrentScrappingItem" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "RemoveItemToScrap" + }, + { "Type": "Function", "Name": "ScrapItems" }, + { "Type": "Function", "Name": "ValidateScrappingList" } + ], + "Type": "System", + "Name": "ScrappingMachineUI", + "Events": [ + { + "LiteralName": "SCRAPPING_MACHINE_ITEM_ADDED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Event", + "Name": "ScrappingMachineItemAdded" + }, + { + "LiteralName": "SCRAPPING_MACHINE_ITEM_REMOVED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Event", + "Name": "ScrappingMachineItemRemoved" + }, + { + "LiteralName": "SCRAPPING_MACHINE_PENDING_ITEM_CHANGED", + "Type": "Event", + "Name": "ScrappingMachinePendingItemChanged" + }, + { + "LiteralName": "SCRAPPING_MACHINE_SCRAPPING_FINISHED", + "Type": "Event", + "Name": "ScrappingMachineScrappingFinished" + } + ], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "GetDefaultScale" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "sizeX" }, + { "Nilable": false, "Type": "number", "Name": "sizeY" } + ], + "Type": "Function", + "Name": "GetPhysicalScreenSize" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "GetScreenDPIScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "height" }], + "Type": "Function", + "Name": "GetScreenHeight" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "width" }], + "Type": "Function", + "Name": "GetScreenWidth" + } + ], + "Type": "System", + "Name": "Screen", + "Events": [], + "Tables": [] + }, + { "Tables": [] }, + { + "Namespace": "C_ScriptWarnings", + "Functions": [], + "Type": "System", + "Name": "ScriptWarnings", + "Events": [ + { + "LiteralName": "LUA_WARNING", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "warnType" }, + { "Nilable": false, "Type": "cstring", "Name": "warningText" } + ], + "Type": "Event", + "Name": "LuaWarning" + } + ], + "Tables": [] + }, + { + "Namespace": "C_ScriptedAnimations", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ScriptedAnimationEffect", + "Type": "table", + "Name": "scriptedAnimationEffects" + } + ], + "Type": "Function", + "Name": "GetAllScriptedAnimationEffects" + } + ], + "Type": "System", + "Name": "ScriptedAnimations", + "Events": [ + { + "LiteralName": "SCRIPTED_ANIMATIONS_UPDATE", + "Type": "Event", + "Name": "ScriptedAnimationsUpdate" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "ScriptedAnimationBehavior", + "Fields": [ + { "EnumValue": 0, "Type": "ScriptedAnimationBehavior", "Name": "None" }, + { "EnumValue": 1, "Type": "ScriptedAnimationBehavior", "Name": "TargetShake" }, + { + "EnumValue": 2, + "Type": "ScriptedAnimationBehavior", + "Name": "TargetKnockBack" + }, + { "EnumValue": 3, "Type": "ScriptedAnimationBehavior", "Name": "SourceRecoil" }, + { + "EnumValue": 4, + "Type": "ScriptedAnimationBehavior", + "Name": "SourceCollideWithTarget" + }, + { "EnumValue": 5, "Type": "ScriptedAnimationBehavior", "Name": "UIParentShake" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "ScriptedAnimationFlags", + "Fields": [ + { + "EnumValue": 1, + "Type": "ScriptedAnimationFlags", + "Name": "UseTargetAsSource" + } + ], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "ScriptedAnimationTrajectory", + "Fields": [ + { "EnumValue": 0, "Type": "ScriptedAnimationTrajectory", "Name": "AtSource" }, + { "EnumValue": 1, "Type": "ScriptedAnimationTrajectory", "Name": "AtTarget" }, + { "EnumValue": 2, "Type": "ScriptedAnimationTrajectory", "Name": "Straight" }, + { "EnumValue": 3, "Type": "ScriptedAnimationTrajectory", "Name": "CurveLeft" }, + { "EnumValue": 4, "Type": "ScriptedAnimationTrajectory", "Name": "CurveRight" }, + { + "EnumValue": 5, + "Type": "ScriptedAnimationTrajectory", + "Name": "CurveRandom" + }, + { + "EnumValue": 6, + "Type": "ScriptedAnimationTrajectory", + "Name": "HalfwayBetween" + } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "fileID", "Name": "visual" }, + { "Nilable": false, "Type": "number", "Name": "visualScale" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { + "Nilable": false, + "Type": "ScriptedAnimationTrajectory", + "Name": "trajectory" + }, + { "Nilable": false, "Type": "number", "Name": "yawRadians" }, + { "Nilable": false, "Type": "number", "Name": "pitchRadians" }, + { "Nilable": false, "Type": "number", "Name": "rollRadians" }, + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" }, + { "Nilable": false, "Type": "number", "Name": "offsetZ" }, + { "Nilable": false, "Type": "number", "Name": "animation" }, + { "Nilable": false, "Type": "number", "Name": "animationSpeed" }, + { "Nilable": false, "Type": "number", "Name": "alpha" }, + { "Nilable": false, "Type": "bool", "Name": "useTargetAsSource" }, + { + "Nilable": true, + "Type": "ScriptedAnimationBehavior", + "Name": "startBehavior" + }, + { "Nilable": true, "Type": "number", "Name": "startSoundKitID" }, + { "Nilable": true, "Type": "number", "Name": "finishEffectID" }, + { + "Nilable": true, + "Type": "ScriptedAnimationBehavior", + "Name": "finishBehavior" + }, + { "Nilable": true, "Type": "number", "Name": "finishSoundKitID" }, + { "Nilable": true, "Type": "number", "Name": "startAlphaFade" }, + { "Nilable": true, "Type": "number", "Name": "startAlphaFadeDuration" }, + { "Nilable": true, "Type": "number", "Name": "endAlphaFade" }, + { "Nilable": true, "Type": "number", "Name": "endAlphaFadeDuration" }, + { "Nilable": true, "Type": "number", "Name": "animationStartOffset" }, + { "Nilable": true, "Type": "number", "Name": "loopingSoundKitID" }, + { "Nilable": true, "Type": "number", "Name": "particleOverrideScale" } + ], + "Type": "Structure", + "Name": "ScriptedAnimationEffect" + } + ] + }, + { + "Namespace": "C_SeasonInfo", + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "expansionID" }], + "Type": "Function", + "Name": "GetCurrentDisplaySeasonExpansion" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "seasonID" }], + "Type": "Function", + "Name": "GetCurrentDisplaySeasonID" + } + ], + "Type": "System", + "Name": "SeasonInfo", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_SecureTransfer", + "Functions": [], + "Type": "System", + "Name": "SecureTransfer", + "Events": [ + { + "LiteralName": "SECURE_TRANSFER_CANCEL", + "Type": "Event", + "Name": "SecureTransferCancel" + }, + { + "LiteralName": "SECURE_TRANSFER_CONFIRM_SEND_MAIL", + "Type": "Event", + "Name": "SecureTransferConfirmSendMail" + }, + { + "LiteralName": "SECURE_TRANSFER_CONFIRM_TRADE_ACCEPT", + "Type": "Event", + "Name": "SecureTransferConfirmTradeAccept" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Fields": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "omnidirectional" + }, + { + "Documentation": [ + "If this light is omnidirectional then point refers to a position, otherwise it refers to a direction" + ], + "Type": "vector3", + "Name": "point", + "Mixin": "Vector3DMixin", + "Nilable": false + }, + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "ambientIntensity" + }, + { + "Nilable": true, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "ambientColor" + }, + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "diffuseIntensity" + }, + { + "Nilable": true, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "diffuseColor" + } + ], + "Type": "Structure", + "Name": "ModelLight" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "PingTextureType", + "Fields": [ + { "EnumValue": 0, "Type": "PingTextureType", "Name": "Center" }, + { "EnumValue": 1, "Type": "PingTextureType", "Name": "Expand" }, + { "EnumValue": 2, "Type": "PingTextureType", "Name": "Rotation" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + } + ] + }, + { + "Namespace": "C_Traits", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canPurchase" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "nodeID" }, + { "Nilable": false, "Type": "number", "Name": "nodeEntryID" } + ], + "Type": "Function", + "Name": "CanPurchaseRank" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canRefund" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "nodeID" } + ], + "Type": "Function", + "Name": "CanRefundRank" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "nodeID" }, + { "Nilable": true, "Type": "number", "Name": "entryID" } + ], + "Type": "Function", + "Name": "CascadeRepurchaseRanks" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Function", + "Name": "ClearCascadeRepurchaseHistory" + }, + { "Type": "Function", "Name": "CloseTraitSystemInteraction" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Function", + "Name": "CommitConfig" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasChanges" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Function", + "Name": "ConfigHasStagedChanges" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "importString" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Function", + "Name": "GenerateImportString" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "importString" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "target" }], + "Type": "Function", + "Name": "GenerateInspectImportString" + }, + { + "Returns": [{ "Nilable": false, "Type": "TraitCondInfo", "Name": "condInfo" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "condID" } + ], + "Type": "Function", + "Name": "GetConditionInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "systemID" }], + "Type": "Function", + "Name": "GetConfigIDBySystemID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "treeID" }], + "Type": "Function", + "Name": "GetConfigIDByTreeID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "TraitConfigInfo", "Name": "configInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Function", + "Name": "GetConfigInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "configIDs" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "TraitConfigType", "Name": "configType" } + ], + "Type": "Function", + "Name": "GetConfigsByType" + }, + { + "Returns": [ + { "Nilable": false, "Type": "TraitDefinitionInfo", "Name": "definitionInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "definitionID" }], + "Type": "Function", + "Name": "GetDefinitionInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "TraitEntryInfo", "Name": "entryInfo" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "entryID" } + ], + "Type": "Function", + "Name": "GetEntryInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "serializationVersion" } + ], + "Type": "Function", + "Name": "GetLoadoutSerializationVersion" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TraitCurrencyCost", + "Type": "table", + "Name": "costs" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "nodeID" } + ], + "Type": "Function", + "Name": "GetNodeCost" + }, + { + "Returns": [{ "Nilable": false, "Type": "TraitNodeInfo", "Name": "nodeInfo" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "nodeID" } + ], + "Type": "Function", + "Name": "GetNodeInfo" + }, + { + "Documentation": [ + "Returns IDs of Trait Nodes with pending changes, grouped by the type of change; Returns nothing if there are no pending changes" + ], + "Type": "Function", + "Name": "GetStagedChanges", + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "nodeIDsWithPurchases" + }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "nodeIDsWithRefunds" + }, + { + "Documentation": [ + "Selection nodes that had a previously committed selected entry, and now have a different selected entry pending" + ], + "Type": "table", + "Name": "nodeIDsWithSelectionSwaps", + "Nilable": false, + "InnerType": "number" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }] + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TraitCurrencyCost", + "Type": "table", + "Name": "costs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Function", + "Name": "GetStagedChangesCost" + }, + { + "Returns": [ + { "Nilable": false, "Type": "TraitSubTreeInfo", "Name": "subTreeInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "subTreeID" } + ], + "Type": "Function", + "Name": "GetSubTreeInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "systemID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "treeID" }], + "Type": "Function", + "Name": "GetSystemIDByTreeID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "flags" }, + { "Nilable": false, "Type": "number", "Name": "type" }, + { "Nilable": true, "Type": "number", "Name": "currencyTypesID" }, + { "Nilable": true, "Type": "number", "Name": "icon" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "traitCurrencyID" }], + "Type": "Function", + "Name": "GetTraitCurrencyInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "description" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "entryID" }, + { "Nilable": false, "Type": "number", "Name": "rank" } + ], + "Type": "Function", + "Name": "GetTraitDescription" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "flags" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Function", + "Name": "GetTraitSystemFlags" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "uiWidgetSetID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Function", + "Name": "GetTraitSystemWidgetSetID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TreeCurrencyInfo", + "Type": "table", + "Name": "treeCurrencyInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "treeID" }, + { "Nilable": false, "Type": "bool", "Name": "excludeStagedChanges" } + ], + "Type": "Function", + "Name": "GetTreeCurrencyInfo" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "result" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "treeID" }], + "Type": "Function", + "Name": "GetTreeHash" + }, + { + "Returns": [{ "Nilable": false, "Type": "TraitTreeInfo", "Name": "treeInfo" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "treeID" } + ], + "Type": "Function", + "Name": "GetTreeInfo" + }, + { + "Documentation": [ + "Returns a list of nodeIDs, sorted ascending, for a given treeID. Contains nodes for all class specializations." + ], + "Type": "Function", + "Name": "GetTreeNodes", + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "nodeIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "treeID" }] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasValidInspectData" }], + "Type": "Function", + "Name": "HasValidInspectData" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isReadyForCommit" }], + "Type": "Function", + "Name": "IsReadyForCommit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "nodeID" } + ], + "Type": "Function", + "Name": "PurchaseRank" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "nodeID" } + ], + "Type": "Function", + "Name": "RefundAllRanks" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "nodeID" }, + { "Nilable": true, "Type": "bool", "Name": "clearEdges" } + ], + "Type": "Function", + "Name": "RefundRank" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "treeID" } + ], + "Type": "Function", + "Name": "ResetTree" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "treeID" }, + { "Nilable": false, "Type": "number", "Name": "traitCurrencyID" } + ], + "Type": "Function", + "Name": "ResetTreeByCurrency" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Function", + "Name": "RollbackConfig" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "configID" }, + { "Nilable": false, "Type": "number", "Name": "nodeID" }, + { "Nilable": true, "Type": "number", "Name": "nodeEntryID" }, + { "Nilable": true, "Type": "bool", "Name": "clearEdges" } + ], + "Type": "Function", + "Name": "SetSelection" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Function", + "Name": "StageConfig" + }, + { "Type": "Function", "Name": "TalentTestUnlearnSpells" } + ], + "Type": "System", + "Name": "SharedTraits", + "Events": [ + { + "LiteralName": "CONFIG_COMMIT_FAILED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Event", + "Name": "ConfigCommitFailed" + }, + { + "LiteralName": "TRAIT_COND_INFO_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "condID" }], + "Type": "Event", + "Name": "TraitCondInfoChanged" + }, + { + "LiteralName": "TRAIT_CONFIG_CREATED", + "Payload": [ + { "Nilable": false, "Type": "TraitConfigInfo", "Name": "configInfo" } + ], + "Type": "Event", + "Name": "TraitConfigCreated" + }, + { + "LiteralName": "TRAIT_CONFIG_DELETED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Event", + "Name": "TraitConfigDeleted" + }, + { + "LiteralName": "TRAIT_CONFIG_LIST_UPDATED", + "Type": "Event", + "Name": "TraitConfigListUpdated" + }, + { + "LiteralName": "TRAIT_CONFIG_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "configID" }], + "Type": "Event", + "Name": "TraitConfigUpdated" + }, + { + "LiteralName": "TRAIT_NODE_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Type": "Event", + "Name": "TraitNodeChanged" + }, + { + "LiteralName": "TRAIT_NODE_CHANGED_PARTIAL", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "TraitNodeInfoPartial", "Name": "info" } + ], + "Type": "Event", + "Name": "TraitNodeChangedPartial" + }, + { + "LiteralName": "TRAIT_NODE_ENTRY_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "nodeEntryID" }], + "Type": "Event", + "Name": "TraitNodeEntryUpdated" + }, + { + "LiteralName": "TRAIT_SUB_TREE_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "subTreeID" }], + "Type": "Event", + "Name": "TraitSubTreeChanged" + }, + { + "LiteralName": "TRAIT_SYSTEM_INTERACTION_STARTED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "treeID" }], + "Type": "Event", + "Name": "TraitSystemInteractionStarted" + }, + { + "LiteralName": "TRAIT_SYSTEM_NPC_CLOSED", + "Type": "Event", + "Name": "TraitSystemNpcClosed" + }, + { + "LiteralName": "TRAIT_TREE_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "treeID" }], + "Type": "Event", + "Name": "TraitTreeChanged" + }, + { + "LiteralName": "TRAIT_TREE_CURRENCY_INFO_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "treeID" }], + "Type": "Event", + "Name": "TraitTreeCurrencyInfoUpdated" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "condID" }, + { "Nilable": true, "Type": "number", "Name": "ranksGranted" }, + { "Nilable": false, "Type": "bool", "Name": "isAlwaysMet" }, + { "Nilable": false, "Type": "bool", "Name": "isMet" }, + { "Nilable": false, "Type": "bool", "Name": "isGate" }, + { "Nilable": true, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "number", "Name": "achievementID" }, + { "Nilable": true, "Type": "number", "Name": "specSetID" }, + { "Nilable": true, "Type": "number", "Name": "playerLevel" }, + { "Nilable": true, "Type": "number", "Name": "traitCurrencyID" }, + { "Nilable": true, "Type": "number", "Name": "spentAmountRequired" }, + { "Nilable": true, "Type": "string", "Name": "tooltipFormat" }, + { "Nilable": true, "Type": "number", "Name": "traitCondAccountElementID" } + ], + "Type": "Structure", + "Name": "TraitCondInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "TraitConfigType", "Name": "type" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "treeIDs" }, + { "Nilable": false, "Type": "bool", "Name": "usesSharedActionBars" } + ], + "Type": "Structure", + "Name": "TraitConfigInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "number", "Name": "amount" } + ], + "Type": "Structure", + "Name": "TraitCurrencyCost" + }, + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "spellID" }, + { "Nilable": true, "Type": "string", "Name": "overrideName" }, + { "Nilable": true, "Type": "string", "Name": "overrideSubtext" }, + { "Nilable": true, "Type": "string", "Name": "overrideDescription" }, + { "Nilable": true, "Type": "number", "Name": "overrideIcon" }, + { "Nilable": true, "Type": "number", "Name": "overriddenSpellID" }, + { "Nilable": true, "Type": "TraitDefinitionSubType", "Name": "subType" } + ], + "Type": "Structure", + "Name": "TraitDefinitionInfo" + }, + { + "Fields": [ + { + "Nilable": true, + "Documentation": ["Nil on SubTreeSelection Node Entries"], + "Type": "number", + "Name": "definitionID" + }, + { + "Nilable": true, + "Documentation": [ + "Populated only on SubTreeSelection Node Entries; This is the SubTree that is activated if this Entry is chosen" + ], + "Type": "number", + "Name": "subTreeID" + }, + { "Nilable": false, "Type": "TraitNodeEntryType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "maxRanks" }, + { "Nilable": false, "Type": "bool", "Name": "isAvailable" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "conditionIDs" + } + ], + "Type": "Structure", + "Name": "TraitEntryInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "entryID" }, + { "Nilable": false, "Type": "number", "Name": "rank" } + ], + "Type": "Structure", + "Name": "TraitEntryRankInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "topLeftNodeID" }, + { "Nilable": false, "Type": "number", "Name": "conditionID" } + ], + "Type": "Structure", + "Name": "TraitGateInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "number", "Name": "posX" }, + { "Nilable": false, "Type": "number", "Name": "posY" }, + { "Nilable": false, "Type": "number", "Name": "flags" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "entryIDs" + }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "entryIDsWithCommittedRanks" + }, + { "Nilable": false, "Type": "bool", "Name": "canPurchaseRank" }, + { "Nilable": false, "Type": "bool", "Name": "canRefundRank" }, + { "Nilable": false, "Type": "bool", "Name": "isAvailable" }, + { "Nilable": false, "Type": "bool", "Name": "isVisible" }, + { + "Nilable": false, + "Documentation": [ + "True if this node fails the TRAIT_CONDITION_TYPE_DISPLAY_ERROR condition check. Used to communicate a problem with the node to the player (e.g. A prerequisite node has not been purchased.) but will not prevent the player from spending points on the node." + ], + "Type": "bool", + "Name": "isDisplayError" + }, + { "Nilable": false, "Type": "number", "Name": "ranksPurchased" }, + { "Nilable": false, "Type": "number", "Name": "activeRank" }, + { "Nilable": false, "Type": "number", "Name": "currentRank" }, + { "Nilable": true, "Type": "TraitEntryRankInfo", "Name": "activeEntry" }, + { "Nilable": true, "Type": "TraitEntryRankInfo", "Name": "nextEntry" }, + { "Nilable": false, "Type": "number", "Name": "maxRanks" }, + { "Nilable": false, "Type": "TraitNodeType", "Name": "type" }, + { + "Nilable": false, + "InnerType": "TraitOutEdgeInfo", + "Type": "table", + "Name": "visibleEdges" + }, + { "Nilable": false, "Type": "bool", "Name": "meetsEdgeRequirements" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "groupIDs" + }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "conditionIDs" + }, + { "Nilable": false, "Type": "bool", "Name": "isCascadeRepurchasable" }, + { "Nilable": true, "Type": "number", "Name": "cascadeRepurchaseEntryID" }, + { + "Nilable": true, + "Documentation": [ + "The SubTree this Node belongs to; Nil if it is not part of a SubTree" + ], + "Type": "number", + "Name": "subTreeID" + }, + { + "Nilable": true, + "Documentation": [ + "True if this node has a SubTreeID, and the SubTree is chosen or staged; May be nil if not part of a SubTree at all" + ], + "Type": "bool", + "Name": "subTreeActive" + } + ], + "Type": "Structure", + "Name": "TraitNodeInfo" + }, + { + "Fields": [ + { "Nilable": true, "Type": "bool", "Name": "canPurchaseRank" }, + { "Nilable": true, "Type": "bool", "Name": "canRefundRank" }, + { "Nilable": true, "Type": "bool", "Name": "isAvailable" }, + { "Nilable": true, "Type": "bool", "Name": "isVisible" }, + { "Nilable": true, "Type": "number", "Name": "ranksPurchased" }, + { "Nilable": true, "Type": "number", "Name": "activeRank" }, + { "Nilable": true, "Type": "number", "Name": "currentRank" }, + { "Nilable": true, "Type": "bool", "Name": "meetsEdgeRequirements" }, + { "Nilable": true, "Type": "bool", "Name": "isCascadeRepurchasable" }, + { "Nilable": true, "Type": "number", "Name": "activeEntryID" }, + { "Nilable": true, "Type": "bool", "Name": "subTreeActive" } + ], + "Type": "Structure", + "Name": "TraitNodeInfoPartial" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "targetNode" }, + { "Nilable": false, "Type": "number", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "visualStyle" }, + { "Nilable": false, "Type": "bool", "Name": "isActive" } + ], + "Type": "Structure", + "Name": "TraitOutEdgeInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": true, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "string", "Name": "description" }, + { "Nilable": true, "Type": "textureAtlas", "Name": "iconElementID" }, + { "Nilable": true, "Type": "number", "Name": "traitCurrencyID" }, + { "Nilable": false, "Type": "bool", "Name": "isActive" }, + { + "Documentation": [ + "SubTreeSelectionNodes whose choice entries include this SubTree" + ], + "Type": "table", + "Name": "subTreeSelectionNodeIDs", + "Nilable": false, + "InnerType": "number" + }, + { + "Nilable": false, + "Documentation": [ + "Center X node position calculated from the posX values of all of this subTree's nodes" + ], + "Type": "number", + "Name": "posX" + }, + { + "Nilable": false, + "Documentation": [ + "Topmost Y node position taken from the posY values of all of this subTree's nodes" + ], + "Type": "number", + "Name": "posY" + } + ], + "Type": "Structure", + "Name": "TraitSubTreeInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { + "Nilable": false, + "InnerType": "TraitGateInfo", + "Type": "table", + "Name": "gates" + }, + { "Nilable": false, "Type": "bool", "Name": "hideSingleRankNumbers" } + ], + "Type": "Structure", + "Name": "TraitTreeInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "traitCurrencyID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": true, "Type": "number", "Name": "maxQuantity" }, + { "Nilable": false, "Type": "number", "Name": "spent" } + ], + "Type": "Structure", + "Name": "TreeCurrencyInfo" + } + ] + }, + { "Tables": [] }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "durationSec" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDuration" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "elapsedSec" }], + "Arguments": [], + "Type": "Function", + "Name": "GetElapsed" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "delaySec" }], + "Arguments": [], + "Type": "Function", + "Name": "GetEndDelay" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "order" }], + "Arguments": [], + "Type": "Function", + "Name": "GetOrder" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "progress" }], + "Arguments": [], + "Type": "Function", + "Name": "GetProgress" + }, + { + "Returns": [{ "Nilable": false, "Type": "CScriptObject", "Name": "region" }], + "Arguments": [], + "Type": "Function", + "Name": "GetRegionParent" + }, + { + "Returns": [{ "Nilable": false, "Type": "luaFunction", "Name": "script" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "scriptTypeName" }, + { "Nilable": true, "Type": "number", "Name": "bindingType" } + ], + "Type": "Function", + "Name": "GetScript" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "progress" }], + "Arguments": [], + "Type": "Function", + "Name": "GetSmoothProgress" + }, + { + "Returns": [{ "Nilable": false, "Type": "SmoothingType", "Name": "weights" }], + "Arguments": [], + "Type": "Function", + "Name": "GetSmoothing" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "delaySec" }], + "Arguments": [], + "Type": "Function", + "Name": "GetStartDelay" + }, + { + "Returns": [{ "Nilable": false, "Type": "CScriptObject", "Name": "target" }], + "Arguments": [], + "Type": "Function", + "Name": "GetTarget" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasScript" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "scriptName" }], + "Type": "Function", + "Name": "HasScript" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "scriptTypeName" }, + { "Nilable": false, "Type": "luaFunction", "Name": "script" }, + { "Nilable": true, "Type": "number", "Name": "bindingType" } + ], + "Type": "Function", + "Name": "HookScript" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDelaying" }], + "Arguments": [], + "Type": "Function", + "Name": "IsDelaying" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDone" }], + "Arguments": [], + "Type": "Function", + "Name": "IsDone" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPaused" }], + "Arguments": [], + "Type": "Function", + "Name": "IsPaused" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPlaying" }], + "Arguments": [], + "Type": "Function", + "Name": "IsPlaying" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isStopped" }], + "Arguments": [], + "Type": "Function", + "Name": "IsStopped" + }, + { "Arguments": [], "Type": "Function", "Name": "Pause" }, + { "Arguments": [], "Type": "Function", "Name": "Play" }, + { "Arguments": [], "Type": "Function", "Name": "Restart" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "childKey" }], + "Type": "Function", + "Name": "SetChildKey" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "durationSec" }, + { + "Nilable": false, + "Default": true, + "Type": "bool", + "Name": "recomputeGroupDuration" + } + ], + "Type": "Function", + "Name": "SetDuration" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "delaySec" }, + { + "Nilable": false, + "Default": true, + "Type": "bool", + "Name": "recomputeGroupDuration" + } + ], + "Type": "Function", + "Name": "SetEndDelay" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "newOrder" }], + "Type": "Function", + "Name": "SetOrder" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SimpleAnimGroup", "Name": "parent" }, + { "Nilable": true, "Type": "number", "Name": "order" } + ], + "Type": "Function", + "Name": "SetParent" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "play" }], + "Type": "Function", + "Name": "SetPlaying" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "scriptTypeName" }, + { "Nilable": true, "Type": "luaFunction", "Name": "script" } + ], + "Type": "Function", + "Name": "SetScript" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "durationSec" }], + "Type": "Function", + "Name": "SetSmoothProgress" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SmoothingType", "Name": "weights" }], + "Type": "Function", + "Name": "SetSmoothing" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "delaySec" }, + { + "Nilable": false, + "Default": true, + "Type": "bool", + "Name": "recomputeGroupDuration" + } + ], + "Type": "Function", + "Name": "SetStartDelay" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "CScriptObject", "Name": "target" }], + "Type": "Function", + "Name": "SetTarget" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "key" }], + "Type": "Function", + "Name": "SetTargetKey" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "SetTargetName" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [], + "Type": "Function", + "Name": "SetTargetParent" + }, + { "Arguments": [], "Type": "Function", "Name": "Stop" } + ], + "Type": "ScriptObject", + "Name": "SimpleAnimAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "normalizedAlpha" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFromAlpha" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "normalizedAlpha" }], + "Arguments": [], + "Type": "Function", + "Name": "GetToAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "normalizedAlpha" }], + "Type": "Function", + "Name": "SetFromAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "normalizedAlpha" }], + "Type": "Function", + "Name": "SetToAlpha" + } + ], + "Type": "ScriptObject", + "Name": "SimpleAnimAlphaAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "columns" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFlipBookColumns" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "height" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFlipBookFrameHeight" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "width" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFlipBookFrameWidth" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "frames" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFlipBookFrames" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "rows" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFlipBookRows" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "columns" }], + "Type": "Function", + "Name": "SetFlipBookColumns" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "height" }], + "Type": "Function", + "Name": "SetFlipBookFrameHeight" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "width" }], + "Type": "Function", + "Name": "SetFlipBookFrameWidth" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "frames" }], + "Type": "Function", + "Name": "SetFlipBookFrames" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "rows" }], + "Type": "Function", + "Name": "SetFlipBookRows" + } + ], + "Type": "ScriptObject", + "Name": "SimpleAnimFlipBookAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "SimpleAnim", "Name": "anim" }], + "Arguments": [ + { "Nilable": true, "Type": "cstring", "Name": "animationType" }, + { "Nilable": true, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "cstring", "Name": "templateName" } + ], + "Type": "Function", + "Name": "CreateAnimation" + }, + { "Arguments": [], "Type": "Function", "Name": "Finish" }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "animationSpeedMultiplier" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetAnimationSpeedMultiplier" + }, + { + "Returns": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "ScriptObject", + "Name": "scriptObject" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetAnimations" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "durationSec" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDuration" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "elapsedSec" }], + "Arguments": [], + "Type": "Function", + "Name": "GetElapsed" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "loopState" }], + "Arguments": [], + "Type": "Function", + "Name": "GetLoopState" + }, + { + "Returns": [{ "Nilable": false, "Type": "LoopType", "Name": "loopType" }], + "Arguments": [], + "Type": "Function", + "Name": "GetLooping" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "progress" }], + "Arguments": [], + "Type": "Function", + "Name": "GetProgress" + }, + { + "Returns": [{ "Nilable": false, "Type": "luaFunction", "Name": "script" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "scriptTypeName" }, + { "Nilable": true, "Type": "number", "Name": "bindingType" } + ], + "Type": "Function", + "Name": "GetScript" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasScript" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "scriptName" }], + "Type": "Function", + "Name": "HasScript" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "scriptTypeName" }, + { "Nilable": false, "Type": "luaFunction", "Name": "script" }, + { "Nilable": true, "Type": "number", "Name": "bindingType" } + ], + "Type": "Function", + "Name": "HookScript" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDone" }], + "Arguments": [], + "Type": "Function", + "Name": "IsDone" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPaused" }], + "Arguments": [], + "Type": "Function", + "Name": "IsPaused" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPendingFinish" }], + "Arguments": [], + "Type": "Function", + "Name": "IsPendingFinish" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPlaying" }], + "Arguments": [], + "Type": "Function", + "Name": "IsPlaying" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isReverse" }], + "Arguments": [], + "Type": "Function", + "Name": "IsReverse" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSetToFinalAlpha" }], + "Arguments": [], + "Type": "Function", + "Name": "IsSetToFinalAlpha" + }, + { "Arguments": [], "Type": "Function", "Name": "Pause" }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "reverse" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "offset" } + ], + "Type": "Function", + "Name": "Play" + }, + { "Arguments": [], "Type": "Function", "Name": "RemoveAnimations" }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "reverse" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "offset" } + ], + "Type": "Function", + "Name": "Restart" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "animationSpeedMultiplier" } + ], + "Type": "Function", + "Name": "SetAnimationSpeedMultiplier" + }, + { + "Arguments": [{ "Nilable": false, "Type": "LoopType", "Name": "loopType" }], + "Type": "Function", + "Name": "SetLooping" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "play" }], + "Type": "Function", + "Name": "SetPlaying" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "scriptTypeName" }, + { "Nilable": true, "Type": "luaFunction", "Name": "script" } + ], + "Type": "Function", + "Name": "SetScript" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "setToFinalAlpha" }], + "Type": "Function", + "Name": "SetToFinalAlpha" + }, + { "Arguments": [], "Type": "Function", "Name": "Stop" } + ], + "Type": "ScriptObject", + "Name": "SimpleAnimGroupAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "SimpleControlPoint", "Name": "point" }], + "Arguments": [ + { "Nilable": true, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "cstring", "Name": "templateName" }, + { "Nilable": true, "Type": "number", "Name": "order" } + ], + "Type": "Function", + "Name": "CreateControlPoint" + }, + { + "Returns": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "ScriptObject", + "Name": "scriptObject" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetControlPoints" + }, + { + "Returns": [{ "Nilable": false, "Type": "CurveType", "Name": "curveType" }], + "Arguments": [], + "Type": "Function", + "Name": "GetCurveType" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxOrder" }], + "Arguments": [], + "Type": "Function", + "Name": "GetMaxControlPointOrder" + }, + { + "Arguments": [{ "Nilable": false, "Type": "CurveType", "Name": "curveType" }], + "Type": "Function", + "Name": "SetCurveType" + } + ], + "Type": "ScriptObject", + "Name": "SimpleAnimPathAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "angle" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDegrees" + }, + { + "Returns": [ + { "Nilable": false, "Type": "FramePoint", "Name": "point" }, + { "Nilable": false, "Type": "number", "Name": "originX" }, + { "Nilable": false, "Type": "number", "Name": "originY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetOrigin" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "angle" }], + "Arguments": [], + "Type": "Function", + "Name": "GetRadians" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "angle" }], + "Type": "Function", + "Name": "SetDegrees" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "FramePoint", "Name": "point" }, + { "Nilable": false, "Type": "number", "Name": "originX" }, + { "Nilable": false, "Type": "number", "Name": "originY" } + ], + "Type": "Function", + "Name": "SetOrigin" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "angle" }], + "Type": "Function", + "Name": "SetRadians" + } + ], + "Type": "ScriptObject", + "Name": "SimpleAnimRotationAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "FramePoint", "Name": "point" }, + { "Nilable": false, "Type": "number", "Name": "originX" }, + { "Nilable": false, "Type": "number", "Name": "originY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetOrigin" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "scaleX" }, + { "Nilable": false, "Type": "number", "Name": "scaleY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetScale" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "scaleX" }, + { "Nilable": false, "Type": "number", "Name": "scaleY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetScaleFrom" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "scaleX" }, + { "Nilable": false, "Type": "number", "Name": "scaleY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetScaleTo" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "FramePoint", "Name": "point" }, + { "Nilable": false, "Type": "number", "Name": "originX" }, + { "Nilable": false, "Type": "number", "Name": "originY" } + ], + "Type": "Function", + "Name": "SetOrigin" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "scaleX" }, + { "Nilable": false, "Type": "number", "Name": "scaleY" } + ], + "Type": "Function", + "Name": "SetScale" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "scaleX" }, + { "Nilable": false, "Type": "number", "Name": "scaleY" } + ], + "Type": "Function", + "Name": "SetScaleFrom" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "scaleX" }, + { "Nilable": false, "Type": "number", "Name": "scaleY" } + ], + "Type": "Function", + "Name": "SetScaleTo" + } + ], + "Type": "ScriptObject", + "Name": "SimpleAnimScaleAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [], + "Type": "ScriptObject", + "Name": "SimpleAnimScaleLineAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "offsetU" }, + { "Nilable": false, "Type": "number", "Name": "offsetV" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetOffset" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetU" }, + { "Nilable": false, "Type": "number", "Name": "offsetV" } + ], + "Type": "Function", + "Name": "SetOffset" + } + ], + "Type": "ScriptObject", + "Name": "SimpleAnimTextureCoordTranslationAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetOffset" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Type": "Function", + "Name": "SetOffset" + } + ], + "Type": "ScriptObject", + "Name": "SimpleAnimTranslationAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [], + "Type": "ScriptObject", + "Name": "SimpleAnimTranslationLineAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGBA", + "Name": "color" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetEndColor" + }, + { + "Returns": [ + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGBA", + "Name": "color" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetStartColor" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGBA", + "Name": "color" + } + ], + "Type": "Function", + "Name": "SetEndColor" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGBA", + "Name": "color" + } + ], + "Type": "Function", + "Name": "SetStartColor" + } + ], + "Type": "ScriptObject", + "Name": "SimpleAnimVertexColorAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "SimpleAnimGroup", "Name": "group" }], + "Arguments": [ + { "Nilable": true, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "cstring", "Name": "templateName" } + ], + "Type": "Function", + "Name": "CreateAnimationGroup" + }, + { + "Returns": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "ScriptObject", + "Name": "scriptObject" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetAnimationGroups" + }, + { "Arguments": [], "Type": "Function", "Name": "StopAnimating" } + ], + "Type": "ScriptObject", + "Name": "SimpleAnimatableObjectAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "ClearFocus" }, + { "Arguments": [], "Type": "Function", "Name": "CopyExternalLink" }, + { "Arguments": [], "Type": "Function", "Name": "DeleteCookies" }, + { "Arguments": [], "Type": "Function", "Name": "NavigateBack" }, + { "Arguments": [], "Type": "Function", "Name": "NavigateForward" }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "urlType" }], + "Type": "Function", + "Name": "NavigateHome" + }, + { "Arguments": [], "Type": "Function", "Name": "NavigateReload" }, + { "Arguments": [], "Type": "Function", "Name": "NavigateStop" }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "url" }], + "Documentation": ["Not functional in public builds"], + "Type": "Function", + "Name": "NavigateTo" + }, + { "Arguments": [], "Type": "Function", "Name": "OpenExternalLink" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "index" }], + "Type": "Function", + "Name": "OpenTicket" + }, + { "Arguments": [], "Type": "Function", "Name": "SetFocus" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "zoom" }], + "Type": "Function", + "Name": "SetZoom" + } + ], + "Type": "ScriptObject", + "Name": "SimpleBrowserAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "ClearDisabledTexture" }, + { "Arguments": [], "Type": "Function", "Name": "ClearHighlightTexture" }, + { "Arguments": [], "Type": "Function", "Name": "ClearNormalTexture" }, + { "Arguments": [], "Type": "Function", "Name": "ClearPushedTexture" }, + { + "Arguments": [ + { + "Nilable": false, + "Default": "LeftButton", + "Type": "cstring", + "Name": "button" + }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isDown" } + ], + "Type": "Function", + "Name": "Click" + }, + { "Arguments": [], "Type": "Function", "Name": "Disable" }, + { "Arguments": [], "Type": "Function", "Name": "Enable" }, + { + "Returns": [ + { "Nilable": false, "Type": "SimpleButtonStateToken", "Name": "buttonState" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetButtonState" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDisabledFontObject" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDisabledTexture" + }, + { + "Returns": [ + { "Nilable": false, "Type": "SimpleFontString", "Name": "fontString" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetFontString" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Arguments": [], + "Type": "Function", + "Name": "GetHighlightFontObject" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetHighlightTexture" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "motionScriptsWhileDisabled" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetMotionScriptsWhileDisabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Arguments": [], + "Type": "Function", + "Name": "GetNormalFontObject" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetNormalTexture" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetPushedTextOffset" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetPushedTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Arguments": [], + "Type": "Function", + "Name": "GetText" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "height" }], + "Arguments": [], + "Type": "Function", + "Name": "GetTextHeight" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "width" }], + "Arguments": [], + "Type": "Function", + "Name": "GetTextWidth" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEnabled" }], + "Arguments": [], + "Type": "Function", + "Name": "IsEnabled" + }, + { + "Arguments": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "number", + "Name": "unpackedPrimitiveType" + } + ], + "Type": "Function", + "Name": "RegisterForClicks" + }, + { + "Arguments": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "number", + "Name": "unpackedPrimitiveType" + } + ], + "Type": "Function", + "Name": "RegisterForMouse" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SimpleButtonStateToken", "Name": "buttonState" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "lock" } + ], + "Type": "Function", + "Name": "SetButtonState" + }, + { + "Arguments": [{ "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }], + "Type": "Function", + "Name": "SetDisabledAtlas" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Type": "Function", + "Name": "SetDisabledFontObject" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetDisabledTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetEnabled" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SimpleFontString", "Name": "fontString" } + ], + "Type": "Function", + "Name": "SetFontString" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Type": "Function", + "Name": "SetFormattedText" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }, + { "Nilable": true, "Type": "BlendMode", "Name": "blendMode" } + ], + "Type": "Function", + "Name": "SetHighlightAtlas" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Type": "Function", + "Name": "SetHighlightFontObject" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "TextureAsset", "Name": "asset" }, + { "Nilable": true, "Type": "BlendMode", "Name": "blendMode" } + ], + "Type": "Function", + "Name": "SetHighlightTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "bool", "Name": "motionScriptsWhileDisabled" } + ], + "Type": "Function", + "Name": "SetMotionScriptsWhileDisabled" + }, + { + "Arguments": [{ "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }], + "Type": "Function", + "Name": "SetNormalAtlas" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Type": "Function", + "Name": "SetNormalFontObject" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetNormalTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }], + "Type": "Function", + "Name": "SetPushedAtlas" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Type": "Function", + "Name": "SetPushedTextOffset" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetPushedTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Default": "", "Type": "cstring", "Name": "text" } + ], + "Type": "Function", + "Name": "SetText" + } + ], + "Type": "ScriptObject", + "Name": "SimpleButtonAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "checked" }], + "Arguments": [], + "Type": "Function", + "Name": "GetChecked" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetCheckedTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDisabledCheckedTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "checked" } + ], + "Type": "Function", + "Name": "SetChecked" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetCheckedTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetDisabledCheckedTexture" + } + ], + "Type": "ScriptObject", + "Name": "SimpleCheckboxAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "ClearColorWheelTexture" }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Arguments": [], + "Type": "Function", + "Name": "GetColorAlpha" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetColorAlphaTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetColorAlphaThumbTexture" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "hsvX" }, + { "Nilable": false, "Type": "number", "Name": "hsvY" }, + { "Nilable": false, "Type": "number", "Name": "hsvZ" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetColorHSV" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "rgbR" }, + { "Nilable": false, "Type": "number", "Name": "rgbG" }, + { "Nilable": false, "Type": "number", "Name": "rgbB" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetColorRGB" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetColorValueTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetColorValueThumbTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetColorWheelTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetColorWheelThumbTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetColorAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Type": "Function", + "Name": "SetColorAlphaTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "texture" }], + "Type": "Function", + "Name": "SetColorAlphaThumbTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "hsvX" }, + { "Nilable": false, "Type": "number", "Name": "hsvY" }, + { "Nilable": false, "Type": "number", "Name": "hsvZ" } + ], + "Type": "Function", + "Name": "SetColorHSV" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "rgbR" }, + { "Nilable": false, "Type": "number", "Name": "rgbG" }, + { "Nilable": false, "Type": "number", "Name": "rgbB" } + ], + "Type": "Function", + "Name": "SetColorRGB" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Type": "Function", + "Name": "SetColorValueTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "texture" }], + "Type": "Function", + "Name": "SetColorValueThumbTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Type": "Function", + "Name": "SetColorWheelTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "texture" }], + "Type": "Function", + "Name": "SetColorWheelThumbTexture" + } + ], + "Type": "ScriptObject", + "Name": "SimpleColorSelectAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetOffset" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "order" }], + "Arguments": [], + "Type": "Function", + "Name": "GetOrder" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Type": "Function", + "Name": "SetOffset" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "order" }], + "Type": "Function", + "Name": "SetOrder" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SimplePathAnim", "Name": "parent" }, + { "Nilable": true, "Type": "number", "Name": "order" } + ], + "Type": "Function", + "Name": "SetParent" + } + ], + "Type": "ScriptObject", + "Name": "SimpleControlPointAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Type": "Function", + "Name": "AddHistoryLine" + }, + { "Arguments": [], "Type": "Function", "Name": "ClearFocus" }, + { "Arguments": [], "Type": "Function", "Name": "ClearHighlightText" }, + { "Arguments": [], "Type": "Function", "Name": "ClearHistory" }, + { "Arguments": [], "Type": "Function", "Name": "Disable" }, + { "Arguments": [], "Type": "Function", "Name": "Enable" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "altMode" }], + "Arguments": [], + "Type": "Function", + "Name": "GetAltArrowKeyMode" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "cursorBlinkSpeedSec" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetBlinkSpeed" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "cursorPosition" }], + "Arguments": [], + "Type": "Function", + "Name": "GetCursorPosition" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "displayText" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDisplayText" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "uiUnit", "Name": "fontHeight" }, + { "Nilable": false, "Type": "TBFFlags", "Name": "flags" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetFont" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFontObject" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetHighlightColor" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numHistoryLines" }], + "Arguments": [], + "Type": "Function", + "Name": "GetHistoryLines" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isIndented" }], + "Arguments": [], + "Type": "Function", + "Name": "GetIndentedWordWrap" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "language" }], + "Arguments": [], + "Type": "Function", + "Name": "GetInputLanguage" + }, + { + "Returns": [ + { "Nilable": false, "Type": "JustifyHorizontal", "Name": "justifyH" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetJustifyH" + }, + { + "Returns": [{ "Nilable": false, "Type": "JustifyVertical", "Name": "justifyV" }], + "Arguments": [], + "Type": "Function", + "Name": "GetJustifyV" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxBytes" }], + "Arguments": [], + "Type": "Function", + "Name": "GetMaxBytes" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxLetters" }], + "Arguments": [], + "Type": "Function", + "Name": "GetMaxLetters" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numLetters" }], + "Arguments": [], + "Type": "Function", + "Name": "GetNumLetters" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "number" }], + "Arguments": [], + "Type": "Function", + "Name": "GetNumber" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetShadowColor" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetShadowOffset" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "fontHeight" }], + "Arguments": [], + "Type": "Function", + "Name": "GetSpacing" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Arguments": [], + "Type": "Function", + "Name": "GetText" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetTextColor" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "right" }, + { "Nilable": false, "Type": "uiUnit", "Name": "top" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetTextInsets" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "cursorPosition" }], + "Arguments": [], + "Type": "Function", + "Name": "GetUTF8CursorPosition" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxVisibleBytes" }], + "Arguments": [], + "Type": "Function", + "Name": "GetVisibleTextByteLimit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFocus" }], + "Arguments": [], + "Type": "Function", + "Name": "HasFocus" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasText" }], + "Arguments": [], + "Type": "Function", + "Name": "HasText" + }, + { + "Arguments": [ + { "Nilable": false, "Default": 0, "Type": "number", "Name": "start" }, + { "Nilable": false, "Default": -1, "Type": "number", "Name": "stop" } + ], + "Type": "Function", + "Name": "HighlightText" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Type": "Function", + "Name": "Insert" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "IsAlphabeticOnly" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "autoFocus" }], + "Arguments": [], + "Type": "Function", + "Name": "IsAutoFocus" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "countInvisibleLetters" } + ], + "Arguments": [], + "Type": "Function", + "Name": "IsCountInvisibleLetters" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEnabled" }], + "Arguments": [], + "Type": "Function", + "Name": "IsEnabled" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isInIMECompositionMode" } + ], + "Arguments": [], + "Type": "Function", + "Name": "IsInIMECompositionMode" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "multiline" }], + "Arguments": [], + "Type": "Function", + "Name": "IsMultiLine" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isNumeric" }], + "Arguments": [], + "Type": "Function", + "Name": "IsNumeric" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isNumeric" }], + "Arguments": [], + "Type": "Function", + "Name": "IsNumericFullRange" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPassword" }], + "Arguments": [], + "Type": "Function", + "Name": "IsPassword" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSecure" }], + "Arguments": [], + "Type": "Function", + "Name": "IsSecureText" + }, + { "Arguments": [], "Type": "Function", "Name": "ResetInputMode" }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetAlphabeticOnly" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "altMode" } + ], + "Type": "Function", + "Name": "SetAltArrowKeyMode" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "autoFocus" } + ], + "Type": "Function", + "Name": "SetAutoFocus" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "cursorBlinkSpeedSec" } + ], + "Type": "Function", + "Name": "SetBlinkSpeed" + }, + { + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "countInvisibleLetters" + } + ], + "Type": "Function", + "Name": "SetCountInvisibleLetters" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "cursorPosition" }], + "Type": "Function", + "Name": "SetCursorPosition" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetEnabled" + }, + { "Arguments": [], "Type": "Function", "Name": "SetFocus" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "fontFile" }, + { "Nilable": false, "Type": "uiFontHeight", "Name": "height" }, + { "Nilable": false, "Type": "TBFFlags", "Name": "flags" } + ], + "Type": "Function", + "Name": "SetFont" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Type": "Function", + "Name": "SetFontObject" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetHighlightColor" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "numHistoryLines" }], + "Type": "Function", + "Name": "SetHistoryLines" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isIndented" } + ], + "Type": "Function", + "Name": "SetIndentedWordWrap" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "JustifyHorizontal", "Name": "justifyH" } + ], + "Type": "Function", + "Name": "SetJustifyH" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "JustifyVertical", "Name": "justifyV" } + ], + "Type": "Function", + "Name": "SetJustifyV" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "maxBytes" }], + "Type": "Function", + "Name": "SetMaxBytes" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "maxLetters" }], + "Type": "Function", + "Name": "SetMaxLetters" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "multiline" } + ], + "Type": "Function", + "Name": "SetMultiLine" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "number" }], + "Type": "Function", + "Name": "SetNumber" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isNumeric" } + ], + "Type": "Function", + "Name": "SetNumeric" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isNumeric" } + ], + "Type": "Function", + "Name": "SetNumericFullRange" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isPassword" } + ], + "Type": "Function", + "Name": "SetPassword" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isSecure" } + ], + "Type": "Function", + "Name": "SetSecureText" + }, + { "Arguments": [], "Type": "Function", "Name": "SetSecurityDisablePaste" }, + { "Arguments": [], "Type": "Function", "Name": "SetSecurityDisableSetText" }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetShadowColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" } + ], + "Type": "Function", + "Name": "SetShadowOffset" + }, + { + "Arguments": [{ "Nilable": false, "Type": "uiUnit", "Name": "fontHeight" }], + "Type": "Function", + "Name": "SetSpacing" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Type": "Function", + "Name": "SetText" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetTextColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "right" }, + { "Nilable": false, "Type": "uiUnit", "Name": "top" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" } + ], + "Type": "Function", + "Name": "SetTextInsets" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "maxVisibleBytes" }], + "Type": "Function", + "Name": "SetVisibleTextByteLimit" + }, + { "Arguments": [], "Type": "Function", "Name": "ToggleInputLanguage" } + ], + "Type": "ScriptObject", + "Name": "SimpleEditBoxAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "SimpleFont", "Name": "sourceFont" }], + "Type": "Function", + "Name": "CopyFontObject" + }, + { + "Returns": [{ "Nilable": false, "Type": "SingleColorValue", "Name": "alpha" }], + "Arguments": [], + "Type": "Function", + "Name": "GetAlpha" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "fontFile" }, + { "Nilable": false, "Type": "uiFontHeight", "Name": "height" }, + { "Nilable": false, "Type": "TBFFlags", "Name": "flags" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetFont" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFontObject" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wordWrap" }], + "Arguments": [], + "Type": "Function", + "Name": "GetIndentedWordWrap" + }, + { + "Returns": [ + { "Nilable": false, "Type": "JustifyHorizontal", "Name": "justifyH" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetJustifyH" + }, + { + "Returns": [{ "Nilable": false, "Type": "JustifyVertical", "Name": "justifyV" }], + "Arguments": [], + "Type": "Function", + "Name": "GetJustifyV" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetShadowColor" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetShadowOffset" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "spacing" }], + "Arguments": [], + "Type": "Function", + "Name": "GetSpacing" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetTextColor" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SingleColorValue", "Name": "alpha" }], + "Type": "Function", + "Name": "SetAlpha" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "fontFile" }, + { "Nilable": false, "Type": "uiFontHeight", "Name": "height" }, + { "Nilable": false, "Type": "TBFFlags", "Name": "flags" } + ], + "Type": "Function", + "Name": "SetFont" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Type": "Function", + "Name": "SetFontObject" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "wordWrap" }], + "Type": "Function", + "Name": "SetIndentedWordWrap" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "JustifyHorizontal", "Name": "justifyH" } + ], + "Type": "Function", + "Name": "SetJustifyH" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "JustifyVertical", "Name": "justifyV" } + ], + "Type": "Function", + "Name": "SetJustifyV" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetShadowColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" } + ], + "Type": "Function", + "Name": "SetShadowOffset" + }, + { + "Arguments": [{ "Nilable": false, "Type": "uiUnit", "Name": "spacing" }], + "Type": "Function", + "Name": "SetSpacing" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetTextColor" + } + ], + "Type": "ScriptObject", + "Name": "SimpleFontAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { + "Nilable": true, + "InnerType": "uiBoundsRect", + "Type": "table", + "Name": "areas" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "leftIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "rightIndex" } + ], + "Type": "Function", + "Name": "CalculateScreenAreaFromCharacterSpan" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wrap" }], + "Arguments": [], + "Type": "Function", + "Name": "CanNonSpaceWrap" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wrap" }], + "Arguments": [], + "Type": "Function", + "Name": "CanWordWrap" + }, + { + "Returns": [ + { "Nilable": false, "Type": "luaIndex", "Name": "characterIndex" }, + { "Nilable": false, "Type": "bool", "Name": "inside" } + ], + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "x" }, + { "Nilable": false, "Type": "uiUnit", "Name": "y" } + ], + "Type": "Function", + "Name": "FindCharacterIndexAtCoordinate" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "fieldSize" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFieldSize" + }, + { + "Returns": [ + { "Nilable": true, "Type": "cstring", "Name": "fontFile" }, + { "Nilable": false, "Type": "uiUnit", "Name": "fontHeight" }, + { "Nilable": false, "Type": "TBFFlags", "Name": "flags" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetFont" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFontObject" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wrap" }], + "Arguments": [], + "Type": "Function", + "Name": "GetIndentedWordWrap" + }, + { + "Returns": [ + { "Nilable": false, "Type": "JustifyHorizontal", "Name": "justifyH" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetJustifyH" + }, + { + "Returns": [{ "Nilable": false, "Type": "JustifyVertical", "Name": "justifyV" }], + "Arguments": [], + "Type": "Function", + "Name": "GetJustifyV" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "lineHeight" }], + "Arguments": [], + "Type": "Function", + "Name": "GetLineHeight" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxLines" }], + "Arguments": [], + "Type": "Function", + "Name": "GetMaxLines" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numLines" }], + "Arguments": [], + "Type": "Function", + "Name": "GetNumLines" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "radians" }], + "Arguments": [], + "Type": "Function", + "Name": "GetRotation" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetShadowColor" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetShadowOffset" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "spacing" }], + "Arguments": [], + "Type": "Function", + "Name": "GetSpacing" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "height" }], + "Arguments": [], + "Type": "Function", + "Name": "GetStringHeight" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "width" }], + "Arguments": [], + "Type": "Function", + "Name": "GetStringWidth" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Arguments": [], + "Type": "Function", + "Name": "GetText" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetTextColor" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "textScale" }], + "Arguments": [], + "Type": "Function", + "Name": "GetTextScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "width" }], + "Arguments": [], + "Type": "Function", + "Name": "GetUnboundedStringWidth" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "width" }], + "Arguments": [], + "Type": "Function", + "Name": "GetWrappedWidth" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTruncated" }], + "Arguments": [], + "Type": "Function", + "Name": "IsTruncated" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isWithinText" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "start" }, + { "Nilable": false, "Type": "number", "Name": "length" } + ], + "Type": "Function", + "Name": "SetAlphaGradient" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "fixedColor" }], + "Type": "Function", + "Name": "SetFixedColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "fontFile" }, + { "Nilable": false, "Type": "uiUnit", "Name": "fontHeight" }, + { "Nilable": false, "Type": "TBFFlags", "Name": "flags" } + ], + "Type": "Function", + "Name": "SetFont" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Type": "Function", + "Name": "SetFontObject" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Type": "Function", + "Name": "SetFormattedText" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "wrap" }], + "Type": "Function", + "Name": "SetIndentedWordWrap" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "JustifyHorizontal", "Name": "justifyH" } + ], + "Type": "Function", + "Name": "SetJustifyH" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "JustifyVertical", "Name": "justifyV" } + ], + "Type": "Function", + "Name": "SetJustifyV" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "maxLines" }], + "Type": "Function", + "Name": "SetMaxLines" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "wrap" }], + "Type": "Function", + "Name": "SetNonSpaceWrap" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "radians" }], + "Type": "Function", + "Name": "SetRotation" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetShadowColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" } + ], + "Type": "Function", + "Name": "SetShadowOffset" + }, + { + "Arguments": [{ "Nilable": false, "Type": "uiUnit", "Name": "spacing" }], + "Type": "Function", + "Name": "SetSpacing" + }, + { + "Arguments": [ + { "Nilable": false, "Default": "", "Type": "cstring", "Name": "text" } + ], + "Type": "Function", + "Name": "SetText" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetTextColor" + }, + { + "Arguments": [{ "Nilable": false, "Type": "uiUnit", "Name": "height" }], + "Type": "Function", + "Name": "SetTextHeight" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "textScale" }], + "Type": "Function", + "Name": "SetTextScale" + }, + { + "Arguments": [ + { "Nilable": false, "Default": "", "Type": "cstring", "Name": "text" } + ], + "Type": "Function", + "Name": "SetTextToFit" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "wrap" }], + "Type": "Function", + "Name": "SetWordWrap" + } + ], + "Type": "ScriptObject", + "Name": "SimpleFontStringAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "AbortDrag" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canChangeAttributes" }], + "Arguments": [], + "Type": "Function", + "Name": "CanChangeAttribute" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleFontString", "Name": "line" }], + "Arguments": [ + { "Nilable": true, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "DrawLayer", "Name": "drawLayer" }, + { "Nilable": true, "Type": "cstring", "Name": "templateName" } + ], + "Type": "Function", + "Name": "CreateFontString" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleLine", "Name": "line" }], + "Arguments": [ + { "Nilable": true, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "DrawLayer", "Name": "drawLayer" }, + { "Nilable": true, "Type": "cstring", "Name": "templateName" }, + { "Nilable": true, "Type": "number", "Name": "subLevel" } + ], + "Type": "Function", + "Name": "CreateLine" + }, + { + "Returns": [ + { "Nilable": false, "Type": "SimpleMaskTexture", "Name": "maskTexture" } + ], + "Arguments": [ + { "Nilable": true, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "DrawLayer", "Name": "drawLayer" }, + { "Nilable": true, "Type": "cstring", "Name": "templateName" }, + { "Nilable": true, "Type": "number", "Name": "subLevel" } + ], + "Type": "Function", + "Name": "CreateMaskTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [ + { "Nilable": true, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "DrawLayer", "Name": "drawLayer" }, + { "Nilable": true, "Type": "cstring", "Name": "templateName" }, + { "Nilable": true, "Type": "number", "Name": "subLevel" } + ], + "Type": "Function", + "Name": "CreateTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "desaturation" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "excludeRoot" } + ], + "Type": "Function", + "Name": "DesaturateHierarchy" + }, + { + "Arguments": [{ "Nilable": false, "Type": "DrawLayer", "Name": "layer" }], + "Type": "Function", + "Name": "DisableDrawLayer" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "clipsChildren" }], + "Arguments": [], + "Type": "Function", + "Name": "DoesClipChildren" + }, + { + "Arguments": [{ "Nilable": false, "Type": "DrawLayer", "Name": "layer" }], + "Type": "Function", + "Name": "EnableDrawLayer" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enable" } + ], + "Type": "Function", + "Name": "EnableGamePadButton" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enable" } + ], + "Type": "Function", + "Name": "EnableGamePadStick" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enable" } + ], + "Type": "Function", + "Name": "EnableKeyboard" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "success" }, + { + "StrideIndex": 1, + "Nilable": false, + "Type": "string", + "Name": "unpackedPrimitiveType" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "attributeName" }, + { + "StrideIndex": 1, + "Nilable": false, + "Type": "string", + "Name": "unpackedPrimitiveType" + } + ], + "Type": "Function", + "Name": "ExecuteAttribute" + }, + { + "Returns": [{ "Nilable": false, "Type": "SingleColorValue", "Name": "alpha" }], + "Arguments": [], + "Type": "Function", + "Name": "GetAlpha" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "value" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "attributeName" }], + "Type": "Function", + "Name": "GetAttribute" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" }, + { "Nilable": false, "Type": "uiUnit", "Name": "width" }, + { "Nilable": false, "Type": "uiUnit", "Name": "height" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetBoundsRect" + }, + { + "Returns": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "ScriptObject", + "Name": "scriptObject" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetChildren" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "right" }, + { "Nilable": false, "Type": "uiUnit", "Name": "top" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetClampRectInsets" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "dontSave" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDontSavePosition" + }, + { + "Returns": [ + { "Nilable": false, "Type": "SingleColorValue", "Name": "effectiveAlpha" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetEffectiveAlpha" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "effectiveScale" }], + "Arguments": [], + "Type": "Function", + "Name": "GetEffectiveScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "flatten" }], + "Arguments": [], + "Type": "Function", + "Name": "GetEffectivelyFlattensRenderLayers" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "flatten" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFlattensRenderLayers" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "frameLevel" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFrameLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "FrameStrata", "Name": "strata" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFrameStrata" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "right" }, + { "Nilable": false, "Type": "uiUnit", "Name": "top" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetHitRectInsets" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "GetHyperlinksEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "id" }], + "Arguments": [], + "Type": "Function", + "Name": "GetID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numChildren" }], + "Arguments": [], + "Type": "Function", + "Name": "GetNumChildren" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numRegions" }], + "Arguments": [], + "Type": "Function", + "Name": "GetNumRegions" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "propagate" }], + "Arguments": [], + "Type": "Function", + "Name": "GetPropagateKeyboardInput" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "frameLevel" }], + "Arguments": [], + "Type": "Function", + "Name": "GetRaisedFrameLevel" + }, + { + "Returns": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "ScriptObject", + "Name": "scriptObject" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetRegions" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "minWidth" }, + { "Nilable": false, "Type": "uiUnit", "Name": "minHeight" }, + { "Nilable": false, "Type": "uiUnit", "Name": "maxWidth" }, + { "Nilable": false, "Type": "uiUnit", "Name": "maxHeight" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetResizeBounds" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "frameScale" }], + "Arguments": [], + "Type": "Function", + "Name": "GetScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleWindow", "Name": "window" }], + "Arguments": [], + "Type": "Function", + "Name": "GetWindow" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFixed" }], + "Arguments": [], + "Type": "Function", + "Name": "HasFixedFrameLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFixed" }], + "Arguments": [], + "Type": "Function", + "Name": "HasFixedFrameStrata" + }, + { "Arguments": [], "Type": "Function", "Name": "Hide" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "SimpleFrame", "Name": "delegate" }], + "Type": "Function", + "Name": "InterceptStartDrag" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "clampedToScreen" }], + "Arguments": [], + "Type": "Function", + "Name": "IsClampedToScreen" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isRegistered" }, + { "StrideIndex": 1, "Nilable": true, "Type": "string", "Name": "units" } + ], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "eventName" }], + "Type": "Function", + "Name": "IsEventRegistered" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "IsGamePadButtonEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "IsGamePadStickEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "ignore" }], + "Arguments": [], + "Type": "Function", + "Name": "IsIgnoringParentAlpha" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "ignore" }], + "Arguments": [], + "Type": "Function", + "Name": "IsIgnoringParentScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "IsKeyboardEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isMovable" }], + "Arguments": [], + "Type": "Function", + "Name": "IsMovable" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLoaded" }], + "Arguments": [], + "Type": "Function", + "Name": "IsObjectLoaded" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "resizable" }], + "Arguments": [], + "Type": "Function", + "Name": "IsResizable" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isShown" }], + "Arguments": [], + "Type": "Function", + "Name": "IsShown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTopLevel" }], + "Arguments": [], + "Type": "Function", + "Name": "IsToplevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isUserPlaced" }], + "Arguments": [], + "Type": "Function", + "Name": "IsUserPlaced" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "usingParentLevel" }], + "Arguments": [], + "Type": "Function", + "Name": "IsUsingParentLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isVisible" }], + "Arguments": [], + "Type": "Function", + "Name": "IsVisible" + }, + { "Arguments": [], "Type": "Function", "Name": "LockHighlight" }, + { "Arguments": [], "Type": "Function", "Name": "Lower" }, + { "Arguments": [], "Type": "Function", "Name": "Raise" }, + { "Arguments": [], "Type": "Function", "Name": "RegisterAllEvents" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "registered" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "eventName" }], + "Type": "Function", + "Name": "RegisterEvent" + }, + { + "Arguments": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "number", + "Name": "unpackedPrimitiveType" + } + ], + "Type": "Function", + "Name": "RegisterForDrag" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "registered" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "eventName" }, + { "StrideIndex": 1, "Nilable": false, "Type": "string", "Name": "units" } + ], + "Type": "Function", + "Name": "RegisterUnitEvent" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "radians" }, + { "Nilable": false, "Default": 0.5, "Type": "number", "Name": "x" }, + { "Nilable": false, "Default": 0.5, "Type": "number", "Name": "y" } + ], + "Type": "Function", + "Name": "RotateTextures" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SingleColorValue", "Name": "alpha" }], + "Type": "Function", + "Name": "SetAlpha" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "attributeName" }, + { "Nilable": false, "Type": "cstring", "Name": "value" } + ], + "Type": "Function", + "Name": "SetAttribute" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "attributeName" }, + { "Nilable": false, "Type": "cstring", "Name": "value" } + ], + "Type": "Function", + "Name": "SetAttributeNoHandler" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "right" }, + { "Nilable": false, "Type": "uiUnit", "Name": "top" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" } + ], + "Type": "Function", + "Name": "SetClampRectInsets" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "clampedToScreen" }], + "Type": "Function", + "Name": "SetClampedToScreen" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "clipsChildren" }], + "Type": "Function", + "Name": "SetClipsChildren" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "dontSave" }], + "Type": "Function", + "Name": "SetDontSavePosition" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "DrawLayer", "Name": "layer" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isEnabled" } + ], + "Type": "Function", + "Name": "SetDrawLayerEnabled" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "isFixed" }], + "Type": "Function", + "Name": "SetFixedFrameLevel" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "isFixed" }], + "Type": "Function", + "Name": "SetFixedFrameStrata" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "flatten" }], + "Type": "Function", + "Name": "SetFlattensRenderLayers" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "frameLevel" }], + "Type": "Function", + "Name": "SetFrameLevel" + }, + { + "Arguments": [{ "Nilable": false, "Type": "FrameStrata", "Name": "strata" }], + "Type": "Function", + "Name": "SetFrameStrata" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "locked" }], + "Type": "Function", + "Name": "SetHighlightLocked" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "right" }, + { "Nilable": false, "Type": "uiUnit", "Name": "top" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" } + ], + "Type": "Function", + "Name": "SetHitRectInsets" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetHyperlinksEnabled" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "id" }], + "Type": "Function", + "Name": "SetID" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "ignore" }], + "Type": "Function", + "Name": "SetIgnoreParentAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "ignore" }], + "Type": "Function", + "Name": "SetIgnoreParentScale" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "isFrameBuffer" }], + "Type": "Function", + "Name": "SetIsFrameBuffer" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "movable" }], + "Type": "Function", + "Name": "SetMovable" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "propagate" }], + "Type": "Function", + "Name": "SetPropagateKeyboardInput" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "resizable" }], + "Type": "Function", + "Name": "SetResizable" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "minWidth" }, + { "Nilable": false, "Type": "uiUnit", "Name": "minHeight" }, + { "Nilable": true, "Type": "uiUnit", "Name": "maxWidth" }, + { "Nilable": true, "Type": "uiUnit", "Name": "maxHeight" } + ], + "Type": "Function", + "Name": "SetResizeBounds" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "SetScale" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "shown" } + ], + "Type": "Function", + "Name": "SetShown" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "topLevel" }], + "Type": "Function", + "Name": "SetToplevel" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "userPlaced" }], + "Type": "Function", + "Name": "SetUserPlaced" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "usingParentLevel" }], + "Type": "Function", + "Name": "SetUsingParentLevel" + }, + { + "Arguments": [{ "Nilable": true, "Type": "SimpleWindow", "Name": "window" }], + "Type": "Function", + "Name": "SetWindow" + }, + { "Arguments": [], "Type": "Function", "Name": "Show" }, + { + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "alwaysStartFromMouse" + } + ], + "Type": "Function", + "Name": "StartMoving" + }, + { + "Arguments": [ + { "Nilable": true, "Type": "FramePoint", "Name": "resizePoint" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "alwaysStartFromMouse" + } + ], + "Type": "Function", + "Name": "StartSizing" + }, + { "Arguments": [], "Type": "Function", "Name": "StopMovingOrSizing" }, + { "Arguments": [], "Type": "Function", "Name": "UnlockHighlight" }, + { "Arguments": [], "Type": "Function", "Name": "UnregisterAllEvents" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "registered" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "eventName" }], + "Type": "Function", + "Name": "UnregisterEvent" + } + ], + "Type": "ScriptObject", + "Name": "SimpleFrameAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Arguments": [], + "Type": "Function", + "Name": "GetName" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "objectType" }], + "Arguments": [], + "Type": "Function", + "Name": "GetObjectType" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isForbidden" }], + "Arguments": [], + "Type": "Function", + "Name": "IsForbidden" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isType" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "objectType" }], + "Type": "Function", + "Name": "IsObjectType" + }, + { "Arguments": [], "Type": "Function", "Name": "SetForbidden" } + ], + "Type": "ScriptObject", + "Name": "SimpleFrameScriptObjectAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "height" }], + "Arguments": [], + "Type": "Function", + "Name": "GetContentHeight" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "fontFile" }, + { "Nilable": false, "Type": "uiFontHeight", "Name": "height" }, + { "Nilable": false, "Type": "TBFFlags", "Name": "flags" } + ], + "Arguments": [{ "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }], + "Type": "Function", + "Name": "GetFont" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Arguments": [{ "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }], + "Type": "Function", + "Name": "GetFontObject" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "format" }], + "Arguments": [], + "Type": "Function", + "Name": "GetHyperlinkFormat" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wordWrap" }], + "Arguments": [{ "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }], + "Type": "Function", + "Name": "GetIndentedWordWrap" + }, + { + "Returns": [ + { "Nilable": false, "Type": "JustifyHorizontal", "Name": "justifyH" } + ], + "Arguments": [{ "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }], + "Type": "Function", + "Name": "GetJustifyH" + }, + { + "Returns": [{ "Nilable": false, "Type": "JustifyVertical", "Name": "justifyV" }], + "Arguments": [{ "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }], + "Type": "Function", + "Name": "GetJustifyV" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [{ "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }], + "Type": "Function", + "Name": "GetShadowColor" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" } + ], + "Arguments": [{ "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }], + "Type": "Function", + "Name": "GetShadowOffset" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "spacing" }], + "Arguments": [{ "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }], + "Type": "Function", + "Name": "GetSpacing" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [{ "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }], + "Type": "Function", + "Name": "GetTextColor" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "HTMLContentNode", + "Type": "table", + "Name": "content" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetTextData" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }, + { "Nilable": false, "Type": "cstring", "Name": "fontFile" }, + { "Nilable": false, "Type": "uiFontHeight", "Name": "height" }, + { "Nilable": false, "Type": "TBFFlags", "Name": "flags" } + ], + "Type": "Function", + "Name": "SetFont" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }, + { "Nilable": false, "Type": "SimpleFont", "Name": "font" } + ], + "Type": "Function", + "Name": "SetFontObject" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "format" }], + "Type": "Function", + "Name": "SetHyperlinkFormat" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }, + { "Nilable": false, "Type": "bool", "Name": "wordWrap" } + ], + "Type": "Function", + "Name": "SetIndentedWordWrap" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }, + { "Nilable": false, "Type": "JustifyHorizontal", "Name": "justifyH" } + ], + "Type": "Function", + "Name": "SetJustifyH" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }, + { "Nilable": false, "Type": "JustifyVertical", "Name": "justifyV" } + ], + "Type": "Function", + "Name": "SetJustifyV" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }, + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetShadowColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }, + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" } + ], + "Type": "Function", + "Name": "SetShadowOffset" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }, + { "Nilable": false, "Type": "uiUnit", "Name": "spacing" } + ], + "Type": "Function", + "Name": "SetSpacing" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "ignoreMarkup" } + ], + "Type": "Function", + "Name": "SetText" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "HTMLTextType", "Name": "textType" }, + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetTextColor" + } + ], + "Type": "ScriptObject", + "Name": "SimpleHTMLAPI", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "HTMLTextType", "Name": "type" }, + { "Nilable": false, "Type": "JustifyHorizontal", "Name": "align" } + ], + "Type": "Structure", + "Name": "HTMLContentNode" + } + ] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "ClearAllPoints" }, + { + "Returns": [ + { "Nilable": false, "Type": "FramePoint", "Name": "relativePoint" }, + { "Nilable": false, "Type": "ScriptRegion", "Name": "relativeTo" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetEndPoint" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "thickness" }], + "Arguments": [], + "Type": "Function", + "Name": "GetHitRectThickness" + }, + { + "Returns": [ + { "Nilable": false, "Type": "FramePoint", "Name": "relativePoint" }, + { "Nilable": false, "Type": "ScriptRegion", "Name": "relativeTo" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetStartPoint" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "thickness" }], + "Arguments": [], + "Type": "Function", + "Name": "GetThickness" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "FramePoint", "Name": "relativePoint" }, + { "Nilable": false, "Type": "ScriptRegion", "Name": "relativeTo" }, + { "Nilable": false, "Default": 0, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Default": 0, "Type": "uiUnit", "Name": "offsetY" } + ], + "Type": "Function", + "Name": "SetEndPoint" + }, + { + "Arguments": [{ "Nilable": false, "Type": "uiUnit", "Name": "thickness" }], + "Type": "Function", + "Name": "SetHitRectThickness" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "FramePoint", "Name": "relativePoint" }, + { "Nilable": false, "Type": "ScriptRegion", "Name": "relativeTo" }, + { "Nilable": false, "Default": 0, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Default": 0, "Type": "uiUnit", "Name": "offsetY" } + ], + "Type": "Function", + "Name": "SetStartPoint" + }, + { + "Arguments": [{ "Nilable": false, "Type": "uiUnit", "Name": "thickness" }], + "Type": "Function", + "Name": "SetThickness" + } + ], + "Type": "ScriptObject", + "Name": "SimpleLineAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "maxCharacterSlotCount" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetMaxCharacterSlotCount" + }, + { + "Returns": [ + { "Nilable": false, "Type": "DrawLayer", "Name": "layer" }, + { "Nilable": false, "Type": "number", "Name": "sublayer" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetModelDrawLayer" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "right" }, + { "Nilable": false, "Type": "uiUnit", "Name": "top" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetViewInsets" + }, + { + "Arguments": [{ "Nilable": false, "Type": "DrawLayer", "Name": "layer" }], + "Type": "Function", + "Name": "SetModelDrawLayer" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "right" }, + { "Nilable": false, "Type": "uiUnit", "Name": "top" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" } + ], + "Type": "Function", + "Name": "SetViewInsets" + } + ], + "Type": "ScriptObject", + "Name": "SimpleMapSceneAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [], + "Type": "ScriptObject", + "Name": "SimpleMaskTextureAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" }, + { "Nilable": true, "Type": "number", "Name": "messageID" } + ], + "Type": "Function", + "Name": "AddMessage" + }, + { "Arguments": [], "Type": "Function", "Name": "Clear" }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "fadeDurationSeconds" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetFadeDuration" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "fadePower" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFadePower" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFading" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFading" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "fontFile" }, + { "Nilable": false, "Type": "uiFontHeight", "Name": "height" }, + { "Nilable": false, "Type": "TBFFlags", "Name": "flags" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetFont" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFontObject" + }, + { + "Returns": [ + { "Nilable": false, "Type": "SimpleFontString", "Name": "fontString" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "messageID" }], + "Type": "Function", + "Name": "GetFontStringByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wordWrap" }], + "Arguments": [], + "Type": "Function", + "Name": "GetIndentedWordWrap" + }, + { + "Returns": [{ "Nilable": false, "Type": "InsertMode", "Name": "mode" }], + "Arguments": [], + "Type": "Function", + "Name": "GetInsertMode" + }, + { + "Returns": [ + { "Nilable": false, "Type": "JustifyHorizontal", "Name": "justifyH" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetJustifyH" + }, + { + "Returns": [{ "Nilable": false, "Type": "JustifyVertical", "Name": "justifyV" }], + "Arguments": [], + "Type": "Function", + "Name": "GetJustifyV" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetShadowColor" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetShadowOffset" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "spacing" }], + "Arguments": [], + "Type": "Function", + "Name": "GetSpacing" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetTextColor" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "timeVisibleSeconds" }], + "Arguments": [], + "Type": "Function", + "Name": "GetTimeVisible" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasMessage" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "messageID" }], + "Type": "Function", + "Name": "HasMessageByID" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "messageID" }], + "Type": "Function", + "Name": "ResetMessageFadeByID" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "fadeDurationSeconds" } + ], + "Type": "Function", + "Name": "SetFadeDuration" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "fadePower" }], + "Type": "Function", + "Name": "SetFadePower" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "fading" }], + "Type": "Function", + "Name": "SetFading" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "fontFile" }, + { "Nilable": false, "Type": "uiFontHeight", "Name": "height" }, + { "Nilable": false, "Type": "TBFFlags", "Name": "flags" } + ], + "Type": "Function", + "Name": "SetFont" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleFont", "Name": "font" }], + "Type": "Function", + "Name": "SetFontObject" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "wordWrap" }], + "Type": "Function", + "Name": "SetIndentedWordWrap" + }, + { + "Arguments": [{ "Nilable": false, "Type": "InsertMode", "Name": "mode" }], + "Type": "Function", + "Name": "SetInsertMode" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "JustifyHorizontal", "Name": "justifyH" } + ], + "Type": "Function", + "Name": "SetJustifyH" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "JustifyVertical", "Name": "justifyV" } + ], + "Type": "Function", + "Name": "SetJustifyV" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetShadowColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "offsetX" }, + { "Nilable": false, "Type": "number", "Name": "offsetY" } + ], + "Type": "Function", + "Name": "SetShadowOffset" + }, + { + "Arguments": [{ "Nilable": false, "Type": "uiUnit", "Name": "spacing" }], + "Type": "Function", + "Name": "SetSpacing" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetTextColor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "timeVisibleSeconds" } + ], + "Type": "Function", + "Name": "SetTimeVisible" + } + ], + "Type": "ScriptObject", + "Name": "SimpleMessageFrameAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "AdvanceTime" }, + { "Arguments": [], "Type": "Function", "Name": "ClearFog" }, + { "Arguments": [], "Type": "Function", "Name": "ClearModel" }, + { "Arguments": [], "Type": "Function", "Name": "ClearTransform" }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "distance" }], + "Arguments": [], + "Type": "Function", + "Name": "GetCameraDistance" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "radians" }], + "Arguments": [], + "Type": "Function", + "Name": "GetCameraFacing" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetCameraPosition" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "radians" }], + "Arguments": [], + "Type": "Function", + "Name": "GetCameraRoll" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "targetX" }, + { "Nilable": false, "Type": "number", "Name": "targetY" }, + { "Nilable": false, "Type": "number", "Name": "targetZ" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetCameraTarget" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "strength" }], + "Arguments": [], + "Type": "Function", + "Name": "GetDesaturation" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "facing" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFacing" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetFogColor" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "fogFar" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFogFar" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "fogNear" }], + "Arguments": [], + "Type": "Function", + "Name": "GetFogNear" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "enabled" }, + { "Nilable": false, "Type": "ModelLight", "Name": "light" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetLight" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Arguments": [], + "Type": "Function", + "Name": "GetModelAlpha" + }, + { + "Returns": [ + { "Nilable": false, "Type": "DrawLayer", "Name": "layer" }, + { "Nilable": false, "Type": "number", "Name": "sublayer" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetModelDrawLayer" + }, + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "modelFileID" }], + "Arguments": [], + "Type": "Function", + "Name": "GetModelFileID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Arguments": [], + "Type": "Function", + "Name": "GetModelScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "paused" }], + "Arguments": [], + "Type": "Function", + "Name": "GetPaused" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "pitch" }], + "Arguments": [], + "Type": "Function", + "Name": "GetPitch" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetPosition" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "roll" }], + "Arguments": [], + "Type": "Function", + "Name": "GetRoll" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "strength" }], + "Arguments": [], + "Type": "Function", + "Name": "GetShadowEffect" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "right" }, + { "Nilable": false, "Type": "uiUnit", "Name": "top" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetViewInsets" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "x" }, + { "Nilable": false, "Type": "uiUnit", "Name": "y" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetViewTranslation" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "worldScale" }], + "Arguments": [], + "Type": "Function", + "Name": "GetWorldScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasAttachmentPoints" }], + "Arguments": [], + "Type": "Function", + "Name": "HasAttachmentPoints" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasCustomCamera" }], + "Arguments": [], + "Type": "Function", + "Name": "HasCustomCamera" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "useCenter" }], + "Arguments": [], + "Type": "Function", + "Name": "IsUsingModelCenterToTransform" + }, + { "Arguments": [], "Type": "Function", "Name": "MakeCurrentCameraCustom" }, + { + "Arguments": [{ "Nilable": false, "Type": "FileAsset", "Name": "asset" }], + "Type": "Function", + "Name": "ReplaceIconTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "cameraIndex" }], + "Type": "Function", + "Name": "SetCamera" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "distance" }], + "Type": "Function", + "Name": "SetCameraDistance" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "radians" }], + "Type": "Function", + "Name": "SetCameraFacing" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" } + ], + "Type": "Function", + "Name": "SetCameraPosition" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "radians" }], + "Type": "Function", + "Name": "SetCameraRoll" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "targetX" }, + { "Nilable": false, "Type": "number", "Name": "targetY" }, + { "Nilable": false, "Type": "number", "Name": "targetZ" } + ], + "Type": "Function", + "Name": "SetCameraTarget" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "cameraIndex" }], + "Type": "Function", + "Name": "SetCustomCamera" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "strength" }], + "Type": "Function", + "Name": "SetDesaturation" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "facing" }], + "Type": "Function", + "Name": "SetFacing" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetFogColor" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "fogFar" }], + "Type": "Function", + "Name": "SetFogFar" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "fogNear" }], + "Type": "Function", + "Name": "SetFogNear" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "glow" }], + "Type": "Function", + "Name": "SetGlow" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "bool", "Name": "enabled" }, + { "Nilable": false, "Type": "ModelLight", "Name": "light" } + ], + "Type": "Function", + "Name": "SetLight" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ModelAsset", "Name": "asset" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "noMip" } + ], + "Type": "Function", + "Name": "SetModel" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "alpha" }], + "Type": "Function", + "Name": "SetModelAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "DrawLayer", "Name": "layer" }], + "Type": "Function", + "Name": "SetModelDrawLayer" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "SetModelScale" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "SetParticlesEnabled" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "paused" }], + "Type": "Function", + "Name": "SetPaused" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "pitch" }], + "Type": "Function", + "Name": "SetPitch" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" } + ], + "Type": "Function", + "Name": "SetPosition" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "roll" }], + "Type": "Function", + "Name": "SetRoll" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sequence" }], + "Type": "Function", + "Name": "SetSequence" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "sequence" }, + { "Nilable": false, "Type": "number", "Name": "timeOffset" } + ], + "Type": "Function", + "Name": "SetSequenceTime" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "strength" }], + "Type": "Function", + "Name": "SetShadowEffect" + }, + { + "Arguments": [ + { + "Nilable": true, + "Mixin": "Vector3DMixin", + "Type": "vector3", + "Name": "translation" + }, + { + "Nilable": true, + "Mixin": "Vector3DMixin", + "Type": "vector3", + "Name": "rotation" + }, + { "Nilable": true, "Type": "number", "Name": "scale" } + ], + "Type": "Function", + "Name": "SetTransform" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "right" }, + { "Nilable": false, "Type": "uiUnit", "Name": "top" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" } + ], + "Type": "Function", + "Name": "SetViewInsets" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "x" }, + { "Nilable": false, "Type": "uiUnit", "Name": "y" } + ], + "Type": "Function", + "Name": "SetViewTranslation" + }, + { + "Returns": [ + { + "Nilable": false, + "Mixin": "Vector3DMixin", + "Type": "vector3", + "Name": "modelPosition" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "Vector3DMixin", + "Type": "vector3", + "Name": "cameraPosition" + } + ], + "Type": "Function", + "Name": "TransformCameraSpaceToModelSpace" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "useCenter" }], + "Type": "Function", + "Name": "UseModelCenterToTransform" + } + ], + "Type": "ScriptObject", + "Name": "SimpleModelAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [ + { "Nilable": true, "Type": "number", "Name": "index" }, + { "Nilable": false, "Type": "ModelLight", "Name": "light" } + ], + "Type": "Function", + "Name": "AddCharacterLight" + }, + { + "Arguments": [ + { "Nilable": true, "Type": "number", "Name": "index" }, + { "Nilable": false, "Type": "ModelLight", "Name": "light" } + ], + "Type": "Function", + "Name": "AddLight" + }, + { + "Arguments": [ + { "Nilable": true, "Type": "number", "Name": "index" }, + { "Nilable": false, "Type": "ModelLight", "Name": "light" } + ], + "Type": "Function", + "Name": "AddPetLight" + }, + { "Arguments": [], "Type": "Function", "Name": "ResetLights" } + ], + "Type": "ScriptObject", + "Name": "SimpleModelFFXAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "enable" }], + "Type": "Function", + "Name": "EnableSubtitles" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "success" }, + { "Nilable": false, "Type": "number", "Name": "returnCode" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "movieID" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "looping" } + ], + "Type": "Function", + "Name": "StartMovie" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "success" }, + { "Nilable": false, "Type": "number", "Name": "returnCode" } + ], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "movieName" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "looping" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "resolution" } + ], + "Type": "Function", + "Name": "StartMovieByName" + }, + { "Arguments": [], "Type": "Function", "Name": "StopMovie" } + ], + "Type": "ScriptObject", + "Name": "SimpleMovieAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "ClearParentKey" }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "debugName" }], + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "preferParentKey" + } + ], + "Type": "Function", + "Name": "GetDebugName" + }, + { + "Returns": [{ "Nilable": false, "Type": "CScriptObject", "Name": "parent" }], + "Arguments": [], + "Type": "Function", + "Name": "GetParent" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "parentKey" }], + "Arguments": [], + "Type": "Function", + "Name": "GetParentKey" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "parentKey" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "clearOtherKeys" } + ], + "Type": "Function", + "Name": "SetParentKey" + } + ], + "Type": "ScriptObject", + "Name": "SimpleObjectAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "snapshotID" } + ], + "Type": "Function", + "Name": "ApplySnapshot" + }, + { "Arguments": [], "Type": "Function", "Name": "Flush" }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxSnapshots" }], + "Arguments": [], + "Type": "Function", + "Name": "GetMaxSnapshots" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isValid" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "snapshotID" }], + "Type": "Function", + "Name": "IsSnapshotValid" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "maxSnapshots" }], + "Type": "Function", + "Name": "SetMaxSnapshots" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "snapshotID" }], + "Arguments": [], + "Type": "Function", + "Name": "TakeSnapshot" + }, + { + "Documentation": ["Unavailable in public builds"], + "Type": "Function", + "Name": "TestPrintToFile", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "snapshotID" }, + { "Nilable": false, "Type": "cstring", "Name": "filename" } + ] + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "usesNPOT" }], + "Arguments": [], + "Type": "Function", + "Name": "UsesNPOT" + } + ], + "Type": "ScriptObject", + "Name": "SimpleOffScreenFrameAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "SingleColorValue", "Name": "alpha" }], + "Arguments": [], + "Type": "Function", + "Name": "GetAlpha" + }, + { + "Returns": [ + { "Nilable": false, "Type": "DrawLayer", "Name": "layer" }, + { "Nilable": false, "Type": "number", "Name": "sublayer" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetDrawLayer" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "effectiveScale" }], + "Arguments": [], + "Type": "Function", + "Name": "GetEffectiveScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Arguments": [], + "Type": "Function", + "Name": "GetScale" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetVertexColor" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isIgnoring" }], + "Arguments": [], + "Type": "Function", + "Name": "IsIgnoringParentAlpha" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isIgnoring" }], + "Arguments": [], + "Type": "Function", + "Name": "IsIgnoringParentScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLoaded" }], + "Arguments": [], + "Type": "Function", + "Name": "IsObjectLoaded" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SingleColorValue", "Name": "alpha" }], + "Type": "Function", + "Name": "SetAlpha" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "DrawLayer", "Name": "layer" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "sublevel" } + ], + "Type": "Function", + "Name": "SetDrawLayer" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "ignore" }], + "Type": "Function", + "Name": "SetIgnoreParentAlpha" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "ignore" }], + "Type": "Function", + "Name": "SetIgnoreParentScale" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "SetScale" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetVertexColor" + } + ], + "Type": "ScriptObject", + "Name": "SimpleRegionAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canChange" }], + "Arguments": [], + "Type": "Function", + "Name": "CanChangeProtectedState" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "collapsesLayout" }], + "Arguments": [], + "Type": "Function", + "Name": "CollapsesLayout" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enable" } + ], + "Type": "Function", + "Name": "EnableMouse" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enable" } + ], + "Type": "Function", + "Name": "EnableMouseMotion" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enable" } + ], + "Type": "Function", + "Name": "EnableMouseWheel" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "bottom" }], + "Arguments": [], + "Type": "Function", + "Name": "GetBottom" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "x" }, + { "Nilable": false, "Type": "uiUnit", "Name": "y" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetCenter" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "height" }], + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "ignoreRect" } + ], + "Type": "Function", + "Name": "GetHeight" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "left" }], + "Arguments": [], + "Type": "Function", + "Name": "GetLeft" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" }, + { "Nilable": false, "Type": "uiUnit", "Name": "width" }, + { "Nilable": false, "Type": "uiUnit", "Name": "height" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetRect" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "right" }], + "Arguments": [], + "Type": "Function", + "Name": "GetRight" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" }, + { "Nilable": false, "Type": "uiUnit", "Name": "width" }, + { "Nilable": false, "Type": "uiUnit", "Name": "height" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetScaledRect" + }, + { + "Returns": [{ "Nilable": false, "Type": "luaFunction", "Name": "script" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "scriptTypeName" }, + { "Nilable": true, "Type": "number", "Name": "bindingType" } + ], + "Type": "Function", + "Name": "GetScript" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "width" }, + { "Nilable": false, "Type": "uiUnit", "Name": "height" } + ], + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "ignoreRect" } + ], + "Type": "Function", + "Name": "GetSize" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "location" }], + "Arguments": [], + "Type": "Function", + "Name": "GetSourceLocation" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "top" }], + "Arguments": [], + "Type": "Function", + "Name": "GetTop" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "width" }], + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "ignoreRect" } + ], + "Type": "Function", + "Name": "GetWidth" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasScript" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "scriptName" }], + "Type": "Function", + "Name": "HasScript" + }, + { "Arguments": [], "Type": "Function", "Name": "Hide" }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "scriptTypeName" }, + { "Nilable": false, "Type": "luaFunction", "Name": "script" }, + { "Nilable": true, "Type": "number", "Name": "bindingType" } + ], + "Type": "Function", + "Name": "HookScript" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRestricted" }], + "Arguments": [], + "Type": "Function", + "Name": "IsAnchoringRestricted" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCollapsed" }], + "Arguments": [], + "Type": "Function", + "Name": "IsCollapsed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDragging" }], + "Arguments": [], + "Type": "Function", + "Name": "IsDragging" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "IsMouseClickEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "IsMouseEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "IsMouseMotionEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isMouseMotionFocus" }], + "Arguments": [], + "Type": "Function", + "Name": "IsMouseMotionFocus" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isMouseOver" }], + "Arguments": [ + { "Nilable": false, "Default": 0, "Type": "uiUnit", "Name": "offsetTop" }, + { "Nilable": false, "Default": 0, "Type": "uiUnit", "Name": "offsetBottom" }, + { "Nilable": false, "Default": 0, "Type": "uiUnit", "Name": "offsetLeft" }, + { "Nilable": false, "Default": 0, "Type": "uiUnit", "Name": "offsetRight" } + ], + "Type": "Function", + "Name": "IsMouseOver" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "IsMouseWheelEnabled" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isProtected" }, + { "Nilable": false, "Type": "bool", "Name": "isProtectedExplicitly" } + ], + "Arguments": [], + "Type": "Function", + "Name": "IsProtected" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isValid" }], + "Arguments": [], + "Type": "Function", + "Name": "IsRectValid" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isShown" }], + "Arguments": [], + "Type": "Function", + "Name": "IsShown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isVisible" }], + "Arguments": [], + "Type": "Function", + "Name": "IsVisible" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "collapsesLayout" }], + "Type": "Function", + "Name": "SetCollapsesLayout" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetMouseClickEnabled" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetMouseMotionEnabled" + }, + { + "Arguments": [{ "Nilable": true, "Type": "SimpleFrame", "Name": "parent" }], + "Type": "Function", + "Name": "SetParent" + }, + { + "Arguments": [ + { + "StrideIndex": 1, + "Nilable": false, + "Type": "number", + "Name": "unpackedPrimitiveType" + } + ], + "Type": "Function", + "Name": "SetPassThroughButtons" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "propagate" }], + "Type": "Function", + "Name": "SetPropagateMouseClicks" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "propagate" }], + "Type": "Function", + "Name": "SetPropagateMouseMotion" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "scriptTypeName" }, + { "Nilable": true, "Type": "luaFunction", "Name": "script" } + ], + "Type": "Function", + "Name": "SetScript" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "show" } + ], + "Type": "Function", + "Name": "SetShown" + }, + { "Arguments": [], "Type": "Function", "Name": "Show" } + ], + "Type": "ScriptObject", + "Name": "SimpleScriptRegionAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "x" }, + { "Nilable": false, "Type": "uiUnit", "Name": "y" } + ], + "Type": "Function", + "Name": "AdjustPointsOffset" + }, + { "Arguments": [], "Type": "Function", "Name": "ClearAllPoints" }, + { + "Arguments": [{ "Nilable": false, "Type": "FramePoint", "Name": "point" }], + "Type": "Function", + "Name": "ClearPoint" + }, + { "Arguments": [], "Type": "Function", "Name": "ClearPointsOffset" }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numPoints" }], + "Arguments": [], + "Type": "Function", + "Name": "GetNumPoints" + }, + { + "Returns": [ + { "Nilable": false, "Type": "FramePoint", "Name": "point" }, + { "Nilable": false, "Type": "ScriptRegion", "Name": "relativeTo" }, + { "Nilable": false, "Type": "FramePoint", "Name": "relativePoint" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Arguments": [ + { "Nilable": false, "Default": 0, "Type": "luaIndex", "Name": "anchorIndex" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "resolveCollapsed" + } + ], + "Type": "Function", + "Name": "GetPoint" + }, + { + "Returns": [ + { "Nilable": false, "Type": "FramePoint", "Name": "point" }, + { "Nilable": false, "Type": "ScriptRegion", "Name": "relativeTo" }, + { "Nilable": false, "Type": "FramePoint", "Name": "relativePoint" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Arguments": [ + { "Nilable": false, "Type": "FramePoint", "Name": "point" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "resolveCollapsed" + } + ], + "Type": "Function", + "Name": "GetPointByName" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ScriptRegion", "Name": "relativeTo" }, + { "Nilable": false, "Default": true, "Type": "bool", "Name": "doResize" } + ], + "Type": "Function", + "Name": "SetAllPoints" + }, + { + "Arguments": [{ "Nilable": false, "Type": "uiUnit", "Name": "height" }], + "Type": "Function", + "Name": "SetHeight" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "FramePoint", "Name": "point" }, + { "Nilable": false, "Type": "ScriptRegion", "Name": "relativeTo" }, + { "Nilable": false, "Type": "FramePoint", "Name": "relativePoint" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Type": "Function", + "Name": "SetPoint" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "uiUnit", "Name": "x" }, + { "Nilable": false, "Type": "uiUnit", "Name": "y" } + ], + "Type": "Function", + "Name": "SetSize" + }, + { + "Arguments": [{ "Nilable": false, "Type": "uiUnit", "Name": "width" }], + "Type": "Function", + "Name": "SetWidth" + } + ], + "Type": "ScriptObject", + "Name": "SimpleScriptRegionResizingAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "offset" }], + "Arguments": [], + "Type": "Function", + "Name": "GetHorizontalScroll" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "range" }], + "Arguments": [], + "Type": "Function", + "Name": "GetHorizontalScrollRange" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleFrame", "Name": "scrollChild" }], + "Arguments": [], + "Type": "Function", + "Name": "GetScrollChild" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "offset" }], + "Arguments": [], + "Type": "Function", + "Name": "GetVerticalScroll" + }, + { + "Returns": [{ "Nilable": false, "Type": "uiUnit", "Name": "range" }], + "Arguments": [], + "Type": "Function", + "Name": "GetVerticalScrollRange" + }, + { + "Arguments": [{ "Nilable": false, "Type": "uiUnit", "Name": "offset" }], + "Type": "Function", + "Name": "SetHorizontalScroll" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleFrame", "Name": "scrollChild" }], + "Type": "Function", + "Name": "SetScrollChild" + }, + { + "Arguments": [{ "Nilable": false, "Type": "uiUnit", "Name": "offset" }], + "Type": "Function", + "Name": "SetVerticalScroll" + }, + { "Arguments": [], "Type": "Function", "Name": "UpdateScrollChildRect" } + ], + "Type": "ScriptObject", + "Name": "SimpleScrollFrameAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { "Arguments": [], "Type": "Function", "Name": "Disable" }, + { "Arguments": [], "Type": "Function", "Name": "Enable" }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "minValue" }, + { "Nilable": false, "Type": "number", "Name": "maxValue" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetMinMaxValues" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isObeyStepOnDrag" }], + "Arguments": [], + "Type": "Function", + "Name": "GetObeyStepOnDrag" + }, + { + "Returns": [{ "Nilable": false, "Type": "Orientation", "Name": "orientation" }], + "Arguments": [], + "Type": "Function", + "Name": "GetOrientation" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "stepsPerPage" }], + "Arguments": [], + "Type": "Function", + "Name": "GetStepsPerPage" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetThumbTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "value" }], + "Arguments": [], + "Type": "Function", + "Name": "GetValue" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "valueStep" }], + "Arguments": [], + "Type": "Function", + "Name": "GetValueStep" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isDraggingThumb" }], + "Arguments": [], + "Type": "Function", + "Name": "IsDraggingThumb" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [], + "Type": "Function", + "Name": "IsEnabled" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "SetEnabled" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "minValue" }, + { "Nilable": false, "Type": "number", "Name": "maxValue" } + ], + "Type": "Function", + "Name": "SetMinMaxValues" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "obeyStepOnDrag" }], + "Type": "Function", + "Name": "SetObeyStepOnDrag" + }, + { + "Arguments": [{ "Nilable": false, "Type": "Orientation", "Name": "orientation" }], + "Type": "Function", + "Name": "SetOrientation" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "stepsPerPage" }], + "Type": "Function", + "Name": "SetStepsPerPage" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetThumbTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "value" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "treatAsMouseEvent" + } + ], + "Type": "Function", + "Name": "SetValue" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "valueStep" }], + "Type": "Function", + "Name": "SetValueStep" + } + ], + "Type": "ScriptObject", + "Name": "SimpleSliderAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "StatusBarFillStyle", "Name": "fillStyle" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetFillStyle" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "minValue" }, + { "Nilable": false, "Type": "number", "Name": "maxValue" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetMinMaxValues" + }, + { + "Returns": [{ "Nilable": false, "Type": "Orientation", "Name": "orientation" }], + "Arguments": [], + "Type": "Function", + "Name": "GetOrientation" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isReverseFill" }], + "Arguments": [], + "Type": "Function", + "Name": "GetReverseFill" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "rotatesTexture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetRotatesTexture" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetStatusBarColor" + }, + { + "Returns": [ + { "Nilable": false, "Type": "normalizedValue", "Name": "desaturation" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetStatusBarDesaturation" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Arguments": [], + "Type": "Function", + "Name": "GetStatusBarTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "value" }], + "Arguments": [], + "Type": "Function", + "Name": "GetValue" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "desaturated" }], + "Arguments": [], + "Type": "Function", + "Name": "IsStatusBarDesaturated" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetColorFill" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "StatusBarFillStyle", "Name": "fillStyle" } + ], + "Type": "Function", + "Name": "SetFillStyle" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "minValue" }, + { "Nilable": false, "Type": "number", "Name": "maxValue" } + ], + "Type": "Function", + "Name": "SetMinMaxValues" + }, + { + "Arguments": [{ "Nilable": false, "Type": "Orientation", "Name": "orientation" }], + "Type": "Function", + "Name": "SetOrientation" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "isReverseFill" }], + "Type": "Function", + "Name": "SetReverseFill" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "rotatesTexture" }], + "Type": "Function", + "Name": "SetRotatesTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetStatusBarColor" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "desaturated" } + ], + "Type": "Function", + "Name": "SetStatusBarDesaturated" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "normalizedValue", "Name": "desaturation" } + ], + "Type": "Function", + "Name": "SetStatusBarDesaturation" + }, + { + "Arguments": [{ "Nilable": false, "Type": "TextureAsset", "Name": "asset" }], + "Type": "Function", + "Name": "SetStatusBarTexture" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "value" }], + "Type": "Function", + "Name": "SetValue" + } + ], + "Type": "ScriptObject", + "Name": "SimpleStatusBarAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "SimpleMaskTexture", "Name": "mask" }], + "Type": "Function", + "Name": "AddMaskTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleMaskTexture", "Name": "mask" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetMaskTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "size", "Name": "count" }], + "Arguments": [], + "Type": "Function", + "Name": "GetNumMaskTextures" + }, + { + "Arguments": [{ "Nilable": false, "Type": "SimpleMaskTexture", "Name": "mask" }], + "Type": "Function", + "Name": "RemoveMaskTexture" + } + ], + "Type": "ScriptObject", + "Name": "SimpleTextureAPI", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [], + "Documentation": [ + "Disable shader based nineslice texture rendering. Since SetAtlas will automatically load slice data for the atlas from the DB, can be useful if you want to disable nineslice after setting an atlas." + ], + "Type": "Function", + "Name": "ClearTextureSlice" + }, + { + "Returns": [{ "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }], + "Arguments": [], + "Type": "Function", + "Name": "GetAtlas" + }, + { + "Returns": [{ "Nilable": false, "Type": "BlendMode", "Name": "blendMode" }], + "Arguments": [], + "Type": "Function", + "Name": "GetBlendMode" + }, + { + "Returns": [ + { "Nilable": false, "Type": "normalizedValue", "Name": "desaturation" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetDesaturation" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "tiling" }], + "Arguments": [], + "Type": "Function", + "Name": "GetHorizTile" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "radians" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "normalizedRotationPoint" + } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetRotation" + }, + { + "Returns": [ + { "StrideIndex": 1, "Nilable": false, "Type": "number", "Name": "x" }, + { "StrideIndex": 2, "Nilable": false, "Type": "number", "Name": "y" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetTexCoord" + }, + { + "Returns": [{ "Nilable": false, "Type": "normalizedValue", "Name": "bias" }], + "Arguments": [], + "Type": "Function", + "Name": "GetTexelSnappingBias" + }, + { + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "textureFile" }], + "Arguments": [], + "Type": "Function", + "Name": "GetTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "textureFile" }], + "Arguments": [], + "Type": "Function", + "Name": "GetTextureFileID" + }, + { + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "textureFile" }], + "Arguments": [], + "Type": "Function", + "Name": "GetTextureFilePath" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "left" }, + { "Nilable": false, "Type": "number", "Name": "top" }, + { "Nilable": false, "Type": "number", "Name": "right" }, + { "Nilable": false, "Type": "number", "Name": "bottom" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetTextureSliceMargins" + }, + { + "Returns": [ + { "Nilable": false, "Type": "UITextureSliceMode", "Name": "sliceMode" } + ], + "Arguments": [], + "Type": "Function", + "Name": "GetTextureSliceMode" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "tiling" }], + "Arguments": [], + "Type": "Function", + "Name": "GetVertTile" + }, + { + "Returns": [ + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "vertexIndex" }], + "Type": "Function", + "Name": "GetVertexOffset" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "blocking" }], + "Arguments": [], + "Type": "Function", + "Name": "IsBlockingLoadRequested" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "desaturated" }], + "Arguments": [], + "Type": "Function", + "Name": "IsDesaturated" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "snap" }], + "Arguments": [], + "Type": "Function", + "Name": "IsSnappingToPixelGrid" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "useAtlasSize" }, + { "Nilable": true, "Type": "FilterMode", "Name": "filterMode" }, + { "Nilable": true, "Type": "bool", "Name": "resetTexCoords" } + ], + "Type": "Function", + "Name": "SetAtlas" + }, + { + "Arguments": [{ "Nilable": false, "Type": "BlendMode", "Name": "blendMode" }], + "Type": "Function", + "Name": "SetBlendMode" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "blocking" } + ], + "Type": "Function", + "Name": "SetBlockingLoadsRequested" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": true, "Type": "SingleColorValue", "Name": "a" } + ], + "Type": "Function", + "Name": "SetColorTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "desaturated" } + ], + "Type": "Function", + "Name": "SetDesaturated" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "normalizedValue", "Name": "desaturation" } + ], + "Type": "Function", + "Name": "SetDesaturation" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "Orientation", "Name": "orientation" }, + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGBA", + "Name": "minColor" + }, + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGBA", + "Name": "maxColor" + } + ], + "Type": "Function", + "Name": "SetGradient" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "tiling" } + ], + "Type": "Function", + "Name": "SetHorizTile" + }, + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "file" }], + "Type": "Function", + "Name": "SetMask" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "radians" }, + { + "Nilable": true, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "normalizedRotationPoint" + } + ], + "Type": "Function", + "Name": "SetRotation" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "snap" } + ], + "Type": "Function", + "Name": "SetSnapToPixelGrid" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "left" }, + { "Nilable": false, "Type": "number", "Name": "right" }, + { "Nilable": false, "Type": "number", "Name": "bottom" }, + { "Nilable": false, "Type": "number", "Name": "top" } + ], + "Type": "Function", + "Name": "SetTexCoord" + }, + { + "Arguments": [{ "Nilable": false, "Type": "normalizedValue", "Name": "bias" }], + "Type": "Function", + "Name": "SetTexelSnappingBias" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": true, "Type": "cstring", "Name": "textureAsset" }, + { "Nilable": true, "Type": "cstring", "Name": "wrapModeHorizontal" }, + { "Nilable": true, "Type": "cstring", "Name": "wrapModeVertical" }, + { "Nilable": true, "Type": "cstring", "Name": "filterMode" } + ], + "Type": "Function", + "Name": "SetTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "left" }, + { "Nilable": false, "Type": "number", "Name": "top" }, + { "Nilable": false, "Type": "number", "Name": "right" }, + { "Nilable": false, "Type": "number", "Name": "bottom" } + ], + "Documentation": [ + "Enables nineslice texture rendering using the specified pixel margins. Preferred over legacy nineslice approach that uses 9 separate textures." + ], + "Type": "Function", + "Name": "SetTextureSliceMargins" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "UITextureSliceMode", "Name": "sliceMode" } + ], + "Documentation": [ + "Controls whether the center and sides are Stretched or Tiled when using nineslice texture rendering. Defaults to Stretched." + ], + "Type": "Function", + "Name": "SetTextureSliceMode" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "tiling" } + ], + "Type": "Function", + "Name": "SetVertTile" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "vertexIndex" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Type": "Function", + "Name": "SetVertexOffset" + } + ], + "Type": "ScriptObject", + "Name": "SimpleTextureBaseAPI", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_SkillInfo", + "Functions": [], + "Type": "System", + "Name": "SkillInfo", + "Events": [ + { + "LiteralName": "SKILL_LINES_CHANGED", + "Type": "Event", + "Name": "SkillLinesChanged" + } + ], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "allowed" }], + "Type": "Function", + "Name": "AreDangerousScriptsAllowed" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "allowed" } + ], + "Type": "Function", + "Name": "SetAllowDangerousScripts" + } + ], + "Type": "System", + "Name": "SlashCommand", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "SocialWhoOrigin", + "Fields": [ + { "EnumValue": 0, "Type": "SocialWhoOrigin", "Name": "Unknown" }, + { "EnumValue": 1, "Type": "SocialWhoOrigin", "Name": "Social" }, + { "EnumValue": 2, "Type": "SocialWhoOrigin", "Name": "Chat" }, + { "EnumValue": 3, "Type": "SocialWhoOrigin", "Name": "Item" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Namespace": "C_Social", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "achievementID" }, + { "Nilable": false, "Type": "string", "Name": "achievementName" }, + { "Nilable": false, "Type": "string", "Name": "achievementDesc" }, + { "Nilable": false, "Type": "fileID", "Name": "iconFileID" } + ], + "Type": "Function", + "Name": "GetLastAchievement" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "string", "Name": "itemName" }, + { "Nilable": false, "Type": "fileID", "Name": "iconFileID" }, + { "Nilable": false, "Type": "number", "Name": "itemQuality" }, + { "Nilable": false, "Type": "number", "Name": "itemLevel" }, + { "Nilable": false, "Type": "string", "Name": "itemLinkString" } + ], + "Type": "Function", + "Name": "GetLastItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "screenShotIndex" }], + "Type": "Function", + "Name": "GetLastScreenshotIndex" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxTweetLength" }], + "Type": "Function", + "Name": "GetMaxTweetLength" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "screenWidth" }, + { "Nilable": false, "Type": "number", "Name": "screenHeight" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetScreenshotInfoByIndex" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "tweetLength" }], + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "tweetText" }], + "Type": "Function", + "Name": "GetTweetLength" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEnabled" }], + "Type": "Function", + "Name": "IsSocialEnabled" + }, + { + "Documentation": ["Not allowed to be called by addons"], + "Type": "Function", + "Name": "TwitterCheckStatus" + }, + { + "Documentation": ["Not allowed to be called by addons"], + "Type": "Function", + "Name": "TwitterConnect" + }, + { + "Documentation": ["Not allowed to be called by addons"], + "Type": "Function", + "Name": "TwitterDisconnect" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "msTimeLeft" }], + "Type": "Function", + "Name": "TwitterGetMSTillCanPost" + }, + { + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "message" }], + "Documentation": ["Not allowed to be called by addons"], + "Type": "Function", + "Name": "TwitterPostMessage" + } + ], + "Type": "System", + "Name": "SocialInfo", + "Events": [ + { + "LiteralName": "SOCIAL_ITEM_RECEIVED", + "Type": "Event", + "Name": "SocialItemReceived" + }, + { + "LiteralName": "TWITTER_LINK_RESULT", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "isLinked" }, + { "Nilable": false, "Type": "cstring", "Name": "screenName" }, + { "Nilable": false, "Type": "cstring", "Name": "error" } + ], + "Type": "Event", + "Name": "TwitterLinkResult" + }, + { + "LiteralName": "TWITTER_POST_RESULT", + "Payload": [{ "Nilable": false, "Type": "luaIndex", "Name": "result" }], + "Type": "Event", + "Name": "TwitterPostResult" + }, + { + "LiteralName": "TWITTER_STATUS_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "isTwitterEnabled" }, + { "Nilable": false, "Type": "bool", "Name": "isLinked" }, + { "Nilable": false, "Type": "cstring", "Name": "screenName" } + ], + "Type": "Event", + "Name": "TwitterStatusUpdate" + } + ], + "Tables": [] + }, + { + "Namespace": "C_SocialQueue", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "WOWGUID", + "Type": "table", + "Name": "groupGUIDs" + } + ], + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "allowNonJoinable" + }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "allowNonQueuedGroups" + } + ], + "Type": "Function", + "Name": "GetAllGroups" + }, + { + "Returns": [{ "Nilable": false, "Type": "SocialQueueConfig", "Name": "config" }], + "Type": "Function", + "Name": "GetConfig" + }, + { + "Returns": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "groupGUID" }, + { "Nilable": false, "Type": "bool", "Name": "isSoloQueueParty" } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "playerGUID" }], + "Type": "Function", + "Name": "GetGroupForPlayer" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canJoin" }, + { "Nilable": false, "Type": "number", "Name": "numQueues" }, + { "Nilable": false, "Type": "bool", "Name": "needTank" }, + { "Nilable": false, "Type": "bool", "Name": "needHealer" }, + { "Nilable": false, "Type": "bool", "Name": "needDamage" }, + { "Nilable": false, "Type": "bool", "Name": "isSoloQueueParty" }, + { "Nilable": false, "Type": "bool", "Name": "questSessionActive" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "leaderGUID" } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "groupGUID" }], + "Type": "Function", + "Name": "GetGroupInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "SocialQueuePlayerInfo", + "Type": "table", + "Name": "groupMembers" + } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "groupGUID" }], + "Type": "Function", + "Name": "GetGroupMembers" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "SocialQueueGroupQueueInfo", + "Type": "table", + "Name": "queues" + } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "groupGUID" }], + "Type": "Function", + "Name": "GetGroupQueues" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "requestSuccessful" }], + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "groupGUID" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "applyAsTank" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "applyAsHealer" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "applyAsDamage" } + ], + "Type": "Function", + "Name": "RequestToJoin" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "groupGUID" }, + { "Nilable": false, "Type": "number", "Name": "priority" } + ], + "Type": "Function", + "Name": "SignalToastDisplayed" + } + ], + "Type": "System", + "Name": "SocialQueue", + "Events": [ + { + "LiteralName": "SOCIAL_QUEUE_CONFIG_UPDATED", + "Type": "Event", + "Name": "SocialQueueConfigUpdated" + }, + { + "LiteralName": "SOCIAL_QUEUE_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "groupGUID" }, + { "Nilable": true, "Type": "number", "Name": "numAddedItems" } + ], + "Type": "Event", + "Name": "SocialQueueUpdate" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "TOASTS_DISABLED" }, + { "Nilable": false, "Type": "number", "Name": "TOAST_DURATION" }, + { "Nilable": false, "Type": "number", "Name": "DELAY_DURATION" }, + { "Nilable": false, "Type": "number", "Name": "QUEUE_MULTIPLIER" }, + { "Nilable": false, "Type": "number", "Name": "PLAYER_MULTIPLIER" }, + { "Nilable": false, "Type": "number", "Name": "PLAYER_FRIEND_VALUE" }, + { "Nilable": false, "Type": "number", "Name": "PLAYER_GUILD_VALUE" }, + { "Nilable": false, "Type": "number", "Name": "THROTTLE_INITIAL_THRESHOLD" }, + { "Nilable": false, "Type": "number", "Name": "THROTTLE_DECAY_TIME" }, + { "Nilable": false, "Type": "number", "Name": "THROTTLE_PRIORITY_SPIKE" }, + { "Nilable": false, "Type": "number", "Name": "THROTTLE_MIN_THRESHOLD" }, + { "Nilable": false, "Type": "number", "Name": "THROTTLE_PVP_PRIORITY_NORMAL" }, + { "Nilable": false, "Type": "number", "Name": "THROTTLE_PVP_PRIORITY_LOW" }, + { "Nilable": false, "Type": "number", "Name": "THROTTLE_PVP_HONOR_THRESHOLD" }, + { + "Nilable": false, + "Type": "number", + "Name": "THROTTLE_LFGLIST_PRIORITY_DEFAULT" + }, + { + "Nilable": false, + "Type": "number", + "Name": "THROTTLE_LFGLIST_PRIORITY_ABOVE" + }, + { + "Nilable": false, + "Type": "number", + "Name": "THROTTLE_LFGLIST_PRIORITY_BELOW" + }, + { + "Nilable": false, + "Type": "number", + "Name": "THROTTLE_LFGLIST_ILVL_SCALING_ABOVE" + }, + { + "Nilable": false, + "Type": "number", + "Name": "THROTTLE_LFGLIST_ILVL_SCALING_BELOW" + }, + { "Nilable": false, "Type": "number", "Name": "THROTTLE_RF_PRIORITY_ABOVE" }, + { + "Nilable": false, + "Type": "number", + "Name": "THROTTLE_RF_ILVL_SCALING_ABOVE" + }, + { "Nilable": false, "Type": "number", "Name": "THROTTLE_DF_MAX_ITEM_LEVEL" }, + { "Nilable": false, "Type": "number", "Name": "THROTTLE_DF_BEST_PRIORITY" } + ], + "Type": "Structure", + "Name": "SocialQueueConfig" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "canJoin" }, + { "Nilable": false, "Type": "number", "Name": "numQueues" }, + { "Nilable": false, "Type": "bool", "Name": "needTank" }, + { "Nilable": false, "Type": "bool", "Name": "needHealer" }, + { "Nilable": false, "Type": "bool", "Name": "needDamage" }, + { "Nilable": false, "Type": "bool", "Name": "isSoloQueueParty" }, + { "Nilable": false, "Type": "bool", "Name": "questSessionActive" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "leaderGUID" } + ], + "Type": "Structure", + "Name": "SocialQueueGroupInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "clientID" }, + { "Nilable": false, "Type": "bool", "Name": "eligible" }, + { "Nilable": false, "Type": "bool", "Name": "needTank" }, + { "Nilable": false, "Type": "bool", "Name": "needHealer" }, + { "Nilable": false, "Type": "bool", "Name": "needDamage" }, + { "Nilable": false, "Type": "bool", "Name": "isAutoAccept" }, + { "Nilable": false, "Type": "QueueSpecificInfo", "Name": "queueData" } + ], + "Type": "Structure", + "Name": "SocialQueueGroupQueueInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "guid" }, + { "Nilable": true, "Type": "ClubId", "Name": "clubId" } + ], + "Type": "Structure", + "Name": "SocialQueuePlayerInfo" + } + ] + }, + { + "Namespace": "C_SocialRestrictions", + "Functions": [ + { "Type": "Function", "Name": "AcknowledgeRegionalChatDisabled" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "disabled" }], + "Type": "Function", + "Name": "IsChatDisabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isMuted" }], + "Type": "Function", + "Name": "IsMuted" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSilenced" }], + "Type": "Function", + "Name": "IsSilenced" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSquelched" }], + "Type": "Function", + "Name": "IsSquelched" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "disabled" }], + "Type": "Function", + "Name": "SetChatDisabled" + } + ], + "Type": "System", + "Name": "SocialRestrictions", + "Events": [ + { + "LiteralName": "ALERT_REGIONAL_CHAT_DISABLED", + "Type": "Event", + "Name": "AlertRegionalChatDisabled" + }, + { + "LiteralName": "CHAT_DISABLED_CHANGE_FAILED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "disabled" }], + "Type": "Event", + "Name": "ChatDisabledChangeFailed" + }, + { + "LiteralName": "CHAT_DISABLED_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "disabled" }], + "Type": "Event", + "Name": "ChatDisabledChanged" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "SoftTargetEnableFlags", + "Fields": [ + { "EnumValue": 0, "Type": "SoftTargetEnableFlags", "Name": "None" }, + { "EnumValue": 1, "Type": "SoftTargetEnableFlags", "Name": "Gamepad" }, + { "EnumValue": 2, "Type": "SoftTargetEnableFlags", "Name": "Kbm" }, + { "EnumValue": 3, "Type": "SoftTargetEnableFlags", "Name": "Any" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "AddSoulbindConduitReason", + "Fields": [ + { "EnumValue": 0, "Type": "AddSoulbindConduitReason", "Name": "None" }, + { "EnumValue": 1, "Type": "AddSoulbindConduitReason", "Name": "Cheat" }, + { "EnumValue": 2, "Type": "AddSoulbindConduitReason", "Name": "SpellEffect" }, + { "EnumValue": 3, "Type": "AddSoulbindConduitReason", "Name": "Upgrade" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "SoulbindConduitFlags", + "Fields": [ + { + "EnumValue": 1, + "Type": "SoulbindConduitFlags", + "Name": "VisibleToGetallsoulbindconduitScript" + } + ], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "SoulbindConduitInstallResult", + "Fields": [ + { "EnumValue": 0, "Type": "SoulbindConduitInstallResult", "Name": "Success" }, + { + "EnumValue": 1, + "Type": "SoulbindConduitInstallResult", + "Name": "InvalidItem" + }, + { + "EnumValue": 2, + "Type": "SoulbindConduitInstallResult", + "Name": "InvalidConduit" + }, + { + "EnumValue": 3, + "Type": "SoulbindConduitInstallResult", + "Name": "InvalidTalent" + }, + { + "EnumValue": 4, + "Type": "SoulbindConduitInstallResult", + "Name": "DuplicateConduit" + }, + { + "EnumValue": 5, + "Type": "SoulbindConduitInstallResult", + "Name": "ForgeNotInProximity" + }, + { + "EnumValue": 6, + "Type": "SoulbindConduitInstallResult", + "Name": "SocketNotEmpty" + } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "SoulbindConduitTransactionType", + "Fields": [ + { "EnumValue": 0, "Type": "SoulbindConduitTransactionType", "Name": "Install" }, + { + "EnumValue": 1, + "Type": "SoulbindConduitTransactionType", + "Name": "Uninstall" + } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "SoulbindConduitType", + "Fields": [ + { "EnumValue": 0, "Type": "SoulbindConduitType", "Name": "Finesse" }, + { "EnumValue": 1, "Type": "SoulbindConduitType", "Name": "Potency" }, + { "EnumValue": 2, "Type": "SoulbindConduitType", "Name": "Endurance" }, + { "EnumValue": 3, "Type": "SoulbindConduitType", "Name": "Flex" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "SoulbindNodeState", + "Fields": [ + { "EnumValue": 0, "Type": "SoulbindNodeState", "Name": "Unavailable" }, + { "EnumValue": 1, "Type": "SoulbindNodeState", "Name": "Unselected" }, + { "EnumValue": 2, "Type": "SoulbindNodeState", "Name": "Selectable" }, + { "EnumValue": 3, "Type": "SoulbindNodeState", "Name": "Selected" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Namespace": "C_Soulbinds", + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "soulbindID" }], + "Type": "Function", + "Name": "ActivateSoulbind" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "result" }, + { "Nilable": true, "Type": "cstring", "Name": "errorDescription" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "soulbindID" }], + "Type": "Function", + "Name": "CanActivateSoulbind" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "CanModifySoulbind" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "result" }, + { "Nilable": true, "Type": "cstring", "Name": "errorDescription" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "soulbindID" }], + "Type": "Function", + "Name": "CanResetConduitsInSoulbind" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "CanSwitchActiveSoulbindTreeBranch" + }, + { "Type": "Function", "Name": "CloseUI" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "soulbindID" }], + "Type": "Function", + "Name": "CommitPendingConduitsInSoulbind" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "soulbindID" }, + { "Nilable": false, "Type": "number", "Name": "conduitID" } + ], + "Type": "Function", + "Name": "FindNodeIDActuallyInstalled" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "soulbindID" }, + { "Nilable": false, "Type": "number", "Name": "conduitID" } + ], + "Type": "Function", + "Name": "FindNodeIDAppearingInstalled" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "soulbindID" }, + { "Nilable": false, "Type": "number", "Name": "conduitID" } + ], + "Type": "Function", + "Name": "FindNodeIDPendingInstall" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "soulbindID" }, + { "Nilable": false, "Type": "number", "Name": "conduitID" } + ], + "Type": "Function", + "Name": "FindNodeIDPendingUninstall" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "soulbindID" }], + "Type": "Function", + "Name": "GetActiveSoulbindID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ConduitCollectionData", + "Type": "table", + "Name": "collectionData" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "SoulbindConduitType", "Name": "conduitType" } + ], + "Type": "Function", + "Name": "GetConduitCollection" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "count" }], + "Type": "Function", + "Name": "GetConduitCollectionCount" + }, + { + "Returns": [ + { "Nilable": true, "Type": "ConduitCollectionData", "Name": "collectionData" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "conduitID" }], + "Type": "Function", + "Name": "GetConduitCollectionData" + }, + { + "Returns": [ + { "Nilable": true, "Type": "ConduitCollectionData", "Name": "collectionData" } + ], + "Type": "Function", + "Name": "GetConduitCollectionDataAtCursor" + }, + { + "Returns": [ + { "Nilable": true, "Type": "ConduitCollectionData", "Name": "collectionData" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "virtualID" }], + "Type": "Function", + "Name": "GetConduitCollectionDataByVirtualID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "conduitID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Type": "Function", + "Name": "GetConduitDisplayed" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "link" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "conduitID" }, + { "Nilable": false, "Type": "number", "Name": "rank" } + ], + "Type": "Function", + "Name": "GetConduitHyperlink" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "conduitID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Type": "Function", + "Name": "GetConduitIDPendingInstall" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "quality" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "conduitID" }, + { "Nilable": false, "Type": "number", "Name": "rank" } + ], + "Type": "Function", + "Name": "GetConduitQuality" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "conduitRank" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "conduitID" }], + "Type": "Function", + "Name": "GetConduitRank" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "conduitID" }, + { "Nilable": false, "Type": "number", "Name": "conduitRank" } + ], + "Type": "Function", + "Name": "GetConduitSpellID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "conduitID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Type": "Function", + "Name": "GetInstalledConduitID" + }, + { + "Returns": [{ "Nilable": false, "Type": "SoulbindNode", "Name": "node" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Type": "Function", + "Name": "GetNode" + }, + { + "Returns": [{ "Nilable": false, "Type": "SoulbindData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "soulbindID" }], + "Type": "Function", + "Name": "GetSoulbindData" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "specIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "soulbindID" }], + "Type": "Function", + "Name": "GetSpecsAssignedToSoulbind" + }, + { + "Returns": [{ "Nilable": false, "Type": "SoulbindTree", "Name": "tree" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "treeID" }], + "Type": "Function", + "Name": "GetTree" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "soulbindID" }], + "Type": "Function", + "Name": "HasAnyInstalledConduitInSoulbind" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "HasAnyPendingConduits" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "soulbindID" }], + "Type": "Function", + "Name": "HasPendingConduitsInSoulbind" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Type": "Function", + "Name": "IsConduitInstalled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "soulbindID" }, + { "Nilable": false, "Type": "number", "Name": "conduitID" } + ], + "Type": "Function", + "Name": "IsConduitInstalledInSoulbind" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "IsItemConduitByItemInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Type": "Function", + "Name": "IsNodePendingModify" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "soulbindID" }], + "Type": "Function", + "Name": "IsUnselectedConduitPendingInSoulbind" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "nodeID" }, + { "Nilable": false, "Type": "number", "Name": "conduitID" }, + { "Nilable": false, "Type": "SoulbindConduitTransactionType", "Name": "type" } + ], + "Type": "Function", + "Name": "ModifyNode" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Type": "Function", + "Name": "SelectNode" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Type": "Function", + "Name": "UnmodifyNode" + } + ], + "Type": "System", + "Name": "Soulbinds", + "Events": [ + { + "LiteralName": "SOULBIND_ACTIVATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "soulbindID" }], + "Type": "Event", + "Name": "SoulbindActivated" + }, + { + "LiteralName": "SOULBIND_CONDUIT_COLLECTION_CLEARED", + "Type": "Event", + "Name": "SoulbindConduitCollectionCleared" + }, + { + "LiteralName": "SOULBIND_CONDUIT_COLLECTION_REMOVED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "conduitID" }], + "Type": "Event", + "Name": "SoulbindConduitCollectionRemoved" + }, + { + "LiteralName": "SOULBIND_CONDUIT_COLLECTION_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "ConduitCollectionData", "Name": "collectionData" } + ], + "Type": "Event", + "Name": "SoulbindConduitCollectionUpdated" + }, + { + "LiteralName": "SOULBIND_CONDUIT_INSTALLED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "nodeID" }, + { "Nilable": false, "Type": "SoulbindConduitData", "Name": "data" } + ], + "Type": "Event", + "Name": "SoulbindConduitInstalled" + }, + { + "LiteralName": "SOULBIND_CONDUIT_UNINSTALLED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "nodeID" }, + { "Nilable": false, "Type": "SoulbindConduitData", "Name": "data" } + ], + "Type": "Event", + "Name": "SoulbindConduitUninstalled" + }, + { + "LiteralName": "SOULBIND_FORGE_INTERACTION_ENDED", + "Type": "Event", + "Name": "SoulbindForgeInteractionEnded" + }, + { + "LiteralName": "SOULBIND_FORGE_INTERACTION_STARTED", + "Type": "Event", + "Name": "SoulbindForgeInteractionStarted" + }, + { + "LiteralName": "SOULBIND_NODE_LEARNED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Type": "Event", + "Name": "SoulbindNodeLearned" + }, + { + "LiteralName": "SOULBIND_NODE_UNLEARNED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Type": "Event", + "Name": "SoulbindNodeUnlearned" + }, + { + "LiteralName": "SOULBIND_NODE_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "nodeID" }], + "Type": "Event", + "Name": "SoulbindNodeUpdated" + }, + { + "LiteralName": "SOULBIND_PATH_CHANGED", + "Type": "Event", + "Name": "SoulbindPathChanged" + }, + { + "LiteralName": "SOULBIND_PENDING_CONDUIT_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "nodeID" }, + { "Nilable": false, "Type": "number", "Name": "conduitID" } + ], + "Type": "Event", + "Name": "SoulbindPendingConduitChanged" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "conduitID" }, + { "Nilable": false, "Type": "number", "Name": "conduitRank" }, + { "Nilable": false, "Type": "number", "Name": "conduitItemLevel" }, + { "Nilable": false, "Type": "SoulbindConduitType", "Name": "conduitType" }, + { "Nilable": false, "Type": "number", "Name": "conduitSpecSetID" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "conduitSpecIDs" + }, + { "Nilable": true, "Type": "cstring", "Name": "conduitSpecName" }, + { "Nilable": true, "Type": "number", "Name": "covenantID" }, + { "Nilable": false, "Type": "number", "Name": "conduitItemID" } + ], + "Type": "Structure", + "Name": "ConduitCollectionData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "conduitID" }, + { "Nilable": false, "Type": "number", "Name": "conduitRank" } + ], + "Type": "Structure", + "Name": "SoulbindConduitData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "number", "Name": "covenantID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "bool", "Name": "unlocked" }, + { "Nilable": false, "Type": "luaIndex", "Name": "cvarIndex" }, + { "Nilable": false, "Type": "SoulbindTree", "Name": "tree" }, + { + "Nilable": false, + "Type": "SoulbindModelSceneData", + "Name": "modelSceneData" + }, + { "Nilable": false, "Type": "number", "Name": "activationSoundKitID" }, + { "Nilable": true, "Type": "cstring", "Name": "playerConditionReason" } + ], + "Type": "Structure", + "Name": "SoulbindData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "creatureDisplayInfoID" }, + { "Nilable": false, "Type": "number", "Name": "modelSceneActorID" } + ], + "Type": "Structure", + "Name": "SoulbindModelSceneData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "number", "Name": "row" }, + { "Nilable": false, "Type": "number", "Name": "column" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": true, "Type": "cstring", "Name": "playerConditionReason" }, + { "Nilable": false, "Type": "number", "Name": "conduitID" }, + { "Nilable": false, "Type": "number", "Name": "conduitRank" }, + { "Nilable": false, "Type": "SoulbindNodeState", "Name": "state" }, + { "Nilable": true, "Type": "SoulbindConduitType", "Name": "conduitType" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "parentNodeIDs" + }, + { "Nilable": true, "Type": "number", "Name": "failureRenownRequirement" }, + { "Nilable": true, "Type": "bool", "Name": "socketEnhanced" } + ], + "Type": "Structure", + "Name": "SoulbindNode" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "editable" }, + { + "Nilable": false, + "InnerType": "SoulbindNode", + "Type": "table", + "Name": "nodes" + } + ], + "Type": "Structure", + "Name": "SoulbindTree" + } + ] + }, + { + "Namespace": "C_Sound", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "scaledVolume" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "soundHandle" }], + "Type": "Function", + "Name": "GetSoundScaledVolume" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPlaying" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "soundHandle" }], + "Type": "Function", + "Name": "IsPlaying" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ItemSoundType", "Name": "soundType" }, + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + } + ], + "Type": "Function", + "Name": "PlayItemSound" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "Vocalerrorsounds", "Name": "vocalErrorSoundID" } + ], + "Type": "Function", + "Name": "PlayVocalErrorSound" + } + ], + "Type": "System", + "Name": "Sound", + "Events": [ + { + "LiteralName": "SOUND_DEVICE_UPDATE", + "Type": "Event", + "Name": "SoundDeviceUpdate" + }, + { + "LiteralName": "SOUNDKIT_FINISHED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "soundHandle" }], + "Type": "Event", + "Name": "SoundkitFinished" + } + ], + "Tables": [] + }, + { + "Namespace": "C_SpecializationInfo", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canUse" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "CanPlayerUsePVPTalentUI" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canUse" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "CanPlayerUseTalentSpecUI" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canUse" }, + { "Nilable": false, "Type": "string", "Name": "failureReason" } + ], + "Type": "Function", + "Name": "CanPlayerUseTalentUI" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "selectedPvpTalentIDs" + } + ], + "Type": "Function", + "Name": "GetAllSelectedPvpTalentIDs" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "classID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "specID" }], + "Type": "Function", + "Name": "GetClassIDFromSpecID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "selectedTalentID" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "inspectedUnit" }, + { "Nilable": false, "Type": "number", "Name": "talentIndex" } + ], + "Type": "Function", + "Name": "GetInspectSelectedPvpTalent" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasUnspentSlot" }, + { "Nilable": false, "Type": "bool", "Name": "hasNewTalent" } + ], + "Type": "Function", + "Name": "GetPvpTalentAlertStatus" + }, + { + "Returns": [{ "Nilable": true, "Type": "PvpTalentInfo", "Name": "talentInfo" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "talentID" }], + "Type": "Function", + "Name": "GetPvpTalentInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "PvpTalentSlotInfo", "Name": "slotInfo" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "talentIndex" }], + "Type": "Function", + "Name": "GetPvpTalentSlotInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "requiredLevel" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "talentIndex" }], + "Type": "Function", + "Name": "GetPvpTalentSlotUnlockLevel" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "requiredLevel" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "talentID" }], + "Type": "Function", + "Name": "GetPvpTalentUnlockLevel" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "specIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "specSetID" }], + "Type": "Function", + "Name": "GetSpecIDs" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "spellID" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "specializationID" }], + "Type": "Function", + "Name": "GetSpellsDisplay" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isSpecializationDataInitialized" } + ], + "Type": "Function", + "Name": "IsInitialized" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "locked" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "talentID" }], + "Type": "Function", + "Name": "IsPvpTalentLocked" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "matches" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "specSetID" }], + "Type": "Function", + "Name": "MatchesCurrentSpecSet" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "talentID" }, + { "Nilable": false, "Type": "bool", "Name": "locked" } + ], + "Type": "Function", + "Name": "SetPvpTalentLocked" + } + ], + "Type": "System", + "Name": "SpecializationInfo", + "Events": [ + { + "LiteralName": "ACTIVE_TALENT_GROUP_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "curr" }, + { "Nilable": false, "Type": "number", "Name": "prev" } + ], + "Type": "Event", + "Name": "ActiveTalentGroupChanged" + }, + { + "LiteralName": "CONFIRM_TALENT_WIPE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "cost" }, + { "Nilable": false, "Type": "number", "Name": "respecType" } + ], + "Type": "Event", + "Name": "ConfirmTalentWipe" + }, + { + "LiteralName": "PET_SPECIALIZATION_CHANGED", + "Type": "Event", + "Name": "PetSpecializationChanged" + }, + { + "LiteralName": "PLAYER_LEARN_PVP_TALENT_FAILED", + "Type": "Event", + "Name": "PlayerLearnPvpTalentFailed" + }, + { + "LiteralName": "PLAYER_LEARN_TALENT_FAILED", + "Type": "Event", + "Name": "PlayerLearnTalentFailed" + }, + { + "LiteralName": "PLAYER_PVP_TALENT_UPDATE", + "Type": "Event", + "Name": "PlayerPvpTalentUpdate" + }, + { + "LiteralName": "PLAYER_TALENT_UPDATE", + "Type": "Event", + "Name": "PlayerTalentUpdate" + }, + { + "LiteralName": "SPEC_INVOLUNTARILY_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isPet" }], + "Type": "Event", + "Name": "SpecInvoluntarilyChanged" + }, + { + "LiteralName": "TALENTS_INVOLUNTARILY_RESET", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isPetTalents" }], + "Type": "Event", + "Name": "TalentsInvoluntarilyReset" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "talentID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "icon" }, + { "Nilable": false, "Type": "bool", "Name": "selected" }, + { "Nilable": false, "Type": "bool", "Name": "available" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "bool", "Name": "unlocked" }, + { "Nilable": false, "Type": "bool", "Name": "known" }, + { "Nilable": false, "Type": "bool", "Name": "grantedByAura" }, + { "Nilable": false, "Type": "bool", "Name": "dependenciesUnmet" }, + { "Nilable": true, "Type": "string", "Name": "dependenciesUnmetReason" } + ], + "Type": "Structure", + "Name": "PvpTalentInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "enabled" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": true, "Type": "number", "Name": "selectedTalentID" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "availableTalentIDs" + } + ], + "Type": "Structure", + "Name": "PvpTalentSlotInfo" + } + ] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "specCount" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "specID" }], + "Type": "Function", + "Name": "GetNumSpecializationsForClassID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "cstring", "Name": "role" }, + { "Nilable": false, "Type": "bool", "Name": "recommended" }, + { "Nilable": false, "Type": "bool", "Name": "allowedForBoost" }, + { "Nilable": true, "Type": "number", "Name": "masterySpell1" }, + { "Nilable": true, "Type": "number", "Name": "masterySpell2" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "classID" }, + { "Nilable": false, "Type": "number", "Name": "index" }, + { "Nilable": true, "Type": "number", "Name": "gender" } + ], + "Type": "Function", + "Name": "GetSpecializationInfoForClassID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "cstring", "Name": "role" }, + { "Nilable": false, "Type": "bool", "Name": "recommended" }, + { "Nilable": false, "Type": "bool", "Name": "allowedForBoost" }, + { "Nilable": true, "Type": "number", "Name": "masterySpell1" }, + { "Nilable": true, "Type": "number", "Name": "masterySpell2" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": true, "Type": "number", "Name": "gender" } + ], + "Type": "Function", + "Name": "GetSpecializationInfoForSpecID" + }, + { + "Returns": [{ "Nilable": true, "Type": "cstring", "Name": "name" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "specID" }, + { "Nilable": true, "Type": "number", "Name": "gender" } + ], + "Type": "Function", + "Name": "GetSpecializationNameForSpecID" + } + ], + "Type": "System", + "Name": "SpecializationShared", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "cstring", "Name": "role" }, + { "Nilable": false, "Type": "bool", "Name": "recommended" }, + { "Nilable": false, "Type": "bool", "Name": "allowedForBoost" }, + { "Nilable": true, "Type": "number", "Name": "masterySpell1" }, + { "Nilable": true, "Type": "number", "Name": "masterySpell2" } + ], + "Type": "Structure", + "Name": "SpecializationInfoResult" + } + ] + }, + { + "Namespace": "C_SpellActivationOverlay", + "Functions": [], + "Type": "System", + "Name": "SpellActivationOverlay", + "Events": [ + { + "LiteralName": "SPELL_ACTIVATION_OVERLAY_GLOW_HIDE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Event", + "Name": "SpellActivationOverlayGlowHide" + }, + { + "LiteralName": "SPELL_ACTIVATION_OVERLAY_GLOW_SHOW", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Event", + "Name": "SpellActivationOverlayGlowShow" + }, + { + "LiteralName": "SPELL_ACTIVATION_OVERLAY_HIDE", + "Payload": [{ "Nilable": true, "Type": "number", "Name": "spellID" }], + "Type": "Event", + "Name": "SpellActivationOverlayHide" + }, + { + "LiteralName": "SPELL_ACTIVATION_OVERLAY_SHOW", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "overlayFileDataID" }, + { "Nilable": false, "Type": "cstring", "Name": "locationName" }, + { "Nilable": false, "Type": "number", "Name": "scale" }, + { "Nilable": false, "Type": "number", "Name": "r" }, + { "Nilable": false, "Type": "number", "Name": "g" }, + { "Nilable": false, "Type": "number", "Name": "b" } + ], + "Type": "Event", + "Name": "SpellActivationOverlayShow" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "SpellBookSkillLineIndex", + "Fields": [ + { "EnumValue": 1, "Type": "SpellBookSkillLineIndex", "Name": "General" }, + { "EnumValue": 2, "Type": "SpellBookSkillLineIndex", "Name": "Class" }, + { "EnumValue": 3, "Type": "SpellBookSkillLineIndex", "Name": "MainSpec" }, + { "EnumValue": 4, "Type": "SpellBookSkillLineIndex", "Name": "OffSpecStart" } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "SpellBookItemType", + "Fields": [ + { "EnumValue": 0, "Type": "SpellBookItemType", "Name": "None" }, + { "EnumValue": 1, "Type": "SpellBookItemType", "Name": "Spell" }, + { "EnumValue": 2, "Type": "SpellBookItemType", "Name": "FutureSpell" }, + { "EnumValue": 3, "Type": "SpellBookItemType", "Name": "PetAction" }, + { "EnumValue": 4, "Type": "SpellBookItemType", "Name": "Flyout" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "SpellBookSpellBank", + "Fields": [ + { "EnumValue": 0, "Type": "SpellBookSpellBank", "Name": "Player" }, + { "EnumValue": 1, "Type": "SpellBookSpellBank", "Name": "Pet" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + } + ] + }, + { + "Namespace": "C_SpellBook", + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + }, + { + "Default": false, + "Type": "bool", + "Name": "targetSelf", + "Documentation": [ + "If true, spell will target the current player; Otherwise, targets the player's current target" + ], + "Nilable": false + } + ], + "Type": "Function", + "Name": "CastSpellBookItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "contains" }], + "Documentation": ["Returns true if player knows any Disenchant spells"], + "Type": "Function", + "Name": "ContainsAnyDisenchantSpell" + }, + { + "Documentation": [ + "If found, returns the first slot position of a SpellBookItem matching the specified spell and criteria" + ], + "Type": "Function", + "Name": "FindSpellBookSlotForSpell", + "Returns": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" }, + { + "Default": false, + "Type": "bool", + "Name": "includeHidden", + "Documentation": [ + "If true, search includes SpellBookItems that are hidden from the SpellBook UI (ex: spells that have been replaced, are also in a Flyout, etc)" + ], + "Nilable": false + }, + { + "Default": true, + "Type": "bool", + "Name": "includeFlyouts", + "Documentation": [ + "If true, search includes Flyout SpellBookItems containing the specified spell" + ], + "Nilable": false + }, + { + "Default": false, + "Type": "bool", + "Name": "includeFutureSpells", + "Documentation": [ + "If true, search includes SpellBookItems for spells that have not yet been learned" + ], + "Nilable": false + }, + { + "Default": false, + "Type": "bool", + "Name": "includeOffSpec", + "Documentation": [ + "If true, search includes SpellBookItems belonging to non-active specializations; If spell is in active and inactive spec, the active spec slot will always be returned" + ], + "Nilable": false + } + ] + }, + { + "Documentation": [ + "Returns general, class, and active spec spells that are learned at the specified level" + ], + "Type": "Function", + "Name": "GetCurrentLevelSpells", + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "spellIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "level" }] + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numSpellBookSkillLines" } + ], + "Type": "Function", + "Name": "GetNumSpellBookSkillLines" + }, + { + "Returns": [ + { + "Nilable": true, + "Documentation": [ + "Will be nil if the specified SkillLine could not be found, or if it is not one of the player's tracked skill lines" + ], + "Type": "luaIndex", + "Name": "skillIndex" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "GetSkillLineIndexByID" + }, + { + "Documentation": ["Returns nothing if item doesn't exist or isn't a spell"], + "Type": "Function", + "Name": "GetSpellBookItemAutoCast", + "Returns": [ + { + "Nilable": false, + "Documentation": ["True if this spell is allowed to be auto-cast"], + "Type": "bool", + "Name": "autoCastAllowed" + }, + { + "Nilable": false, + "Documentation": [ + "True if auto-casting this spell is currently enabled (usually by the player)" + ], + "Type": "bool", + "Name": "autoCastEnabled" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Documentation": [ + "Returns number of times a SpellBookItem can be cast, typically based on availability of things like required reagent items; Always returns 0 if item is not found or is not a spell" + ], + "Type": "Function", + "Name": "GetSpellBookItemCastCount", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "castCount" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Documentation": [ + "Returns a table of info about the charges of a charge-accumulating SpellBookItem; May return nil if item is not found or is not charge-based" + ], + "Type": "Function", + "Name": "GetSpellBookItemCharges", + "Returns": [ + { "Nilable": false, "Type": "SpellChargeInfo", "Name": "chargeInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Documentation": [ + "Returns nil if item doesn't exist or if this kind of item doesn't display cooldowns (ex: future or offspec spells)" + ], + "Type": "Function", + "Name": "GetSpellBookItemCooldown", + "Returns": [ + { "Nilable": false, "Type": "SpellCooldownInfo", "Name": "spellCooldownInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Returns": [ + { + "Nilable": false, + "Documentation": [ + "May be empty if spell's data isn't loaded yet; Listen for SPELL_TEXT_UPDATE event, or use SpellMixin to load asynchronously" + ], + "Type": "string", + "Name": "description" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ], + "Type": "Function", + "Name": "GetSpellBookItemDescription" + }, + { + "Returns": [ + { "Nilable": false, "Type": "SpellBookItemInfo", "Name": "spellBookItemInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ], + "Type": "Function", + "Name": "GetSpellBookItemInfo" + }, + { + "Documentation": [ + "Returns the level the spell is learned at; May return a different value if the player is currently Level Linked with another player; Returns 0 if item is not a Spell" + ], + "Type": "Function", + "Name": "GetSpellBookItemLevelLearned", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "levelLearned" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "spellLink" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + }, + { "Nilable": true, "Type": "number", "Name": "glyphID" } + ], + "Type": "Function", + "Name": "GetSpellBookItemLink" + }, + { + "Documentation": [ + "Returns nil if item doesn't exist or if this kind of item doesn't display cooldowns (ex: future or offspec spells)" + ], + "Type": "Function", + "Name": "GetSpellBookItemLossOfControlCooldown", + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { + "Nilable": false, + "Documentation": [ + "May be empty if spell's data isn't loaded yet; Listen for SPELL_TEXT_UPDATE event, or use SpellMixin to load asynchronously" + ], + "Type": "string", + "Name": "subName" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ], + "Type": "Function", + "Name": "GetSpellBookItemName" + }, + { + "Documentation": [ + "Returns a table containing one or more SpellPowerCostInfos, one for each power type a SpellBookItem costs; May return nil if item is not found or has no resource costs" + ], + "Type": "Function", + "Name": "GetSpellBookItemPowerCost", + "Returns": [ + { + "Nilable": false, + "InnerType": "SpellPowerCostInfo", + "Type": "table", + "Name": "powerCosts" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Documentation": ["Get the index of the SkillLine this SpellBookItem is part of"], + "Type": "Function", + "Name": "GetSpellBookItemSkillLineIndex", + "Returns": [ + { + "Nilable": true, + "Documentation": [ + "Will be nil if the specified SpellBookItem doesn't exist or isn't part of a SkillLine" + ], + "Type": "luaIndex", + "Name": "skillLineIndex" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "iconID" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ], + "Type": "Function", + "Name": "GetSpellBookItemTexture" + }, + { + "Documentation": [ + "Returns nil if SpellBookItem is not associated with a trade skill" + ], + "Type": "Function", + "Name": "GetSpellBookItemTradeSkillLink", + "Returns": [{ "Nilable": false, "Type": "string", "Name": "spellLink" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Returns": [ + { "Nilable": false, "Type": "SpellBookItemType", "Name": "itemType" }, + { + "Nilable": false, + "Documentation": [ + "Represents a spellID for spells, flyoutID for flyouts, or petActionID for pet actions" + ], + "Type": "number", + "Name": "actionID" + }, + { + "Nilable": true, + "Documentation": [ + "May be nil if item is not a spell; may be different from actionID if item is an overriden spell" + ], + "Type": "number", + "Name": "spellID" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ], + "Type": "Function", + "Name": "GetSpellBookItemType" + }, + { + "Returns": [ + { "Nilable": false, "Type": "SpellBookSkillLineInfo", "Name": "skillLineInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "skillLineIndex" }], + "Type": "Function", + "Name": "GetSpellBookSkillLineInfo" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "spellIDs" } + ], + "Type": "Function", + "Name": "GetTrackedNameplateCooldownSpells" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numPetSpells" }, + { "Nilable": false, "Type": "string", "Name": "petNameToken" } + ], + "Documentation": ["Returns nothing if player has no pet spells"], + "Type": "Function", + "Name": "HasPetSpells" + }, + { + "Documentation": [ + "Returns true if the SpellBookItem is the player's melee Auto Attack spell" + ], + "Type": "Function", + "Name": "IsAutoAttackSpellBookItem", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAutoAttack" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Documentation": ["Returns true if the SpellBookItem comes from a Class Talent"], + "Type": "Function", + "Name": "IsClassTalentSpellBookItem", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isClassTalent" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Documentation": ["Returns true if the SpellBookItem comes from a PvP Talent"], + "Type": "Function", + "Name": "IsPvPTalentSpellBookItem", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPvPTalent" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Documentation": [ + "Returns true if the SpellBookItem is the player's ranged Auto Attack spell (ex: Shoot, Auto Shot, etc)" + ], + "Type": "Function", + "Name": "IsRangedAutoAttackSpellBookItem", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRangedAutoAttack" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Documentation": [ + "Returns true if the SpellBookIem can be cast on hostile targets" + ], + "Type": "Function", + "Name": "IsSpellBookItemHarmful", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isHarmful" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Documentation": [ + "Returns true if the SpellBookIem can be cast on the player or other friendly targets" + ], + "Type": "Function", + "Name": "IsSpellBookItemHelpful", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isHelpful" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Documentation": [ + "Returns true if the current target is within range of the SpellBookIem; False if out of range; Nil if range check was invalid" + ], + "Type": "Function", + "Name": "IsSpellBookItemInRange", + "Returns": [ + { + "Nilable": true, + "Documentation": [ + "May be nil if the range check was invalid, ie due to invalid spell, missing/invalid target, unknown spell, etc" + ], + "Type": "bool", + "Name": "inRange" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + }, + { + "Nilable": true, + "Documentation": [ + "Optional specific target; If not supplied, player's current target (if any) will be used" + ], + "Type": "UnitToken", + "Name": "targetUnit" + } + ] + }, + { + "Documentation": [ + "Returns true if the SpellBookItem belongs to a non-active class specialization" + ], + "Type": "Function", + "Name": "IsSpellBookItemOffSpec", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isOffSpec" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Documentation": [ + "Returns true if the SpellBookItem is a passive spell; Will always return false if it is not a spell" + ], + "Type": "Function", + "Name": "IsSpellBookItemPassive", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPassive" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Documentation": [ + "Returns whether the SpellBookIem is currently castable; Typically based on things like learned status, required resources, etc" + ], + "Type": "Function", + "Name": "IsSpellBookItemUsable", + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isUsable" }, + { + "Nilable": false, + "Documentation": [ + "True if SpellBookIem is specifically unusable due to insufficient power (ie MANA, RAGE, etc)" + ], + "Type": "bool", + "Name": "insufficientPower" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ], + "Type": "Function", + "Name": "PickupSpellBookItem" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + }, + { "Nilable": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetSpellBookItemAutoCastEnabled" + }, + { + "Documentation": [ + "Returns true if the SpellBookIem has a min and/or max range greater than 0; Will always return false if it is not a spell" + ], + "Type": "Function", + "Name": "SpellBookItemHasRange", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasRange" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ] + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ], + "Type": "Function", + "Name": "ToggleSpellBookItemAutoCast" + } + ], + "Type": "System", + "Name": "SpellBook", + "Events": [ + { + "LiteralName": "CURRENT_SPELL_CAST_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "cancelledCast" }], + "Type": "Event", + "Name": "CurrentSpellCastChanged" + }, + { + "LiteralName": "LEARNED_SPELL_IN_SKILL_LINE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "skillLineIndex" }, + { "Nilable": false, "Type": "bool", "Name": "isGuildPerkSpell" } + ], + "Type": "Event", + "Name": "LearnedSpellInSkillLine" + }, + { + "LiteralName": "MAX_SPELL_START_RECOVERY_OFFSET_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "clampedNewQueueWindowMs" } + ], + "Type": "Event", + "Name": "MaxSpellStartRecoveryOffsetChanged" + }, + { + "LiteralName": "PLAYER_TOTEM_UPDATE", + "Payload": [{ "Nilable": false, "Type": "luaIndex", "Name": "totemSlot" }], + "Type": "Event", + "Name": "PlayerTotemUpdate" + }, + { + "LiteralName": "SPELL_FLYOUT_UPDATE", + "Payload": [ + { "Nilable": true, "Type": "number", "Name": "flyoutID" }, + { "Nilable": true, "Type": "number", "Name": "spellID" }, + { "Nilable": true, "Type": "bool", "Name": "isLearned" } + ], + "Type": "Event", + "Name": "SpellFlyoutUpdate" + }, + { + "LiteralName": "SPELL_PUSHED_TO_ACTIONBAR", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "slot" }, + { "Nilable": false, "Type": "number", "Name": "page" } + ], + "Type": "Event", + "Name": "SpellPushedToActionbar" + }, + { + "LiteralName": "SPELL_UPDATE_CHARGES", + "Type": "Event", + "Name": "SpellUpdateCharges" + }, + { + "LiteralName": "SPELL_UPDATE_COOLDOWN", + "Type": "Event", + "Name": "SpellUpdateCooldown" + }, + { "LiteralName": "SPELL_UPDATE_ICON", "Type": "Event", "Name": "SpellUpdateIcon" }, + { + "LiteralName": "SPELL_UPDATE_USABLE", + "Type": "Event", + "Name": "SpellUpdateUsable" + }, + { "LiteralName": "SPELLS_CHANGED", "Type": "Event", "Name": "SpellsChanged" }, + { + "LiteralName": "START_AUTOREPEAT_SPELL", + "Type": "Event", + "Name": "StartAutorepeatSpell" + }, + { + "LiteralName": "STOP_AUTOREPEAT_SPELL", + "Type": "Event", + "Name": "StopAutorepeatSpell" + }, + { + "LiteralName": "UNIT_SPELLCAST_SENT", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "unit" }, + { "Nilable": false, "Type": "cstring", "Name": "target" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastSent" + }, + { + "LiteralName": "UPDATE_SHAPESHIFT_COOLDOWN", + "Type": "Event", + "Name": "UpdateShapeshiftCooldown" + }, + { + "LiteralName": "UPDATE_SHAPESHIFT_FORM", + "Type": "Event", + "Name": "UpdateShapeshiftForm" + }, + { + "LiteralName": "UPDATE_SHAPESHIFT_FORMS", + "Type": "Event", + "Name": "UpdateShapeshiftForms" + }, + { + "LiteralName": "UPDATE_SHAPESHIFT_USABLE", + "Type": "Event", + "Name": "UpdateShapeshiftUsable" + } + ], + "Tables": [ + { + "Fields": [ + { + "Nilable": false, + "Documentation": [ + "Represents a spellID for spells, flyoutID for flyouts, or petActionID for pet actions" + ], + "Type": "number", + "Name": "actionID" + }, + { + "Nilable": true, + "Documentation": [ + "May be nil if item is not a spell; may be different from actionID if spell is overriden" + ], + "Type": "number", + "Name": "spellID" + }, + { "Nilable": false, "Type": "SpellBookItemType", "Name": "itemType" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { + "Nilable": false, + "Documentation": [ + "May be empty if flyout, or if spell's data isn't loaded yet; Listen for SPELL_TEXT_UPDATE event, or use SpellMixin to load asynchronously" + ], + "Type": "string", + "Name": "subName" + }, + { "Nilable": false, "Type": "fileID", "Name": "iconID" }, + { + "Nilable": false, + "Documentation": [ + "True if the item is a passive spell; Will always be false if it is not a spell" + ], + "Type": "bool", + "Name": "isPassive" + }, + { + "Nilable": false, + "Documentation": ["True if the item belongs to a non-active specialization"], + "Type": "bool", + "Name": "isOffSpec" + }, + { + "Nilable": true, + "Documentation": [ + "Index of the SkillLine this SpellBookItem is part of; Nil this SpellBookItem isn't part of a SkillLine" + ], + "Type": "luaIndex", + "Name": "skillLineIndex" + } + ], + "Type": "Structure", + "Name": "SpellBookItemInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "iconID" }, + { + "Nilable": false, + "Documentation": [ + "This value + 1 is the first Spell Book Item slotIndex within this skill line" + ], + "Type": "number", + "Name": "itemIndexOffset" + }, + { "Nilable": false, "Type": "number", "Name": "numSpellBookItems" }, + { "Nilable": false, "Type": "bool", "Name": "isGuild" }, + { "Nilable": false, "Type": "bool", "Name": "shouldHide" }, + { + "Nilable": true, + "Documentation": [ + "Will be nil if this skill line is not associated with a specialization" + ], + "Type": "number", + "Name": "specID" + }, + { + "Nilable": true, + "Documentation": [ + "Will be nil if this skill line is not associated with a non-active specialization" + ], + "Type": "number", + "Name": "offSpecID" + } + ], + "Type": "Structure", + "Name": "SpellBookSkillLineInfo" + } + ] + }, + { + "Namespace": "C_Spell", + "Functions": [ + { + "Documentation": [ + "Returns true if the spell exists, regardless of whether the player has learned it" + ], + "Type": "Function", + "Name": "DoesSpellExist", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "spellExists" }], + "Arguments": [ + { + "Nilable": false, + "Documentation": ["Spell ID, name, name(subtext), or link"], + "Type": "SpellIdentifier", + "Name": "spellIdentifier" + } + ] + }, + { + "Returns": [ + { "Nilable": false, "Type": "DeadlyDebuffInfo", "Name": "deadlyDebuffInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ], + "Type": "Function", + "Name": "GetDeadlyDebuffInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "textureAtlas", "Name": "rarityBorderAtlas" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "GetMawPowerBorderAtlasBySpellID" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "link" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "GetMawPowerLinkBySpellID" + }, + { + "Returns": [ + { + "Nilable": false, + "Documentation": ["Returns the spellID passed in if there is no override"], + "Type": "number", + "Name": "overrideSpellID" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" }, + { + "Default": 0, + "Type": "number", + "Name": "spec", + "Documentation": [ + "Which Class Specialization to consider, as overrides may vary by Spec; Defaults to player's current Spec" + ], + "Nilable": false + }, + { "Nilable": false, "Default": true, "Type": "bool", "Name": "onlyKnown" }, + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "ignoreOverrideSpellID" + } + ], + "Type": "Function", + "Name": "GetOverrideSpell" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "schoolMask" }], + "Type": "Function", + "Name": "GetSchoolString" + }, + { + "Documentation": ["Returns nil if spell is not found"], + "Type": "Function", + "Name": "GetSpellAutoCast", + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "autoCastAllowed" }, + { "Nilable": false, "Type": "bool", "Name": "autoCastEnabled" } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": [ + "Returns number of times a spell can be cast, typically based on availability of things like required reagent items; Returns 0 if spell is not found" + ], + "Type": "Function", + "Name": "GetSpellCastCount", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "castCount" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": [ + "Returns a table of info about the charges of a charge-accumulating spell; May return nil if spell is not found or is not charge-based" + ], + "Type": "Function", + "Name": "GetSpellCharges", + "Returns": [ + { "Nilable": false, "Type": "SpellChargeInfo", "Name": "chargeInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": ["Returns nil if spell is not found"], + "Type": "Function", + "Name": "GetSpellCooldown", + "Returns": [ + { "Nilable": false, "Type": "SpellCooldownInfo", "Name": "spellCooldownInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": ["Returns nil if spell is not found"], + "Type": "Function", + "Name": "GetSpellDescription", + "Returns": [ + { + "Nilable": false, + "Documentation": [ + "May be empty if spell's data isn't loaded yet; Listen for SPELL_TEXT_UPDATE event, or use SpellMixin to load asynchronously" + ], + "Type": "string", + "Name": "description" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": [ + "Meant primarily for getting a spell id from a spell name or link; Returns nothing if spell does not exist" + ], + "Type": "Function", + "Name": "GetSpellIDForSpellIdentifier", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Arguments": [ + { + "Nilable": false, + "Documentation": [ + "Spell ID, name, name(subtext), or link; If passed a spell ID, will return same id as was passed" + ], + "Type": "SpellIdentifier", + "Name": "spellIdentifier" + } + ] + }, + { + "Documentation": ["Returns nil if spell is not found"], + "Type": "Function", + "Name": "GetSpellInfo", + "Returns": [{ "Nilable": false, "Type": "SpellInfo", "Name": "spellInfo" }], + "Arguments": [ + { + "Nilable": false, + "Documentation": ["Spell ID, name, name(subtext), or link"], + "Type": "SpellIdentifier", + "Name": "spellIdentifier" + } + ] + }, + { + "Documentation": [ + "Returns the level the spell is learned at; May return a different value if the player is currently Level Linked with another player" + ], + "Type": "Function", + "Name": "GetSpellLevelLearned", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "levelLearned" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": ["Returns nil if spell is not found"], + "Type": "Function", + "Name": "GetSpellLink", + "Returns": [{ "Nilable": false, "Type": "string", "Name": "spellLink" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" }, + { "Nilable": true, "Type": "number", "Name": "glyphID" } + ] + }, + { + "Documentation": ["Returns nil if spell is not found"], + "Type": "Function", + "Name": "GetSpellLossOfControlCooldown", + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": ["Returns nil if spell is not found"], + "Type": "Function", + "Name": "GetSpellName", + "Returns": [{ "Nilable": false, "Type": "string", "Name": "name" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": [ + "Returns a table containing one or more SpellPowerCostInfos, one for each power type this spell costs; May return nil if spell is not found or has no resource costs" + ], + "Type": "Function", + "Name": "GetSpellPowerCost", + "Returns": [ + { + "Nilable": false, + "InnerType": "SpellPowerCostInfo", + "Type": "table", + "Name": "powerCosts" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetSpellQueueWindow" + }, + { + "Documentation": [ + "Returns the rank of a spell that corresponds to an ability within a ranked SkillLine (ex: a crafting Recipe); Returns nil if spell is not found, or isn't part of a ranked SkillLine" + ], + "Type": "Function", + "Name": "GetSpellSkillLineAbilityRank", + "Returns": [{ "Nilable": false, "Type": "number", "Name": "rank" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": ["Returns nil if spell is not found"], + "Type": "Function", + "Name": "GetSpellSubtext", + "Returns": [ + { + "Nilable": false, + "Documentation": [ + "May be empty if spell's data isn't loaded yet; Listen for SPELL_TEXT_UPDATE event, or use SpellMixin to load asynchronously" + ], + "Type": "string", + "Name": "subtext" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": ["Returns nothing if spell is not found"], + "Type": "Function", + "Name": "GetSpellTexture", + "Returns": [ + { "Nilable": false, "Type": "fileID", "Name": "iconID" }, + { "Nilable": false, "Type": "fileID", "Name": "originalIconID" } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": ["Returns nil if spell is not associated with a trade skill"], + "Type": "Function", + "Name": "GetSpellTradeSkillLink", + "Returns": [{ "Nilable": false, "Type": "string", "Name": "spellLink" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": [ + "Returns true if the spell is the player's melee Auto Attack spell" + ], + "Type": "Function", + "Name": "IsAutoAttackSpell", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAutoAttack" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": ["Returns true if the spell is an auto repeat player spell"], + "Type": "Function", + "Name": "IsAutoRepeatSpell", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAutoRepeat" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": ["Returns true if the spell comes from a Class Talent"], + "Type": "Function", + "Name": "IsClassTalentSpell", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAutoRepeat" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": [ + "Returns true if the spell is currently being cast or is queued to be cast" + ], + "Type": "Function", + "Name": "IsCurrentSpell", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCurrentSpell" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": [ + "Returns true if the spell is an 'empower' type spell that is cast by pressing and holding, with the on-release cast typically being affected by time held" + ], + "Type": "Function", + "Name": "IsPressHoldReleaseSpell", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPressHoldRelease" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": ["Returns true if the spell comes from a PvP Talent"], + "Type": "Function", + "Name": "IsPvPTalentSpell", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAutoRepeat" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": [ + "Returns true if the spell is the player's ranged Auto Attack spell (ex: Shoot, Auto Shot, etc)" + ], + "Type": "Function", + "Name": "IsRangedAutoAttackSpell", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRangedAutoAttack" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": [ + "Returns true if data for the spell has already been loaded and cached this session" + ], + "Type": "Function", + "Name": "IsSpellDataCached", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCached" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "disabled" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ], + "Type": "Function", + "Name": "IsSpellDisabled" + }, + { + "Documentation": ["Returns true if the spell can be cast on hostile targets"], + "Type": "Function", + "Name": "IsSpellHarmful", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isHarmful" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": [ + "Returns true if the spell can be cast on the player or other friendly targets" + ], + "Type": "Function", + "Name": "IsSpellHelpful", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isHelpful" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Documentation": [ + "Returns true if the current target is within range of the spell; False if out of range; Nil if range check was invalid" + ], + "Type": "Function", + "Name": "IsSpellInRange", + "Returns": [ + { + "Nilable": true, + "Documentation": [ + "May be nil if the range check was invalid, ie due to invalid spell, missing/invalid target, unknown spell, etc" + ], + "Type": "bool", + "Name": "inRange" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" }, + { + "Nilable": true, + "Documentation": [ + "Optional specific target; If not supplied, player's current target (if any) will be used" + ], + "Type": "UnitToken", + "Name": "targetUnit" + } + ] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPassive" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ], + "Type": "Function", + "Name": "IsSpellPassive" + }, + { + "Documentation": [ + "Returns whether the spell is currently castable; Typically based on things like learned status, required resources, etc" + ], + "Type": "Function", + "Name": "IsSpellUsable", + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isUsable" }, + { + "Nilable": false, + "Documentation": [ + "True if spell is specifically unusable due to insufficient power (ie MANA, RAGE, etc)" + ], + "Type": "bool", + "Name": "insufficientPower" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ], + "Type": "Function", + "Name": "PickupSpell" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ], + "Documentation": [ + "Requests data for the spell be loaded; Listen for SPELL_DATA_LOAD_RESULT to be notified when load is finished" + ], + "Type": "Function", + "Name": "RequestLoadSpellData" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" }, + { "Nilable": false, "Type": "bool", "Name": "enabled" } + ], + "Type": "Function", + "Name": "SetSpellAutoCastEnabled" + }, + { + "Documentation": [ + "Returns true if the spell has a min and/or max range greater than 0" + ], + "Type": "Function", + "Name": "SpellHasRange", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasRange" }], + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEnchanting" }], + "Type": "Function", + "Name": "TargetSpellIsEnchanting" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "jumpsUpgradeTrack" }], + "Type": "Function", + "Name": "TargetSpellJumpsUpgradeTrack" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "TargetSpellReplacesBonusTree" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SpellIdentifier", "Name": "spellIdentifier" } + ], + "Documentation": ["Toggles whether spell's autoCast is enabled"], + "Type": "Function", + "Name": "ToggleSpellAutoCast" + } + ], + "Type": "System", + "Name": "Spell", + "Events": [ + { + "LiteralName": "ENCHANT_SPELL_COMPLETED", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "successful" }, + { + "Nilable": true, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "enchantedItem" + } + ], + "Type": "Event", + "Name": "EnchantSpellCompleted" + }, + { + "LiteralName": "ENCHANT_SPELL_SELECTED", + "Type": "Event", + "Name": "EnchantSpellSelected" + }, + { + "LiteralName": "SPELL_DATA_LOAD_RESULT", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "bool", "Name": "success" } + ], + "Type": "Event", + "Name": "SpellDataLoadResult" + }, + { + "LiteralName": "SPELL_TEXT_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Event", + "Name": "SpellTextUpdate" + }, + { + "LiteralName": "UPDATE_SPELL_TARGET_ITEM_CONTEXT", + "Type": "Event", + "Name": "UpdateSpellTargetItemContext" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "criticalTimeRemainingMs" }, + { "Nilable": true, "Type": "number", "Name": "criticalStacks" }, + { "Nilable": false, "Type": "number", "Name": "priority" }, + { "Nilable": false, "Type": "string", "Name": "warningText" }, + { "Nilable": true, "Type": "number", "Name": "soundKitID" } + ], + "Type": "Structure", + "Name": "DeadlyDebuffInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { + "Nilable": false, + "Documentation": [ + "Icon for this spell; If spell has been overriden, this may be the icon for the overriding spell; See originalIconID for spell's non-overriden icon" + ], + "Type": "fileID", + "Name": "iconID" + }, + { "Nilable": false, "Type": "fileID", "Name": "originalIconID" }, + { "Nilable": false, "Type": "number", "Name": "castTime" }, + { "Nilable": false, "Type": "number", "Name": "minRange" }, + { "Nilable": false, "Type": "number", "Name": "maxRange" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Structure", + "Name": "SpellInfo" + } + ] + }, + { + "Tables": [ + { + "Fields": [ + { + "Nilable": false, + "Documentation": ["Number of charges currently available"], + "Type": "number", + "Name": "currentCharges" + }, + { + "Nilable": false, + "Documentation": ["Max number of charges that can be accumulated"], + "Type": "number", + "Name": "maxCharges" + }, + { + "Nilable": false, + "Documentation": [ + "If charge cooldown is active, time at which the most recent charge cooldown began; 0 if cooldown is not active" + ], + "Type": "number", + "Name": "cooldownStartTime" + }, + { + "Nilable": false, + "Documentation": [ + "Cooldown duration in seconds required to generate a charge" + ], + "Type": "number", + "Name": "cooldownDuration" + }, + { + "Nilable": false, + "Documentation": ["Rate at which cooldown UI should update"], + "Type": "number", + "Name": "chargeModRate" + } + ], + "Type": "Structure", + "Name": "SpellChargeInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "Documentation": [ + "If cooldown is active, time started; 0 if no cooldown; Current time if isEnabled is false" + ], + "Type": "number", + "Name": "startTime" + }, + { + "Nilable": false, + "Documentation": [ + "Cooldown duration in seconds if active; 0 if cooldown is inactive" + ], + "Type": "number", + "Name": "duration" + }, + { + "Nilable": false, + "Documentation": [ + "False if cooldown is on hold (ex: some cooldowns only start after an active spell is cancelled); True otherwise" + ], + "Type": "bool", + "Name": "isEnabled" + }, + { + "Nilable": false, + "Documentation": ["Rate at which cooldown UI should update"], + "Type": "number", + "Name": "modRate" + } + ], + "Type": "Structure", + "Name": "SpellCooldownInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "PowerType", "Name": "type" }, + { + "Nilable": false, + "Documentation": [ + "The name or 'power token' for this power type (ex: MANA, FOCUS, etc)" + ], + "Type": "string", + "Name": "name" + }, + { + "Nilable": false, + "Documentation": [ + "Full cost including optional cost; Optional cost is cost the spell will use but isn't required (ex: Rogue spell might cost 1CP but have optional cost of up to 5 more)" + ], + "Type": "number", + "Name": "cost" + }, + { + "Nilable": false, + "Documentation": [ + "Cost excluding optional cost; This is min required to cast the spell" + ], + "Type": "number", + "Name": "minCost" + }, + { + "Nilable": false, + "Documentation": [ + "Cost as a percentage of base maximum resource; May be 0 if the cost is simply a flat cost" + ], + "Type": "number", + "Name": "costPercent" + }, + { + "Nilable": false, + "Documentation": [ + "Cost as a percentage of base maximum resource consumed per second, used by channel spells; May be 0 if cost is simply a flat cost" + ], + "Type": "number", + "Name": "costPerSec" + }, + { + "Nilable": false, + "Documentation": [ + "An aura the caster must have for the cost to apply; Usually based on things like active spec or shapeshift form" + ], + "Type": "number", + "Name": "requiredAuraID" + }, + { + "Nilable": false, + "Documentation": [ + "True if there is a requiredAuraID and the caster currently has that aura; Caster is either the current player or their pet, depending on spell type" + ], + "Type": "bool", + "Name": "hasRequiredAura" + } + ], + "Type": "Structure", + "Name": "SpellPowerCostInfo" + } + ] + }, + { + "Namespace": "C_SplashScreen", + "Functions": [ + { "Type": "Function", "Name": "AcknowledgeSplash" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canView" }], + "Type": "Function", + "Name": "CanViewSplashScreen" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "fromGameMenu" }], + "Type": "Function", + "Name": "RequestLatestSplashScreen" + } + ], + "Type": "System", + "Name": "SplashScreen", + "Events": [ + { + "LiteralName": "OPEN_SPLASH_SCREEN", + "Payload": [{ "Nilable": true, "Type": "SplashScreenInfo", "Name": "info" }], + "Type": "Event", + "Name": "OpenSplashScreen" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "SplashScreenType", + "Fields": [ + { "EnumValue": 0, "Type": "SplashScreenType", "Name": "WhatsNew" }, + { "EnumValue": 1, "Type": "SplashScreenType", "Name": "SeasonRollOver" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Fields": [ + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "number", "Name": "minDisplayCharLevel" }, + { "Nilable": false, "Type": "number", "Name": "minQuestDisplayLevel" }, + { "Nilable": false, "Type": "number", "Name": "soundKitID" }, + { "Nilable": true, "Type": "number", "Name": "allianceQuestID" }, + { "Nilable": true, "Type": "number", "Name": "hordeQuestID" }, + { "Nilable": false, "Type": "string", "Name": "header" }, + { "Nilable": false, "Type": "string", "Name": "topLeftFeatureTitle" }, + { "Nilable": false, "Type": "string", "Name": "topLeftFeatureDesc" }, + { "Nilable": false, "Type": "string", "Name": "bottomLeftFeatureTitle" }, + { "Nilable": false, "Type": "string", "Name": "bottomLeftFeatureDesc" }, + { "Nilable": false, "Type": "string", "Name": "rightFeatureTitle" }, + { "Nilable": false, "Type": "string", "Name": "rightFeatureDesc" }, + { "Nilable": false, "Type": "bool", "Name": "shouldShowQuest" }, + { "Nilable": false, "Type": "SplashScreenType", "Name": "screenType" }, + { "Nilable": false, "Type": "bool", "Name": "gameMenuRequest" } + ], + "Type": "Structure", + "Name": "SplashScreenInfo" + } + ] + }, + { + "Namespace": "C_StableInfo", + "Functions": [ + { "Type": "Function", "Name": "ClosePetStables" }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "PetInfo", + "Type": "table", + "Name": "activePets" + } + ], + "Type": "Function", + "Name": "GetActivePetList" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numActivePets" }], + "Type": "Function", + "Name": "GetNumActivePets" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numStablePets" }], + "Type": "Function", + "Name": "GetNumStablePets" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "string", + "Type": "table", + "Name": "foodTypes" + } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetStablePetFoodTypes" + }, + { + "Returns": [{ "Nilable": true, "Type": "PetInfo", "Name": "petInfo" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetStablePetInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "PetInfo", + "Type": "table", + "Name": "stabledPets" + } + ], + "Type": "Function", + "Name": "GetStabledPetList" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAtStableMaster" }], + "Type": "Function", + "Name": "IsAtStableMaster" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFavorite" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "IsPetFavorite" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "PickupStablePet" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "slot" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" } + ], + "Type": "Function", + "Name": "SetPetFavorite" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slot" } + ], + "Type": "Function", + "Name": "SetPetSlot" + } + ], + "Type": "System", + "Name": "StableInfo", + "Events": [ + { "LiteralName": "PET_INFO_UPDATE", "Type": "Event", "Name": "PetInfoUpdate" }, + { "LiteralName": "PET_STABLE_CLOSED", "Type": "Event", "Name": "PetStableClosed" }, + { + "LiteralName": "PET_STABLE_FAVORITES_UPDATED", + "Type": "Event", + "Name": "PetStableFavoritesUpdated" + }, + { "LiteralName": "PET_STABLE_SHOW", "Type": "Event", "Name": "PetStableShow" }, + { "LiteralName": "PET_STABLE_UPDATE", "Type": "Event", "Name": "PetStableUpdate" } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "slotID" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "string", "Name": "familyName" }, + { "Nilable": false, "Type": "string", "Name": "specialization" }, + { "Nilable": false, "Type": "string", "Name": "type" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "abilities" + }, + { "Nilable": false, "Type": "number", "Name": "displayID" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" }, + { "Nilable": false, "Type": "bool", "Name": "isExotic" }, + { + "Nilable": false, + "Default": 718, + "Type": "number", + "Name": "uiModelSceneID" + }, + { "Nilable": false, "Type": "number", "Name": "petNumber" }, + { "Nilable": false, "Type": "number", "Name": "creatureID" } + ], + "Type": "Structure", + "Name": "PetInfo" + } + ] + }, + { + "Namespace": "C_StorePublic", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasPurchaseableProducts" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "groupID" }], + "Type": "Function", + "Name": "DoesGroupHavePurchaseableProducts" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "disabled" }], + "Type": "Function", + "Name": "IsDisabledByParentalControls" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsEnabled" + } + ], + "Type": "System", + "Name": "StorePublic", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetAvailableBandwidth" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetBackgroundLoadingStatus" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetDownloadedPercentage" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetFileStreamingStatus" + } + ], + "Type": "System", + "Name": "Streaming", + "Events": [], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "stripped" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "maintainColor" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "maintainBrackets" + }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "stripNewlines" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "maintainAtlases" + } + ], + "Type": "Function", + "Name": "StripHyperlinks" + } + ], + "Type": "System", + "Name": "StringUtil", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_SummonInfo", + "Functions": [ + { "Type": "Function", "Name": "CancelSummon" }, + { "Type": "Function", "Name": "ConfirmSummon" }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "areaName" }], + "Type": "Function", + "Name": "GetSummonConfirmAreaName" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "summoner" }], + "Type": "Function", + "Name": "GetSummonConfirmSummoner" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "timeLeft" }], + "Type": "Function", + "Name": "GetSummonConfirmTimeLeft" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "summonReason" }], + "Type": "Function", + "Name": "GetSummonReason" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isSummonSkippingStartExperience" } + ], + "Type": "Function", + "Name": "IsSummonSkippingStartExperience" + } + ], + "Type": "System", + "Name": "SummonInfo", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_SuperTrack", + "Functions": [ + { "Type": "Function", "Name": "ClearAllSuperTracked" }, + { "Type": "Function", "Name": "ClearSuperTrackedContent" }, + { "Type": "Function", "Name": "ClearSuperTrackedMapPin" }, + { + "Returns": [{ "Nilable": true, "Type": "SuperTrackingType", "Name": "type" }], + "Type": "Function", + "Name": "GetHighestPrioritySuperTrackingType" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "trackableType" }, + { "Nilable": false, "Type": "number", "Name": "trackableID" } + ], + "Type": "Function", + "Name": "GetSuperTrackedContent" + }, + { + "Returns": [ + { "Nilable": false, "Type": "SuperTrackingMapPinType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "typeID" } + ], + "Type": "Function", + "Name": "GetSuperTrackedMapPin" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetSuperTrackedQuestID" + }, + { + "Returns": [{ "Nilable": true, "Type": "WOWGUID", "Name": "vignetteGUID" }], + "Type": "Function", + "Name": "GetSuperTrackedVignette" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSuperTracking" }], + "Type": "Function", + "Name": "IsSuperTrackingAnything" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSuperTracking" }], + "Type": "Function", + "Name": "IsSuperTrackingContent" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSuperTracking" }], + "Type": "Function", + "Name": "IsSuperTrackingCorpse" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSuperTracking" }], + "Type": "Function", + "Name": "IsSuperTrackingMapPin" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSuperTracking" }], + "Type": "Function", + "Name": "IsSuperTrackingQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isSuperTracking" }], + "Type": "Function", + "Name": "IsSuperTrackingUserWaypoint" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ContentTrackingType", "Name": "trackableType" }, + { "Nilable": false, "Type": "number", "Name": "trackableID" } + ], + "Type": "Function", + "Name": "SetSuperTrackedContent" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SuperTrackingMapPinType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "typeID" } + ], + "Type": "Function", + "Name": "SetSuperTrackedMapPin" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "SetSuperTrackedQuestID" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "superTracked" }], + "Type": "Function", + "Name": "SetSuperTrackedUserWaypoint" + }, + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "vignetteGUID" }], + "Type": "Function", + "Name": "SetSuperTrackedVignette" + } + ], + "Type": "System", + "Name": "SuperTrackManager", + "Events": [ + { + "LiteralName": "SUPER_TRACKING_CHANGED", + "Type": "Event", + "Name": "SuperTrackingChanged" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "SuperTrackingMapPinType", + "Fields": [ + { "EnumValue": 0, "Type": "SuperTrackingMapPinType", "Name": "AreaPOI" }, + { "EnumValue": 1, "Type": "SuperTrackingMapPinType", "Name": "QuestOffer" }, + { "EnumValue": 2, "Type": "SuperTrackingMapPinType", "Name": "TaxiNode" }, + { "EnumValue": 3, "Type": "SuperTrackingMapPinType", "Name": "DigSite" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "SuperTrackingType", + "Fields": [ + { "EnumValue": 0, "Type": "SuperTrackingType", "Name": "Quest" }, + { "EnumValue": 1, "Type": "SuperTrackingType", "Name": "UserWaypoint" }, + { "EnumValue": 2, "Type": "SuperTrackingType", "Name": "Corpse" }, + { "EnumValue": 3, "Type": "SuperTrackingType", "Name": "Scenario" }, + { "EnumValue": 4, "Type": "SuperTrackingType", "Name": "Content" }, + { "EnumValue": 5, "Type": "SuperTrackingType", "Name": "PartyMember" }, + { "EnumValue": 6, "Type": "SuperTrackingType", "Name": "MapPin" }, + { "EnumValue": 7, "Type": "SuperTrackingType", "Name": "Vignette" } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + } + ] + }, + { + "Namespace": "C_System", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ScriptRegion", + "Type": "table", + "Name": "objects" + } + ], + "Type": "Function", + "Name": "GetFrameStack" + } + ], + "Type": "System", + "Name": "SystemInfo", + "Events": [ + { + "LiteralName": "CAPTUREFRAMES_FAILED", + "Type": "Event", + "Name": "CaptureframesFailed" + }, + { + "LiteralName": "CAPTUREFRAMES_SUCCEEDED", + "Type": "Event", + "Name": "CaptureframesSucceeded" + }, + { + "LiteralName": "DISABLE_TAXI_BENCHMARK", + "Type": "Event", + "Name": "DisableTaxiBenchmark" + }, + { + "LiteralName": "ENABLE_TAXI_BENCHMARK", + "Type": "Event", + "Name": "EnableTaxiBenchmark" + }, + { + "LiteralName": "FIRST_FRAME_RENDERED", + "Type": "Event", + "Name": "FirstFrameRendered" + }, + { + "LiteralName": "GENERIC_ERROR", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "errorMessage" }], + "Type": "Event", + "Name": "GenericError" + }, + { + "LiteralName": "GLOBAL_MOUSE_DOWN", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "button" }], + "Type": "Event", + "Name": "GlobalMouseDown" + }, + { + "LiteralName": "GLOBAL_MOUSE_UP", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "button" }], + "Type": "Event", + "Name": "GlobalMouseUp" + }, + { + "LiteralName": "INITIAL_HOTFIXES_APPLIED", + "Type": "Event", + "Name": "InitialHotfixesApplied" + }, + { + "LiteralName": "LOC_RESULT", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Type": "Event", + "Name": "LocResult" + }, + { "LiteralName": "LOGOUT_CANCEL", "Type": "Event", "Name": "LogoutCancel" }, + { "LiteralName": "PLAYER_CAMPING", "Type": "Event", "Name": "PlayerCamping" }, + { + "LiteralName": "PLAYER_ENTERING_WORLD", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "isInitialLogin" }, + { "Nilable": false, "Type": "bool", "Name": "isReloadingUi" } + ], + "Type": "Event", + "Name": "PlayerEnteringWorld" + }, + { + "LiteralName": "PLAYER_LEAVING_WORLD", + "Type": "Event", + "Name": "PlayerLeavingWorld" + }, + { "LiteralName": "PLAYER_LOGIN", "Type": "Event", "Name": "PlayerLogin" }, + { "LiteralName": "PLAYER_LOGOUT", "Type": "Event", "Name": "PlayerLogout" }, + { "LiteralName": "PLAYER_QUITING", "Type": "Event", "Name": "PlayerQuiting" }, + { "LiteralName": "SEARCH_DB_LOADED", "Type": "Event", "Name": "SearchDbLoaded" }, + { + "LiteralName": "STREAMING_ICON", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "streamingStatus" }], + "Type": "Event", + "Name": "StreamingIcon" + }, + { + "LiteralName": "SYSMSG", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "string" }, + { "Nilable": false, "Type": "number", "Name": "r" }, + { "Nilable": false, "Type": "number", "Name": "g" }, + { "Nilable": false, "Type": "number", "Name": "b" } + ], + "Type": "Event", + "Name": "Sysmsg" + }, + { + "LiteralName": "TIME_PLAYED_MSG", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "totalTimePlayed" }, + { "Nilable": false, "Type": "number", "Name": "timePlayedThisLevel" } + ], + "Type": "Event", + "Name": "TimePlayedMsg" + }, + { + "LiteralName": "UI_ERROR_MESSAGE", + "Payload": [ + { "Nilable": false, "Type": "luaIndex", "Name": "errorType" }, + { "Nilable": false, "Type": "string", "Name": "message" } + ], + "Type": "Event", + "Name": "UiErrorMessage" + }, + { + "LiteralName": "UI_ERROR_POPUP", + "Payload": [ + { "Nilable": false, "Type": "luaIndex", "Name": "errorType" }, + { "Nilable": false, "Type": "string", "Name": "message" } + ], + "Type": "Event", + "Name": "UiErrorPopup" + }, + { + "LiteralName": "UI_INFO_MESSAGE", + "Payload": [ + { "Nilable": false, "Type": "luaIndex", "Name": "errorType" }, + { "Nilable": false, "Type": "string", "Name": "message" } + ], + "Type": "Event", + "Name": "UiInfoMessage" + }, + { "LiteralName": "VARIABLES_LOADED", "Type": "Event", "Name": "VariablesLoaded" }, + { + "LiteralName": "WOW_MOUSE_NOT_FOUND", + "Type": "Event", + "Name": "WoWMouseNotFound" + } + ], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "hour" }, + { "Nilable": false, "Type": "number", "Name": "minute" } + ], + "Type": "Function", + "Name": "GetGameTime" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "hour" }, + { "Nilable": false, "Type": "number", "Name": "minute" } + ], + "Type": "Function", + "Name": "GetLocalGameTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "time" }], + "Type": "Function", + "Name": "GetServerTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "time" }], + "Type": "Function", + "Name": "GetSessionTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "time" }], + "Type": "Function", + "Name": "GetTickTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "time" }], + "Type": "Function", + "Name": "GetTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isUsingFixedTimeStep" }], + "Type": "Function", + "Name": "IsUsingFixedTimeStep" + } + ], + "Type": "System", + "Name": "SystemTime", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_TTSSettings", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [ + { "Nilable": false, "Type": "ChatChannelInfo", "Name": "channelInfo" } + ], + "Type": "Function", + "Name": "GetChannelEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "settingsBeenSaved" }], + "Type": "Function", + "Name": "GetCharacterSettingsSaved" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "chatName" }], + "Type": "Function", + "Name": "GetChatTypeEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Arguments": [{ "Nilable": false, "Type": "TtsBoolSetting", "Name": "setting" }], + "Type": "Function", + "Name": "GetSetting" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "rate" }], + "Type": "Function", + "Name": "GetSpeechRate" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "volume" }], + "Type": "Function", + "Name": "GetSpeechVolume" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "voiceID" }], + "Arguments": [{ "Nilable": false, "Type": "TtsVoiceType", "Name": "voiceType" }], + "Type": "Function", + "Name": "GetVoiceOptionID" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "voiceName" }], + "Arguments": [{ "Nilable": false, "Type": "TtsVoiceType", "Name": "voiceType" }], + "Type": "Function", + "Name": "GetVoiceOptionName" + }, + { "Type": "Function", "Name": "MarkCharacterSettingsSaved" }, + { + "Arguments": [ + { "Nilable": false, "Type": "ChatChannelInfo", "Name": "channelInfo" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "newVal" } + ], + "Type": "Function", + "Name": "SetChannelEnabled" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "channelKey" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "newVal" } + ], + "Type": "Function", + "Name": "SetChannelKeyEnabled" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "chatName" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "newVal" } + ], + "Type": "Function", + "Name": "SetChatTypeEnabled" + }, + { "Type": "Function", "Name": "SetDefaultSettings" }, + { + "Arguments": [ + { "Nilable": false, "Type": "TtsBoolSetting", "Name": "setting" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "newVal" } + ], + "Type": "Function", + "Name": "SetSetting" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "newVal" }], + "Type": "Function", + "Name": "SetSpeechRate" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "newVal" }], + "Type": "Function", + "Name": "SetSpeechVolume" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "TtsVoiceType", "Name": "voiceType" }, + { "Nilable": false, "Type": "number", "Name": "voiceID" } + ], + "Type": "Function", + "Name": "SetVoiceOption" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "TtsVoiceType", "Name": "voiceType" }, + { "Nilable": false, "Type": "string", "Name": "voiceName" } + ], + "Type": "Function", + "Name": "SetVoiceOptionName" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "overrideMessage" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "language" }, + { "Nilable": false, "Type": "string", "Name": "messageText" } + ], + "Type": "Function", + "Name": "ShouldOverrideMessage" + } + ], + "Type": "System", + "Name": "TTSSettings", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_TalkingHead", + "Functions": [], + "Type": "System", + "Name": "TalkingHead", + "Events": [ + { "LiteralName": "TALKINGHEAD_CLOSE", "Type": "Event", "Name": "TalkingheadClose" }, + { + "LiteralName": "TALKINGHEAD_REQUESTED", + "Type": "Event", + "Name": "TalkingheadRequested" + } + ], + "Tables": [] + }, + { + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Default": "", "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "exactMatch" } + ], + "Type": "Function", + "Name": "AssistUnit" + }, + { "Type": "Function", "Name": "AttackTarget" }, + { "Type": "Function", "Name": "ClearFocus" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "willMakeChange" }], + "Type": "Function", + "Name": "ClearTarget" + }, + { + "Arguments": [ + { "Nilable": false, "Default": "", "Type": "cstring", "Name": "name" } + ], + "Type": "Function", + "Name": "FocusUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTargetLoose" }], + "Type": "Function", + "Name": "IsTargetLoose" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "facing" }, + { "Nilable": true, "Type": "number", "Name": "coneAngle" } + ], + "Type": "Function", + "Name": "TargetDirectionEnemy" + }, + { "Type": "Function", "Name": "TargetDirectionFinished" }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "facing" }, + { "Nilable": true, "Type": "number", "Name": "coneAngle" } + ], + "Type": "Function", + "Name": "TargetDirectionFriend" + }, + { "Type": "Function", "Name": "TargetLastEnemy" }, + { "Type": "Function", "Name": "TargetLastFriend" }, + { "Type": "Function", "Name": "TargetLastTarget" }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "reverse" } + ], + "Type": "Function", + "Name": "TargetNearest" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "reverse" } + ], + "Type": "Function", + "Name": "TargetNearestEnemy" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "reverse" } + ], + "Type": "Function", + "Name": "TargetNearestEnemyPlayer" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "reverse" } + ], + "Type": "Function", + "Name": "TargetNearestFriend" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "reverse" } + ], + "Type": "Function", + "Name": "TargetNearestFriendPlayer" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "reverse" } + ], + "Type": "Function", + "Name": "TargetNearestPartyMember" + }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "reverse" } + ], + "Type": "Function", + "Name": "TargetNearestRaidMember" + }, + { "Type": "Function", "Name": "TargetPriorityHighlightEnd" }, + { + "Arguments": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "useStartDelay" } + ], + "Type": "Function", + "Name": "TargetPriorityHighlightStart" + }, + { "Type": "Function", "Name": "TargetToggle" }, + { + "Arguments": [ + { "Nilable": false, "Default": "", "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "exactMatch" } + ], + "Type": "Function", + "Name": "TargetUnit" + } + ], + "Type": "System", + "Name": "TargetScript", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_TaxiMap", + "Functions": [ + { + "Documentation": [ + "Returns information on taxi nodes at the current flight master." + ], + "Type": "Function", + "Name": "GetAllTaxiNodes", + "Returns": [ + { + "Nilable": false, + "InnerType": "TaxiNodeInfo", + "Type": "table", + "Name": "taxiNodes" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }] + }, + { + "Documentation": [ + "Returns information on taxi nodes for a given map, without considering the current flight master." + ], + "Type": "Function", + "Name": "GetTaxiNodesForMap", + "Returns": [ + { + "Nilable": false, + "InnerType": "MapTaxiNodeInfo", + "Type": "table", + "Name": "mapTaxiNodes" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }] + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "shouldShowNodes" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "uiMapID" }], + "Type": "Function", + "Name": "ShouldMapShowTaxiNodes" + } + ], + "Type": "System", + "Name": "TaxiMap", + "Events": [ + { + "LiteralName": "TAXI_NODE_STATUS_CHANGED", + "Type": "Event", + "Name": "TaxiNodeStatusChanged" + }, + { "LiteralName": "TAXIMAP_CLOSED", "Type": "Event", "Name": "TaximapClosed" }, + { + "LiteralName": "TAXIMAP_OPENED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "system" }], + "Type": "Event", + "Name": "TaximapOpened" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "FlightPathFaction", + "Fields": [ + { "EnumValue": 0, "Type": "FlightPathFaction", "Name": "Neutral" }, + { "EnumValue": 1, "Type": "FlightPathFaction", "Name": "Horde" }, + { "EnumValue": 2, "Type": "FlightPathFaction", "Name": "Alliance" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "FlightPathState", + "Fields": [ + { "EnumValue": 0, "Type": "FlightPathState", "Name": "Current" }, + { "EnumValue": 1, "Type": "FlightPathState", "Name": "Reachable" }, + { "EnumValue": 2, "Type": "FlightPathState", "Name": "Unreachable" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "nodeID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "atlasName" }, + { "Nilable": false, "Type": "FlightPathFaction", "Name": "faction" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "bool", "Name": "isUndiscovered" } + ], + "Type": "Structure", + "Name": "MapTaxiNodeInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "nodeID" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "position" + }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "FlightPathState", "Name": "state" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "bool", "Name": "useSpecialIcon" }, + { "Nilable": true, "Type": "string", "Name": "specialIconCostString" }, + { "Nilable": false, "Type": "bool", "Name": "isMapLayerTransition" } + ], + "Type": "Structure", + "Name": "TaxiNodeInfo" + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_Texture", + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }], + "Type": "Function", + "Name": "ClearTitleIconTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "elementID" }], + "Arguments": [{ "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }], + "Type": "Function", + "Name": "GetAtlasElementID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "atlasID" }], + "Arguments": [{ "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }], + "Type": "Function", + "Name": "GetAtlasID" + }, + { + "Returns": [{ "Nilable": false, "Type": "AtlasInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "textureAtlas", "Name": "atlas" }], + "Type": "Function", + "Name": "GetAtlasInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "textureMarkup" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "quality" }], + "Type": "Function", + "Name": "GetCraftingReagentQualityChatIcon" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "filename" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "fileDataID" }], + "Type": "Function", + "Name": "GetFilenameFromFileDataID" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "titleID" }, + { "Nilable": false, "Type": "TitleIconVersion", "Name": "version" }, + { "Nilable": false, "Type": "GetTitleIconTextureCallback", "Name": "callback" } + ], + "Type": "Function", + "Name": "GetTitleIconTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "ready" }], + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "titleID" }, + { "Nilable": false, "Type": "TitleIconVersion", "Name": "version" } + ], + "Type": "Function", + "Name": "IsTitleIconTextureReady" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SimpleTexture", "Name": "texture" }, + { "Nilable": false, "Type": "string", "Name": "titleID" }, + { "Nilable": false, "Type": "TitleIconVersion", "Name": "version" } + ], + "Type": "Function", + "Name": "SetTitleIconTexture" + } + ], + "Type": "System", + "Name": "TextureUtils", + "Events": [], + "Tables": [ + { + "Type": "Enumeration", + "Name": "TitleIconVersion", + "Fields": [ + { "EnumValue": 0, "Type": "TitleIconVersion", "Name": "Small" }, + { "EnumValue": 1, "Type": "TitleIconVersion", "Name": "Medium" }, + { "EnumValue": 2, "Type": "TitleIconVersion", "Name": "Large" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "width" }, + { "Nilable": false, "Type": "number", "Name": "height" }, + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "rawSize" + }, + { "Nilable": false, "Type": "number", "Name": "leftTexCoord" }, + { "Nilable": false, "Type": "number", "Name": "rightTexCoord" }, + { "Nilable": false, "Type": "number", "Name": "topTexCoord" }, + { "Nilable": false, "Type": "number", "Name": "bottomTexCoord" }, + { "Nilable": false, "Type": "bool", "Name": "tilesHorizontally" }, + { "Nilable": false, "Type": "bool", "Name": "tilesVertically" }, + { "Nilable": true, "Type": "fileID", "Name": "file" }, + { "Nilable": true, "Type": "string", "Name": "filename" }, + { "Nilable": true, "Type": "UITextureSliceData", "Name": "sliceData" } + ], + "Type": "Structure", + "Name": "AtlasInfo" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "bool", "Name": "success" }, + { "Nilable": false, "Type": "fileID", "Name": "texture" } + ], + "Type": "CallbackType", + "Name": "GetTitleIconTextureCallback" + } + ] + }, + { + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "gameErrorIndex" }], + "Type": "Function", + "Name": "GetThreatStatusColor" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsThreatWarningEnabled" + } + ], + "Type": "System", + "Name": "Threat", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "luaIndex", "Name": "monthDay" }, + { "Nilable": false, "Type": "luaIndex", "Name": "month" }, + { "Nilable": false, "Type": "luaIndex", "Name": "weekday" }, + { "Nilable": false, "Type": "number", "Name": "year" }, + { "Nilable": false, "Type": "number", "Name": "hour" }, + { "Nilable": false, "Type": "number", "Name": "minute" } + ], + "Type": "Structure", + "Name": "CalendarTime" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "StartTimerType", + "Fields": [ + { "EnumValue": 0, "Type": "StartTimerType", "Name": "PvPBeginTimer" }, + { "EnumValue": 1, "Type": "StartTimerType", "Name": "ChallengeModeCountdown" }, + { "EnumValue": 2, "Type": "StartTimerType", "Name": "PlayerCountdown" }, + { "EnumValue": 3, "Type": "StartTimerType", "Name": "PlunderstormCountdown" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Tables": [ + { + "Values": [ + { "Value": 0, "Type": "number", "Name": "TIMERUNNING_SEASON_NONE" }, + { "Value": 1, "Type": "number", "Name": "TIMERUNNING_SEASON_PANDARIA" }, + { "Value": 2905, "Type": "number", "Name": "TIMERUNNING_ITEM_CTR" }, + { + "Value": 10211, + "Type": "number", + "Name": "TIMERUNNING_STARTLOC_ID_ALLIANCE" + }, + { "Value": 10212, "Type": "number", "Name": "TIMERUNNING_STARTLOC_ID_HORDE" } + ], + "Type": "Constants", + "Name": "TimerunningConsts" + } + ] + }, + { + "Namespace": "C_TimerunningUI", + "Functions": [], + "Type": "System", + "Name": "TimerunningUI", + "Events": [ + { "LiteralName": "REMIX_END_OF_EVENT", "Type": "Event", "Name": "RemixEndOfEvent" } + ], + "Tables": [] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetCurrentTitle" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Function", + "Name": "GetNumTitles" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "titleString" }, + { "Nilable": false, "Type": "bool", "Name": "playerTitle" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "titleMaskID" }], + "Type": "Function", + "Name": "GetTitleName" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "titleMaskID" }], + "Type": "Function", + "Name": "IsTitleKnown" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "titleMaskID" }], + "Type": "Function", + "Name": "SetCurrentTitle" + } + ], + "Type": "System", + "Name": "Title", + "Events": [], + "Tables": [] + }, + { + "Namespace": "C_TooltipComparison", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "InnerType": "string", "Type": "table", "Name": "lines" } + ], + "Arguments": [ + { "Nilable": false, "Type": "TooltipComparisonItem", "Name": "comparisonItem" }, + { "Nilable": false, "Type": "TooltipComparisonItem", "Name": "equippedItem" }, + { "Nilable": true, "Type": "TooltipComparisonItem", "Name": "pairedItem" }, + { + "Nilable": true, + "Documentation": ["Whether the paired item's stats are added or subtracted"], + "Type": "bool", + "Name": "addPairedStats" + } + ], + "Type": "Function", + "Name": "GetItemComparisonDelta" + }, + { + "Returns": [ + { "Nilable": false, "Type": "TooltipItemComparisonInfo", "Name": "info" } + ], + "Arguments": [ + { "Nilable": false, "Type": "TooltipComparisonItem", "Name": "comparisonItem" } + ], + "Type": "Function", + "Name": "GetItemComparisonInfo" + } + ], + "Type": "System", + "Name": "TooltipComparison", + "Events": [], + "Tables": [ + { + "Type": "Enumeration", + "Name": "TooltipComparisonMethod", + "Fields": [ + { "EnumValue": 0, "Type": "TooltipComparisonMethod", "Name": "Single" }, + { "EnumValue": 1, "Type": "TooltipComparisonMethod", "Name": "WithBothHands" }, + { + "EnumValue": 2, + "Type": "TooltipComparisonMethod", + "Name": "WithBagMainHandItem" + }, + { + "EnumValue": 3, + "Type": "TooltipComparisonMethod", + "Name": "WithBagOffHandItem" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Fields": [ + { + "Nilable": false, + "Default": "Single", + "Type": "TooltipComparisonMethod", + "Name": "method" + }, + { "Nilable": false, "Type": "TooltipComparisonItem", "Name": "item" }, + { + "Nilable": false, + "InnerType": "TooltipComparisonItem", + "Type": "table", + "Name": "additionalItems" + } + ], + "Type": "Structure", + "Name": "TooltipItemComparisonInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "TooltipSide", + "Fields": [ + { "EnumValue": 0, "Type": "TooltipSide", "Name": "Left" }, + { "EnumValue": 1, "Type": "TooltipSide", "Name": "Right" }, + { "EnumValue": 2, "Type": "TooltipSide", "Name": "Top" }, + { "EnumValue": 3, "Type": "TooltipSide", "Name": "Bottom" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "TooltipTextureAnchor", + "Fields": [ + { "EnumValue": 0, "Type": "TooltipTextureAnchor", "Name": "LeftTop" }, + { "EnumValue": 1, "Type": "TooltipTextureAnchor", "Name": "LeftCenter" }, + { "EnumValue": 2, "Type": "TooltipTextureAnchor", "Name": "LeftBottom" }, + { "EnumValue": 3, "Type": "TooltipTextureAnchor", "Name": "RightTop" }, + { "EnumValue": 4, "Type": "TooltipTextureAnchor", "Name": "RightCenter" }, + { "EnumValue": 5, "Type": "TooltipTextureAnchor", "Name": "RightBottom" }, + { "EnumValue": 6, "Type": "TooltipTextureAnchor", "Name": "All" } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "TooltipTextureRelativeRegion", + "Fields": [ + { "EnumValue": 0, "Type": "TooltipTextureRelativeRegion", "Name": "LeftLine" }, + { "EnumValue": 1, "Type": "TooltipTextureRelativeRegion", "Name": "RightLine" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + } + ] + }, + { + "Namespace": "C_TooltipInfo", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "achievementID" }], + "Type": "Function", + "Name": "GetAchievementByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "actionID" }], + "Type": "Function", + "Name": "GetAction" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Type": "Function", + "Name": "GetArtifactItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "powerID" }], + "Type": "Function", + "Name": "GetArtifactPowerByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "essenceID" }, + { "Nilable": true, "Type": "number", "Name": "rank" } + ], + "Type": "Function", + "Name": "GetAzeriteEssence" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "AzeriteEssenceSlot", "Name": "slot" }], + "Type": "Function", + "Name": "GetAzeriteEssenceSlot" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "itemLevel" }, + { "Nilable": false, "Type": "number", "Name": "powerID" }, + { "Nilable": true, "Type": "cstring", "Name": "owningItemLink" } + ], + "Type": "Function", + "Name": "GetAzeritePower" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetBackpackToken" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "bagIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" } + ], + "Type": "Function", + "Name": "GetBagItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "BagIndex", "Name": "bagIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "equipSlotIndex" } + ], + "Type": "Function", + "Name": "GetBagItemChild" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetBuybackItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "petGUID" }], + "Type": "Function", + "Name": "GetCompanionPet" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "conduitID" }, + { "Nilable": false, "Type": "number", "Name": "conduitRank" } + ], + "Type": "Function", + "Name": "GetConduit" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "currencyID" }, + { "Nilable": true, "Type": "number", "Name": "amount" } + ], + "Type": "Function", + "Name": "GetCurrencyByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "tokenIndex" }], + "Type": "Function", + "Name": "GetCurrencyToken" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "conduitID" }, + { "Nilable": false, "Type": "number", "Name": "rank" } + ], + "Type": "Function", + "Name": "GetEnhancedConduit" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "setID" }], + "Type": "Function", + "Name": "GetEquipmentSet" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": true, "Type": "bool", "Name": "toDestroy" } + ], + "Type": "Function", + "Name": "GetExistingSocketGem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "tab" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slot" } + ], + "Type": "Function", + "Name": "GetGuildBankItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetHeirloomByItemID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "hyperlink" }, + { "Nilable": true, "Type": "number", "Name": "optionalArg1" }, + { "Nilable": true, "Type": "number", "Name": "optionalArg2" }, + { "Nilable": true, "Type": "bool", "Name": "hideVendorPrice" } + ], + "Type": "Function", + "Name": "GetHyperlink" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "messageIndex" }, + { "Nilable": true, "Type": "luaIndex", "Name": "attachmentIndex" } + ], + "Type": "Function", + "Name": "GetInboxItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetInstanceLockEncountersComplete" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slot" }, + { "Nilable": true, "Type": "bool", "Name": "hideUselessStats" } + ], + "Type": "Function", + "Name": "GetInventoryItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetInventoryItemByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Function", + "Name": "GetItemByGUID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "number", "Name": "quality" } + ], + "Type": "Function", + "Name": "GetItemByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Function", + "Name": "GetItemByItemModifiedAppearanceID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Type": "Function", + "Name": "GetItemInteractionItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "itemLevel" }, + { "Nilable": false, "Type": "number", "Name": "itemSuffix" }, + { "Nilable": true, "Type": "number", "Name": "requiredLevel" } + ], + "Type": "Function", + "Name": "GetItemKey" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "dungeonID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "lootIndex" } + ], + "Type": "Function", + "Name": "GetLFGDungeonReward" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "dungeonID" }, + { "Nilable": false, "Type": "number", "Name": "shortageSeverity" }, + { "Nilable": false, "Type": "luaIndex", "Name": "lootIndex" } + ], + "Type": "Function", + "Name": "GetLFGDungeonShortageReward" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetLootCurrency" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetLootItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "id" }], + "Type": "Function", + "Name": "GetLootRollItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "slot" }, + { "Nilable": false, "Type": "luaIndex", "Name": "costIndex" } + ], + "Type": "Function", + "Name": "GetMerchantCostItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetMerchantItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Type": "Function", + "Name": "GetMinimapMouseover" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": true, "Type": "bool", "Name": "checkIndoors" } + ], + "Type": "Function", + "Name": "GetMountBySpellID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetOwnedItemByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetPetAction" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetPossession" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": true, "Type": "bool", "Name": "isSpecial" }], + "Type": "Function", + "Name": "GetPvpBrawl" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "talentID" }, + { "Nilable": true, "Type": "bool", "Name": "isInspect" }, + { "Nilable": true, "Type": "luaIndex", "Name": "groupIndex" }, + { "Nilable": true, "Type": "number", "Name": "talentIndex" } + ], + "Type": "Function", + "Name": "GetPvpTalent" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "type" }, + { "Nilable": false, "Type": "luaIndex", "Name": "currencyIndex" } + ], + "Type": "Function", + "Name": "GetQuestCurrency" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "type" }, + { "Nilable": false, "Type": "luaIndex", "Name": "itemIndex" }, + { "Nilable": true, "Type": "bool", "Name": "allowCollectionText" } + ], + "Type": "Function", + "Name": "GetQuestItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "type" }, + { "Nilable": false, "Type": "luaIndex", "Name": "currencyIndex" }, + { "Nilable": true, "Type": "number", "Name": "questID" } + ], + "Type": "Function", + "Name": "GetQuestLogCurrency" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "type" }, + { "Nilable": false, "Type": "luaIndex", "Name": "itemIndex" }, + { "Nilable": true, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "bool", "Name": "allowCollectionText" } + ], + "Type": "Function", + "Name": "GetQuestLogItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "questIndex" }], + "Type": "Function", + "Name": "GetQuestLogSpecialItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "bool", "Name": "omitTitle" }, + { "Nilable": true, "Type": "bool", "Name": "ignoreActivePlayer" } + ], + "Type": "Function", + "Name": "GetQuestPartyProgress" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "number", "Name": "rank" } + ], + "Type": "Function", + "Name": "GetRecipeRankInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeSpellID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "dataSlotIndex" } + ], + "Type": "Function", + "Name": "GetRecipeReagentItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { + "Nilable": true, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + }, + { "Nilable": true, "Type": "WOWGUID", "Name": "recraftItemGUID" }, + { "Nilable": true, "Type": "luaIndex", "Name": "recipeLevel" }, + { "Nilable": true, "Type": "number", "Name": "overrideQualityID" } + ], + "Type": "Function", + "Name": "GetRecipeResultItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { + "Nilable": true, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + }, + { "Nilable": true, "Type": "BigUInteger", "Name": "orderID" }, + { "Nilable": true, "Type": "luaIndex", "Name": "recipeLevel" }, + { "Nilable": true, "Type": "number", "Name": "overrideQualityID" } + ], + "Type": "Function", + "Name": "GetRecipeResultItemForOrder" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }, + { "Nilable": false, "Type": "number", "Name": "itemLevel" }, + { "Nilable": true, "Type": "number", "Name": "powerID" }, + { "Nilable": true, "InnerType": "number", "Type": "table", "Name": "modifiers" } + ], + "Type": "Function", + "Name": "GetRuneforgeResultItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": true, "Type": "luaIndex", "Name": "attachmentIndex" }], + "Type": "Function", + "Name": "GetSendMailItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetShapeshift" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Type": "Function", + "Name": "GetSlottedKeystone" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetSocketGem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Type": "Function", + "Name": "GetSocketedItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" }], + "Type": "Function", + "Name": "GetSocketedRelic" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "spellBookItemSlotIndex" }, + { + "Nilable": false, + "Type": "SpellBookSpellBank", + "Name": "spellBookItemSpellBank" + } + ], + "Type": "Function", + "Name": "GetSpellBookItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": true, "Type": "bool", "Name": "isPet" }, + { "Nilable": true, "Type": "bool", "Name": "showSubtext" }, + { "Nilable": true, "Type": "bool", "Name": "dontOverride" }, + { "Nilable": true, "Type": "number", "Name": "difficultyID" }, + { "Nilable": true, "Type": "bool", "Name": "isLink" } + ], + "Type": "Function", + "Name": "GetSpellByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "talentID" }, + { "Nilable": true, "Type": "bool", "Name": "isInspect" }, + { "Nilable": true, "Type": "luaIndex", "Name": "groupIndex" } + ], + "Type": "Function", + "Name": "GetTalent" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetTotem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetToyByItemID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetTradePlayerItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetTradeTargetItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "serviceIndex" }], + "Type": "Function", + "Name": "GetTrainerService" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "entryID" }, + { "Nilable": true, "Type": "number", "Name": "rank" } + ], + "Type": "Function", + "Name": "GetTraitEntry" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + } + ], + "Type": "Function", + "Name": "GetTransmogrifyItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": true, "Type": "bool", "Name": "hideStatus" } + ], + "Type": "Function", + "Name": "GetUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": true, "Type": "cstring", "Name": "filter" } + ], + "Type": "Function", + "Name": "GetUnitAura" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": true, "Type": "cstring", "Name": "filter" } + ], + "Type": "Function", + "Name": "GetUnitBuff" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "unitTokenString" }, + { "Nilable": false, "Type": "number", "Name": "auraInstanceID" }, + { "Nilable": true, "Type": "cstring", "Name": "filter" } + ], + "Type": "Function", + "Name": "GetUnitBuffByAuraInstanceID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": true, "Type": "cstring", "Name": "filter" } + ], + "Type": "Function", + "Name": "GetUnitDebuff" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "unitTokenString" }, + { "Nilable": false, "Type": "number", "Name": "auraInstanceID" }, + { "Nilable": true, "Type": "cstring", "Name": "filter" } + ], + "Type": "Function", + "Name": "GetUnitDebuffByAuraInstanceID" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Type": "Function", + "Name": "GetUpgradeItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetVoidDepositItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "tab" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slot" } + ], + "Type": "Function", + "Name": "GetVoidItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetVoidWithdrawalItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [ + { "Nilable": false, "Type": "WeeklyRewardItemDBID", "Name": "itemDBID" } + ], + "Type": "Function", + "Name": "GetWeeklyReward" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Type": "Function", + "Name": "GetWorldCursor" + }, + { + "Returns": [{ "Nilable": false, "Type": "TooltipData", "Name": "data" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "unitTokenString" }], + "Type": "Function", + "Name": "GetWorldLootObject" + } + ], + "Type": "System", + "Name": "TooltipInfo", + "Events": [ + { + "LiteralName": "HIDE_HYPERLINK_TOOLTIP", + "Type": "Event", + "Name": "HideHyperlinkTooltip" + }, + { + "LiteralName": "SHOW_HYPERLINK_TOOLTIP", + "Payload": [{ "Nilable": false, "Type": "string", "Name": "hyperlink" }], + "Type": "Event", + "Name": "ShowHyperlinkTooltip" + }, + { + "Documentation": [ + "Sends an update to the UI that a sparse or cache lookup has resolved" + ], + "Type": "Event", + "Name": "TooltipDataUpdate", + "LiteralName": "TOOLTIP_DATA_UPDATE", + "Payload": [{ "Nilable": true, "Type": "number", "Name": "dataInstanceID" }] + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "TooltipDataItemBinding", + "Fields": [ + { "EnumValue": 0, "Type": "TooltipDataItemBinding", "Name": "Quest" }, + { "EnumValue": 1, "Type": "TooltipDataItemBinding", "Name": "Account" }, + { "EnumValue": 2, "Type": "TooltipDataItemBinding", "Name": "BnetAccount" }, + { "EnumValue": 3, "Type": "TooltipDataItemBinding", "Name": "Soulbound" }, + { "EnumValue": 4, "Type": "TooltipDataItemBinding", "Name": "BindToAccount" }, + { + "EnumValue": 5, + "Type": "TooltipDataItemBinding", + "Name": "BindToBnetAccount" + }, + { "EnumValue": 6, "Type": "TooltipDataItemBinding", "Name": "BindOnPickup" }, + { "EnumValue": 7, "Type": "TooltipDataItemBinding", "Name": "BindOnEquip" }, + { "EnumValue": 8, "Type": "TooltipDataItemBinding", "Name": "BindOnUse" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "TooltipDataLineType", + "Fields": [ + { "EnumValue": 0, "Type": "TooltipDataLineType", "Name": "None" }, + { "EnumValue": 1, "Type": "TooltipDataLineType", "Name": "Blank" }, + { "EnumValue": 2, "Type": "TooltipDataLineType", "Name": "UnitName" }, + { "EnumValue": 3, "Type": "TooltipDataLineType", "Name": "GemSocket" }, + { "EnumValue": 4, "Type": "TooltipDataLineType", "Name": "AzeriteEssenceSlot" }, + { + "EnumValue": 5, + "Type": "TooltipDataLineType", + "Name": "AzeriteEssencePower" + }, + { "EnumValue": 6, "Type": "TooltipDataLineType", "Name": "LearnableSpell" }, + { "EnumValue": 7, "Type": "TooltipDataLineType", "Name": "UnitThreat" }, + { "EnumValue": 8, "Type": "TooltipDataLineType", "Name": "QuestObjective" }, + { + "EnumValue": 9, + "Type": "TooltipDataLineType", + "Name": "AzeriteItemPowerDescription" + }, + { + "EnumValue": 10, + "Type": "TooltipDataLineType", + "Name": "RuneforgeLegendaryPowerDescription" + }, + { "EnumValue": 11, "Type": "TooltipDataLineType", "Name": "SellPrice" }, + { + "EnumValue": 12, + "Type": "TooltipDataLineType", + "Name": "ProfessionCraftingQuality" + }, + { "EnumValue": 13, "Type": "TooltipDataLineType", "Name": "SpellName" }, + { "EnumValue": 14, "Type": "TooltipDataLineType", "Name": "CurrencyTotal" }, + { + "EnumValue": 15, + "Type": "TooltipDataLineType", + "Name": "ItemEnchantmentPermanent" + }, + { "EnumValue": 16, "Type": "TooltipDataLineType", "Name": "UnitOwner" }, + { "EnumValue": 17, "Type": "TooltipDataLineType", "Name": "QuestTitle" }, + { "EnumValue": 18, "Type": "TooltipDataLineType", "Name": "QuestPlayer" }, + { "EnumValue": 19, "Type": "TooltipDataLineType", "Name": "NestedBlock" }, + { "EnumValue": 20, "Type": "TooltipDataLineType", "Name": "ItemBinding" }, + { + "EnumValue": 21, + "Type": "TooltipDataLineType", + "Name": "RestrictedRaceClass" + }, + { "EnumValue": 22, "Type": "TooltipDataLineType", "Name": "RestrictedFaction" }, + { "EnumValue": 23, "Type": "TooltipDataLineType", "Name": "RestrictedSkill" }, + { + "EnumValue": 24, + "Type": "TooltipDataLineType", + "Name": "RestrictedPvPMedal" + }, + { + "EnumValue": 25, + "Type": "TooltipDataLineType", + "Name": "RestrictedReputation" + }, + { + "EnumValue": 26, + "Type": "TooltipDataLineType", + "Name": "RestrictedSpellKnown" + }, + { "EnumValue": 27, "Type": "TooltipDataLineType", "Name": "RestrictedLevel" }, + { "EnumValue": 28, "Type": "TooltipDataLineType", "Name": "EquipSlot" }, + { "EnumValue": 29, "Type": "TooltipDataLineType", "Name": "ItemName" }, + { "EnumValue": 30, "Type": "TooltipDataLineType", "Name": "Separator" }, + { "EnumValue": 31, "Type": "TooltipDataLineType", "Name": "ToyName" }, + { "EnumValue": 32, "Type": "TooltipDataLineType", "Name": "ToyText" }, + { "EnumValue": 33, "Type": "TooltipDataLineType", "Name": "ToyEffect" }, + { "EnumValue": 34, "Type": "TooltipDataLineType", "Name": "ToyDuration" }, + { "EnumValue": 35, "Type": "TooltipDataLineType", "Name": "RestrictedArena" }, + { "EnumValue": 36, "Type": "TooltipDataLineType", "Name": "RestrictedBg" }, + { "EnumValue": 37, "Type": "TooltipDataLineType", "Name": "ToyFlavorText" }, + { "EnumValue": 38, "Type": "TooltipDataLineType", "Name": "ToyDescription" }, + { "EnumValue": 39, "Type": "TooltipDataLineType", "Name": "ToySource" }, + { + "EnumValue": 40, + "Type": "TooltipDataLineType", + "Name": "GemSocketEnchantment" + } + ], + "MaxValue": 40, + "MinValue": 0, + "NumValues": 41 + }, + { + "Type": "Enumeration", + "Name": "TooltipDataType", + "Fields": [ + { "EnumValue": 0, "Type": "TooltipDataType", "Name": "Item" }, + { "EnumValue": 1, "Type": "TooltipDataType", "Name": "Spell" }, + { "EnumValue": 2, "Type": "TooltipDataType", "Name": "Unit" }, + { "EnumValue": 3, "Type": "TooltipDataType", "Name": "Corpse" }, + { "EnumValue": 4, "Type": "TooltipDataType", "Name": "Object" }, + { "EnumValue": 5, "Type": "TooltipDataType", "Name": "Currency" }, + { "EnumValue": 6, "Type": "TooltipDataType", "Name": "BattlePet" }, + { "EnumValue": 7, "Type": "TooltipDataType", "Name": "UnitAura" }, + { "EnumValue": 8, "Type": "TooltipDataType", "Name": "AzeriteEssence" }, + { "EnumValue": 9, "Type": "TooltipDataType", "Name": "CompanionPet" }, + { "EnumValue": 10, "Type": "TooltipDataType", "Name": "Mount" }, + { "EnumValue": 11, "Type": "TooltipDataType", "Name": "PetAction" }, + { "EnumValue": 12, "Type": "TooltipDataType", "Name": "Achievement" }, + { "EnumValue": 13, "Type": "TooltipDataType", "Name": "EnhancedConduit" }, + { "EnumValue": 14, "Type": "TooltipDataType", "Name": "EquipmentSet" }, + { "EnumValue": 15, "Type": "TooltipDataType", "Name": "InstanceLock" }, + { "EnumValue": 16, "Type": "TooltipDataType", "Name": "PvPBrawl" }, + { "EnumValue": 17, "Type": "TooltipDataType", "Name": "RecipeRankInfo" }, + { "EnumValue": 18, "Type": "TooltipDataType", "Name": "Totem" }, + { "EnumValue": 19, "Type": "TooltipDataType", "Name": "Toy" }, + { "EnumValue": 20, "Type": "TooltipDataType", "Name": "CorruptionCleanser" }, + { "EnumValue": 21, "Type": "TooltipDataType", "Name": "MinimapMouseover" }, + { "EnumValue": 22, "Type": "TooltipDataType", "Name": "Flyout" }, + { "EnumValue": 23, "Type": "TooltipDataType", "Name": "Quest" }, + { "EnumValue": 24, "Type": "TooltipDataType", "Name": "QuestPartyProgress" }, + { "EnumValue": 25, "Type": "TooltipDataType", "Name": "Macro" }, + { "EnumValue": 26, "Type": "TooltipDataType", "Name": "Debug" } + ], + "MaxValue": 26, + "MinValue": 0, + "NumValues": 27 + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Mixin": "ColorMixin", "Type": "colorRGB", "Name": "color" } + ], + "Type": "Structure", + "Name": "TooltipComparisonLine" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "field" }, + { "Nilable": true, "Type": "string", "Name": "stringVal" }, + { "Nilable": true, "Type": "number", "Name": "intVal" }, + { "Nilable": true, "Type": "number", "Name": "floatVal" }, + { "Nilable": true, "Type": "bool", "Name": "boolVal" }, + { + "Nilable": true, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "colorVal" + }, + { "Nilable": true, "Type": "WOWGUID", "Name": "guidVal" } + ], + "Type": "Structure", + "Name": "TooltipDataArg" + } + ] + }, + { + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "DestroyTotem" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "cannotDismiss" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetTotemCannotDismiss" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "haveTotem" }, + { "Nilable": false, "Type": "cstring", "Name": "totemName" }, + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetTotemInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "timeLeft" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetTotemTimeLeft" + }, + { + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "TargetTotem" + } + ], + "Type": "System", + "Name": "Totem", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "haveTotem" }, + { "Nilable": false, "Type": "cstring", "Name": "totemName" }, + { "Nilable": false, "Type": "number", "Name": "startTime" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" } + ], + "Type": "Structure", + "Name": "TotemInfoScript" + } + ] + }, + { + "Namespace": "C_ToyBoxInfo", + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "ClearFanfare" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isToySourceValid" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "source" }], + "Type": "Function", + "Name": "IsToySourceValid" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isUsingDefaultFilters" } + ], + "Type": "Function", + "Name": "IsUsingDefaultFilters" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "needsFanfare" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "NeedsFanfare" + }, + { "Type": "Function", "Name": "SetDefaultFilters" } + ], + "Type": "System", + "Name": "ToyBoxInfo", + "Events": [ + { + "LiteralName": "NEW_TOY_ADDED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Event", + "Name": "NewToyAdded" + }, + { + "LiteralName": "TOYS_UPDATED", + "Payload": [ + { "Nilable": true, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "bool", "Name": "isNew" }, + { "Nilable": true, "Type": "bool", "Name": "hasFanfare" } + ], + "Type": "Event", + "Name": "ToysUpdated" + } + ], + "Tables": [] + }, + { + "Namespace": "C_TradeInfo", + "Functions": [], + "Type": "System", + "Name": "TradeInfo", + "Events": [ + { + "LiteralName": "PLAYER_TRADE_CURRENCY", + "Type": "Event", + "Name": "PlayerTradeCurrency" + }, + { + "LiteralName": "PLAYER_TRADE_MONEY", + "Type": "Event", + "Name": "PlayerTradeMoney" + }, + { + "LiteralName": "TRADE_ACCEPT_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "playerAccepted" }, + { "Nilable": false, "Type": "number", "Name": "targetAccepted" } + ], + "Type": "Event", + "Name": "TradeAcceptUpdate" + }, + { "LiteralName": "TRADE_CLOSED", "Type": "Event", "Name": "TradeClosed" }, + { + "LiteralName": "TRADE_CURRENCY_CHANGED", + "Type": "Event", + "Name": "TradeCurrencyChanged" + }, + { + "LiteralName": "TRADE_MONEY_CHANGED", + "Type": "Event", + "Name": "TradeMoneyChanged" + }, + { + "LiteralName": "TRADE_PLAYER_ITEM_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "tradeSlotIndex" }], + "Type": "Event", + "Name": "TradePlayerItemChanged" + }, + { + "LiteralName": "TRADE_POTENTIAL_BIND_ENCHANT", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "canBecomeBoundForTrade" } + ], + "Type": "Event", + "Name": "TradePotentialBindEnchant" + }, + { + "LiteralName": "TRADE_POTENTIAL_REMOVE_TRANSMOG", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "itemLink" }, + { "Nilable": false, "Type": "number", "Name": "tradeSlotIndex" } + ], + "Type": "Event", + "Name": "TradePotentialRemoveTransmog" + }, + { + "LiteralName": "TRADE_REQUEST", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Event", + "Name": "TradeRequest" + }, + { + "LiteralName": "TRADE_REQUEST_CANCEL", + "Type": "Event", + "Name": "TradeRequestCancel" + }, + { "LiteralName": "TRADE_SHOW", "Type": "Event", "Name": "TradeShow" }, + { + "LiteralName": "TRADE_TARGET_ITEM_CHANGED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "tradeSlotIndex" }], + "Type": "Event", + "Name": "TradeTargetItemChanged" + }, + { "LiteralName": "TRADE_UPDATE", "Type": "Event", "Name": "TradeUpdate" } + ], + "Tables": [] + }, + { + "Namespace": "C_TradeSkillUI", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canStore" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Type": "Function", + "Name": "CanStoreEnchantInItem" + }, + { "Type": "Function", "Name": "CloseTradeSkill" }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeSpellID" }, + { "Nilable": false, "Default": 1, "Type": "number", "Name": "numCasts" }, + { + "Nilable": true, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + }, + { + "Nilable": true, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemTarget" + }, + { "Nilable": true, "Type": "bool", "Name": "applyConcentration" } + ], + "Type": "Function", + "Name": "CraftEnchant" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeSpellID" }, + { "Nilable": false, "Default": 1, "Type": "number", "Name": "numCasts" }, + { + "Nilable": true, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + }, + { "Nilable": true, "Type": "luaIndex", "Name": "recipeLevel" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "orderID" }, + { "Nilable": true, "Type": "bool", "Name": "applyConcentration" } + ], + "Type": "Function", + "Name": "CraftRecipe" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeSpellID" }, + { "Nilable": false, "Default": 1, "Type": "number", "Name": "numCasts" }, + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemTarget" + }, + { + "Nilable": true, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + }, + { "Nilable": true, "Type": "bool", "Name": "applyConcentration" } + ], + "Type": "Function", + "Name": "CraftSalvage" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "ItemLocationMixin", + "Type": "ItemLocation", + "Name": "itemLocation" + }, + { "Nilable": false, "Type": "number", "Name": "recipeID" } + ], + "Type": "Function", + "Name": "DoesRecraftingRecipeAcceptItem" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "skillLineID" + } + ], + "Type": "Function", + "Name": "GetAllProfessionTradeSkillLines" + }, + { + "Returns": [{ "Nilable": false, "Type": "ProfessionInfo", "Name": "info" }], + "Type": "Function", + "Name": "GetBaseProfessionInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "ProfessionInfo", "Name": "info" }], + "Type": "Function", + "Name": "GetChildProfessionInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ProfessionInfo", + "Type": "table", + "Name": "infos" + } + ], + "Type": "Function", + "Name": "GetChildProfessionInfos" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "currencyType" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "GetConcentrationCurrencyID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "numAvailable" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeSpellID" }, + { "Nilable": true, "Type": "luaIndex", "Name": "recipeLevel" } + ], + "Type": "Function", + "Name": "GetCraftableCount" + }, + { + "Returns": [{ "Nilable": true, "Type": "CraftingOperationInfo", "Name": "info" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { + "Nilable": false, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + }, + { "Nilable": true, "Type": "WOWGUID", "Name": "allocationItemGUID" }, + { "Nilable": false, "Type": "bool", "Name": "applyConcentration" } + ], + "Type": "Function", + "Name": "GetCraftingOperationInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "CraftingOperationInfo", "Name": "info" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { + "Nilable": false, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + }, + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" }, + { "Nilable": false, "Type": "bool", "Name": "applyConcentration" } + ], + "Type": "Function", + "Name": "GetCraftingOperationInfoForOrder" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "string", + "Type": "table", + "Name": "bonusText" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeSpellID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "craftingReagentIndex" }, + { + "Nilable": false, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + }, + { "Nilable": true, "Type": "WOWGUID", "Name": "allocationItemGUID" } + ], + "Type": "Function", + "Name": "GetCraftingReagentBonusText" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CraftingTargetItem", + "Type": "table", + "Name": "items" + } + ], + "Arguments": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "itemIDs" } + ], + "Type": "Function", + "Name": "GetCraftingTargetItems" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "WOWGUID", "Type": "table", "Name": "items" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "GetEnchantItems" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "itemID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeSpellID" }], + "Type": "Function", + "Name": "GetFactionSpecificOutputItem" + }, + { + "Returns": [ + { "Nilable": true, "Type": "GatheringOperationInfo", "Name": "info" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "GetGatheringOperationInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "cannotModifyHideUnowned" }, + { "Nilable": false, "Type": "bool", "Name": "alwaysShowUnowned" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "GetHideUnownedFlags" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "quality" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemCraftedQualityByItemInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "quality" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemReagentQualityByItemInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CraftingItemSlotModification", + "Type": "table", + "Name": "slotMods" + } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Type": "Function", + "Name": "GetItemSlotModifications" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CraftingItemSlotModification", + "Type": "table", + "Name": "slotMods" + } + ], + "Arguments": [{ "Nilable": false, "Type": "BigUInteger", "Name": "orderID" }], + "Type": "Function", + "Name": "GetItemSlotModificationsForOrder" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "recipeID" }, + { "Nilable": true, "Type": "number", "Name": "skillLineAbilityID" } + ], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Type": "Function", + "Name": "GetOriginalCraftRecipeID" + }, + { + "Returns": [{ "Nilable": true, "Type": "Profession", "Name": "profession" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Type": "Function", + "Name": "GetProfessionByInventorySlot" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "GetProfessionChildSkillLineID" + }, + { + "Returns": [{ "Nilable": true, "Type": "Profession", "Name": "profession" }], + "Type": "Function", + "Name": "GetProfessionForCursorItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "ProfessionInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "GetProfessionInfoByRecipeID" + }, + { + "Returns": [{ "Nilable": false, "Type": "ProfessionInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "GetProfessionInfoBySkillLineID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "InventorySlots", + "Type": "table", + "Name": "invSlots" + } + ], + "Type": "Function", + "Name": "GetProfessionInventorySlots" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "professionNmae" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "skillLineAbilityID" } + ], + "Type": "Function", + "Name": "GetProfessionNameForSkillLineAbility" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Arguments": [{ "Nilable": false, "Type": "Profession", "Name": "profession" }], + "Type": "Function", + "Name": "GetProfessionSkillLineID" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "luaIndex", "Type": "table", "Name": "slots" } + ], + "Arguments": [{ "Nilable": false, "Type": "Profession", "Name": "profession" }], + "Type": "Function", + "Name": "GetProfessionSlots" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "knownSpells" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "professionID" }, + { "Nilable": true, "Type": "number", "Name": "skillLineID" } + ], + "Type": "Function", + "Name": "GetProfessionSpells" + }, + { + "Returns": [ + { + "Nilable": true, + "InnerType": "number", + "Type": "table", + "Name": "qualityIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "GetQualitiesForRecipe" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "bonusText" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "craftingReagentIndex" }, + { + "Nilable": false, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + } + ], + "Type": "Function", + "Name": "GetReagentDifficultyText" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "itemIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Function", + "Name": "GetReagentRequirementItemIDs" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "locked" }, + { "Nilable": false, "Type": "string", "Name": "lockedReason" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "mcrSlotID" }, + { "Nilable": false, "Type": "number", "Name": "recipeSpellID" }, + { "Nilable": false, "Type": "number", "Name": "skillLineAbilityID" } + ], + "Type": "Function", + "Name": "GetReagentSlotStatus" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "description" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { + "Nilable": false, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + }, + { "Nilable": true, "Type": "WOWGUID", "Name": "allocationItemGUID" } + ], + "Type": "Function", + "Name": "GetRecipeDescription" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "link" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "dataSlotIndex" } + ], + "Type": "Function", + "Name": "GetRecipeFixedReagentItemLink" + }, + { + "Returns": [ + { "Nilable": true, "Type": "TradeSkillRecipeInfo", "Name": "recipeInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeSpellID" }, + { "Nilable": true, "Type": "luaIndex", "Name": "recipeLevel" } + ], + "Type": "Function", + "Name": "GetRecipeInfo" + }, + { + "Returns": [ + { "Nilable": true, "Type": "TradeSkillRecipeInfo", "Name": "recipeInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "skillLineAbilityID" }, + { "Nilable": true, "Type": "luaIndex", "Name": "recipeLevel" } + ], + "Type": "Function", + "Name": "GetRecipeInfoForSkillLineAbility" + }, + { + "Returns": [ + { "Nilable": false, "Type": "CraftingRecipeOutputInfo", "Name": "outputInfo" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeSpellID" }, + { + "Nilable": true, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "reagents" + }, + { "Nilable": true, "Type": "WOWGUID", "Name": "allocationItemGUID" }, + { "Nilable": true, "Type": "number", "Name": "overrideQualityID" }, + { "Nilable": true, "Type": "BigUInteger", "Name": "recraftOrderID" } + ], + "Type": "Function", + "Name": "GetRecipeOutputItemData" + }, + { + "Returns": [ + { + "Nilable": true, + "InnerType": "number", + "Type": "table", + "Name": "qualityItemIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeSpellID" }], + "Type": "Function", + "Name": "GetRecipeQualityItemIDs" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "link" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "dataSlotIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "qualityIndex" } + ], + "Type": "Function", + "Name": "GetRecipeQualityReagentItemLink" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CraftingRecipeRequirement", + "Type": "table", + "Name": "requirements" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "GetRecipeRequirements" + }, + { + "Returns": [ + { "Nilable": false, "Type": "CraftingRecipeSchematic", "Name": "schematic" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeSpellID" }, + { "Nilable": false, "Type": "bool", "Name": "isRecraft" }, + { "Nilable": true, "Type": "luaIndex", "Name": "recipeLevel" } + ], + "Type": "Function", + "Name": "GetRecipeSchematic" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "recipeIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "isRecraft" }], + "Type": "Function", + "Name": "GetRecipesTracked" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "WOWGUID", "Type": "table", "Name": "items" } + ], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "GetRecraftItems" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "cstring", + "Type": "table", + "Name": "warnings" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "replacedItemIDs" + } + ], + "Type": "Function", + "Name": "GetRecraftRemovalWarnings" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "remaining" }], + "Type": "Function", + "Name": "GetRemainingRecasts" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "itemIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "GetSalvagableItemIDs" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "flag" }], + "Type": "Function", + "Name": "GetShowLearned" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "flag" }], + "Type": "Function", + "Name": "GetShowUnlearned" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "skillLineID" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetSkillLineForGear" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "sourceTypeFilter" }], + "Type": "Function", + "Name": "GetSourceTypeFilter" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "professionDisplayName" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "GetTradeSkillDisplayName" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFavorites" }], + "Type": "Function", + "Name": "HasFavoriteOrderRecipes" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "valid" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }, + { + "Nilable": true, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + } + ], + "Type": "Function", + "Name": "IsEnchantTargetValid" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "enabled" }], + "Type": "Function", + "Name": "IsGuildTradeSkillsEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsNPCCrafting" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "nearFocus" }], + "Arguments": [{ "Nilable": false, "Type": "Profession", "Name": "profession" }], + "Type": "Function", + "Name": "IsNearProfessionSpellFocus" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "learned" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Type": "Function", + "Name": "IsOriginalCraftRecipeLearned" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "IsRecipeFirstCraft" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "IsRecipeInBaseSkillLine" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "number", "Name": "skillLineID" } + ], + "Type": "Function", + "Name": "IsRecipeInSkillLine" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "recipeProfessionLearned" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "IsRecipeProfessionLearned" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "tracked" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "bool", "Name": "isRecraft" } + ], + "Type": "Function", + "Name": "IsRecipeTracked" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEquipped" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "recraftItemGUID" }], + "Type": "Function", + "Name": "IsRecraftItemEquipped" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "valid" }], + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }, + { "Nilable": false, "Type": "number", "Name": "itemID" } + ], + "Type": "Function", + "Name": "IsRecraftReagentValid" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "IsRuneforging" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "recipeID" }], + "Type": "Function", + "Name": "OpenRecipe" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "opened" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "OpenTradeSkill" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "recraftValid" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "reagentItemID" }], + "Type": "Function", + "Name": "RecraftLimitCategoryValid" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }, + { + "Nilable": true, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + }, + { + "Nilable": true, + "InnerType": "CraftingItemSlotModification", + "Type": "table", + "Name": "removedModifications" + }, + { "Nilable": true, "Type": "bool", "Name": "applyConcentration" } + ], + "Type": "Function", + "Name": "RecraftRecipe" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "BigUInteger", "Name": "orderID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }, + { + "Nilable": true, + "InnerType": "CraftingReagentInfo", + "Type": "table", + "Name": "craftingReagents" + }, + { + "Nilable": true, + "InnerType": "CraftingItemSlotModification", + "Type": "table", + "Name": "removedModifications" + }, + { "Nilable": true, "Type": "bool", "Name": "applyConcentration" } + ], + "Type": "Function", + "Name": "RecraftRecipeForOrder" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "flag" }], + "Type": "Function", + "Name": "SetOnlyShowAvailableForOrders" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "skillLineID" }], + "Type": "Function", + "Name": "SetProfessionChildSkillLineID" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "bool", "Name": "tracked" }, + { "Nilable": false, "Type": "bool", "Name": "isRecraft" } + ], + "Type": "Function", + "Name": "SetRecipeTracked" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "flag" }], + "Type": "Function", + "Name": "SetShowLearned" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "flag" }], + "Type": "Function", + "Name": "SetShowUnlearned" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sourceTypeFilter" }], + "Type": "Function", + "Name": "SetSourceTypeFilter" + } + ], + "Type": "System", + "Name": "TradeSkillUI", + "Events": [ + { + "LiteralName": "CRAFTING_DETAILS_UPDATE", + "Type": "Event", + "Name": "CraftingDetailsUpdate" + }, + { + "LiteralName": "NEW_RECIPE_LEARNED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": true, "Type": "luaIndex", "Name": "recipeLevel" }, + { "Nilable": true, "Type": "number", "Name": "baseRecipeID" } + ], + "Type": "Event", + "Name": "NewRecipeLearned" + }, + { + "LiteralName": "OBLITERUM_FORGE_PENDING_ITEM_CHANGED", + "Type": "Event", + "Name": "ObliterumForgePendingItemChanged" + }, + { + "LiteralName": "OPEN_RECIPE_RESPONSE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "number", "Name": "skillLineID" }, + { "Nilable": false, "Type": "number", "Name": "expansionSkillLineID" } + ], + "Type": "Event", + "Name": "OpenRecipeResponse" + }, + { + "LiteralName": "TRACKED_RECIPE_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "bool", "Name": "tracked" } + ], + "Type": "Event", + "Name": "TrackedRecipeUpdate" + }, + { "LiteralName": "TRADE_SKILL_CLOSE", "Type": "Event", "Name": "TradeSkillClose" }, + { + "LiteralName": "TRADE_SKILL_CRAFT_BEGIN", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "recipeSpellID" }], + "Type": "Event", + "Name": "TradeSkillCraftBegin" + }, + { + "LiteralName": "TRADE_SKILL_CRAFTING_REAGENT_BONUS_TEXT_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Type": "Event", + "Name": "TradeSkillCraftingReagentBonusTextUpdated" + }, + { + "LiteralName": "TRADE_SKILL_CURRENCY_REWARD_RESULT", + "Payload": [ + { "Nilable": false, "Type": "CraftingCurrencyResultData", "Name": "data" } + ], + "Type": "Event", + "Name": "TradeSkillCurrencyRewardResult" + }, + { + "LiteralName": "TRADE_SKILL_DATA_SOURCE_CHANGED", + "Type": "Event", + "Name": "TradeSkillDataSourceChanged" + }, + { + "LiteralName": "TRADE_SKILL_DATA_SOURCE_CHANGING", + "Type": "Event", + "Name": "TradeSkillDataSourceChanging" + }, + { + "LiteralName": "TRADE_SKILL_DETAILS_UPDATE", + "Type": "Event", + "Name": "TradeSkillDetailsUpdate" + }, + { + "LiteralName": "TRADE_SKILL_FAVORITES_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "isFavorite" }, + { "Nilable": false, "Type": "number", "Name": "recipeSpellID" } + ], + "Type": "Event", + "Name": "TradeSkillFavoritesChanged" + }, + { + "LiteralName": "TRADE_SKILL_ITEM_CRAFTED_RESULT", + "Payload": [ + { "Nilable": false, "Type": "CraftingItemResultData", "Name": "data" } + ], + "Type": "Event", + "Name": "TradeSkillItemCraftedResult" + }, + { + "LiteralName": "TRADE_SKILL_ITEM_UPDATE", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }], + "Type": "Event", + "Name": "TradeSkillItemUpdate" + }, + { + "LiteralName": "TRADE_SKILL_LIST_UPDATE", + "Type": "Event", + "Name": "TradeSkillListUpdate" + }, + { + "LiteralName": "TRADE_SKILL_NAME_UPDATE", + "Type": "Event", + "Name": "TradeSkillNameUpdate" + }, + { "LiteralName": "TRADE_SKILL_SHOW", "Type": "Event", "Name": "TradeSkillShow" }, + { + "LiteralName": "UPDATE_TRADESKILL_CAST_STOPPED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isScrapping" }], + "Type": "Event", + "Name": "UpdateTradeskillCastStopped" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "CraftingReagentItemFlag", + "Fields": [ + { + "EnumValue": 0, + "Type": "CraftingReagentItemFlag", + "Name": "TooltipShowsAsStatModifications" + } + ], + "MaxValue": 0, + "MinValue": 0, + "NumValues": 1 + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "RecipeRequirementType", + "Fields": [ + { "EnumValue": 0, "Type": "RecipeRequirementType", "Name": "SpellFocus" }, + { "EnumValue": 1, "Type": "RecipeRequirementType", "Name": "Totem" }, + { "EnumValue": 2, "Type": "RecipeRequirementType", "Name": "Area" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "TradeskillOrderDuration", + "Fields": [ + { "EnumValue": 1, "Type": "TradeskillOrderDuration", "Name": "Short" }, + { "EnumValue": 2, "Type": "TradeskillOrderDuration", "Name": "Medium" }, + { "EnumValue": 3, "Type": "TradeskillOrderDuration", "Name": "Long" } + ], + "MaxValue": 3, + "MinValue": 1, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "TradeskillOrderRecipient", + "Fields": [ + { "EnumValue": 1, "Type": "TradeskillOrderRecipient", "Name": "Public" }, + { "EnumValue": 2, "Type": "TradeskillOrderRecipient", "Name": "Guild" }, + { "EnumValue": 3, "Type": "TradeskillOrderRecipient", "Name": "Private" } + ], + "MaxValue": 3, + "MinValue": 1, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "TradeskillOrderStatus", + "Fields": [ + { "EnumValue": 1, "Type": "TradeskillOrderStatus", "Name": "Unclaimed" }, + { "EnumValue": 2, "Type": "TradeskillOrderStatus", "Name": "Started" }, + { "EnumValue": 3, "Type": "TradeskillOrderStatus", "Name": "Completed" }, + { "EnumValue": 4, "Type": "TradeskillOrderStatus", "Name": "Expired" } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "TradeskillRecipeType", + "Fields": [ + { "EnumValue": 1, "Type": "TradeskillRecipeType", "Name": "Item" }, + { "EnumValue": 2, "Type": "TradeskillRecipeType", "Name": "Salvage" }, + { "EnumValue": 3, "Type": "TradeskillRecipeType", "Name": "Enchant" }, + { "EnumValue": 4, "Type": "TradeskillRecipeType", "Name": "Recraft" }, + { "EnumValue": 5, "Type": "TradeskillRecipeType", "Name": "Gathering" } + ], + "MaxValue": 5, + "MinValue": 1, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "TradeskillRelativeDifficulty", + "Fields": [ + { "EnumValue": 0, "Type": "TradeskillRelativeDifficulty", "Name": "Optimal" }, + { "EnumValue": 1, "Type": "TradeskillRelativeDifficulty", "Name": "Medium" }, + { "EnumValue": 2, "Type": "TradeskillRelativeDifficulty", "Name": "Easy" }, + { "EnumValue": 3, "Type": "TradeskillRelativeDifficulty", "Name": "Trivial" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "TradeskillSlotDataType", + "Fields": [ + { "EnumValue": 1, "Type": "TradeskillSlotDataType", "Name": "Reagent" }, + { "EnumValue": 2, "Type": "TradeskillSlotDataType", "Name": "ModifiedReagent" }, + { "EnumValue": 3, "Type": "TradeskillSlotDataType", "Name": "Currency" } + ], + "MaxValue": 3, + "MinValue": 1, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Default": 0, "Type": "number", "Name": "currencyID" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "operationID" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "firstCraftReward" + }, + { + "Nilable": false, + "Default": true, + "Type": "bool", + "Name": "showCurrencyText" + } + ], + "Type": "Structure", + "Name": "CraftingCurrencyResultData" + }, + { + "Fields": [ + { + "Nilable": true, + "InnerType": "CraftingResourceReturnInfo", + "Type": "table", + "Name": "resourcesReturned" + }, + { "Nilable": true, "Type": "number", "Name": "craftingQuality" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "qualityProgress" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "quantity" }, + { "Nilable": false, "Type": "string", "Name": "hyperlink" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isCrit" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "critBonusSkill" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "recraftable" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "bonusCraft" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "multicraft" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "operationID" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "firstCraftReward" + }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isEnchant" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "hasIngenuityProc" + }, + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "concentrationCurrencyID" + }, + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "concentrationSpent" + }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "ingenuityRefund" } + ], + "Type": "Structure", + "Name": "CraftingItemResultData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "luaIndex", "Name": "dataSlotIndex" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "itemID" } + ], + "Type": "Structure", + "Name": "CraftingItemSlotModification" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "bonusStatName" }, + { "Nilable": false, "Type": "number", "Name": "bonusStatValue" }, + { "Nilable": false, "Type": "string", "Name": "ratingDescription" }, + { "Nilable": false, "Type": "number", "Name": "ratingPct" }, + { "Nilable": false, "Type": "number", "Name": "bonusRatingPct" } + ], + "Type": "Structure", + "Name": "CraftingOperationBonusStatInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "number", "Name": "baseDifficulty" }, + { "Nilable": false, "Type": "number", "Name": "bonusDifficulty" }, + { "Nilable": false, "Type": "number", "Name": "baseSkill" }, + { "Nilable": false, "Type": "number", "Name": "bonusSkill" }, + { "Nilable": false, "Type": "bool", "Name": "isQualityCraft" }, + { "Nilable": false, "Type": "number", "Name": "quality" }, + { "Nilable": false, "Type": "number", "Name": "craftingQuality" }, + { "Nilable": false, "Type": "number", "Name": "craftingQualityID" }, + { "Nilable": false, "Type": "number", "Name": "craftingDataID" }, + { "Nilable": false, "Type": "number", "Name": "lowerSkillThreshold" }, + { "Nilable": false, "Type": "number", "Name": "upperSkillTreshold" }, + { "Nilable": false, "Type": "number", "Name": "guaranteedCraftingQualityID" }, + { + "Nilable": false, + "InnerType": "CraftingOperationBonusStatInfo", + "Type": "table", + "Name": "bonusStats" + }, + { "Nilable": false, "Type": "number", "Name": "concentrationCurrencyID" }, + { "Nilable": false, "Type": "number", "Name": "concentrationCost" }, + { "Nilable": false, "Type": "number", "Name": "ingenuityRefund" } + ], + "Type": "Structure", + "Name": "CraftingOperationInfo" + }, + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "number", "Name": "currencyID" } + ], + "Type": "Structure", + "Name": "CraftingReagent" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "dataSlotIndex" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Structure", + "Name": "CraftingReagentInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "mcrSlotID" }, + { "Nilable": false, "Type": "number", "Name": "requiredSkillRank" }, + { "Nilable": true, "Type": "cstring", "Name": "slotText" } + ], + "Type": "Structure", + "Name": "CraftingReagentSlotInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "InnerType": "CraftingReagent", + "Type": "table", + "Name": "reagents" + }, + { "Nilable": false, "Type": "CraftingReagentType", "Name": "reagentType" }, + { "Nilable": false, "Type": "number", "Name": "quantityRequired" }, + { "Nilable": true, "Type": "CraftingReagentSlotInfo", "Name": "slotInfo" }, + { + "Nilable": false, + "Default": "Reagent", + "Type": "TradeskillSlotDataType", + "Name": "dataSlotType" + }, + { "Nilable": false, "Type": "luaIndex", "Name": "dataSlotIndex" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slotIndex" }, + { + "Nilable": true, + "Type": "CraftingOrderReagentSource", + "Name": "orderSource" + }, + { "Nilable": false, "Type": "bool", "Name": "required" } + ], + "Type": "Structure", + "Name": "CraftingReagentSlotSchematic" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "icon" }, + { "Nilable": true, "Type": "cstring", "Name": "hyperlink" }, + { "Nilable": true, "Type": "number", "Name": "itemID" } + ], + "Type": "Structure", + "Name": "CraftingRecipeOutputInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "bool", "Name": "met" }, + { "Nilable": false, "Type": "RecipeRequirementType", "Name": "type" } + ], + "Type": "Structure", + "Name": "CraftingRecipeRequirement" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "number", "Name": "icon" }, + { "Nilable": false, "Type": "number", "Name": "quantityMin" }, + { "Nilable": false, "Type": "number", "Name": "quantityMax" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { + "Nilable": false, + "Default": "Item", + "Type": "TradeskillRecipeType", + "Name": "recipeType" + }, + { "Nilable": true, "Type": "number", "Name": "productQuality" }, + { "Nilable": true, "Type": "number", "Name": "outputItemID" }, + { + "Nilable": false, + "InnerType": "CraftingReagentSlotSchematic", + "Type": "table", + "Name": "reagentSlotSchematics" + }, + { "Nilable": false, "Type": "bool", "Name": "isRecraft" }, + { "Nilable": false, "Type": "bool", "Name": "hasCraftingOperationInfo" } + ], + "Type": "Structure", + "Name": "CraftingRecipeSchematic" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "professionSkillLineID" }, + { "Nilable": false, "Type": "number", "Name": "expansionSkillLineID" } + ], + "Type": "Structure", + "Name": "CraftingRecipeSkillLineInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Structure", + "Name": "CraftingResourceReturnInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "itemGUID" }, + { "Nilable": true, "Type": "string", "Name": "hyperlink" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Structure", + "Name": "CraftingTargetItem" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "bonusStatName" }, + { "Nilable": false, "Type": "number", "Name": "bonusStatValue" }, + { "Nilable": false, "Type": "string", "Name": "ratingDescription" }, + { "Nilable": false, "Type": "number", "Name": "ratingPct" }, + { "Nilable": false, "Type": "number", "Name": "bonusRatingPct" } + ], + "Type": "Structure", + "Name": "GatheringOperationBonusStatInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "maxDifficulty" }, + { "Nilable": false, "Type": "number", "Name": "baseSkill" }, + { "Nilable": false, "Type": "number", "Name": "bonusSkill" }, + { + "Nilable": false, + "InnerType": "GatheringOperationBonusStatInfo", + "Type": "table", + "Name": "bonusStats" + } + ], + "Type": "Structure", + "Name": "GatheringOperationInfo" + }, + { + "Fields": [ + { "Nilable": true, "Type": "Profession", "Name": "profession" }, + { "Nilable": false, "Type": "number", "Name": "professionID" }, + { "Nilable": false, "Type": "number", "Name": "sourceCounter" }, + { "Nilable": false, "Type": "cstring", "Name": "professionName" }, + { "Nilable": false, "Type": "cstring", "Name": "expansionName" }, + { "Nilable": false, "Type": "number", "Name": "skillLevel" }, + { "Nilable": false, "Type": "number", "Name": "maxSkillLevel" }, + { "Nilable": false, "Type": "number", "Name": "skillModifier" }, + { "Nilable": false, "Type": "bool", "Name": "isPrimaryProfession" }, + { "Nilable": true, "Type": "number", "Name": "parentProfessionID" }, + { "Nilable": true, "Type": "cstring", "Name": "parentProfessionName" } + ], + "Type": "Structure", + "Name": "ProfessionInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "quantity" } + ], + "Type": "Structure", + "Name": "RegularReagentInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "categoryID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { + "Nilable": true, + "Type": "TradeskillRelativeDifficulty", + "Name": "relativeDifficulty" + }, + { "Nilable": false, "Type": "number", "Name": "maxTrivialLevel" }, + { "Nilable": false, "Type": "number", "Name": "itemLevel" }, + { "Nilable": true, "Type": "cstring", "Name": "alternateVerb" }, + { "Nilable": false, "Type": "number", "Name": "numSkillUps" }, + { "Nilable": false, "Type": "bool", "Name": "canSkillUp" }, + { "Nilable": false, "Type": "bool", "Name": "firstCraft" }, + { "Nilable": true, "Type": "number", "Name": "sourceType" }, + { "Nilable": false, "Type": "bool", "Name": "learned" }, + { "Nilable": false, "Type": "bool", "Name": "disabled" }, + { "Nilable": false, "Type": "bool", "Name": "favorite" }, + { "Nilable": false, "Type": "bool", "Name": "supportsQualities" }, + { "Nilable": false, "Default": true, "Type": "bool", "Name": "craftable" }, + { "Nilable": true, "Type": "cstring", "Name": "disabledReason" }, + { "Nilable": false, "Type": "number", "Name": "recipeID" }, + { "Nilable": false, "Type": "number", "Name": "skillLineAbilityID" }, + { "Nilable": true, "Type": "number", "Name": "previousRecipeID" }, + { "Nilable": true, "Type": "number", "Name": "nextRecipeID" }, + { "Nilable": true, "Type": "number", "Name": "icon" }, + { "Nilable": true, "Type": "cstring", "Name": "hyperlink" }, + { "Nilable": true, "Type": "number", "Name": "currentRecipeExperience" }, + { "Nilable": true, "Type": "number", "Name": "nextLevelRecipeExperience" }, + { "Nilable": true, "Type": "number", "Name": "unlockedRecipeLevel" }, + { "Nilable": true, "Type": "number", "Name": "earnedExperience" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "supportsCraftingStats" + }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "hasSingleItemOutput" + }, + { + "Nilable": true, + "InnerType": "number", + "Type": "table", + "Name": "qualityItemIDs" + }, + { + "Nilable": true, + "InnerType": "number", + "Type": "table", + "Name": "qualityIlvlBonuses" + }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "alwaysUsesLowestQuality" + }, + { "Nilable": true, "Type": "number", "Name": "maxQuality" }, + { + "Nilable": true, + "InnerType": "number", + "Type": "table", + "Name": "qualityIDs" + }, + { + "Nilable": false, + "Default": true, + "Type": "bool", + "Name": "canCreateMultiple" + }, + { "Nilable": true, "Type": "cstring", "Name": "abilityVerb" }, + { "Nilable": true, "Type": "cstring", "Name": "abilityAllVerb" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isRecraft" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isDummyRecipe" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "isGatheringRecipe" + }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "isEnchantingRecipe" + }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "isSalvageRecipe" + } + ], + "Type": "Structure", + "Name": "TradeSkillRecipeInfo" + } + ] + }, + { + "Namespace": "C_Trainer", + "Functions": [], + "Type": "System", + "Name": "Trainer", + "Events": [ + { "LiteralName": "TRAINER_CLOSED", "Type": "Event", "Name": "TrainerClosed" }, + { + "LiteralName": "TRAINER_DESCRIPTION_UPDATE", + "Type": "Event", + "Name": "TrainerDescriptionUpdate" + }, + { + "LiteralName": "TRAINER_SERVICE_INFO_NAME_UPDATE", + "Type": "Event", + "Name": "TrainerServiceInfoNameUpdate" + }, + { "LiteralName": "TRAINER_SHOW", "Type": "Event", "Name": "TrainerShow" }, + { "LiteralName": "TRAINER_UPDATE", "Type": "Event", "Name": "TrainerUpdate" } + ], + "Tables": [] + }, + { + "Namespace": "C_TraitConfig", + "Functions": [], + "Type": "System", + "Name": "TraitConfig", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "NodeOpFailureReason", + "Fields": [ + { "EnumValue": 0, "Type": "NodeOpFailureReason", "Name": "None" }, + { + "EnumValue": 1, + "Type": "NodeOpFailureReason", + "Name": "MissingEdgeConnection" + }, + { "EnumValue": 2, "Type": "NodeOpFailureReason", "Name": "RequiredForEdge" }, + { + "EnumValue": 3, + "Type": "NodeOpFailureReason", + "Name": "MissingRequiredEdge" + }, + { + "EnumValue": 4, + "Type": "NodeOpFailureReason", + "Name": "HasMutuallyExclusiveEdge" + }, + { + "EnumValue": 5, + "Type": "NodeOpFailureReason", + "Name": "NotEnoughSourcedCurrencySpent" + }, + { + "EnumValue": 6, + "Type": "NodeOpFailureReason", + "Name": "NotEnoughCurrencySpent" + }, + { "EnumValue": 7, "Type": "NodeOpFailureReason", "Name": "NotEnoughGoldSpent" }, + { "EnumValue": 8, "Type": "NodeOpFailureReason", "Name": "MissingAchievement" }, + { "EnumValue": 9, "Type": "NodeOpFailureReason", "Name": "MissingQuest" }, + { "EnumValue": 10, "Type": "NodeOpFailureReason", "Name": "WrongSpec" }, + { "EnumValue": 11, "Type": "NodeOpFailureReason", "Name": "WrongSelection" }, + { "EnumValue": 12, "Type": "NodeOpFailureReason", "Name": "MaxRank" }, + { "EnumValue": 13, "Type": "NodeOpFailureReason", "Name": "DataError" }, + { + "EnumValue": 14, + "Type": "NodeOpFailureReason", + "Name": "NotEnoughSourcedCurrency" + }, + { "EnumValue": 15, "Type": "NodeOpFailureReason", "Name": "NotEnoughCurrency" }, + { "EnumValue": 16, "Type": "NodeOpFailureReason", "Name": "NotEnoughGold" }, + { "EnumValue": 17, "Type": "NodeOpFailureReason", "Name": "SameSelection" }, + { "EnumValue": 18, "Type": "NodeOpFailureReason", "Name": "NodeNotFound" }, + { "EnumValue": 19, "Type": "NodeOpFailureReason", "Name": "EntryNotFound" }, + { + "EnumValue": 20, + "Type": "NodeOpFailureReason", + "Name": "RequiredForCondition" + }, + { "EnumValue": 21, "Type": "NodeOpFailureReason", "Name": "WrongTreeID" }, + { "EnumValue": 22, "Type": "NodeOpFailureReason", "Name": "LevelTooLow" }, + { + "EnumValue": 23, + "Type": "NodeOpFailureReason", + "Name": "TreeFlaggedNoRefund" + }, + { + "EnumValue": 24, + "Type": "NodeOpFailureReason", + "Name": "NodeNeverPurchasable" + }, + { "EnumValue": 25, "Type": "NodeOpFailureReason", "Name": "AccountDataNoMatch" } + ], + "MaxValue": 25, + "MinValue": 0, + "NumValues": 26 + }, + { + "Type": "Enumeration", + "Name": "SharedStringFlag", + "Fields": [ + { "EnumValue": 1, "Type": "SharedStringFlag", "Name": "InternalOnly" } + ], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "TraitCombatConfigFlags", + "Fields": [ + { "EnumValue": 1, "Type": "TraitCombatConfigFlags", "Name": "ActiveForSpec" }, + { "EnumValue": 2, "Type": "TraitCombatConfigFlags", "Name": "StarterBuild" }, + { "EnumValue": 4, "Type": "TraitCombatConfigFlags", "Name": "SharedActionBars" } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "TraitCondFlag", + "Fields": [ + { "EnumValue": 1, "Type": "TraitCondFlag", "Name": "IsGate" }, + { "EnumValue": 2, "Type": "TraitCondFlag", "Name": "IsAlwaysMet" }, + { "EnumValue": 4, "Type": "TraitCondFlag", "Name": "IsSufficient" } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "TraitConditionType", + "Fields": [ + { "EnumValue": 0, "Type": "TraitConditionType", "Name": "Available" }, + { "EnumValue": 1, "Type": "TraitConditionType", "Name": "Visible" }, + { "EnumValue": 2, "Type": "TraitConditionType", "Name": "Granted" }, + { "EnumValue": 3, "Type": "TraitConditionType", "Name": "Increased" }, + { "EnumValue": 4, "Type": "TraitConditionType", "Name": "DisplayError" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "TraitConfigDbState", + "Fields": [ + { "EnumValue": 0, "Type": "TraitConfigDbState", "Name": "Ready" }, + { "EnumValue": 1, "Type": "TraitConfigDbState", "Name": "Created" }, + { "EnumValue": 2, "Type": "TraitConfigDbState", "Name": "Removed" }, + { "EnumValue": 3, "Type": "TraitConfigDbState", "Name": "Deleted" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "TraitConfigType", + "Fields": [ + { "EnumValue": 0, "Type": "TraitConfigType", "Name": "Invalid" }, + { "EnumValue": 1, "Type": "TraitConfigType", "Name": "Combat" }, + { "EnumValue": 2, "Type": "TraitConfigType", "Name": "Profession" }, + { "EnumValue": 3, "Type": "TraitConfigType", "Name": "Generic" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "TraitCurrencyFlag", + "Fields": [ + { "EnumValue": 1, "Type": "TraitCurrencyFlag", "Name": "ShowQuantityAsSpent" }, + { "EnumValue": 2, "Type": "TraitCurrencyFlag", "Name": "TraitSourcedShowMax" }, + { "EnumValue": 4, "Type": "TraitCurrencyFlag", "Name": "UseClassIcon" }, + { "EnumValue": 8, "Type": "TraitCurrencyFlag", "Name": "UseSpecIcon" } + ], + "MaxValue": 8, + "MinValue": 1, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "TraitCurrencyType", + "Fields": [ + { "EnumValue": 0, "Type": "TraitCurrencyType", "Name": "Gold" }, + { "EnumValue": 1, "Type": "TraitCurrencyType", "Name": "CurrencyTypesBased" }, + { "EnumValue": 2, "Type": "TraitCurrencyType", "Name": "TraitSourced" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "TraitDefinitionSubType", + "Fields": [ + { "EnumValue": 0, "Type": "TraitDefinitionSubType", "Name": "DragonflightRed" }, + { + "EnumValue": 1, + "Type": "TraitDefinitionSubType", + "Name": "DragonflightBlue" + }, + { + "EnumValue": 2, + "Type": "TraitDefinitionSubType", + "Name": "DragonflightGreen" + }, + { + "EnumValue": 3, + "Type": "TraitDefinitionSubType", + "Name": "DragonflightBronze" + }, + { + "EnumValue": 4, + "Type": "TraitDefinitionSubType", + "Name": "DragonflightBlack" + } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "TraitEdgeType", + "Fields": [ + { "EnumValue": 0, "Type": "TraitEdgeType", "Name": "VisualOnly" }, + { "EnumValue": 1, "Type": "TraitEdgeType", "Name": "DeprecatedRankConnection" }, + { + "EnumValue": 2, + "Type": "TraitEdgeType", + "Name": "SufficientForAvailability" + }, + { "EnumValue": 3, "Type": "TraitEdgeType", "Name": "RequiredForAvailability" }, + { "EnumValue": 4, "Type": "TraitEdgeType", "Name": "MutuallyExclusive" }, + { "EnumValue": 5, "Type": "TraitEdgeType", "Name": "DeprecatedSelectionOption" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "TraitEdgeVisualStyle", + "Fields": [ + { "EnumValue": 0, "Type": "TraitEdgeVisualStyle", "Name": "None" }, + { "EnumValue": 1, "Type": "TraitEdgeVisualStyle", "Name": "Straight" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "TraitNodeEntryType", + "Fields": [ + { "EnumValue": 0, "Type": "TraitNodeEntryType", "Name": "SpendHex" }, + { "EnumValue": 1, "Type": "TraitNodeEntryType", "Name": "SpendSquare" }, + { "EnumValue": 2, "Type": "TraitNodeEntryType", "Name": "SpendCircle" }, + { "EnumValue": 3, "Type": "TraitNodeEntryType", "Name": "SpendSmallCircle" }, + { "EnumValue": 4, "Type": "TraitNodeEntryType", "Name": "DeprecatedSelect" }, + { "EnumValue": 5, "Type": "TraitNodeEntryType", "Name": "DragAndDrop" }, + { "EnumValue": 6, "Type": "TraitNodeEntryType", "Name": "SpendDiamond" }, + { "EnumValue": 7, "Type": "TraitNodeEntryType", "Name": "ProfPath" }, + { "EnumValue": 8, "Type": "TraitNodeEntryType", "Name": "ProfPerk" }, + { "EnumValue": 9, "Type": "TraitNodeEntryType", "Name": "ProfPathUnlock" } + ], + "MaxValue": 9, + "MinValue": 0, + "NumValues": 10 + }, + { + "Type": "Enumeration", + "Name": "TraitNodeFlag", + "Fields": [ + { "EnumValue": 1, "Type": "TraitNodeFlag", "Name": "ShowMultipleIcons" }, + { "EnumValue": 2, "Type": "TraitNodeFlag", "Name": "NeverPurchasable" }, + { "EnumValue": 4, "Type": "TraitNodeFlag", "Name": "TestPositionLocked" }, + { "EnumValue": 8, "Type": "TraitNodeFlag", "Name": "TestGridPositioned" } + ], + "MaxValue": 8, + "MinValue": 1, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "TraitNodeGroupFlag", + "Fields": [ + { "EnumValue": 1, "Type": "TraitNodeGroupFlag", "Name": "AvailableByDefault" } + ], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "TraitNodeType", + "Fields": [ + { "EnumValue": 0, "Type": "TraitNodeType", "Name": "Single" }, + { "EnumValue": 1, "Type": "TraitNodeType", "Name": "Tiered" }, + { "EnumValue": 2, "Type": "TraitNodeType", "Name": "Selection" }, + { "EnumValue": 3, "Type": "TraitNodeType", "Name": "SubTreeSelection" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "TraitPointsOperationType", + "Fields": [ + { "EnumValue": -1, "Type": "TraitPointsOperationType", "Name": "None" }, + { "EnumValue": 0, "Type": "TraitPointsOperationType", "Name": "Set" }, + { "EnumValue": 1, "Type": "TraitPointsOperationType", "Name": "Multiply" } + ], + "MaxValue": 1, + "MinValue": -1, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "TraitSystemFlag", + "Fields": [ + { + "EnumValue": 1, + "Type": "TraitSystemFlag", + "Name": "AllowMultipleLoadoutsPerTree" + }, + { "EnumValue": 2, "Type": "TraitSystemFlag", "Name": "ShowSpendConfirmation" } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "TraitTreeFlag", + "Fields": [ + { "EnumValue": 1, "Type": "TraitTreeFlag", "Name": "CannotRefund" }, + { "EnumValue": 2, "Type": "TraitTreeFlag", "Name": "HideSingleRankNumbers" } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Values": [ + { "Value": 40, "Type": "number", "Name": "MAX_COMBAT_TRAIT_CONFIGS" }, + { + "Value": 384255, + "Type": "number", + "Name": "COMMIT_COMBAT_TRAIT_CONFIG_CHANGES_SPELL_ID" + }, + { "Value": -1, "Type": "number", "Name": "INSPECT_TRAIT_CONFIG_ID" }, + { "Value": -2, "Type": "number", "Name": "STARTER_BUILD_TRAIT_CONFIG_ID" }, + { "Value": -3, "Type": "number", "Name": "VIEW_TRAIT_CONFIG_ID" } + ], + "Type": "Constants", + "Name": "TraitConsts" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "TransmogIllisionFlags", + "Fields": [ + { + "EnumValue": 1, + "Type": "TransmogIllisionFlags", + "Name": "HideUntilCollected" + }, + { + "EnumValue": 2, + "Type": "TransmogIllisionFlags", + "Name": "PlayerConditionGrantsOnLogin" + } + ], + "MaxValue": 2, + "MinValue": 1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "TransmogSlot", + "Fields": [ + { "EnumValue": 0, "Type": "TransmogSlot", "Name": "Head" }, + { "EnumValue": 1, "Type": "TransmogSlot", "Name": "Shoulder" }, + { "EnumValue": 2, "Type": "TransmogSlot", "Name": "Back" }, + { "EnumValue": 3, "Type": "TransmogSlot", "Name": "Chest" }, + { "EnumValue": 4, "Type": "TransmogSlot", "Name": "Body" }, + { "EnumValue": 5, "Type": "TransmogSlot", "Name": "Tabard" }, + { "EnumValue": 6, "Type": "TransmogSlot", "Name": "Wrist" }, + { "EnumValue": 7, "Type": "TransmogSlot", "Name": "Hand" }, + { "EnumValue": 8, "Type": "TransmogSlot", "Name": "Waist" }, + { "EnumValue": 9, "Type": "TransmogSlot", "Name": "Legs" }, + { "EnumValue": 10, "Type": "TransmogSlot", "Name": "Feet" }, + { "EnumValue": 11, "Type": "TransmogSlot", "Name": "Mainhand" }, + { "EnumValue": 12, "Type": "TransmogSlot", "Name": "Offhand" } + ], + "MaxValue": 12, + "MinValue": 0, + "NumValues": 13 + }, + { + "Values": [ + { "Value": 0, "Type": "number", "Name": "NoTransmogID" }, + { "Value": -1, "Type": "number", "Name": "MainHandTransmogIsIndividualWeapon" }, + { "Value": 0, "Type": "number", "Name": "MainHandTransmogIsPairedWeapon" } + ], + "Type": "Constants", + "Name": "Transmog" + } + ] + }, + { + "Namespace": "C_Transmog", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "requestSent" }], + "Arguments": [ + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "currentSpecOnly" + } + ], + "Type": "Function", + "Name": "ApplyAllPending" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canHaveSecondaryAppearance" } + ], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "slotID" }], + "Type": "Function", + "Name": "CanHaveSecondaryAppearanceForSlotID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canBeTransmogged" }, + { "Nilable": true, "Type": "cstring", "Name": "selfFailureReason" }, + { "Nilable": false, "Type": "bool", "Name": "canTransmogOthers" }, + { "Nilable": true, "Type": "cstring", "Name": "othersFailureReason" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "CanTransmogItem" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canTransmog" }, + { "Nilable": true, "Type": "cstring", "Name": "failureReason" } + ], + "Arguments": [ + { "Nilable": false, "Type": "ItemInfo", "Name": "targetItemInfo" }, + { "Nilable": false, "Type": "ItemInfo", "Name": "sourceItemInfo" } + ], + "Type": "Function", + "Name": "CanTransmogItemWithItem" + }, + { "Type": "Function", "Name": "ClearAllPending" }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + } + ], + "Type": "Function", + "Name": "ClearPending" + }, + { "Type": "Function", "Name": "Close" }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "transmogIDList" + } + ], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "input" }], + "Type": "Function", + "Name": "ExtractTransmogIDList" + }, + { + "Returns": [ + { + "Nilable": true, + "InnerType": "TransmogSetItemInfo", + "Type": "table", + "Name": "setItems" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "setID" }], + "Type": "Function", + "Name": "GetAllSetAppearancesByID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "cost" }], + "Type": "Function", + "Name": "GetApplyCost" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TransmogApplyWarningInfo", + "Type": "table", + "Name": "warnings" + } + ], + "Type": "Function", + "Name": "GetApplyWarnings" + }, + { + "Returns": [ + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "categoryID" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "transmogID" }], + "Type": "Function", + "Name": "GetBaseCategory" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "creatureDisplayID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Function", + "Name": "GetCreatureDisplayIDForSource" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "itemID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Function", + "Name": "GetItemIDForSource" + }, + { + "Returns": [ + { + "Nilable": false, + "Mixin": "TransmogPendingInfoMixin", + "Type": "TransmogPendingInfo", + "Name": "pendingInfo" + } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + } + ], + "Type": "Function", + "Name": "GetPending" + }, + { + "Returns": [ + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "categoryID" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + } + ], + "Type": "Function", + "Name": "GetSlotEffectiveCategory" + }, + { + "Returns": [{ "Nilable": false, "Type": "luaIndex", "Name": "slot" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "inventoryType" }], + "Type": "Function", + "Name": "GetSlotForInventoryType" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isTransmogrified" }, + { "Nilable": false, "Type": "bool", "Name": "hasPending" }, + { "Nilable": false, "Type": "bool", "Name": "isPendingCollected" }, + { "Nilable": false, "Type": "bool", "Name": "canTransmogrify" }, + { "Nilable": false, "Type": "number", "Name": "cannotTransmogrifyReason" }, + { "Nilable": false, "Type": "bool", "Name": "hasUndo" }, + { "Nilable": false, "Type": "bool", "Name": "isHideVisual" }, + { "Nilable": true, "Type": "fileID", "Name": "texture" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + } + ], + "Type": "Function", + "Name": "GetSlotInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "errorCode" }, + { "Nilable": false, "Type": "cstring", "Name": "errorString" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + } + ], + "Type": "Function", + "Name": "GetSlotUseError" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "baseSourceID" }, + { "Nilable": false, "Type": "number", "Name": "baseVisualID" }, + { "Nilable": false, "Type": "number", "Name": "appliedSourceID" }, + { "Nilable": false, "Type": "number", "Name": "appliedVisualID" }, + { "Nilable": false, "Type": "number", "Name": "pendingSourceID" }, + { "Nilable": false, "Type": "number", "Name": "pendingVisualID" }, + { "Nilable": false, "Type": "bool", "Name": "hasUndo" }, + { "Nilable": false, "Type": "bool", "Name": "isHideVisual" }, + { "Nilable": false, "Type": "number", "Name": "itemSubclass" } + ], + "Arguments": [ + { + "Nilable": false, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + } + ], + "Type": "Function", + "Name": "GetSlotVisualInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAtNPC" }], + "Type": "Function", + "Name": "IsAtTransmogNPC" + }, + { + "Documentation": [ + "Returns true if the only pending for the location's slot is a ToggleOff for the secondary appearance." + ], + "Type": "Function", + "Name": "IsSlotBeingCollapsed", + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isBeingCollapsed" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + } + ] + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "outfitID" }], + "Type": "Function", + "Name": "LoadOutfit" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + }, + { + "Nilable": false, + "Mixin": "TransmogPendingInfoMixin", + "Type": "TransmogPendingInfo", + "Name": "pendingInfo" + } + ], + "Type": "Function", + "Name": "SetPending" + } + ], + "Type": "System", + "Name": "Transmogrify", + "Events": [ + { + "LiteralName": "TRANSMOG_COLLECTION_CAMERA_UPDATE", + "Type": "Event", + "Name": "TransmogCollectionCameraUpdate" + }, + { + "LiteralName": "TRANSMOG_COLLECTION_ITEM_FAVORITE_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" } + ], + "Type": "Event", + "Name": "TransmogCollectionItemFavoriteUpdate" + }, + { + "LiteralName": "TRANSMOG_COLLECTION_ITEM_UPDATE", + "Type": "Event", + "Name": "TransmogCollectionItemUpdate" + }, + { + "LiteralName": "TRANSMOG_COLLECTION_SOURCE_ADDED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Event", + "Name": "TransmogCollectionSourceAdded" + }, + { + "LiteralName": "TRANSMOG_COLLECTION_SOURCE_REMOVED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Event", + "Name": "TransmogCollectionSourceRemoved" + }, + { + "LiteralName": "TRANSMOG_COLLECTION_UPDATED", + "Payload": [ + { "Nilable": true, "Type": "luaIndex", "Name": "collectionIndex" }, + { "Nilable": true, "Type": "number", "Name": "modID" }, + { "Nilable": true, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": true, "Type": "cstring", "Name": "reason" } + ], + "Type": "Event", + "Name": "TransmogCollectionUpdated" + }, + { + "LiteralName": "TRANSMOG_COSMETIC_COLLECTION_SOURCE_ADDED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Event", + "Name": "TransmogCosmeticCollectionSourceAdded" + }, + { + "LiteralName": "TRANSMOG_SEARCH_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "TransmogSearchType", "Name": "searchType" }, + { "Nilable": true, "Type": "TransmogCollectionType", "Name": "collectionType" } + ], + "Type": "Event", + "Name": "TransmogSearchUpdated" + }, + { + "LiteralName": "TRANSMOG_SETS_UPDATE_FAVORITE", + "Type": "Event", + "Name": "TransmogSetsUpdateFavorite" + }, + { + "LiteralName": "TRANSMOG_SOURCE_COLLECTABILITY_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" }, + { "Nilable": false, "Type": "bool", "Name": "collectable" } + ], + "Type": "Event", + "Name": "TransmogSourceCollectabilityUpdate" + }, + { + "LiteralName": "TRANSMOGRIFY_CLOSE", + "Type": "Event", + "Name": "TransmogrifyClose" + }, + { + "LiteralName": "TRANSMOGRIFY_ITEM_UPDATE", + "Type": "Event", + "Name": "TransmogrifyItemUpdate" + }, + { "LiteralName": "TRANSMOGRIFY_OPEN", "Type": "Event", "Name": "TransmogrifyOpen" }, + { + "LiteralName": "TRANSMOGRIFY_SUCCESS", + "Payload": [ + { + "Nilable": false, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + } + ], + "Type": "Event", + "Name": "TransmogrifySuccess" + }, + { + "LiteralName": "TRANSMOGRIFY_UPDATE", + "Payload": [ + { + "Nilable": true, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + }, + { "Nilable": true, "Type": "cstring", "Name": "action" } + ], + "Type": "Event", + "Name": "TransmogrifyUpdate" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "TransmogPendingType", + "Fields": [ + { "EnumValue": 0, "Type": "TransmogPendingType", "Name": "Apply" }, + { "EnumValue": 1, "Type": "TransmogPendingType", "Name": "Revert" }, + { "EnumValue": 2, "Type": "TransmogPendingType", "Name": "ToggleOn" }, + { "EnumValue": 3, "Type": "TransmogPendingType", "Name": "ToggleOff" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "itemLink" }, + { "Nilable": false, "Type": "string", "Name": "text" } + ], + "Type": "Structure", + "Name": "TransmogApplyWarningInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" }, + { "Nilable": false, "Type": "number", "Name": "invSlot" }, + { "Nilable": false, "Type": "string", "Name": "invType" } + ], + "Type": "Structure", + "Name": "TransmogSetItemInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "bool", "Name": "isTransmogrified" }, + { "Nilable": false, "Type": "bool", "Name": "hasPending" }, + { "Nilable": false, "Type": "bool", "Name": "isPendingCollected" }, + { "Nilable": false, "Type": "bool", "Name": "canTransmogrify" }, + { "Nilable": false, "Type": "number", "Name": "cannotTransmogrifyReason" }, + { "Nilable": false, "Type": "bool", "Name": "hasUndo" }, + { "Nilable": false, "Type": "bool", "Name": "isHideVisual" }, + { "Nilable": true, "Type": "fileID", "Name": "texture" } + ], + "Type": "Structure", + "Name": "TransmogSlotInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "baseSourceID" }, + { "Nilable": false, "Type": "number", "Name": "baseVisualID" }, + { "Nilable": false, "Type": "number", "Name": "appliedSourceID" }, + { "Nilable": false, "Type": "number", "Name": "appliedVisualID" }, + { "Nilable": false, "Type": "number", "Name": "pendingSourceID" }, + { "Nilable": false, "Type": "number", "Name": "pendingVisualID" }, + { "Nilable": false, "Type": "bool", "Name": "hasUndo" }, + { "Nilable": false, "Type": "bool", "Name": "isHideVisual" }, + { "Nilable": false, "Type": "number", "Name": "itemSubclass" } + ], + "Type": "Structure", + "Name": "TransmogSlotVisualInfo" + } + ] + }, + { + "Namespace": "C_TransmogCollection", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasItemData" }, + { "Nilable": false, "Type": "bool", "Name": "canCollect" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sourceID" }], + "Type": "Function", + "Name": "AccountCanCollectSource" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "bool", + "Name": "areAllCollectionTypeFiltersChecked" + } + ], + "Type": "Function", + "Name": "AreAllCollectionTypeFiltersChecked" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "areAllSourceTypeFiltersChecked" } + ], + "Type": "Function", + "Name": "AreAllSourceTypeFiltersChecked" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "canAppearanceBeDisplayedOnPlayer" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemAppearanceID" }], + "Type": "Function", + "Name": "CanAppearanceBeDisplayedOnPlayer" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canHaveIllusion" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "appearanceID" }], + "Type": "Function", + "Name": "CanAppearanceHaveIllusion" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "visualID" }], + "Type": "Function", + "Name": "ClearNewAppearance" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "completed" }], + "Arguments": [ + { "Nilable": false, "Type": "TransmogSearchType", "Name": "searchType" } + ], + "Type": "Function", + "Name": "ClearSearch" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "outfitID" }], + "Type": "Function", + "Name": "DeleteOutfit" + }, + { "Type": "Function", "Name": "EndSearch" }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "itemModifiedAppearanceIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemAppearanceID" }], + "Type": "Function", + "Name": "GetAllAppearanceSources" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "shown" }], + "Type": "Function", + "Name": "GetAllFactionsShown" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "shown" }], + "Type": "Function", + "Name": "GetAllRacesShown" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "cameraID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": true, "Type": "TransmogCameraVariation", "Name": "variation" } + ], + "Type": "Function", + "Name": "GetAppearanceCameraID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "cameraID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" }, + { "Nilable": true, "Type": "TransmogCameraVariation", "Name": "variation" } + ], + "Type": "Function", + "Name": "GetAppearanceCameraIDBySource" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "TransmogAppearanceInfoBySourceData", + "Name": "info" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Function", + "Name": "GetAppearanceInfoBySource" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TransmogAppearanceJournalEncounterInfo", + "Type": "table", + "Name": "encounterInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Function", + "Name": "GetAppearanceSourceDrops" + }, + { + "Returns": [ + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "category" }, + { "Nilable": false, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": false, "Type": "bool", "Name": "canHaveIllusion" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "bool", "Name": "isCollected" }, + { "Nilable": false, "Type": "string", "Name": "itemLink" }, + { "Nilable": false, "Type": "string", "Name": "transmoglink" }, + { "Nilable": true, "Type": "luaIndex", "Name": "sourceType" }, + { "Nilable": false, "Type": "number", "Name": "itemSubClass" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Function", + "Name": "GetAppearanceSourceInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AppearanceSourceInfo", + "Type": "table", + "Name": "sources" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "appearanceID" }, + { "Nilable": true, "Type": "TransmogCollectionType", "Name": "categoryType" }, + { + "Nilable": true, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + } + ], + "Type": "Function", + "Name": "GetAppearanceSources" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "hyperlink" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "appearanceID" }], + "Type": "Function", + "Name": "GetArtifactAppearanceStrings" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TransmogCategoryAppearanceInfo", + "Type": "table", + "Name": "appearances" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "category" }, + { + "Nilable": true, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + } + ], + "Type": "Function", + "Name": "GetCategoryAppearances" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "count" }], + "Arguments": [ + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "category" } + ], + "Type": "Function", + "Name": "GetCategoryCollectedCount" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "TransmogCollectionType", + "Name": "collectionCategory" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Function", + "Name": "GetCategoryForItem" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isWeapon" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "canHaveIllusions" + }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "canMainHand" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "canOffHand" } + ], + "Arguments": [ + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "category" } + ], + "Type": "Function", + "Name": "GetCategoryInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "total" }], + "Arguments": [ + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "category" } + ], + "Type": "Function", + "Name": "GetCategoryTotal" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "classID" }], + "Type": "Function", + "Name": "GetClassFilter" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "shown" }], + "Type": "Function", + "Name": "GetCollectedShown" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "appearanceID" }], + "Type": "Function", + "Name": "GetFallbackWeaponAppearance" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "count" }], + "Arguments": [ + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "category" } + ], + "Type": "Function", + "Name": "GetFilteredCategoryCollectedCount" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "total" }], + "Arguments": [ + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "category" } + ], + "Type": "Function", + "Name": "GetFilteredCategoryTotal" + }, + { + "Returns": [{ "Nilable": false, "Type": "TransmogIllusionInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "illusionID" }], + "Type": "Function", + "Name": "GetIllusionInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "hyperlink" }, + { "Nilable": true, "Type": "string", "Name": "sourceText" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "illusionID" }], + "Type": "Function", + "Name": "GetIllusionStrings" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TransmogIllusionInfo", + "Type": "table", + "Name": "illusions" + } + ], + "Type": "Function", + "Name": "GetIllusions" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ItemTransmogInfo", + "Type": "table", + "Name": "list" + } + ], + "Type": "Function", + "Name": "GetInspectItemTransmogInfoList" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFavorite" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "itemAppearanceID" }], + "Type": "Function", + "Name": "GetIsAppearanceFavorite" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "GetItemInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ItemTransmogInfo", + "Type": "table", + "Name": "list" + } + ], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "hyperlink" }], + "Type": "Function", + "Name": "GetItemTransmogInfoListFromOutfitHyperlink" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "visualID" }, + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "category" } + ], + "Type": "Function", + "Name": "GetLatestAppearance" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxOutfits" }], + "Type": "Function", + "Name": "GetNumMaxOutfits" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "count" }], + "Type": "Function", + "Name": "GetNumTransmogSources" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "hyperlink" }], + "Arguments": [ + { + "Nilable": false, + "InnerType": "ItemTransmogInfo", + "Type": "table", + "Name": "itemTransmogInfoList" + } + ], + "Type": "Function", + "Name": "GetOutfitHyperlinkFromItemTransmogInfoList" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "outfitID" }], + "Type": "Function", + "Name": "GetOutfitInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ItemTransmogInfo", + "Type": "table", + "Name": "list" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "outfitID" }], + "Type": "Function", + "Name": "GetOutfitItemTransmogInfoList" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "outfitID" } + ], + "Type": "Function", + "Name": "GetOutfits" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "pairedItemModifiedAppearanceID" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Function", + "Name": "GetPairedArtifactAppearance" + }, + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "icon" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Function", + "Name": "GetSourceIcon" + }, + { + "Returns": [ + { "Nilable": false, "Type": "AppearanceSourceInfo", "Name": "sourceInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sourceID" }], + "Type": "Function", + "Name": "GetSourceInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "itemID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Function", + "Name": "GetSourceItemID" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "holidayName" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Function", + "Name": "GetSourceRequiredHoliday" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "shown" }], + "Type": "Function", + "Name": "GetUncollectedShown" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AppearanceSourceInfo", + "Type": "table", + "Name": "sources" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "appearanceID" }, + { "Nilable": false, "Type": "number", "Name": "classID" }, + { "Nilable": true, "Type": "TransmogCollectionType", "Name": "categoryType" }, + { + "Nilable": true, + "Mixin": "TransmogLocationMixin", + "Type": "TransmogLocation", + "Name": "transmogLocation" + } + ], + "Type": "Function", + "Name": "GetValidAppearanceSourcesForClass" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasFavorites" }], + "Type": "Function", + "Name": "HasFavorites" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isHiddenVisual" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "appearanceID" }], + "Type": "Function", + "Name": "IsAppearanceHiddenVisual" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isValid" }], + "Arguments": [ + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "category" }, + { "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" } + ], + "Type": "Function", + "Name": "IsCategoryValidForItem" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isNew" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "visualID" }], + "Type": "Function", + "Name": "IsNewAppearance" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLoading" }], + "Type": "Function", + "Name": "IsSearchDBLoading" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "inProgress" }], + "Arguments": [ + { "Nilable": false, "Type": "TransmogSearchType", "Name": "searchType" } + ], + "Type": "Function", + "Name": "IsSearchInProgress" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "checked" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "IsSourceTypeFilterChecked" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isUsingDefaultFilters" } + ], + "Type": "Function", + "Name": "IsUsingDefaultFilters" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "outfitID" }, + { + "Nilable": false, + "InnerType": "ItemTransmogInfo", + "Type": "table", + "Name": "itemTransmogInfoList" + } + ], + "Type": "Function", + "Name": "ModifyOutfit" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "outfitID" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { + "Nilable": false, + "InnerType": "ItemTransmogInfo", + "Type": "table", + "Name": "itemTransmogInfoList" + } + ], + "Type": "Function", + "Name": "NewOutfit" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasItemData" }, + { "Nilable": false, "Type": "bool", "Name": "canCollect" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sourceID" }], + "Type": "Function", + "Name": "PlayerCanCollectSource" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasTransmog" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { + "Nilable": false, + "Default": 0, + "Type": "number", + "Name": "itemAppearanceModID" + } + ], + "Type": "Function", + "Name": "PlayerHasTransmog" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasTransmog" }], + "Arguments": [{ "Nilable": false, "Type": "ItemInfo", "Name": "itemInfo" }], + "Type": "Function", + "Name": "PlayerHasTransmogByItemInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasTransmog" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemModifiedAppearanceID" } + ], + "Type": "Function", + "Name": "PlayerHasTransmogItemModifiedAppearance" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isKnown" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sourceID" }], + "Type": "Function", + "Name": "PlayerKnowsSource" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "outfitID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" } + ], + "Type": "Function", + "Name": "RenameOutfit" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "progress" }], + "Arguments": [ + { "Nilable": false, "Type": "TransmogSearchType", "Name": "searchType" } + ], + "Type": "Function", + "Name": "SearchProgress" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "size" }], + "Arguments": [ + { "Nilable": false, "Type": "TransmogSearchType", "Name": "searchType" } + ], + "Type": "Function", + "Name": "SearchSize" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "checked" }], + "Type": "Function", + "Name": "SetAllCollectionTypeFilters" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "shown" }], + "Type": "Function", + "Name": "SetAllFactionsShown" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "shown" }], + "Type": "Function", + "Name": "SetAllRacesShown" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "checked" }], + "Type": "Function", + "Name": "SetAllSourceTypeFilters" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "classID" }], + "Type": "Function", + "Name": "SetClassFilter" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "shown" }], + "Type": "Function", + "Name": "SetCollectedShown" + }, + { "Type": "Function", "Name": "SetDefaultFilters" }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" } + ], + "Type": "Function", + "Name": "SetIsAppearanceFavorite" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "completed" }], + "Arguments": [ + { "Nilable": false, "Type": "TransmogSearchType", "Name": "searchType" }, + { "Nilable": false, "Type": "string", "Name": "searchText" } + ], + "Type": "Function", + "Name": "SetSearch" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "category" } + ], + "Type": "Function", + "Name": "SetSearchAndFilterCategory" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "bool", "Name": "checked" } + ], + "Type": "Function", + "Name": "SetSourceTypeFilter" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "shown" }], + "Type": "Function", + "Name": "SetUncollectedShown" + }, + { "Type": "Function", "Name": "UpdateUsableAppearances" } + ], + "Type": "System", + "Name": "TransmogrifyCollection", + "Events": [], + "Tables": [ + { + "Type": "Enumeration", + "Name": "TransmogCameraVariation", + "Fields": [ + { "EnumValue": 0, "Type": "TransmogCameraVariation", "Name": "None" }, + { "EnumValue": 1, "Type": "TransmogCameraVariation", "Name": "RightShoulder" }, + { "EnumValue": 1, "Type": "TransmogCameraVariation", "Name": "CloakBackpack" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "appearanceID" }, + { "Nilable": false, "Type": "bool", "Name": "appearanceIsCollected" }, + { "Nilable": false, "Type": "bool", "Name": "sourceIsCollected" }, + { "Nilable": false, "Type": "bool", "Name": "sourceIsCollectedPermanent" }, + { "Nilable": false, "Type": "bool", "Name": "sourceIsCollectedConditional" }, + { "Nilable": false, "Type": "bool", "Name": "meetsTransmogPlayerCondition" }, + { + "Nilable": false, + "Type": "bool", + "Name": "appearanceHasAnyNonLevelRequirements" + }, + { + "Nilable": false, + "Type": "bool", + "Name": "appearanceMeetsNonLevelRequirements" + }, + { "Nilable": false, "Type": "bool", "Name": "appearanceIsUsable" }, + { "Nilable": false, "Type": "number", "Name": "appearanceNumSources" }, + { "Nilable": false, "Type": "bool", "Name": "sourceIsKnown" }, + { "Nilable": false, "Type": "bool", "Name": "canDisplayOnPlayer" }, + { "Nilable": false, "Type": "bool", "Name": "isAnySourceValidForPlayer" } + ], + "Type": "Structure", + "Name": "TransmogAppearanceInfoBySourceData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "instance" }, + { "Nilable": false, "Type": "number", "Name": "instanceType" }, + { "Nilable": false, "InnerType": "string", "Type": "table", "Name": "tiers" }, + { "Nilable": false, "Type": "string", "Name": "encounter" }, + { + "Nilable": false, + "InnerType": "string", + "Type": "table", + "Name": "difficulties" + } + ], + "Type": "Structure", + "Name": "TransmogAppearanceJournalEncounterInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "TransmogCollectionType", "Name": "category" }, + { "Nilable": false, "Type": "number", "Name": "itemAppearanceID" }, + { "Nilable": false, "Type": "bool", "Name": "canHaveIllusion" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "bool", "Name": "isCollected" }, + { "Nilable": false, "Type": "string", "Name": "itemLink" }, + { "Nilable": false, "Type": "string", "Name": "transmoglink" }, + { "Nilable": true, "Type": "luaIndex", "Name": "sourceType" }, + { "Nilable": false, "Type": "number", "Name": "itemSubClass" } + ], + "Type": "Structure", + "Name": "TransmogAppearanceSourceInfoData" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "visualID" }, + { "Nilable": false, "Type": "bool", "Name": "isCollected" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" }, + { "Nilable": false, "Type": "bool", "Name": "isHideVisual" }, + { "Nilable": false, "Type": "bool", "Name": "canDisplayOnPlayer" }, + { "Nilable": false, "Type": "number", "Name": "uiOrder" }, + { "Nilable": false, "Type": "number", "Name": "exclusions" }, + { "Nilable": true, "Type": "luaIndex", "Name": "restrictedSlotID" }, + { "Nilable": false, "Type": "bool", "Name": "isUsable" }, + { "Nilable": false, "Type": "bool", "Name": "hasRequiredHoliday" }, + { "Nilable": false, "Type": "bool", "Name": "hasActiveRequiredHoliday" }, + { + "Nilable": true, + "Documentation": ["For internal testing only"], + "Type": "bool", + "Name": "alwaysShowItem" + } + ], + "Type": "Structure", + "Name": "TransmogCategoryAppearanceInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isWeapon" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "canHaveIllusions" + }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "canMainHand" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "canOffHand" } + ], + "Type": "Structure", + "Name": "TransmogCategoryInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "visualID" }, + { "Nilable": false, "Type": "number", "Name": "sourceID" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" }, + { "Nilable": false, "Type": "bool", "Name": "isCollected" }, + { "Nilable": false, "Type": "bool", "Name": "isUsable" }, + { "Nilable": false, "Type": "bool", "Name": "isHideVisual" } + ], + "Type": "Structure", + "Name": "TransmogIllusionInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "fileID", "Name": "icon" } + ], + "Type": "Structure", + "Name": "TransmogOutfitInfo" + } + ] + }, + { + "Namespace": "C_TransmogSets", + "Functions": [ + { "Type": "Function", "Name": "ClearLatestSource" }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sourceID" }], + "Type": "Function", + "Name": "ClearNewSource" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "transmogSetID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slot" } + ], + "Type": "Function", + "Name": "ClearSetNewSourcesForSlot" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TransmogSetInfo", + "Type": "table", + "Name": "sets" + } + ], + "Type": "Function", + "Name": "GetAllSets" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "sources" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "transmogSetID" }], + "Type": "Function", + "Name": "GetAllSourceIDs" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "baseTransmogSetID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "transmogSetID" }], + "Type": "Function", + "Name": "GetBaseSetID" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TransmogSetInfo", + "Type": "table", + "Name": "sets" + } + ], + "Type": "Function", + "Name": "GetBaseSets" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isChecked" }], + "Arguments": [{ "Nilable": false, "Type": "luaIndex", "Name": "index" }], + "Type": "Function", + "Name": "GetBaseSetsFilter" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "detailsCameraID" }, + { "Nilable": true, "Type": "number", "Name": "vendorCameraID" } + ], + "Type": "Function", + "Name": "GetCameraIDs" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numCollected" }, + { "Nilable": false, "Type": "number", "Name": "numTotal" } + ], + "Type": "Function", + "Name": "GetFilteredBaseSetsCounts" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numCollected" }, + { "Nilable": false, "Type": "number", "Name": "numTotal" } + ], + "Type": "Function", + "Name": "GetFullBaseSetsCounts" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isFavorite" }, + { "Nilable": false, "Type": "bool", "Name": "isGroupFavorite" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "transmogSetID" }], + "Type": "Function", + "Name": "GetIsFavorite" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "sourceID" }], + "Type": "Function", + "Name": "GetLatestSource" + }, + { + "Returns": [{ "Nilable": false, "Type": "TransmogSetInfo", "Name": "set" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "transmogSetID" }], + "Type": "Function", + "Name": "GetSetInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "sourceIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "transmogSetID" }], + "Type": "Function", + "Name": "GetSetNewSources" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TransmogSetPrimaryAppearanceInfo", + "Type": "table", + "Name": "apppearances" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "transmogSetID" }], + "Type": "Function", + "Name": "GetSetPrimaryAppearances" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "setIDs" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sourceID" }], + "Type": "Function", + "Name": "GetSetsContainingSourceID" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "number", "Type": "table", "Name": "sources" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "transmogSetID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slot" } + ], + "Type": "Function", + "Name": "GetSourceIDsForSlot" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "AppearanceSourceInfo", + "Type": "table", + "Name": "sources" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "transmogSetID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slot" } + ], + "Type": "Function", + "Name": "GetSourcesForSlot" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "classID" }], + "Type": "Function", + "Name": "GetTransmogSetsClassFilter" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TransmogSetInfo", + "Type": "table", + "Name": "sets" + } + ], + "Type": "Function", + "Name": "GetUsableSets" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numCollected" }, + { "Nilable": false, "Type": "number", "Name": "numTotal" } + ], + "Type": "Function", + "Name": "GetValidBaseSetsCountsForCharacter" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "TransmogSetInfo", + "Type": "table", + "Name": "sets" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "transmogSetID" }], + "Type": "Function", + "Name": "GetVariantSets" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasUsableSets" }], + "Type": "Function", + "Name": "HasUsableSets" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCollected" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "transmogSetID" }], + "Type": "Function", + "Name": "IsBaseSetCollected" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isNew" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sourceID" }], + "Type": "Function", + "Name": "IsNewSource" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isVisible" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "transmogSetID" }], + "Type": "Function", + "Name": "IsSetVisible" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isUsingDefaultBaseSetsFilters" } + ], + "Type": "Function", + "Name": "IsUsingDefaultBaseSetsFilters" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "bool", "Name": "isChecked" } + ], + "Type": "Function", + "Name": "SetBaseSetsFilter" + }, + { "Type": "Function", "Name": "SetDefaultBaseSetsFilters" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasNewSources" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "transmogSetID" }], + "Type": "Function", + "Name": "SetHasNewSources" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasNewSources" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "transmogSetID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "slot" } + ], + "Type": "Function", + "Name": "SetHasNewSourcesForSlot" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "transmogSetID" }, + { "Nilable": false, "Type": "bool", "Name": "isFavorite" } + ], + "Type": "Function", + "Name": "SetIsFavorite" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "classID" }], + "Type": "Function", + "Name": "SetTransmogSetsClassFilter" + } + ], + "Type": "System", + "Name": "TransmogrifySets", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "setID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "number", "Name": "baseSetID" }, + { "Nilable": true, "Type": "cstring", "Name": "description" }, + { "Nilable": true, "Type": "cstring", "Name": "label" }, + { "Nilable": false, "Type": "number", "Name": "expansionID" }, + { "Nilable": false, "Type": "number", "Name": "patchID" }, + { "Nilable": false, "Type": "number", "Name": "uiOrder" }, + { "Nilable": false, "Type": "number", "Name": "classMask" }, + { "Nilable": false, "Type": "bool", "Name": "hiddenUntilCollected" }, + { "Nilable": true, "Type": "cstring", "Name": "requiredFaction" }, + { "Nilable": false, "Type": "bool", "Name": "collected" }, + { "Nilable": false, "Type": "bool", "Name": "favorite" }, + { "Nilable": false, "Type": "bool", "Name": "limitedTimeSet" }, + { "Nilable": false, "Type": "bool", "Name": "validForCharacter" } + ], + "Type": "Structure", + "Name": "TransmogSetInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "appearanceID" }, + { "Nilable": false, "Type": "bool", "Name": "collected" } + ], + "Type": "Structure", + "Name": "TransmogSetPrimaryAppearanceInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "TransmogCollectionType", + "Fields": [ + { "EnumValue": 0, "Type": "TransmogCollectionType", "Name": "None" }, + { "EnumValue": 1, "Type": "TransmogCollectionType", "Name": "Head" }, + { "EnumValue": 2, "Type": "TransmogCollectionType", "Name": "Shoulder" }, + { "EnumValue": 3, "Type": "TransmogCollectionType", "Name": "Back" }, + { "EnumValue": 4, "Type": "TransmogCollectionType", "Name": "Chest" }, + { "EnumValue": 5, "Type": "TransmogCollectionType", "Name": "Shirt" }, + { "EnumValue": 6, "Type": "TransmogCollectionType", "Name": "Tabard" }, + { "EnumValue": 7, "Type": "TransmogCollectionType", "Name": "Wrist" }, + { "EnumValue": 8, "Type": "TransmogCollectionType", "Name": "Hands" }, + { "EnumValue": 9, "Type": "TransmogCollectionType", "Name": "Waist" }, + { "EnumValue": 10, "Type": "TransmogCollectionType", "Name": "Legs" }, + { "EnumValue": 11, "Type": "TransmogCollectionType", "Name": "Feet" }, + { "EnumValue": 12, "Type": "TransmogCollectionType", "Name": "Wand" }, + { "EnumValue": 13, "Type": "TransmogCollectionType", "Name": "OneHAxe" }, + { "EnumValue": 14, "Type": "TransmogCollectionType", "Name": "OneHSword" }, + { "EnumValue": 15, "Type": "TransmogCollectionType", "Name": "OneHMace" }, + { "EnumValue": 16, "Type": "TransmogCollectionType", "Name": "Dagger" }, + { "EnumValue": 17, "Type": "TransmogCollectionType", "Name": "Fist" }, + { "EnumValue": 18, "Type": "TransmogCollectionType", "Name": "Shield" }, + { "EnumValue": 19, "Type": "TransmogCollectionType", "Name": "Holdable" }, + { "EnumValue": 20, "Type": "TransmogCollectionType", "Name": "TwoHAxe" }, + { "EnumValue": 21, "Type": "TransmogCollectionType", "Name": "TwoHSword" }, + { "EnumValue": 22, "Type": "TransmogCollectionType", "Name": "TwoHMace" }, + { "EnumValue": 23, "Type": "TransmogCollectionType", "Name": "Staff" }, + { "EnumValue": 24, "Type": "TransmogCollectionType", "Name": "Polearm" }, + { "EnumValue": 25, "Type": "TransmogCollectionType", "Name": "Bow" }, + { "EnumValue": 26, "Type": "TransmogCollectionType", "Name": "Gun" }, + { "EnumValue": 27, "Type": "TransmogCollectionType", "Name": "Crossbow" }, + { "EnumValue": 28, "Type": "TransmogCollectionType", "Name": "Warglaives" }, + { "EnumValue": 29, "Type": "TransmogCollectionType", "Name": "Paired" } + ], + "MaxValue": 29, + "MinValue": 0, + "NumValues": 30 + }, + { + "Type": "Enumeration", + "Name": "TransmogModification", + "Fields": [ + { "EnumValue": 0, "Type": "TransmogModification", "Name": "Main" }, + { "EnumValue": 1, "Type": "TransmogModification", "Name": "Secondary" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "TransmogSearchType", + "Fields": [ + { "EnumValue": 1, "Type": "TransmogSearchType", "Name": "Items" }, + { "EnumValue": 2, "Type": "TransmogSearchType", "Name": "BaseSets" }, + { "EnumValue": 3, "Type": "TransmogSearchType", "Name": "UsableSets" } + ], + "MaxValue": 3, + "MinValue": 1, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "TransmogSource", + "Fields": [ + { "EnumValue": 0, "Type": "TransmogSource", "Name": "None" }, + { "EnumValue": 1, "Type": "TransmogSource", "Name": "JournalEncounter" }, + { "EnumValue": 2, "Type": "TransmogSource", "Name": "Quest" }, + { "EnumValue": 3, "Type": "TransmogSource", "Name": "Vendor" }, + { "EnumValue": 4, "Type": "TransmogSource", "Name": "WorldDrop" }, + { "EnumValue": 5, "Type": "TransmogSource", "Name": "HiddenUntilCollected" }, + { "EnumValue": 6, "Type": "TransmogSource", "Name": "CantCollect" }, + { "EnumValue": 7, "Type": "TransmogSource", "Name": "Achievement" }, + { "EnumValue": 8, "Type": "TransmogSource", "Name": "Profession" }, + { "EnumValue": 9, "Type": "TransmogSource", "Name": "NotValidForTransmog" }, + { "EnumValue": 10, "Type": "TransmogSource", "Name": "TradingPost" } + ], + "MaxValue": 10, + "MinValue": 0, + "NumValues": 11 + }, + { + "Type": "Enumeration", + "Name": "TransmogType", + "Fields": [ + { "EnumValue": 0, "Type": "TransmogType", "Name": "Appearance" }, + { "EnumValue": 1, "Type": "TransmogType", "Name": "Illusion" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "TransmogUseErrorType", + "Fields": [ + { "EnumValue": 0, "Type": "TransmogUseErrorType", "Name": "None" }, + { "EnumValue": 1, "Type": "TransmogUseErrorType", "Name": "PlayerCondition" }, + { "EnumValue": 2, "Type": "TransmogUseErrorType", "Name": "Skill" }, + { "EnumValue": 3, "Type": "TransmogUseErrorType", "Name": "Ability" }, + { "EnumValue": 4, "Type": "TransmogUseErrorType", "Name": "Reputation" }, + { "EnumValue": 5, "Type": "TransmogUseErrorType", "Name": "Holiday" }, + { "EnumValue": 6, "Type": "TransmogUseErrorType", "Name": "HotRecheckFailed" }, + { "EnumValue": 7, "Type": "TransmogUseErrorType", "Name": "Class" }, + { "EnumValue": 8, "Type": "TransmogUseErrorType", "Name": "Race" }, + { "EnumValue": 9, "Type": "TransmogUseErrorType", "Name": "Faction" }, + { "EnumValue": 10, "Type": "TransmogUseErrorType", "Name": "ItemProficiency" } + ], + "MaxValue": 10, + "MinValue": 0, + "NumValues": 11 + } + ] + }, + { + "Namespace": "C_Tutorial", + "Functions": [ + { "Type": "Function", "Name": "AbandonTutorialArea" }, + { "Type": "Function", "Name": "ReturnToTutorialArea" } + ], + "Type": "System", + "Name": "Tutorial", + "Events": [ + { + "LiteralName": "LEAVING_TUTORIAL_AREA", + "Type": "Event", + "Name": "LeavingTutorialArea" + }, + { + "LiteralName": "NPE_TUTORIAL_UPDATE", + "Type": "Event", + "Name": "NpeTutorialUpdate" + }, + { + "LiteralName": "TUTORIAL_HIGHLIGHT_SPELL", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "cstring", "Name": "tutorialGlobalStringTag" } + ], + "Type": "Event", + "Name": "TutorialHighlightSpell" + }, + { + "LiteralName": "TUTORIAL_TRIGGER", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "tutorialIndex" }, + { "Nilable": false, "Type": "bool", "Name": "forceShow" } + ], + "Type": "Event", + "Name": "TutorialTrigger" + }, + { + "LiteralName": "TUTORIAL_UNHIGHLIGHT_SPELL", + "Type": "Event", + "Name": "TutorialUnhighlightSpell" + } + ], + "Tables": [] + }, + { + "Namespace": "C_UIColor", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "DBColorExport", + "Type": "table", + "Name": "colors" + } + ], + "Type": "Function", + "Name": "GetColors" + } + ], + "Type": "System", + "Name": "UIColor", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "baseTag" }, + { + "Nilable": false, + "Mixin": "ColorMixin", + "Type": "colorRGBA", + "Name": "color" + } + ], + "Type": "Structure", + "Name": "DBColorExport" + } + ] + }, + { + "Namespace": "C_EventToastManager", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "EventToastInfo", + "Type": "table", + "Name": "toastInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "level" }], + "Type": "Function", + "Name": "GetLevelUpDisplayToastsFromLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "EventToastInfo", "Name": "toastInfo" }], + "Type": "Function", + "Name": "GetNextToastToDisplay" + }, + { "Type": "Function", "Name": "RemoveCurrentToast" } + ], + "Type": "System", + "Name": "UIEventToastManagerInfo", + "Events": [ + { + "LiteralName": "DISPLAY_EVENT_TOAST_LINK", + "Payload": [{ "Nilable": false, "Type": "string", "Name": "link" }], + "Type": "Event", + "Name": "DisplayEventToastLink" + }, + { + "LiteralName": "DISPLAY_EVENT_TOASTS", + "Type": "Event", + "Name": "DisplayEventToasts" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "EventToastDisplayType", + "Fields": [ + { "EnumValue": 0, "Type": "EventToastDisplayType", "Name": "NormalSingleLine" }, + { "EnumValue": 1, "Type": "EventToastDisplayType", "Name": "NormalBlockText" }, + { + "EnumValue": 2, + "Type": "EventToastDisplayType", + "Name": "NormalTitleAndSubTitle" + }, + { + "EnumValue": 3, + "Type": "EventToastDisplayType", + "Name": "NormalTextWithIcon" + }, + { + "EnumValue": 4, + "Type": "EventToastDisplayType", + "Name": "LargeTextWithIcon" + }, + { + "EnumValue": 5, + "Type": "EventToastDisplayType", + "Name": "NormalTextWithIconAndRarity" + }, + { "EnumValue": 6, "Type": "EventToastDisplayType", "Name": "Scenario" }, + { "EnumValue": 7, "Type": "EventToastDisplayType", "Name": "ChallengeMode" }, + { + "EnumValue": 8, + "Type": "EventToastDisplayType", + "Name": "ScenarioClickExpand" + }, + { + "EnumValue": 9, + "Type": "EventToastDisplayType", + "Name": "WeeklyRewardUnlock" + }, + { + "EnumValue": 10, + "Type": "EventToastDisplayType", + "Name": "WeeklyRewardUpgrade" + }, + { + "EnumValue": 11, + "Type": "EventToastDisplayType", + "Name": "FlightpointDiscovered" + }, + { + "EnumValue": 12, + "Type": "EventToastDisplayType", + "Name": "CapstoneUnlocked" + }, + { + "EnumValue": 13, + "Type": "EventToastDisplayType", + "Name": "SingleLineWithIcon" + } + ], + "MaxValue": 13, + "MinValue": 0, + "NumValues": 14 + }, + { + "Type": "Enumeration", + "Name": "EventToastEventType", + "Fields": [ + { "EnumValue": 0, "Type": "EventToastEventType", "Name": "LevelUp" }, + { "EnumValue": 1, "Type": "EventToastEventType", "Name": "LevelUpSpell" }, + { "EnumValue": 2, "Type": "EventToastEventType", "Name": "LevelUpDungeon" }, + { "EnumValue": 3, "Type": "EventToastEventType", "Name": "LevelUpRaid" }, + { "EnumValue": 4, "Type": "EventToastEventType", "Name": "LevelUpPvP" }, + { + "EnumValue": 5, + "Type": "EventToastEventType", + "Name": "PetBattleNewAbility" + }, + { + "EnumValue": 6, + "Type": "EventToastEventType", + "Name": "PetBattleFinalRound" + }, + { "EnumValue": 7, "Type": "EventToastEventType", "Name": "PetBattleCapture" }, + { + "EnumValue": 8, + "Type": "EventToastEventType", + "Name": "BattlePetLevelChanged" + }, + { + "EnumValue": 9, + "Type": "EventToastEventType", + "Name": "BattlePetLevelUpAbility" + }, + { "EnumValue": 10, "Type": "EventToastEventType", "Name": "QuestBossEmote" }, + { + "EnumValue": 11, + "Type": "EventToastEventType", + "Name": "MythicPlusWeeklyRecord" + }, + { "EnumValue": 12, "Type": "EventToastEventType", "Name": "QuestTurnedIn" }, + { "EnumValue": 13, "Type": "EventToastEventType", "Name": "WorldStateChange" }, + { "EnumValue": 14, "Type": "EventToastEventType", "Name": "Scenario" }, + { "EnumValue": 15, "Type": "EventToastEventType", "Name": "LevelUpOther" }, + { "EnumValue": 16, "Type": "EventToastEventType", "Name": "PlayerAuraAdded" }, + { "EnumValue": 17, "Type": "EventToastEventType", "Name": "PlayerAuraRemoved" }, + { "EnumValue": 18, "Type": "EventToastEventType", "Name": "SpellScript" }, + { "EnumValue": 19, "Type": "EventToastEventType", "Name": "CriteriaUpdated" }, + { "EnumValue": 20, "Type": "EventToastEventType", "Name": "PvPTierUpdate" }, + { "EnumValue": 21, "Type": "EventToastEventType", "Name": "SpellLearned" }, + { "EnumValue": 22, "Type": "EventToastEventType", "Name": "TreasureItem" }, + { + "EnumValue": 23, + "Type": "EventToastEventType", + "Name": "WeeklyRewardUnlock" + }, + { + "EnumValue": 24, + "Type": "EventToastEventType", + "Name": "WeeklyRewardUpgrade" + }, + { + "EnumValue": 25, + "Type": "EventToastEventType", + "Name": "FlightpointDiscovered" + } + ], + "MaxValue": 25, + "MinValue": 0, + "NumValues": 26 + }, + { + "Type": "Enumeration", + "Name": "EventToastFlags", + "Fields": [ + { + "EnumValue": 1, + "Type": "EventToastFlags", + "Name": "DisableRightClickDismiss" + } + ], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "eventToastID" }, + { "Nilable": false, "Type": "string", "Name": "title" }, + { "Nilable": false, "Type": "string", "Name": "subtitle" }, + { "Nilable": false, "Type": "string", "Name": "instructionText" }, + { "Nilable": false, "Type": "fileID", "Name": "iconFileID" }, + { "Nilable": true, "Type": "textureAtlas", "Name": "subIcon" }, + { "Nilable": false, "Type": "string", "Name": "link" }, + { "Nilable": true, "Type": "string", "Name": "qualityString" }, + { "Nilable": true, "Type": "number", "Name": "quality" }, + { "Nilable": false, "Type": "EventToastEventType", "Name": "eventType" }, + { "Nilable": false, "Type": "EventToastDisplayType", "Name": "displayType" }, + { "Nilable": false, "Type": "textureKit", "Name": "uiTextureKit" }, + { "Nilable": false, "Type": "number", "Name": "sortOrder" }, + { "Nilable": true, "Type": "number", "Name": "time" }, + { "Nilable": true, "Type": "number", "Name": "uiWidgetSetID" }, + { "Nilable": true, "Type": "number", "Name": "extraUiWidgetSetID" }, + { "Nilable": true, "Type": "string", "Name": "titleTooltip" }, + { "Nilable": true, "Type": "string", "Name": "subtitleTooltip" }, + { "Nilable": true, "Type": "number", "Name": "titleTooltipUiWidgetSetID" }, + { "Nilable": true, "Type": "number", "Name": "subtitleTooltipUiWidgetSetID" }, + { "Nilable": true, "Type": "bool", "Name": "hideDefaultAtlas" }, + { "Nilable": true, "Type": "number", "Name": "showSoundKitID" }, + { "Nilable": true, "Type": "number", "Name": "hideSoundKitID" }, + { + "Nilable": true, + "Mixin": "ColorMixin", + "Type": "colorRGB", + "Name": "colorTint" + }, + { "Nilable": false, "Type": "number", "Name": "flags" } + ], + "Type": "Structure", + "Name": "EventToastInfo" + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_FrameManager", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "shouldShow" }], + "Arguments": [{ "Nilable": false, "Type": "UIFrameType", "Name": "frameType" }], + "Type": "Function", + "Name": "GetFrameVisibilityState" + } + ], + "Type": "System", + "Name": "UIFrameManager", + "Events": [ + { + "LiteralName": "FRAME_MANAGER_UPDATE_ALL", + "Type": "Event", + "Name": "FrameManagerUpdateAll" + }, + { + "LiteralName": "FRAME_MANAGER_UPDATE_FRAME", + "Payload": [ + { "Nilable": false, "Type": "UIFrameType", "Name": "type" }, + { "Nilable": false, "Type": "bool", "Name": "show" } + ], + "Type": "Event", + "Name": "FrameManagerUpdateFrame" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "UIFrameType", + "Fields": [ + { "EnumValue": 0, "Type": "UIFrameType", "Name": "JailersTowerBuffs" } + ], + "MaxValue": 0, + "MinValue": 0, + "NumValues": 1 + } + ] + }, + { + "Namespace": "C_GenericWidgetDisplay", + "Functions": [ + { "Type": "Function", "Name": "Acknowledge" }, + { "Type": "Function", "Name": "Close" } + ], + "Type": "System", + "Name": "GenericWidgetDisplay", + "Events": [ + { + "LiteralName": "GENERIC_WIDGET_DISPLAY_SHOW", + "Payload": [ + { "Nilable": false, "Type": "GenericWidgetDisplayFrameInfo", "Name": "info" } + ], + "Type": "Event", + "Name": "GenericWidgetDisplayShow" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "uiWidgetSetID" }, + { "Nilable": true, "Type": "textureKit", "Name": "uiTextureKit" }, + { "Nilable": true, "Type": "string", "Name": "title" }, + { "Nilable": false, "Type": "number", "Name": "frameWidth" }, + { "Nilable": false, "Type": "number", "Name": "frameHeight" }, + { "Nilable": true, "Type": "string", "Name": "extraButtonText" }, + { "Nilable": true, "Type": "string", "Name": "closeButtonText" } + ], + "Type": "Structure", + "Name": "GenericWidgetDisplayFrameInfo" + } + ] + }, + { + "Namespace": "C_Macro", + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "cstring", "Name": "button" } + ], + "Type": "Function", + "Name": "RunMacroText" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "MacroExecuteLineCallback", "Name": "cb" } + ], + "Type": "Function", + "Name": "SetMacroExecuteLineCallback" + } + ], + "Type": "System", + "Name": "UIMacros", + "Events": [ + { "LiteralName": "UPDATE_MACROS", "Type": "Event", "Name": "UpdateMacros" } + ], + "Tables": [ + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "macroLine" }], + "Type": "CallbackType", + "Name": "MacroExecuteLineCallback" + } + ] + }, + { + "Namespace": "C_UI", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "notchPresent" }], + "Documentation": [ + "True if any display attached has a notch. This does not mean the current view intersects the notch." + ], + "Type": "Function", + "Name": "DoesAnyDisplayHaveNotch" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "left" }, + { "Nilable": false, "Type": "number", "Name": "right" }, + { "Nilable": false, "Type": "number", "Name": "top" }, + { "Nilable": false, "Type": "number", "Name": "bottom" } + ], + "Documentation": ["Region of screen left of screen notch. Zeros if no notch."], + "Type": "Function", + "Name": "GetTopLeftNotchSafeRegion" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "left" }, + { "Nilable": false, "Type": "number", "Name": "right" }, + { "Nilable": false, "Type": "number", "Name": "top" }, + { "Nilable": false, "Type": "number", "Name": "bottom" } + ], + "Documentation": ["Region of screen right of screen notch. Zeros if no notch."], + "Type": "Function", + "Name": "GetTopRightNotchSafeRegion" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleFrame", "Name": "uiParent" }], + "Type": "Function", + "Name": "GetUIParent" + }, + { + "Returns": [{ "Nilable": false, "Type": "SimpleFrame", "Name": "worldFrame" }], + "Type": "Function", + "Name": "GetWorldFrame" + }, + { "Type": "Function", "Name": "Reload" }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "willAvoidNotch" }], + "Documentation": [ + "UIParent will shift down to avoid notch if true. This does not mean there is a notch." + ], + "Type": "Function", + "Name": "ShouldUIParentAvoidNotch" + } + ], + "Type": "System", + "Name": "UI", + "Events": [ + { + "LiteralName": "NOTCHED_DISPLAY_MODE_CHANGED", + "Type": "Event", + "Name": "NotchedDisplayModeChanged" + }, + { "LiteralName": "UI_SCALE_CHANGED", "Type": "Event", "Name": "UiScaleChanged" } + ], + "Tables": [] + }, + { + "Namespace": "C_ModelInfo", + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "ModelSceneFrame", "Name": "modelSceneFrame" }, + { "Nilable": false, "Type": "number", "Name": "modelSceneID" } + ], + "Documentation": ["This function does nothing in public clients"], + "Type": "Function", + "Name": "AddActiveModelScene" + }, + { + "Arguments": [ + { + "Nilable": false, + "Type": "ModelSceneFrameActor", + "Name": "modelSceneFrameActor" + }, + { "Nilable": false, "Type": "number", "Name": "modelSceneActorID" } + ], + "Documentation": ["This function does nothing in public clients"], + "Type": "Function", + "Name": "AddActiveModelSceneActor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ModelSceneFrame", "Name": "modelSceneFrame" } + ], + "Documentation": ["This function does nothing in public clients"], + "Type": "Function", + "Name": "ClearActiveModelScene" + }, + { + "Arguments": [ + { + "Nilable": false, + "Type": "ModelSceneFrameActor", + "Name": "modelSceneFrameActor" + } + ], + "Documentation": ["This function does nothing in public clients"], + "Type": "Function", + "Name": "ClearActiveModelSceneActor" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "UIModelSceneActorDisplayInfo", + "Name": "actorDisplayInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "modelActorDisplayID" } + ], + "Type": "Function", + "Name": "GetModelSceneActorDisplayInfoByID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "UIModelSceneActorInfo", "Name": "actorInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "modelActorID" }], + "Type": "Function", + "Name": "GetModelSceneActorInfoByID" + }, + { + "Returns": [ + { + "Nilable": false, + "Type": "UIModelSceneCameraInfo", + "Name": "modelSceneCameraInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "modelSceneCameraID" } + ], + "Type": "Function", + "Name": "GetModelSceneCameraInfoByID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ModelSceneType", "Name": "modelSceneType" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "modelCameraIDs" + }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "modelActorsIDs" + }, + { "Nilable": false, "Type": "number", "Name": "flags" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "modelSceneID" }], + "Type": "Function", + "Name": "GetModelSceneInfoByID" + } + ], + "Type": "System", + "Name": "ModelInfo", + "Events": [ + { + "LiteralName": "UI_MODEL_SCENE_INFO_UPDATED", + "Type": "Event", + "Name": "UiModelSceneInfoUpdated" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "ModelSceneSetting", + "Fields": [ + { + "EnumValue": 1, + "Type": "ModelSceneSetting", + "Name": "AlignLightToOrbitDelta" + } + ], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "ModelSceneType", + "Fields": [ + { "EnumValue": 0, "Type": "ModelSceneType", "Name": "MountJournal" }, + { "EnumValue": 1, "Type": "ModelSceneType", "Name": "PetJournalCard" }, + { "EnumValue": 2, "Type": "ModelSceneType", "Name": "ShopCard" }, + { "EnumValue": 3, "Type": "ModelSceneType", "Name": "EncounterJournal" }, + { "EnumValue": 4, "Type": "ModelSceneType", "Name": "PetJournalLoadout" }, + { "EnumValue": 5, "Type": "ModelSceneType", "Name": "ArtifactTier2" }, + { + "EnumValue": 6, + "Type": "ModelSceneType", + "Name": "ArtifactTier2ForgingScene" + }, + { "EnumValue": 7, "Type": "ModelSceneType", "Name": "ArtifactTier2SlamEffect" }, + { + "EnumValue": 8, + "Type": "ModelSceneType", + "Name": "CommentatorVictoryFanfare" + }, + { + "EnumValue": 9, + "Type": "ModelSceneType", + "Name": "ArtifactRelicTalentEffect" + }, + { "EnumValue": 10, "Type": "ModelSceneType", "Name": "PvPWarModeOrb" }, + { "EnumValue": 11, "Type": "ModelSceneType", "Name": "PvPWarModeFire" }, + { "EnumValue": 12, "Type": "ModelSceneType", "Name": "PartyPose" }, + { + "EnumValue": 13, + "Type": "ModelSceneType", + "Name": "AzeriteItemLevelUpToast" + }, + { "EnumValue": 14, "Type": "ModelSceneType", "Name": "AzeritePowers" }, + { "EnumValue": 15, "Type": "ModelSceneType", "Name": "AzeriteRewardGlow" }, + { "EnumValue": 16, "Type": "ModelSceneType", "Name": "HeartOfAzeroth" }, + { "EnumValue": 17, "Type": "ModelSceneType", "Name": "WorldMapThreat" }, + { "EnumValue": 18, "Type": "ModelSceneType", "Name": "Soulbinds" }, + { "EnumValue": 19, "Type": "ModelSceneType", "Name": "JailersTowerAnimaGlow" } + ], + "MaxValue": 19, + "MinValue": 0, + "NumValues": 20 + }, + { + "Type": "Enumeration", + "Name": "UIModelSceneActorFlag", + "Fields": [ + { "EnumValue": 1, "Type": "UIModelSceneActorFlag", "Name": "Deprecated1" }, + { + "EnumValue": 2, + "Type": "UIModelSceneActorFlag", + "Name": "UseCenterForOriginX" + }, + { + "EnumValue": 4, + "Type": "UIModelSceneActorFlag", + "Name": "UseCenterForOriginY" + }, + { + "EnumValue": 8, + "Type": "UIModelSceneActorFlag", + "Name": "UseCenterForOriginZ" + } + ], + "MaxValue": 8, + "MinValue": 1, + "NumValues": 4 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "animation" }, + { "Nilable": false, "Type": "number", "Name": "animationVariation" }, + { "Nilable": false, "Type": "number", "Name": "animSpeed" }, + { "Nilable": true, "Type": "number", "Name": "animationKitID" }, + { "Nilable": true, "Type": "number", "Name": "spellVisualKitID" }, + { "Nilable": false, "Type": "number", "Name": "alpha" }, + { "Nilable": false, "Type": "number", "Name": "scale" } + ], + "Type": "Structure", + "Name": "UIModelSceneActorDisplayInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "modelActorID" }, + { "Nilable": false, "Type": "cstring", "Name": "scriptTag" }, + { + "Nilable": false, + "Mixin": "Vector3DMixin", + "Type": "vector3", + "Name": "position" + }, + { "Nilable": false, "Type": "number", "Name": "yaw" }, + { "Nilable": false, "Type": "number", "Name": "pitch" }, + { "Nilable": false, "Type": "number", "Name": "roll" }, + { "Nilable": true, "Type": "number", "Name": "normalizeScaleAggressiveness" }, + { "Nilable": false, "Type": "bool", "Name": "useCenterForOriginX" }, + { "Nilable": false, "Type": "bool", "Name": "useCenterForOriginY" }, + { "Nilable": false, "Type": "bool", "Name": "useCenterForOriginZ" }, + { "Nilable": true, "Type": "number", "Name": "modelActorDisplayID" } + ], + "Type": "Structure", + "Name": "UIModelSceneActorInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "modelSceneCameraID" }, + { "Nilable": false, "Type": "cstring", "Name": "scriptTag" }, + { "Nilable": false, "Type": "cstring", "Name": "cameraType" }, + { + "Nilable": false, + "Mixin": "Vector3DMixin", + "Type": "vector3", + "Name": "target" + }, + { "Nilable": false, "Type": "number", "Name": "yaw" }, + { "Nilable": false, "Type": "number", "Name": "pitch" }, + { "Nilable": false, "Type": "number", "Name": "roll" }, + { "Nilable": false, "Type": "number", "Name": "zoomDistance" }, + { "Nilable": false, "Type": "number", "Name": "minZoomDistance" }, + { "Nilable": false, "Type": "number", "Name": "maxZoomDistance" }, + { + "Nilable": false, + "Mixin": "Vector3DMixin", + "Type": "vector3", + "Name": "zoomedTargetOffset" + }, + { "Nilable": false, "Type": "number", "Name": "zoomedYawOffset" }, + { "Nilable": false, "Type": "number", "Name": "zoomedPitchOffset" }, + { "Nilable": false, "Type": "number", "Name": "zoomedRollOffset" }, + { "Nilable": false, "Type": "ModelSceneSetting", "Name": "flags" } + ], + "Type": "Structure", + "Name": "UIModelSceneCameraInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ItemTryOnReason", + "Fields": [ + { "EnumValue": 0, "Type": "ItemTryOnReason", "Name": "Success" }, + { "EnumValue": 1, "Type": "ItemTryOnReason", "Name": "WrongRace" }, + { "EnumValue": 2, "Type": "ItemTryOnReason", "Name": "NotEquippable" }, + { "EnumValue": 3, "Type": "ItemTryOnReason", "Name": "DataPending" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + } + ] + }, + { + "Namespace": "C_ModifiedInstance", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "ModifiedInstanceInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mapID" }], + "Type": "Function", + "Name": "GetModifiedInstanceInfoFromMapID" + } + ], + "Type": "System", + "Name": "UIModifiedInstance", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": true, "Type": "number", "Name": "lfrItemLevel" }, + { "Nilable": true, "Type": "number", "Name": "normalItemLevel" }, + { "Nilable": true, "Type": "number", "Name": "heroicItemLevel" }, + { "Nilable": true, "Type": "number", "Name": "mythicItemLevel" }, + { "Nilable": false, "Type": "textureKit", "Name": "uiTextureKit" }, + { "Nilable": false, "Type": "string", "Name": "description" } + ], + "Type": "Structure", + "Name": "ModifiedInstanceInfo" + } + ] + }, + { + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "FramePoint", "Name": "point" }, + { "Nilable": false, "Type": "ScriptRegion", "Name": "relativeTo" }, + { "Nilable": false, "Type": "FramePoint", "Name": "relativePoint" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetX" }, + { "Nilable": false, "Type": "uiUnit", "Name": "offsetY" } + ], + "Type": "Structure", + "Name": "AnchorBinding" + }, + { + "Fields": [ + { "Nilable": false, "Type": "uiUnit", "Name": "left" }, + { "Nilable": false, "Type": "uiUnit", "Name": "bottom" }, + { "Nilable": false, "Type": "uiUnit", "Name": "width" }, + { "Nilable": false, "Type": "uiUnit", "Name": "height" } + ], + "Type": "Structure", + "Name": "uiBoundsRect" + } + ] + }, + { + "Namespace": "C_SystemVisibilityManager", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "visible" }], + "Arguments": [{ "Nilable": false, "Type": "UISystemType", "Name": "system" }], + "Type": "Function", + "Name": "IsSystemVisible" + } + ], + "Type": "System", + "Name": "UISystemVisibilityManager", + "Events": [ + { + "LiteralName": "SYSTEM_VISIBILITY_CHANGED", + "Type": "Event", + "Name": "SystemVisibilityChanged" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "UISystemType", + "Fields": [ + { "EnumValue": 0, "Type": "UISystemType", "Name": "InGameNavigation" } + ], + "MaxValue": 0, + "MinValue": 0, + "NumValues": 1 + } + ] + }, + { "Tables": [] }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "UITextureSliceMode", + "Fields": [ + { "EnumValue": 0, "Type": "UITextureSliceMode", "Name": "Stretched" }, + { "EnumValue": 1, "Type": "UITextureSliceMode", "Name": "Tiled" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "marginLeft" }, + { "Nilable": false, "Type": "number", "Name": "marginTop" }, + { "Nilable": false, "Type": "number", "Name": "marginRight" }, + { "Nilable": false, "Type": "number", "Name": "marginBottom" }, + { "Nilable": false, "Type": "UITextureSliceMode", "Name": "sliceMode" } + ], + "Type": "Structure", + "Name": "UITextureSliceData" + } + ] + }, + { + "Namespace": "C_Timer", + "Functions": [ + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "seconds" }, + { "Nilable": false, "Type": "TimerCallback", "Name": "callback" } + ], + "Type": "Function", + "Name": "After" + }, + { + "Returns": [{ "Nilable": false, "Type": "TickerCallback", "Name": "cbObject" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "seconds" }, + { "Nilable": false, "Type": "TickerCallback", "Name": "callback" }, + { "Nilable": true, "Type": "number", "Name": "iterations" } + ], + "Type": "Function", + "Name": "NewTicker" + }, + { + "Returns": [{ "Nilable": false, "Type": "TickerCallback", "Name": "cbObject" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "seconds" }, + { "Nilable": false, "Type": "TickerCallback", "Name": "callback" } + ], + "Type": "Function", + "Name": "NewTimer" + } + ], + "Type": "System", + "Name": "UITimer", + "Events": [], + "Tables": [ + { + "Arguments": [{ "Nilable": false, "Type": "TimerCallback", "Name": "cb" }], + "Type": "CallbackType", + "Name": "TickerCallback" + }, + { "Type": "CallbackType", "Name": "TimerCallback" } + ] + }, + { + "Namespace": "C_UIWidgetManager", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "UIWidgetInfo", + "Type": "table", + "Name": "widgets" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "setID" }], + "Type": "Function", + "Name": "GetAllWidgetsBySetID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "setID" }], + "Type": "Function", + "Name": "GetBelowMinimapWidgetSetID" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "BulletTextListWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetBulletTextListWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "CaptureBarWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetCaptureBarWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "CaptureZoneVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetCaptureZoneVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "DiscreteProgressStepsVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetDiscreteProgressStepsVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "DoubleIconAndTextWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetDoubleIconAndTextWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "DoubleStateIconRowVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetDoubleStateIconRowVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "DoubleStatusBarWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetDoubleStatusBarWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "FillUpFramesWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetFillUpFramesWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "HorizontalCurrenciesWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetHorizontalCurrenciesWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "IconAndTextWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetIconAndTextWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "IconTextAndBackgroundWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetIconTextAndBackgroundWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "IconTextAndCurrenciesWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetIconTextAndCurrenciesWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "ItemDisplayVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetItemDisplayVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "MapPinAnimationWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetMapPinAnimationWidgetVisualizationInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "setID" }], + "Type": "Function", + "Name": "GetObjectiveTrackerWidgetSetID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "setID" }], + "Type": "Function", + "Name": "GetPowerBarWidgetSetID" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "ScenarioHeaderCurrenciesAndBackgroundWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetScenarioHeaderCurrenciesAndBackgroundWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "ScenarioHeaderDelvesWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetScenarioHeaderDelvesWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "ScenarioHeaderTimerWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetScenarioHeaderTimerWidgetVisualizationInfo" + }, + { + "Returns": [ + { "Nilable": true, "Type": "SpacerVisualizationInfo", "Name": "widgetInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetSpacerVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "SpellDisplayVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetSpellDisplayVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "StackedResourceTrackerWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetStackedResourceTrackerWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "StatusBarWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetStatusBarWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "TextColumnRowVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetTextColumnRowVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "TextWithStateWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetTextWithStateWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "TextWithSubtextWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetTextWithSubtextWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "TextureAndTextRowVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetTextureAndTextRowVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "TextureAndTextVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetTextureAndTextVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "TextureWithAnimationVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetTextureWithAnimationVisualizationInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "setID" }], + "Type": "Function", + "Name": "GetTopCenterWidgetSetID" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "TugOfWarWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetTugOfWarWidgetVisualizationInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "UnitPowerBarWidgetVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetUnitPowerBarWidgetVisualizationInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "UIWidgetSetInfo", "Name": "widgetSetInfo" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetSetID" }], + "Type": "Function", + "Name": "GetWidgetSetInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "ZoneControlVisualizationInfo", + "Name": "widgetInfo" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "widgetID" }], + "Type": "Function", + "Name": "GetZoneControlVisualizationInfo" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "unitToken" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isGuid" } + ], + "Type": "Function", + "Name": "RegisterUnitForWidgetUpdates" + }, + { + "Arguments": [{ "Nilable": true, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "SetProcessingUnit" + }, + { + "Arguments": [{ "Nilable": true, "Type": "WOWGUID", "Name": "unit" }], + "Type": "Function", + "Name": "SetProcessingUnitGuid" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "string", "Name": "unitToken" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isGuid" } + ], + "Type": "Function", + "Name": "UnregisterUnitForWidgetUpdates" + } + ], + "Type": "System", + "Name": "UIWidgetManager", + "Events": [ + { + "LiteralName": "UPDATE_ALL_UI_WIDGETS", + "Type": "Event", + "Name": "UpdateAllUiWidgets" + }, + { + "LiteralName": "UPDATE_UI_WIDGET", + "Payload": [{ "Nilable": false, "Type": "UIWidgetInfo", "Name": "widgetInfo" }], + "Type": "Event", + "Name": "UpdateUiWidget" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "CaptureBarWidgetFillDirectionType", + "Fields": [ + { + "EnumValue": 0, + "Type": "CaptureBarWidgetFillDirectionType", + "Name": "RightToLeft" + }, + { + "EnumValue": 1, + "Type": "CaptureBarWidgetFillDirectionType", + "Name": "LeftToRight" + } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "IconAndTextWidgetState", + "Fields": [ + { "EnumValue": 0, "Type": "IconAndTextWidgetState", "Name": "Hidden" }, + { "EnumValue": 1, "Type": "IconAndTextWidgetState", "Name": "Shown" }, + { + "EnumValue": 2, + "Type": "IconAndTextWidgetState", + "Name": "ShownWithDynamicIconFlashing" + }, + { + "EnumValue": 3, + "Type": "IconAndTextWidgetState", + "Name": "ShownWithDynamicIconNotFlashing" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "IconState", + "Fields": [ + { "EnumValue": 0, "Type": "IconState", "Name": "Hidden" }, + { "EnumValue": 1, "Type": "IconState", "Name": "ShowState1" }, + { "EnumValue": 2, "Type": "IconState", "Name": "ShowState2" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ItemDisplayTextDisplayStyle", + "Fields": [ + { + "EnumValue": 0, + "Type": "ItemDisplayTextDisplayStyle", + "Name": "WorldQuestReward" + }, + { + "EnumValue": 1, + "Type": "ItemDisplayTextDisplayStyle", + "Name": "ItemNameAndInfoText" + }, + { + "EnumValue": 2, + "Type": "ItemDisplayTextDisplayStyle", + "Name": "ItemNameOnlyCentered" + }, + { + "EnumValue": 3, + "Type": "ItemDisplayTextDisplayStyle", + "Name": "PlayerChoiceReward" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ItemDisplayTooltipEnabledType", + "Fields": [ + { "EnumValue": 0, "Type": "ItemDisplayTooltipEnabledType", "Name": "Enabled" }, + { "EnumValue": 1, "Type": "ItemDisplayTooltipEnabledType", "Name": "Disabled" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "MapPinAnimationType", + "Fields": [ + { "EnumValue": 0, "Type": "MapPinAnimationType", "Name": "None" }, + { "EnumValue": 1, "Type": "MapPinAnimationType", "Name": "Pulse" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "SpellDisplayBorderColor", + "Fields": [ + { "EnumValue": 0, "Type": "SpellDisplayBorderColor", "Name": "None" }, + { "EnumValue": 1, "Type": "SpellDisplayBorderColor", "Name": "Black" }, + { "EnumValue": 2, "Type": "SpellDisplayBorderColor", "Name": "White" }, + { "EnumValue": 3, "Type": "SpellDisplayBorderColor", "Name": "Red" }, + { "EnumValue": 4, "Type": "SpellDisplayBorderColor", "Name": "Yellow" }, + { "EnumValue": 5, "Type": "SpellDisplayBorderColor", "Name": "Orange" }, + { "EnumValue": 6, "Type": "SpellDisplayBorderColor", "Name": "Purple" }, + { "EnumValue": 7, "Type": "SpellDisplayBorderColor", "Name": "Green" }, + { "EnumValue": 8, "Type": "SpellDisplayBorderColor", "Name": "Blue" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "SpellDisplayIconDisplayType", + "Fields": [ + { "EnumValue": 0, "Type": "SpellDisplayIconDisplayType", "Name": "Buff" }, + { "EnumValue": 1, "Type": "SpellDisplayIconDisplayType", "Name": "Debuff" }, + { "EnumValue": 2, "Type": "SpellDisplayIconDisplayType", "Name": "Circular" }, + { "EnumValue": 3, "Type": "SpellDisplayIconDisplayType", "Name": "NoBorder" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "SpellDisplayTextShownStateType", + "Fields": [ + { "EnumValue": 0, "Type": "SpellDisplayTextShownStateType", "Name": "Shown" }, + { "EnumValue": 1, "Type": "SpellDisplayTextShownStateType", "Name": "Hidden" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "SpellDisplayTint", + "Fields": [ + { "EnumValue": 0, "Type": "SpellDisplayTint", "Name": "None" }, + { "EnumValue": 1, "Type": "SpellDisplayTint", "Name": "Red" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "StatusBarColorTintValue", + "Fields": [ + { "EnumValue": 0, "Type": "StatusBarColorTintValue", "Name": "None" }, + { "EnumValue": 1, "Type": "StatusBarColorTintValue", "Name": "Black" }, + { "EnumValue": 2, "Type": "StatusBarColorTintValue", "Name": "White" }, + { "EnumValue": 3, "Type": "StatusBarColorTintValue", "Name": "Red" }, + { "EnumValue": 4, "Type": "StatusBarColorTintValue", "Name": "Yellow" }, + { "EnumValue": 5, "Type": "StatusBarColorTintValue", "Name": "Orange" }, + { "EnumValue": 6, "Type": "StatusBarColorTintValue", "Name": "Purple" }, + { "EnumValue": 7, "Type": "StatusBarColorTintValue", "Name": "Green" }, + { "EnumValue": 8, "Type": "StatusBarColorTintValue", "Name": "Blue" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "StatusBarOverrideBarTextShownType", + "Fields": [ + { + "EnumValue": 0, + "Type": "StatusBarOverrideBarTextShownType", + "Name": "Never" + }, + { + "EnumValue": 1, + "Type": "StatusBarOverrideBarTextShownType", + "Name": "Always" + }, + { + "EnumValue": 2, + "Type": "StatusBarOverrideBarTextShownType", + "Name": "OnlyOnMouseover" + }, + { + "EnumValue": 3, + "Type": "StatusBarOverrideBarTextShownType", + "Name": "OnlyNotOnMouseover" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "StatusBarValueTextType", + "Fields": [ + { "EnumValue": 0, "Type": "StatusBarValueTextType", "Name": "Hidden" }, + { "EnumValue": 1, "Type": "StatusBarValueTextType", "Name": "Percentage" }, + { "EnumValue": 2, "Type": "StatusBarValueTextType", "Name": "Value" }, + { "EnumValue": 3, "Type": "StatusBarValueTextType", "Name": "Time" }, + { + "EnumValue": 4, + "Type": "StatusBarValueTextType", + "Name": "TimeShowOneLevelOnly" + }, + { "EnumValue": 5, "Type": "StatusBarValueTextType", "Name": "ValueOverMax" }, + { + "EnumValue": 6, + "Type": "StatusBarValueTextType", + "Name": "ValueOverMaxNormalized" + } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "TugOfWarMarkerArrowShownState", + "Fields": [ + { "EnumValue": 0, "Type": "TugOfWarMarkerArrowShownState", "Name": "Never" }, + { "EnumValue": 1, "Type": "TugOfWarMarkerArrowShownState", "Name": "Always" }, + { + "EnumValue": 2, + "Type": "TugOfWarMarkerArrowShownState", + "Name": "FlashOnMove" + } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "TugOfWarStyleValue", + "Fields": [ + { "EnumValue": 0, "Type": "TugOfWarStyleValue", "Name": "DefaultYellow" }, + { "EnumValue": 1, "Type": "TugOfWarStyleValue", "Name": "ArchaeologyBrown" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetBlendModeType", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetBlendModeType", "Name": "Opaque" }, + { "EnumValue": 1, "Type": "UIWidgetBlendModeType", "Name": "Additive" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetFlag", + "Fields": [{ "EnumValue": 1, "Type": "UIWidgetFlag", "Name": "UniversalWidget" }], + "MaxValue": 1, + "MinValue": 1, + "NumValues": 1 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetFontType", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetFontType", "Name": "Normal" }, + { "EnumValue": 1, "Type": "UIWidgetFontType", "Name": "Shadow" }, + { "EnumValue": 2, "Type": "UIWidgetFontType", "Name": "Outline" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetModelSceneLayer", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetModelSceneLayer", "Name": "None" }, + { "EnumValue": 1, "Type": "UIWidgetModelSceneLayer", "Name": "Front" }, + { "EnumValue": 2, "Type": "UIWidgetModelSceneLayer", "Name": "Back" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetMotionType", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetMotionType", "Name": "Instant" }, + { "EnumValue": 1, "Type": "UIWidgetMotionType", "Name": "Smooth" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetOverrideState", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetOverrideState", "Name": "Inactive" }, + { "EnumValue": 1, "Type": "UIWidgetOverrideState", "Name": "Active" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetRewardShownState", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetRewardShownState", "Name": "Hidden" }, + { "EnumValue": 1, "Type": "UIWidgetRewardShownState", "Name": "ShownEarned" }, + { "EnumValue": 2, "Type": "UIWidgetRewardShownState", "Name": "ShownUnearned" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetTextSizeType", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetTextSizeType", "Name": "Small12Pt" }, + { "EnumValue": 1, "Type": "UIWidgetTextSizeType", "Name": "Medium16Pt" }, + { "EnumValue": 2, "Type": "UIWidgetTextSizeType", "Name": "Large24Pt" }, + { "EnumValue": 3, "Type": "UIWidgetTextSizeType", "Name": "Huge27Pt" }, + { "EnumValue": 4, "Type": "UIWidgetTextSizeType", "Name": "Standard14Pt" }, + { "EnumValue": 5, "Type": "UIWidgetTextSizeType", "Name": "Small10Pt" }, + { "EnumValue": 6, "Type": "UIWidgetTextSizeType", "Name": "Small11Pt" }, + { "EnumValue": 7, "Type": "UIWidgetTextSizeType", "Name": "Medium18Pt" }, + { "EnumValue": 8, "Type": "UIWidgetTextSizeType", "Name": "Large20Pt" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetTextureAndTextSizeType", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetTextureAndTextSizeType", "Name": "Small" }, + { "EnumValue": 1, "Type": "UIWidgetTextureAndTextSizeType", "Name": "Medium" }, + { "EnumValue": 2, "Type": "UIWidgetTextureAndTextSizeType", "Name": "Large" }, + { "EnumValue": 3, "Type": "UIWidgetTextureAndTextSizeType", "Name": "Huge" }, + { + "EnumValue": 4, + "Type": "UIWidgetTextureAndTextSizeType", + "Name": "Standard" + }, + { "EnumValue": 5, "Type": "UIWidgetTextureAndTextSizeType", "Name": "Medium2" } + ], + "MaxValue": 5, + "MinValue": 0, + "NumValues": 6 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetTooltipLocation", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetTooltipLocation", "Name": "Default" }, + { "EnumValue": 1, "Type": "UIWidgetTooltipLocation", "Name": "BottomLeft" }, + { "EnumValue": 2, "Type": "UIWidgetTooltipLocation", "Name": "Left" }, + { "EnumValue": 3, "Type": "UIWidgetTooltipLocation", "Name": "TopLeft" }, + { "EnumValue": 4, "Type": "UIWidgetTooltipLocation", "Name": "Top" }, + { "EnumValue": 5, "Type": "UIWidgetTooltipLocation", "Name": "TopRight" }, + { "EnumValue": 6, "Type": "UIWidgetTooltipLocation", "Name": "Right" }, + { "EnumValue": 7, "Type": "UIWidgetTooltipLocation", "Name": "BottomRight" }, + { "EnumValue": 8, "Type": "UIWidgetTooltipLocation", "Name": "Bottom" } + ], + "MaxValue": 8, + "MinValue": 0, + "NumValues": 9 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetUpdateAnimType", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetUpdateAnimType", "Name": "None" }, + { "EnumValue": 1, "Type": "UIWidgetUpdateAnimType", "Name": "Flash" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "WidgetAnimationType", + "Fields": [ + { "EnumValue": 0, "Type": "WidgetAnimationType", "Name": "None" }, + { "EnumValue": 1, "Type": "WidgetAnimationType", "Name": "Fade" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "WidgetCurrencyClass", + "Fields": [ + { "EnumValue": 0, "Type": "WidgetCurrencyClass", "Name": "Currency" }, + { "EnumValue": 1, "Type": "WidgetCurrencyClass", "Name": "Item" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "WidgetEnabledState", + "Fields": [ + { "EnumValue": 0, "Type": "WidgetEnabledState", "Name": "Disabled" }, + { "EnumValue": 1, "Type": "WidgetEnabledState", "Name": "Yellow" }, + { "EnumValue": 2, "Type": "WidgetEnabledState", "Name": "Red" }, + { "EnumValue": 3, "Type": "WidgetEnabledState", "Name": "White" }, + { "EnumValue": 4, "Type": "WidgetEnabledState", "Name": "Green" }, + { "EnumValue": 5, "Type": "WidgetEnabledState", "Name": "Artifact" }, + { "EnumValue": 6, "Type": "WidgetEnabledState", "Name": "Black" }, + { "EnumValue": 7, "Type": "WidgetEnabledState", "Name": "BrightBlue" } + ], + "MaxValue": 7, + "MinValue": 0, + "NumValues": 8 + }, + { + "Type": "Enumeration", + "Name": "WidgetGlowAnimType", + "Fields": [ + { "EnumValue": 0, "Type": "WidgetGlowAnimType", "Name": "None" }, + { "EnumValue": 1, "Type": "WidgetGlowAnimType", "Name": "Pulse" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "WidgetIconSizeType", + "Fields": [ + { "EnumValue": 0, "Type": "WidgetIconSizeType", "Name": "Small" }, + { "EnumValue": 1, "Type": "WidgetIconSizeType", "Name": "Medium" }, + { "EnumValue": 2, "Type": "WidgetIconSizeType", "Name": "Large" }, + { "EnumValue": 3, "Type": "WidgetIconSizeType", "Name": "Standard" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "WidgetIconSourceType", + "Fields": [ + { "EnumValue": 0, "Type": "WidgetIconSourceType", "Name": "Spell" }, + { "EnumValue": 1, "Type": "WidgetIconSourceType", "Name": "Item" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "WidgetOpacityType", + "Fields": [ + { "EnumValue": 0, "Type": "WidgetOpacityType", "Name": "OneHundred" }, + { "EnumValue": 1, "Type": "WidgetOpacityType", "Name": "Ninety" }, + { "EnumValue": 2, "Type": "WidgetOpacityType", "Name": "Eighty" }, + { "EnumValue": 3, "Type": "WidgetOpacityType", "Name": "Seventy" }, + { "EnumValue": 4, "Type": "WidgetOpacityType", "Name": "Sixty" }, + { "EnumValue": 5, "Type": "WidgetOpacityType", "Name": "Fifty" }, + { "EnumValue": 6, "Type": "WidgetOpacityType", "Name": "Forty" }, + { "EnumValue": 7, "Type": "WidgetOpacityType", "Name": "Thirty" }, + { "EnumValue": 8, "Type": "WidgetOpacityType", "Name": "Twenty" }, + { "EnumValue": 9, "Type": "WidgetOpacityType", "Name": "Ten" }, + { "EnumValue": 10, "Type": "WidgetOpacityType", "Name": "Zero" } + ], + "MaxValue": 10, + "MinValue": 0, + "NumValues": 11 + }, + { + "Type": "Enumeration", + "Name": "WidgetShowGlowState", + "Fields": [ + { "EnumValue": 0, "Type": "WidgetShowGlowState", "Name": "HideGlow" }, + { "EnumValue": 1, "Type": "WidgetShowGlowState", "Name": "ShowGlow" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "WidgetShownState", + "Fields": [ + { "EnumValue": 0, "Type": "WidgetShownState", "Name": "Hidden" }, + { "EnumValue": 1, "Type": "WidgetShownState", "Name": "Shown" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "WidgetTextHorizontalAlignmentType", + "Fields": [ + { "EnumValue": 0, "Type": "WidgetTextHorizontalAlignmentType", "Name": "Left" }, + { + "EnumValue": 1, + "Type": "WidgetTextHorizontalAlignmentType", + "Name": "Center" + }, + { "EnumValue": 2, "Type": "WidgetTextHorizontalAlignmentType", "Name": "Right" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "WidgetUnitPowerBarFlashMomentType", + "Fields": [ + { + "EnumValue": 0, + "Type": "WidgetUnitPowerBarFlashMomentType", + "Name": "FlashWhenMax" + }, + { + "EnumValue": 1, + "Type": "WidgetUnitPowerBarFlashMomentType", + "Name": "FlashWhenMin" + }, + { + "EnumValue": 2, + "Type": "WidgetUnitPowerBarFlashMomentType", + "Name": "NeverFlash" + } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "ZoneControlActiveState", + "Fields": [ + { "EnumValue": 0, "Type": "ZoneControlActiveState", "Name": "Inactive" }, + { "EnumValue": 1, "Type": "ZoneControlActiveState", "Name": "Active" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "ZoneControlDangerFlashType", + "Fields": [ + { + "EnumValue": 0, + "Type": "ZoneControlDangerFlashType", + "Name": "ShowOnGoodStates" + }, + { + "EnumValue": 1, + "Type": "ZoneControlDangerFlashType", + "Name": "ShowOnBadStates" + }, + { "EnumValue": 2, "Type": "ZoneControlDangerFlashType", "Name": "ShowOnBoth" }, + { + "EnumValue": 3, + "Type": "ZoneControlDangerFlashType", + "Name": "ShowOnNeither" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ZoneControlFillType", + "Fields": [ + { + "EnumValue": 0, + "Type": "ZoneControlFillType", + "Name": "SingleFillClockwise" + }, + { + "EnumValue": 1, + "Type": "ZoneControlFillType", + "Name": "SingleFillCounterClockwise" + }, + { + "EnumValue": 2, + "Type": "ZoneControlFillType", + "Name": "DoubleFillClockwise" + }, + { + "EnumValue": 3, + "Type": "ZoneControlFillType", + "Name": "DoubleFillCounterClockwise" + } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ZoneControlLeadingEdgeType", + "Fields": [ + { + "EnumValue": 0, + "Type": "ZoneControlLeadingEdgeType", + "Name": "NoLeadingEdge" + }, + { + "EnumValue": 1, + "Type": "ZoneControlLeadingEdgeType", + "Name": "UseLeadingEdge" + } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "ZoneControlMode", + "Fields": [ + { "EnumValue": 0, "Type": "ZoneControlMode", "Name": "BothStatesAreGood" }, + { "EnumValue": 1, "Type": "ZoneControlMode", "Name": "State1IsGood" }, + { "EnumValue": 2, "Type": "ZoneControlMode", "Name": "State2IsGood" }, + { "EnumValue": 3, "Type": "ZoneControlMode", "Name": "NeitherStateIsGood" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ZoneControlState", + "Fields": [ + { "EnumValue": 0, "Type": "ZoneControlState", "Name": "State1" }, + { "EnumValue": 1, "Type": "ZoneControlState", "Name": "State2" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "WidgetEnabledState", "Name": "enabledState" }, + { "Nilable": false, "InnerType": "string", "Type": "table", "Name": "lines" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "BulletTextListWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "number", "Name": "barValue" }, + { "Nilable": false, "Type": "number", "Name": "barMinValue" }, + { "Nilable": false, "Type": "number", "Name": "barMaxValue" }, + { "Nilable": false, "Type": "number", "Name": "neutralZoneSize" }, + { "Nilable": false, "Type": "number", "Name": "neutralZoneCenter" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "WidgetGlowAnimType", "Name": "glowAnimType" }, + { + "Nilable": false, + "Type": "CaptureBarWidgetFillDirectionType", + "Name": "fillDirectionType" + }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "CaptureBarWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "ZoneControlMode", "Name": "mode" }, + { + "Nilable": false, + "Type": "ZoneControlLeadingEdgeType", + "Name": "leadingEdgeType" + }, + { + "Nilable": false, + "Type": "ZoneControlDangerFlashType", + "Name": "dangerFlashType" + }, + { "Nilable": false, "Type": "ZoneEntry", "Name": "zoneInfo" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "CaptureZoneVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "number", "Name": "progressMin" }, + { "Nilable": false, "Type": "number", "Name": "progressMax" }, + { "Nilable": false, "Type": "number", "Name": "progressVal" }, + { "Nilable": false, "Type": "number", "Name": "numSteps" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "DiscreteProgressStepsVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "string", "Name": "label" }, + { "Nilable": false, "Type": "string", "Name": "leftText" }, + { "Nilable": false, "Type": "string", "Name": "leftTooltip" }, + { "Nilable": false, "Type": "string", "Name": "rightText" }, + { "Nilable": false, "Type": "string", "Name": "rightTooltip" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "DoubleIconAndTextWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { + "Nilable": false, + "InnerType": "UIWidgetStateIconInfo", + "Type": "table", + "Name": "leftIcons" + }, + { + "Nilable": false, + "InnerType": "UIWidgetStateIconInfo", + "Type": "table", + "Name": "rightIcons" + }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "DoubleStateIconRowVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "number", "Name": "leftBarMin" }, + { "Nilable": false, "Type": "number", "Name": "leftBarMax" }, + { "Nilable": false, "Type": "number", "Name": "leftBarValue" }, + { "Nilable": false, "Type": "string", "Name": "leftBarTooltip" }, + { "Nilable": false, "Type": "number", "Name": "rightBarMin" }, + { "Nilable": false, "Type": "number", "Name": "rightBarMax" }, + { "Nilable": false, "Type": "number", "Name": "rightBarValue" }, + { "Nilable": false, "Type": "string", "Name": "rightBarTooltip" }, + { + "Nilable": false, + "Type": "StatusBarValueTextType", + "Name": "barValueTextType" + }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { + "Nilable": false, + "Type": "UIWidgetTooltipLocation", + "Name": "leftBarTooltipLoc" + }, + { + "Nilable": false, + "Type": "UIWidgetTooltipLocation", + "Name": "rightBarTooltipLoc" + }, + { "Nilable": false, "Type": "UIWidgetMotionType", "Name": "fillMotionType" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "DoubleStatusBarWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "number", "Name": "fillMin" }, + { "Nilable": false, "Type": "number", "Name": "fillMax" }, + { "Nilable": false, "Type": "number", "Name": "fillValue" }, + { "Nilable": false, "Type": "number", "Name": "numTotalFrames" }, + { "Nilable": false, "Type": "number", "Name": "numFullFrames" }, + { "Nilable": false, "Type": "bool", "Name": "pulseFillingFrame" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "FillUpFramesWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { + "Nilable": false, + "InnerType": "UIWidgetCurrencyInfo", + "Type": "table", + "Name": "currencies" + }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "HorizontalCurrenciesWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "IconAndTextWidgetState", "Name": "state" }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "string", "Name": "dynamicTooltip" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "IconAndTextWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "IconTextAndBackgroundWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "WidgetEnabledState", "Name": "enabledState" }, + { + "Nilable": false, + "Type": "WidgetShownState", + "Name": "descriptionShownState" + }, + { + "Nilable": false, + "Type": "WidgetEnabledState", + "Name": "descriptionEnabledState" + }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { + "Nilable": false, + "InnerType": "UIWidgetCurrencyInfo", + "Type": "table", + "Name": "currencies" + }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "IconTextAndCurrenciesWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "UIWidgetItemInfo", "Name": "itemInfo" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "ItemDisplayVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "MapPinAnimationType", "Name": "animType" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "MapPinAnimationWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { + "Nilable": false, + "InnerType": "UIWidgetCurrencyInfo", + "Type": "table", + "Name": "currencies" + }, + { "Nilable": false, "Type": "string", "Name": "headerText" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "ScenarioHeaderCurrenciesAndBackgroundWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "string", "Name": "headerText" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "string", "Name": "tierText" }, + { "Nilable": true, "Type": "number", "Name": "tierTooltipSpellID" }, + { + "Nilable": false, + "InnerType": "UIWidgetCurrencyInfo", + "Type": "table", + "Name": "currencies" + }, + { + "Nilable": false, + "InnerType": "UIWidgetSpellInfo", + "Type": "table", + "Name": "spells" + }, + { "Nilable": false, "Type": "UIWidgetRewardInfo", "Name": "rewardInfo" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "ScenarioHeaderDelvesWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "number", "Name": "timerMin" }, + { "Nilable": false, "Type": "number", "Name": "timerMax" }, + { "Nilable": false, "Type": "number", "Name": "timerValue" }, + { "Nilable": false, "Type": "string", "Name": "headerText" }, + { "Nilable": false, "Type": "string", "Name": "timerTooltip" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "ScenarioHeaderTimerWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "number", "Name": "widgetWidth" }, + { "Nilable": false, "Type": "number", "Name": "widgetHeight" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "SpacerVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "UIWidgetSpellInfo", "Name": "spellInfo" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "SpellDisplayVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { + "Nilable": false, + "InnerType": "UIWidgetCurrencyInfo", + "Type": "table", + "Name": "resources" + }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "StackedResourceTrackerWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "number", "Name": "barMin" }, + { "Nilable": false, "Type": "number", "Name": "barMax" }, + { "Nilable": false, "Type": "number", "Name": "barValue" }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { + "Nilable": false, + "Type": "StatusBarValueTextType", + "Name": "barValueTextType" + }, + { "Nilable": false, "Type": "string", "Name": "overrideBarText" }, + { + "Nilable": false, + "Type": "StatusBarOverrideBarTextShownType", + "Name": "overrideBarTextShownType" + }, + { "Nilable": false, "Type": "StatusBarColorTintValue", "Name": "colorTint" }, + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "partitionValues" + }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "UIWidgetMotionType", "Name": "fillMotionType" }, + { + "Nilable": false, + "Type": "WidgetEnabledState", + "Name": "barTextEnabledState" + }, + { "Nilable": false, "Type": "UIWidgetFontType", "Name": "barTextFontType" }, + { "Nilable": false, "Type": "UIWidgetTextSizeType", "Name": "barTextSizeType" }, + { "Nilable": false, "Type": "WidgetEnabledState", "Name": "textEnabledState" }, + { "Nilable": false, "Type": "UIWidgetFontType", "Name": "textFontType" }, + { "Nilable": false, "Type": "UIWidgetTextSizeType", "Name": "textSizeType" }, + { "Nilable": false, "Type": "WidgetGlowAnimType", "Name": "glowAnimType" }, + { "Nilable": false, "Type": "WidgetShowGlowState", "Name": "showGlowState" }, + { "Nilable": false, "Type": "WidgetOpacityType", "Name": "fillMinOpacity" }, + { "Nilable": false, "Type": "WidgetOpacityType", "Name": "fillMaxOpacity" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "StatusBarWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "WidgetEnabledState", "Name": "enabledState" }, + { + "Nilable": false, + "Type": "WidgetTextHorizontalAlignmentType", + "Name": "hAlign" + }, + { "Nilable": false, "Type": "number", "Name": "columnWidth" } + ], + "Type": "Structure", + "Name": "TextColumnRowEntryInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { + "Nilable": false, + "InnerType": "TextColumnRowEntryInfo", + "Type": "table", + "Name": "entries" + }, + { "Nilable": false, "Type": "UIWidgetTextSizeType", "Name": "textSizeType" }, + { "Nilable": false, "Type": "UIWidgetFontType", "Name": "fontType" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "bottomPadding" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "TextColumnRowVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "WidgetEnabledState", "Name": "enabledState" }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "UIWidgetTextSizeType", "Name": "textSizeType" }, + { "Nilable": false, "Type": "UIWidgetFontType", "Name": "fontType" }, + { "Nilable": false, "Type": "number", "Name": "bottomPadding" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { + "Nilable": false, + "Type": "WidgetTextHorizontalAlignmentType", + "Name": "hAlign" + }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "TextWithStateWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "WidgetEnabledState", "Name": "enabledState" }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "number", "Name": "widgetWidth" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "UIWidgetTextSizeType", "Name": "textSizeType" }, + { "Nilable": false, "Type": "UIWidgetFontType", "Name": "fontType" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { + "Nilable": false, + "Type": "WidgetTextHorizontalAlignmentType", + "Name": "hAlign" + }, + { "Nilable": false, "Type": "string", "Name": "subText" }, + { "Nilable": false, "Type": "UIWidgetTextSizeType", "Name": "subTextSizeType" }, + { "Nilable": false, "Type": "UIWidgetFontType", "Name": "subTextFontType" }, + { + "Nilable": false, + "Type": "WidgetTextHorizontalAlignmentType", + "Name": "subTextHAlign" + }, + { + "Nilable": false, + "Type": "WidgetEnabledState", + "Name": "subTextEnabledState" + }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" }, + { "Nilable": false, "Type": "number", "Name": "spacing" } + ], + "Type": "Structure", + "Name": "TextWithSubtextWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" } + ], + "Type": "Structure", + "Name": "TextureAndTextEntryInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { + "Nilable": false, + "InnerType": "TextureAndTextEntryInfo", + "Type": "table", + "Name": "entries" + }, + { + "Nilable": false, + "Type": "UIWidgetTextureAndTextSizeType", + "Name": "textSizeType" + }, + { + "Nilable": false, + "Type": "UIWidgetHorizontalDirection", + "Name": "groupAlignment" + }, + { "Nilable": true, "Type": "number", "Name": "fixedWidth" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "TextureAndTextRowVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { + "Nilable": false, + "Type": "UIWidgetTextureAndTextSizeType", + "Name": "textSizeType" + }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "TextureAndTextVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "TextureWithAnimationVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "number", "Name": "minValue" }, + { "Nilable": false, "Type": "number", "Name": "maxValue" }, + { "Nilable": false, "Type": "number", "Name": "currentValue" }, + { "Nilable": false, "Type": "number", "Name": "neutralZoneCenter" }, + { "Nilable": false, "Type": "number", "Name": "neutralZoneSize" }, + { "Nilable": false, "Type": "UIWidgetIconInfo", "Name": "leftIconInfo" }, + { "Nilable": false, "Type": "UIWidgetIconInfo", "Name": "rightIconInfo" }, + { "Nilable": false, "Type": "WidgetGlowAnimType", "Name": "glowAnimType" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "TugOfWarStyleValue", "Name": "neutralFillStyle" }, + { + "Nilable": false, + "Type": "TugOfWarMarkerArrowShownState", + "Name": "markerArrowShownState" + }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "TugOfWarWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "fileID", "Name": "iconFileID" }, + { "Nilable": false, "Type": "string", "Name": "leadingText" }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "bool", "Name": "isCurrencyMaxed" }, + { "Nilable": false, "Type": "UIWidgetFontType", "Name": "textFontType" }, + { "Nilable": false, "Type": "UIWidgetTextSizeType", "Name": "textSizeType" }, + { "Nilable": false, "Type": "WidgetEnabledState", "Name": "textEnabledState" }, + { "Nilable": false, "Type": "WidgetIconSizeType", "Name": "iconSizeType" }, + { "Nilable": false, "Type": "UIWidgetUpdateAnimType", "Name": "updateAnimType" } + ], + "Type": "Structure", + "Name": "UIWidgetCurrencyInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetIconSourceType", "Name": "sourceType" }, + { "Nilable": false, "Type": "number", "Name": "sourceID" }, + { "Nilable": false, "Type": "WidgetIconSizeType", "Name": "sizeType" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" } + ], + "Type": "Structure", + "Name": "UIWidgetIconInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "widgetID" }, + { "Nilable": false, "Type": "number", "Name": "widgetSetID" }, + { "Nilable": false, "Type": "UIWidgetVisualizationType", "Name": "widgetType" }, + { "Nilable": true, "Type": "string", "Name": "unitToken" } + ], + "Type": "Structure", + "Name": "UIWidgetInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "itemID" }, + { "Nilable": true, "Type": "number", "Name": "stackCount" }, + { "Nilable": true, "Type": "string", "Name": "overrideItemName" }, + { "Nilable": true, "Type": "string", "Name": "infoText" }, + { "Nilable": true, "Type": "string", "Name": "overrideTooltip" }, + { + "Nilable": false, + "Type": "ItemDisplayTextDisplayStyle", + "Name": "textDisplayStyle" + }, + { "Nilable": false, "Type": "bool", "Name": "tooltipEnabled" }, + { "Nilable": false, "Type": "WidgetIconSizeType", "Name": "iconSizeType" }, + { + "Nilable": false, + "Type": "WidgetEnabledState", + "Name": "infoTextEnabledState" + }, + { "Nilable": false, "Type": "bool", "Name": "showAsEarned" }, + { + "Nilable": false, + "Type": "UIWidgetFontType", + "Name": "itemNameTextFontType" + }, + { + "Nilable": false, + "Type": "UIWidgetTextSizeType", + "Name": "itemNameTextSizeType" + }, + { "Nilable": false, "Type": "UIWidgetFontType", "Name": "infoTextFontType" }, + { + "Nilable": false, + "Type": "UIWidgetTextSizeType", + "Name": "infoTextSizeType" + }, + { + "Nilable": false, + "Type": "WidgetEnabledState", + "Name": "itemNameCustomColor" + }, + { + "Nilable": false, + "Type": "UIWidgetOverrideState", + "Name": "itemNameCustomColorOverrideState" + } + ], + "Type": "Structure", + "Name": "UIWidgetItemInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "UIWidgetRewardShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "string", "Name": "earnedTooltip" }, + { "Nilable": false, "Type": "string", "Name": "unearnedTooltip" } + ], + "Type": "Structure", + "Name": "UIWidgetRewardInfo" + }, + { + "Fields": [ + { + "Nilable": false, + "Type": "UIWidgetSetLayoutDirection", + "Name": "layoutDirection" + }, + { "Nilable": false, "Type": "number", "Name": "verticalPadding" } + ], + "Type": "Structure", + "Name": "UIWidgetSetInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "WidgetEnabledState", "Name": "enabledState" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "number", "Name": "stackDisplay" }, + { "Nilable": false, "Type": "WidgetIconSizeType", "Name": "iconSizeType" }, + { + "Nilable": false, + "Type": "SpellDisplayIconDisplayType", + "Name": "iconDisplayType" + }, + { + "Nilable": false, + "Type": "SpellDisplayTextShownStateType", + "Name": "textShownState" + }, + { "Nilable": false, "Type": "SpellDisplayBorderColor", "Name": "borderColor" }, + { "Nilable": false, "Type": "UIWidgetFontType", "Name": "textFontType" }, + { "Nilable": false, "Type": "UIWidgetTextSizeType", "Name": "textSizeType" }, + { + "Nilable": false, + "Type": "WidgetTextHorizontalAlignmentType", + "Name": "hAlignType" + }, + { "Nilable": false, "Type": "SpellDisplayTint", "Name": "tint" }, + { "Nilable": false, "Type": "WidgetShowGlowState", "Name": "showGlowState" } + ], + "Type": "Structure", + "Name": "UIWidgetSpellInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "IconState", "Name": "iconState" }, + { "Nilable": false, "Type": "string", "Name": "state1Tooltip" }, + { "Nilable": false, "Type": "string", "Name": "state2Tooltip" } + ], + "Type": "Structure", + "Name": "UIWidgetStateIconInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" } + ], + "Type": "Structure", + "Name": "UIWidgetTextTooltipPair" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "number", "Name": "barMin" }, + { "Nilable": false, "Type": "number", "Name": "barMax" }, + { "Nilable": false, "Type": "number", "Name": "barValue" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" }, + { + "Nilable": false, + "Type": "StatusBarValueTextType", + "Name": "barValueTextType" + }, + { "Nilable": false, "Type": "string", "Name": "overrideBarText" }, + { + "Nilable": false, + "Type": "StatusBarOverrideBarTextShownType", + "Name": "overrideBarTextShownType" + }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "UIWidgetMotionType", "Name": "fillMotionType" }, + { + "Nilable": false, + "Type": "UIWidgetBlendModeType", + "Name": "flashBlendModeType" + }, + { + "Nilable": false, + "Type": "UIWidgetBlendModeType", + "Name": "sparkBlendModeType" + }, + { + "Nilable": false, + "Type": "WidgetUnitPowerBarFlashMomentType", + "Name": "flashMomentType" + }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "UnitPowerBarWidgetVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WidgetShownState", "Name": "shownState" }, + { "Nilable": false, "Type": "ZoneControlMode", "Name": "mode" }, + { + "Nilable": false, + "Type": "ZoneControlLeadingEdgeType", + "Name": "leadingEdgeType" + }, + { + "Nilable": false, + "Type": "ZoneControlDangerFlashType", + "Name": "dangerFlashType" + }, + { + "Nilable": false, + "InnerType": "ZoneEntry", + "Type": "table", + "Name": "zoneEntries" + }, + { "Nilable": false, "Type": "UIWidgetTooltipLocation", "Name": "tooltipLoc" }, + { "Nilable": false, "Type": "number", "Name": "widgetSizeSetting" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": false, "Type": "textureKit", "Name": "frameTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "hasTimer" }, + { "Nilable": false, "Type": "number", "Name": "orderIndex" }, + { "Nilable": false, "Type": "string", "Name": "widgetTag" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "inAnimType" }, + { "Nilable": false, "Type": "WidgetAnimationType", "Name": "outAnimType" }, + { "Nilable": false, "Type": "UIWidgetScale", "Name": "widgetScale" }, + { + "Nilable": false, + "Type": "UIWidgetLayoutDirection", + "Name": "layoutDirection" + }, + { + "Nilable": false, + "Type": "UIWidgetModelSceneLayer", + "Name": "modelSceneLayer" + }, + { "Nilable": false, "Type": "number", "Name": "scriptedAnimationEffectID" } + ], + "Type": "Structure", + "Name": "ZoneControlVisualizationInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "ZoneControlState", "Name": "state" }, + { "Nilable": false, "Type": "ZoneControlActiveState", "Name": "activeState" }, + { "Nilable": false, "Type": "ZoneControlFillType", "Name": "fillType" }, + { "Nilable": false, "Type": "number", "Name": "min" }, + { "Nilable": false, "Type": "number", "Name": "max" }, + { "Nilable": false, "Type": "number", "Name": "current" }, + { "Nilable": false, "Type": "number", "Name": "capturePoint" }, + { "Nilable": false, "Type": "string", "Name": "tooltip" } + ], + "Type": "Structure", + "Name": "ZoneEntry" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "MapIconUIWidgetSetType", + "Fields": [ + { "EnumValue": 0, "Type": "MapIconUIWidgetSetType", "Name": "Tooltip" }, + { "EnumValue": 1, "Type": "MapIconUIWidgetSetType", "Name": "BehindIcon" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetHorizontalDirection", + "Fields": [ + { + "EnumValue": 0, + "Type": "UIWidgetHorizontalDirection", + "Name": "LeftToRight" + }, + { "EnumValue": 1, "Type": "UIWidgetHorizontalDirection", "Name": "RightToLeft" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetLayoutDirection", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetLayoutDirection", "Name": "Default" }, + { "EnumValue": 1, "Type": "UIWidgetLayoutDirection", "Name": "Vertical" }, + { "EnumValue": 2, "Type": "UIWidgetLayoutDirection", "Name": "Horizontal" }, + { "EnumValue": 3, "Type": "UIWidgetLayoutDirection", "Name": "Overlap" }, + { + "EnumValue": 4, + "Type": "UIWidgetLayoutDirection", + "Name": "HorizontalForceNewRow" + } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetScale", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetScale", "Name": "OneHundred" }, + { "EnumValue": 1, "Type": "UIWidgetScale", "Name": "Ninty" }, + { "EnumValue": 2, "Type": "UIWidgetScale", "Name": "Eighty" }, + { "EnumValue": 3, "Type": "UIWidgetScale", "Name": "Seventy" }, + { "EnumValue": 4, "Type": "UIWidgetScale", "Name": "Sixty" }, + { "EnumValue": 5, "Type": "UIWidgetScale", "Name": "Fifty" }, + { "EnumValue": 6, "Type": "UIWidgetScale", "Name": "OneHundredTen" }, + { "EnumValue": 7, "Type": "UIWidgetScale", "Name": "OneHundredTwenty" }, + { "EnumValue": 8, "Type": "UIWidgetScale", "Name": "OneHundredThirty" }, + { "EnumValue": 9, "Type": "UIWidgetScale", "Name": "OneHundredForty" }, + { "EnumValue": 10, "Type": "UIWidgetScale", "Name": "OneHundredFifty" }, + { "EnumValue": 11, "Type": "UIWidgetScale", "Name": "OneHundredSixty" }, + { "EnumValue": 12, "Type": "UIWidgetScale", "Name": "OneHundredSeventy" }, + { "EnumValue": 13, "Type": "UIWidgetScale", "Name": "OneHundredEighty" }, + { "EnumValue": 14, "Type": "UIWidgetScale", "Name": "OneHundredNinety" }, + { "EnumValue": 15, "Type": "UIWidgetScale", "Name": "TwoHundred" } + ], + "MaxValue": 15, + "MinValue": 0, + "NumValues": 16 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetSetLayoutDirection", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetSetLayoutDirection", "Name": "Vertical" }, + { "EnumValue": 1, "Type": "UIWidgetSetLayoutDirection", "Name": "Horizontal" }, + { "EnumValue": 2, "Type": "UIWidgetSetLayoutDirection", "Name": "Overlap" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Type": "Enumeration", + "Name": "UIWidgetVisualizationType", + "Fields": [ + { "EnumValue": 0, "Type": "UIWidgetVisualizationType", "Name": "IconAndText" }, + { "EnumValue": 1, "Type": "UIWidgetVisualizationType", "Name": "CaptureBar" }, + { "EnumValue": 2, "Type": "UIWidgetVisualizationType", "Name": "StatusBar" }, + { + "EnumValue": 3, + "Type": "UIWidgetVisualizationType", + "Name": "DoubleStatusBar" + }, + { + "EnumValue": 4, + "Type": "UIWidgetVisualizationType", + "Name": "IconTextAndBackground" + }, + { + "EnumValue": 5, + "Type": "UIWidgetVisualizationType", + "Name": "DoubleIconAndText" + }, + { + "EnumValue": 6, + "Type": "UIWidgetVisualizationType", + "Name": "StackedResourceTracker" + }, + { + "EnumValue": 7, + "Type": "UIWidgetVisualizationType", + "Name": "IconTextAndCurrencies" + }, + { + "EnumValue": 8, + "Type": "UIWidgetVisualizationType", + "Name": "TextWithState" + }, + { + "EnumValue": 9, + "Type": "UIWidgetVisualizationType", + "Name": "HorizontalCurrencies" + }, + { + "EnumValue": 10, + "Type": "UIWidgetVisualizationType", + "Name": "BulletTextList" + }, + { + "EnumValue": 11, + "Type": "UIWidgetVisualizationType", + "Name": "ScenarioHeaderCurrenciesAndBackground" + }, + { + "EnumValue": 12, + "Type": "UIWidgetVisualizationType", + "Name": "TextureAndText" + }, + { + "EnumValue": 13, + "Type": "UIWidgetVisualizationType", + "Name": "SpellDisplay" + }, + { + "EnumValue": 14, + "Type": "UIWidgetVisualizationType", + "Name": "DoubleStateIconRow" + }, + { + "EnumValue": 15, + "Type": "UIWidgetVisualizationType", + "Name": "TextureAndTextRow" + }, + { "EnumValue": 16, "Type": "UIWidgetVisualizationType", "Name": "ZoneControl" }, + { "EnumValue": 17, "Type": "UIWidgetVisualizationType", "Name": "CaptureZone" }, + { + "EnumValue": 18, + "Type": "UIWidgetVisualizationType", + "Name": "TextureWithAnimation" + }, + { + "EnumValue": 19, + "Type": "UIWidgetVisualizationType", + "Name": "DiscreteProgressSteps" + }, + { + "EnumValue": 20, + "Type": "UIWidgetVisualizationType", + "Name": "ScenarioHeaderTimer" + }, + { + "EnumValue": 21, + "Type": "UIWidgetVisualizationType", + "Name": "TextColumnRow" + }, + { "EnumValue": 22, "Type": "UIWidgetVisualizationType", "Name": "Spacer" }, + { + "EnumValue": 23, + "Type": "UIWidgetVisualizationType", + "Name": "UnitPowerBar" + }, + { + "EnumValue": 24, + "Type": "UIWidgetVisualizationType", + "Name": "FillUpFrames" + }, + { + "EnumValue": 25, + "Type": "UIWidgetVisualizationType", + "Name": "TextWithSubtext" + }, + { + "EnumValue": 26, + "Type": "UIWidgetVisualizationType", + "Name": "MapPinAnimation" + }, + { "EnumValue": 27, "Type": "UIWidgetVisualizationType", "Name": "ItemDisplay" }, + { "EnumValue": 28, "Type": "UIWidgetVisualizationType", "Name": "TugOfWar" }, + { + "EnumValue": 29, + "Type": "UIWidgetVisualizationType", + "Name": "ScenarioHeaderDelves" + } + ], + "MaxValue": 29, + "MinValue": 0, + "NumValues": 30 + } + ] + }, + { + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "url" }], + "Type": "Function", + "Name": "LaunchURL" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "index" }, + { "Nilable": true, "Type": "number", "Name": "param" } + ], + "Type": "Function", + "Name": "LoadURLIndex" + } + ], + "Type": "System", + "Name": "URL", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "UIModelSceneContext", + "Fields": [ + { "EnumValue": -1, "Type": "UIModelSceneContext", "Name": "None" }, + { "EnumValue": 0, "Type": "UIModelSceneContext", "Name": "PerksProgram" } + ], + "MaxValue": 0, + "MinValue": -1, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "UIModelSceneFlags", + "Fields": [ + { "EnumValue": 1, "Type": "UIModelSceneFlags", "Name": "SheatheWeapon" }, + { "EnumValue": 2, "Type": "UIModelSceneFlags", "Name": "HideWeapon" }, + { "EnumValue": 4, "Type": "UIModelSceneFlags", "Name": "Autodress" } + ], + "MaxValue": 4, + "MinValue": 1, + "NumValues": 3 + } + ] + }, + { + "Namespace": "C_UnitAuras", + "Functions": [ + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "anchorID" }], + "Arguments": [ + { "Nilable": false, "Type": "AddPrivateAuraAnchorArgs", "Name": "args" } + ], + "Type": "Function", + "Name": "AddPrivateAuraAnchor" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "privateAuraSoundID" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitPrivateAuraAppliedSoundInfo", "Name": "sound" } + ], + "Type": "Function", + "Name": "AddPrivateAuraAppliedSound" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPrivate" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "AuraIsPrivate" + }, + { + "Returns": [{ "Nilable": true, "Type": "AuraData", "Name": "aura" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "unitToken" }, + { "Nilable": false, "Type": "number", "Name": "auraInstanceID" } + ], + "Type": "Function", + "Name": "GetAuraDataByAuraInstanceID" + }, + { + "Returns": [{ "Nilable": true, "Type": "AuraData", "Name": "aura" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "unitToken" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": true, "Type": "cstring", "Name": "filter" } + ], + "Type": "Function", + "Name": "GetAuraDataByIndex" + }, + { + "Returns": [{ "Nilable": true, "Type": "AuraData", "Name": "aura" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "unitToken" }, + { "Nilable": false, "Type": "number", "Name": "slot" } + ], + "Type": "Function", + "Name": "GetAuraDataBySlot" + }, + { + "Returns": [{ "Nilable": true, "Type": "AuraData", "Name": "aura" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "unitToken" }, + { "Nilable": false, "Type": "cstring", "Name": "spellName" }, + { "Nilable": true, "Type": "cstring", "Name": "filter" } + ], + "Type": "Function", + "Name": "GetAuraDataBySpellName" + }, + { + "Returns": [ + { "Nilable": true, "Type": "number", "Name": "outContinuationToken" }, + { "StrideIndex": 1, "Nilable": false, "Type": "number", "Name": "slots" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": true, "Type": "cstring", "Name": "filter" }, + { "Nilable": true, "Type": "number", "Name": "maxSlots" }, + { "Nilable": true, "Type": "number", "Name": "continuationToken" } + ], + "Type": "Function", + "Name": "GetAuraSlots" + }, + { + "Returns": [{ "Nilable": true, "Type": "AuraData", "Name": "aura" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "unitToken" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": true, "Type": "cstring", "Name": "filter" } + ], + "Type": "Function", + "Name": "GetBuffDataByIndex" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "cooldownSpellID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "GetCooldownAuraBySpellID" + }, + { + "Returns": [{ "Nilable": true, "Type": "AuraData", "Name": "aura" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "unitToken" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": true, "Type": "cstring", "Name": "filter" } + ], + "Type": "Function", + "Name": "GetDebuffDataByIndex" + }, + { + "Returns": [{ "Nilable": true, "Type": "AuraData", "Name": "aura" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "spellID" }], + "Type": "Function", + "Name": "GetPlayerAuraBySpellID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isFiltered" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "unitToken" }, + { "Nilable": false, "Type": "number", "Name": "auraInstanceID" }, + { "Nilable": false, "Type": "cstring", "Name": "filterFlags" } + ], + "Type": "Function", + "Name": "IsAuraFilteredOutByInstanceID" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "anchorID" }], + "Type": "Function", + "Name": "RemovePrivateAuraAnchor" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "privateAuraSoundID" } + ], + "Type": "Function", + "Name": "RemovePrivateAuraAppliedSound" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SimpleFrame", "Name": "parent" }, + { "Nilable": true, "Type": "AnchorBinding", "Name": "anchor" } + ], + "Type": "Function", + "Name": "SetPrivateWarningTextAnchor" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "wantsAlteredForm" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "unitToken" }], + "Type": "Function", + "Name": "WantsAlteredForm" + } + ], + "Type": "System", + "Name": "UnitAuras", + "Events": [ + { + "LiteralName": "UNIT_AURA", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "UnitAuraUpdateInfo", "Name": "updateInfo" } + ], + "Type": "Event", + "Name": "UnitAura" + } + ], + "Tables": [] + }, + { + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "unitToken" }, + { "Nilable": false, "Type": "number", "Name": "auraIndex" }, + { "Nilable": false, "Type": "SimpleFrame", "Name": "parent" }, + { "Nilable": false, "Type": "bool", "Name": "showCountdownFrame" }, + { "Nilable": false, "Type": "bool", "Name": "showCountdownNumbers" }, + { "Nilable": true, "Type": "PrivateAuraIconInfo", "Name": "iconInfo" }, + { "Nilable": true, "Type": "AnchorBinding", "Name": "durationAnchor" } + ], + "Type": "Structure", + "Name": "AddPrivateAuraAnchorArgs" + }, + { + "Fields": [ + { "Nilable": false, "Type": "AnchorBinding", "Name": "iconAnchor" }, + { "Nilable": false, "Type": "uiUnit", "Name": "iconWidth" }, + { "Nilable": false, "Type": "uiUnit", "Name": "iconHeight" } + ], + "Type": "Structure", + "Name": "PrivateAuraIconInfo" + }, + { + "Fields": [ + { "Nilable": false, "Default": false, "Type": "bool", "Name": "isFullUpdate" }, + { + "Nilable": true, + "InnerType": "number", + "Type": "table", + "Name": "removedAuraInstanceIDs" + }, + { + "Nilable": true, + "InnerType": "AuraData", + "Type": "table", + "Name": "addedAuras" + }, + { + "Nilable": true, + "InnerType": "number", + "Type": "table", + "Name": "updatedAuraInstanceIDs" + } + ], + "Type": "Structure", + "Name": "UnitAuraUpdateInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "anchorID" }, + { "Nilable": false, "Type": "string", "Name": "unitToken" }, + { "Nilable": false, "Type": "number", "Name": "auraIndex" }, + { "Nilable": false, "Type": "bool", "Name": "showCountdownFrame" }, + { "Nilable": false, "Type": "bool", "Name": "showCountdownNumbers" }, + { "Nilable": true, "Type": "uiUnit", "Name": "iconWidth" }, + { "Nilable": true, "Type": "uiUnit", "Name": "iconHeight" } + ], + "Type": "Structure", + "Name": "UnitPrivateAuraAnchorInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "unitToken" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": true, "Type": "string", "Name": "soundFileName" }, + { "Nilable": true, "Type": "number", "Name": "soundFileID" }, + { "Nilable": true, "Type": "string", "Name": "outputChannel" } + ], + "Type": "Structure", + "Name": "UnitPrivateAuraAppliedSoundInfo" + } + ] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "virtualSeatIndex" } + ], + "Type": "Function", + "Name": "CanEjectPassengerFromSeat" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "CanShowSetRoleButton" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "CanSwitchVehicleSeat" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "xPos" }, + { "Nilable": false, "Type": "number", "Name": "yPos" }, + { "Nilable": false, "Type": "number", "Name": "distance" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "gameObjectID" }], + "Type": "Function", + "Name": "ClosestGameObjectPosition" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "xPos" }, + { "Nilable": false, "Type": "number", "Name": "yPos" }, + { "Nilable": false, "Type": "number", "Name": "distance" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "creatureID" }], + "Type": "Function", + "Name": "ClosestUnitPosition" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "luaIndex", "Name": "virtualSeatIndex" } + ], + "Type": "Function", + "Name": "EjectPassengerFromSeat" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "UnitToken", "Name": "target" } + ], + "Type": "Function", + "Name": "GetComboPoints" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "CorruptionEffectInfo", + "Type": "table", + "Name": "corruptionEffects" + } + ], + "Type": "Function", + "Name": "GetNegativeCorruptionEffectInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "pointIndices" + } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "GetUnitChargedPowerPoints" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "holdAtMaxTime" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "GetUnitEmpowerHoldAtMaxTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "minHoldTime" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "GetUnitEmpowerMinHoldTime" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "duration" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "number", "Name": "index" } + ], + "Type": "Function", + "Name": "GetUnitEmpowerStageDuration" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "GetUnitHealthModifier" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "GetUnitMaxHealthModifier" + }, + { + "Returns": [{ "Nilable": false, "Type": "UnitPowerBarInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "GetUnitPowerBarInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "UnitPowerBarInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "barID" }], + "Type": "Function", + "Name": "GetUnitPowerBarInfoByID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "cstring", "Name": "tooltip" }, + { "Nilable": true, "Type": "cstring", "Name": "cost" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "GetUnitPowerBarStrings" + }, + { + "Returns": [ + { "Nilable": true, "Type": "cstring", "Name": "name" }, + { "Nilable": true, "Type": "cstring", "Name": "tooltip" }, + { "Nilable": true, "Type": "cstring", "Name": "cost" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "barID" }], + "Type": "Function", + "Name": "GetUnitPowerBarStringsByID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "fileID", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": false, "Type": "luaIndex", "Name": "textureIndex" }, + { "Nilable": true, "Type": "luaIndex", "Name": "timerIndex" } + ], + "Type": "Function", + "Name": "GetUnitPowerBarTextureInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "fileID", "Name": "texture" }, + { "Nilable": false, "Type": "number", "Name": "colorR" }, + { "Nilable": false, "Type": "number", "Name": "colorG" }, + { "Nilable": false, "Type": "number", "Name": "colorB" }, + { "Nilable": false, "Type": "number", "Name": "colorA" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "barID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "textureIndex" } + ], + "Type": "Function", + "Name": "GetUnitPowerBarTextureInfoByID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "GetUnitPowerModifier" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "currentSpeed" }, + { "Nilable": false, "Type": "number", "Name": "runSpeed" }, + { "Nilable": false, "Type": "number", "Name": "flightSpeed" }, + { "Nilable": false, "Type": "number", "Name": "swimSpeed" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "GetUnitSpeed" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "GetUnitTotalModifiedMaxHealthPercent" + }, + { + "Returns": [ + { "Nilable": false, "Type": "fileID", "Name": "backgroundTextureID" }, + { "Nilable": false, "Type": "number", "Name": "numSeatIndicators" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "vehicleIndicatorID" } + ], + "Type": "Function", + "Name": "GetVehicleUIIndicator" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "virtualSeatIndex" }, + { "Nilable": false, "Type": "number", "Name": "xPos" }, + { "Nilable": false, "Type": "number", "Name": "yPos" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "vehicleIndicatorID" }, + { "Nilable": false, "Type": "luaIndex", "Name": "indicatorSeatIndex" } + ], + "Type": "Function", + "Name": "GetVehicleUIIndicatorSeat" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Type": "Function", + "Name": "InitiateRolePoll" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": true, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "IsFalling" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": true, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "IsFlying" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "IsInGuild" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "playerGUID" }], + "Type": "Function", + "Name": "IsPlayerInGuildFromGUID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": true, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "IsSubmerged" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": true, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "IsSwimming" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isReady" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "IsUnitModelReadyForUI" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "PlayerIsPVPInactive" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "vehicleHasComboPoints" } + ], + "Type": "Function", + "Name": "PlayerVehicleHasComboPoints" + }, + { + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "ReportPlayerIsPVPAFK" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "resistance" }, + { "Nilable": false, "Type": "number", "Name": "casterLevel" } + ], + "Type": "Function", + "Name": "ResistancePercent" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SimpleTexture", "Name": "textureObject" }, + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "disableMasking" } + ], + "Type": "Function", + "Name": "SetPortraitTexture" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SimpleTexture", "Name": "textureObject" }, + { "Nilable": false, "Type": "number", "Name": "creatureDisplayID" } + ], + "Type": "Function", + "Name": "SetPortraitTextureFromCreatureDisplayID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasCursor" }], + "Arguments": [ + { "Nilable": false, "Type": "SimpleTexture", "Name": "textureObject" }, + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": true, "Type": "CursorStyle", "Name": "style" }, + { "Nilable": true, "Type": "bool", "Name": "includeLowPriority" } + ], + "Type": "Function", + "Name": "SetUnitCursorTexture" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "ShowBossFrameWhenUninteractable" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitAffectingCombat" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isAlliedRace" }, + { "Nilable": false, "Type": "bool", "Name": "hasHeritageArmorUnlocked" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitAlliedRaceInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "base" }, + { "Nilable": false, "Type": "number", "Name": "effective" }, + { "Nilable": false, "Type": "number", "Name": "real" }, + { "Nilable": false, "Type": "number", "Name": "bonus" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitArmor" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "attackPower" }, + { "Nilable": false, "Type": "number", "Name": "posBuff" }, + { "Nilable": false, "Type": "number", "Name": "negBuff" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitAttackPower" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "attackSpeed" }, + { "Nilable": true, "Type": "number", "Name": "offhandAttackSpeed" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitAttackSpeed" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitBattlePetLevel" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitBattlePetSpeciesID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitBattlePetType" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "UnitToken", "Name": "target" } + ], + "Type": "Function", + "Name": "UnitCanAssist" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "UnitToken", "Name": "target" } + ], + "Type": "Function", + "Name": "UnitCanAttack" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "UnitToken", "Name": "target" } + ], + "Type": "Function", + "Name": "UnitCanCooperate" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "UnitToken", "Name": "target" } + ], + "Type": "Function", + "Name": "UnitCanPetBattle" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "displayName" }, + { "Nilable": false, "Type": "fileID", "Name": "textureID" }, + { "Nilable": false, "Type": "number", "Name": "startTimeMs" }, + { "Nilable": false, "Type": "number", "Name": "endTimeMs" }, + { "Nilable": false, "Type": "bool", "Name": "isTradeskill" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castID" }, + { "Nilable": false, "Type": "bool", "Name": "notInterruptible" }, + { "Nilable": false, "Type": "number", "Name": "castingSpellID" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitCastingInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "displayName" }, + { "Nilable": false, "Type": "fileID", "Name": "textureID" }, + { "Nilable": false, "Type": "number", "Name": "startTimeMs" }, + { "Nilable": false, "Type": "number", "Name": "endTimeMs" }, + { "Nilable": false, "Type": "bool", "Name": "isTradeskill" }, + { "Nilable": false, "Type": "bool", "Name": "notInterruptible" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "bool", "Name": "isEmpowered" }, + { "Nilable": false, "Type": "number", "Name": "numEmpowerStages" } + ], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "unitToken" }], + "Type": "Function", + "Name": "UnitChannelInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "ID" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitChromieTimeID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "className" }, + { "Nilable": false, "Type": "cstring", "Name": "classFilename" }, + { "Nilable": false, "Type": "number", "Name": "classID" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitClass" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "classFilename" }, + { "Nilable": false, "Type": "number", "Name": "classID" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitClassBase" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitClassification" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitControllingVehicle" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitCreatureFamily" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitCreatureType" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "minDamage" }, + { "Nilable": false, "Type": "number", "Name": "maxDamage" }, + { "Nilable": false, "Type": "number", "Name": "offhandMinDamage" }, + { "Nilable": false, "Type": "number", "Name": "offhandMaxDamage" }, + { "Nilable": false, "Type": "number", "Name": "posBuff" }, + { "Nilable": false, "Type": "number", "Name": "negBuff" }, + { "Nilable": false, "Type": "number", "Name": "percent" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitDamage" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isTanking" }, + { "Nilable": false, "Type": "number", "Name": "status" }, + { "Nilable": false, "Type": "number", "Name": "scaledPercentage" }, + { "Nilable": false, "Type": "number", "Name": "rawPercentage" }, + { "Nilable": false, "Type": "number", "Name": "rawThreat" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "UnitToken", "Name": "mobGUID" } + ], + "Type": "Function", + "Name": "UnitDetailedThreatSituation" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "distance" }, + { "Nilable": false, "Type": "bool", "Name": "checkedDistance" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitDistanceSquared" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "UnitEffectiveLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitExists" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "factionGroupTag" }, + { "Nilable": false, "Type": "cstring", "Name": "localized" } + ], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "unitName" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "checkDisplayRace" + } + ], + "Type": "Function", + "Name": "UnitFactionGroup" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "unitName" }, + { "Nilable": false, "Type": "cstring", "Name": "unitServer" } + ], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "unit" }], + "Type": "Function", + "Name": "UnitFullName" + }, + { + "Returns": [{ "Nilable": true, "Type": "WOWGUID", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitGUID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": true, "Type": "UnitToken", "Name": "healerGUID" } + ], + "Type": "Function", + "Name": "UnitGetIncomingHeals" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitGetTotalAbsorbs" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitGetTotalHealAbsorbs" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitGroupRolesAssigned" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitGroupRolesAssignedEnum" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitHPPerStamina" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitHasRelicSlot" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitHasVehiclePlayerFrameUI" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitHasVehicleUI" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitHealthMax" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Default": true, "Type": "bool", "Name": "usePredicted" } + ], + "Type": "Function", + "Name": "UnitHealth" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitHonor" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitHonorLevel" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitHonorMax" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + }, + { "Nilable": true, "Type": "luaIndex", "Name": "partyIndex" } + ], + "Type": "Function", + "Name": "UnitInAnyGroup" + }, + { + "Returns": [{ "Nilable": true, "Type": "luaIndex", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + }, + { "Nilable": true, "Type": "luaIndex", "Name": "partyIndex" } + ], + "Type": "Function", + "Name": "UnitInBattleground" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + }, + { "Nilable": true, "Type": "luaIndex", "Name": "partyIndex" } + ], + "Type": "Function", + "Name": "UnitInParty" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitInPartyIsAI" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "inPartyShard" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitInPartyShard" + }, + { + "Returns": [{ "Nilable": true, "Type": "luaIndex", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + }, + { "Nilable": true, "Type": "luaIndex", "Name": "partyIndex" } + ], + "Type": "Function", + "Name": "UnitInRaid" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "inRange" }, + { "Nilable": false, "Type": "bool", "Name": "checkedRange" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitInRange" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + }, + { "Nilable": true, "Type": "luaIndex", "Name": "partyIndex" } + ], + "Type": "Function", + "Name": "UnitInSubgroup" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitInVehicle" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitInVehicleControlSeat" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitInVehicleHidesPetFrame" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsAFK" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsBattlePet" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsBattlePetCompanion" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsBossMob" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitIsCharmed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isConnected" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsConnected" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsControlling" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitIsCorpse" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsDND" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsDead" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsDeadOrGhost" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "UnitToken", "Name": "target" } + ], + "Type": "Function", + "Name": "UnitIsEnemy" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsFeignDeath" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "UnitToken", "Name": "target" } + ], + "Type": "Function", + "Name": "UnitIsFriend" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitIsGameObject" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsGhost" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsInMyGuild" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitIsInteractable" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "UnitIsMercenary" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitIsOtherPlayersBattlePet" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitIsOtherPlayersPet" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "unitIsOwnerOrControllerOfUnit" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "controllingUnit" }, + { "Nilable": false, "Type": "UnitToken", "Name": "controlledUnit" } + ], + "Type": "Function", + "Name": "UnitIsOwnerOrControllerOfUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsPVP" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsPVPFreeForAll" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitIsPVPSanctuary" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + }, + { "Nilable": true, "Type": "luaIndex", "Name": "partyIndex" } + ], + "Type": "Function", + "Name": "UnitIsPlayer" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitIsPossessed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsQuestBoss" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitIsRaidOfficer" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "unitName" }], + "Type": "Function", + "Name": "UnitIsSameServer" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsTapDenied" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsTrivial" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsUnconscious" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "unitName1" }, + { "Nilable": false, "Type": "cstring", "Name": "unitName2" } + ], + "Type": "Function", + "Name": "UnitIsUnit" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitIsVisible" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitIsWildBattlePet" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "UnitLevel" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "unitName" }, + { "Nilable": false, "Type": "cstring", "Name": "unitServer" } + ], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "unit" }], + "Type": "Function", + "Name": "UnitName" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "unitName" }, + { "Nilable": false, "Type": "cstring", "Name": "unitServer" } + ], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "unit" }], + "Type": "Function", + "Name": "UnitNameUnmodified" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "nameplateShowsWidgetsOnly" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitNameplateShowsWidgetsOnly" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitNumPowerBarTimers" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitOnTaxi" + }, + { + "Returns": [{ "Nilable": false, "Type": "string", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitPVPName" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "partialPower" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": true, "Type": "PowerType", "Name": "powerType" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "unmodified" } + ], + "Type": "Function", + "Name": "UnitPartialPower" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "percentHealth" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "unitGUID" }], + "Type": "Function", + "Name": "UnitPercentHealthFromGUID" + }, + { + "Returns": [{ "Nilable": true, "Type": "PhaseReason", "Name": "reason" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitPhaseReason" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitPlayerControlled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + }, + { "Nilable": true, "Type": "luaIndex", "Name": "partyIndex" } + ], + "Type": "Function", + "Name": "UnitPlayerOrPetInParty" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + }, + { "Nilable": true, "Type": "luaIndex", "Name": "partyIndex" } + ], + "Type": "Function", + "Name": "UnitPlayerOrPetInRaid" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "positionX" }, + { "Nilable": false, "Type": "number", "Name": "positionY" }, + { "Nilable": false, "Type": "number", "Name": "positionZ" }, + { "Nilable": false, "Type": "number", "Name": "mapID" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitPosition" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "power" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": true, "Type": "PowerType", "Name": "powerType" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "unmodified" } + ], + "Type": "Function", + "Name": "UnitPower" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "barID" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "UnitPowerBarID" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "number", "Name": "expiration" }, + { "Nilable": false, "Type": "number", "Name": "barID" }, + { "Nilable": false, "Type": "number", "Name": "auraID" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Default": 0, "Type": "luaIndex", "Name": "index" } + ], + "Type": "Function", + "Name": "UnitPowerBarTimerInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "displayMod" }], + "Arguments": [{ "Nilable": false, "Type": "PowerType", "Name": "powerType" }], + "Type": "Function", + "Name": "UnitPowerDisplayMod" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "maxPower" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }, + { "Nilable": true, "Type": "PowerType", "Name": "powerType" }, + { "Nilable": false, "Default": false, "Type": "bool", "Name": "unmodified" } + ], + "Type": "Function", + "Name": "UnitPowerMax" + }, + { + "Returns": [ + { "Nilable": false, "Type": "PowerType", "Name": "powerType" }, + { "Nilable": false, "Type": "string", "Name": "powerTypeToken" }, + { "Nilable": false, "Type": "number", "Name": "rgbX" }, + { "Nilable": false, "Type": "number", "Name": "rgbY" }, + { "Nilable": false, "Type": "number", "Name": "rgbZ" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Default": 0, "Type": "number", "Name": "index" } + ], + "Type": "Function", + "Name": "UnitPowerType" + }, + { + "Returns": [ + { "Nilable": true, "Type": "PvPUnitClassification", "Name": "classification" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitPvpClassification" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "levelRange" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitQuestTrivialLevelRange" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "levelRange" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitQuestTrivialLevelRangeScaling" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "localizedRaceName" }, + { "Nilable": false, "Type": "cstring", "Name": "englishRaceName" }, + { "Nilable": false, "Type": "number", "Name": "raceID" } + ], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "UnitRace" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "attackPower" }, + { "Nilable": false, "Type": "number", "Name": "posBuff" }, + { "Nilable": false, "Type": "number", "Name": "negBuff" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitRangedAttackPower" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "speed" }, + { "Nilable": false, "Type": "number", "Name": "minDamage" }, + { "Nilable": false, "Type": "number", "Name": "maxDamage" }, + { "Nilable": false, "Type": "number", "Name": "posBuff" }, + { "Nilable": false, "Type": "number", "Name": "negBuff" }, + { "Nilable": false, "Type": "number", "Name": "percent" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitRangedDamage" + }, + { + "Returns": [{ "Nilable": true, "Type": "luaIndex", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "UnitToken", "Name": "target" } + ], + "Type": "Function", + "Name": "UnitReaction" + }, + { + "Returns": [{ "Nilable": true, "Type": "luaIndex", "Name": "realmRelationship" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitRealmRelationship" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "resultR" }, + { "Nilable": false, "Type": "number", "Name": "resultG" }, + { "Nilable": false, "Type": "number", "Name": "resultB" }, + { "Nilable": false, "Type": "number", "Name": "resultA" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "useExtendedColors" + } + ], + "Type": "Function", + "Name": "UnitSelectionColor" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "useExtendedColors" + } + ], + "Type": "Function", + "Name": "UnitSelectionType" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": true, "Type": "cstring", "Name": "roleStr" } + ], + "Type": "Function", + "Name": "UnitSetRole" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": true, "Type": "LFGRole", "Name": "role" } + ], + "Type": "Function", + "Name": "UnitSetRoleEnum" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "sex" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitSex" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitShouldDisplayName" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitSpellHaste" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitStagger" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "currentStat" }, + { "Nilable": false, "Type": "number", "Name": "effectiveStat" }, + { "Nilable": false, "Type": "number", "Name": "statPositiveBuff" }, + { "Nilable": false, "Type": "number", "Name": "statNegativeBuff" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" } + ], + "Type": "Function", + "Name": "UnitStat" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "luaIndex", "Name": "virtualSeatIndex" } + ], + "Type": "Function", + "Name": "UnitSwitchToVehicleSeat" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitTargetsVehicleInRaidUI" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "UnitToken", "Name": "mobGUID" } + ], + "Type": "Function", + "Name": "UnitThreatPercentageOfLead" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "result" }], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": true, "Type": "UnitToken", "Name": "mobGUID" } + ], + "Type": "Function", + "Name": "UnitThreatSituation" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "unitToken" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "unitGUID" }], + "Type": "Function", + "Name": "UnitTokenFromGUID" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "treatAsPlayer" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitTreatAsPlayerForDisplay" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "bankedLevels" }, + { "Nilable": false, "Type": "number", "Name": "xpIntoCurrentLevel" }, + { "Nilable": false, "Type": "number", "Name": "xpForNextLevel" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitTrialBankedLevels" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitTrialXP" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitUsingVehicle" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitVehicleSeatCount" + }, + { + "Returns": [ + { "Nilable": false, "Type": "cstring", "Name": "controlType" }, + { "Nilable": false, "Type": "cstring", "Name": "occupantName" }, + { "Nilable": false, "Type": "cstring", "Name": "serverName" }, + { "Nilable": false, "Type": "bool", "Name": "ejectable" }, + { "Nilable": false, "Type": "bool", "Name": "canSwitchSeats" } + ], + "Arguments": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unit" }, + { "Nilable": false, "Type": "luaIndex", "Name": "virtualSeatIndex" } + ], + "Type": "Function", + "Name": "UnitVehicleSeatInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "fileID", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "UnitVehicleSkin" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "mainHandWeaponAttackPower" }, + { "Nilable": false, "Type": "number", "Name": "offHandWeaponAttackPower" }, + { "Nilable": false, "Type": "number", "Name": "rangedWeaponAttackPower" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitWeaponAttackPower" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "uiWidgetSet" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitWidgetSet" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitXP" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unit" }], + "Type": "Function", + "Name": "UnitXPMax" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "result" }], + "Arguments": [ + { + "Nilable": false, + "Default": "WOWGUID_NULL", + "Type": "UnitToken", + "Name": "unit" + } + ], + "Type": "Function", + "Name": "WorldLootObjectExists" + } + ], + "Type": "System", + "Name": "Unit", + "Events": [ + { + "LiteralName": "ACTIVE_PLAYER_SPECIALIZATION_CHANGED", + "Type": "Event", + "Name": "ActivePlayerSpecializationChanged" + }, + { + "LiteralName": "ARENA_COOLDOWNS_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "ArenaCooldownsUpdate" + }, + { + "LiteralName": "ARENA_CROWD_CONTROL_SPELL_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "ArenaCrowdControlSpellUpdate" + }, + { + "LiteralName": "AUTOFOLLOW_BEGIN", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Event", + "Name": "AutofollowBegin" + }, + { "LiteralName": "AUTOFOLLOW_END", "Type": "Event", "Name": "AutofollowEnd" }, + { "LiteralName": "CANCEL_SUMMON", "Type": "Event", "Name": "CancelSummon" }, + { + "LiteralName": "COMBO_TARGET_CHANGED", + "Type": "Event", + "Name": "ComboTargetChanged" + }, + { + "LiteralName": "CONFIRM_BINDER", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "areaName" }], + "Type": "Event", + "Name": "ConfirmBinder" + }, + { + "LiteralName": "CONFIRM_SUMMON", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "summonReason" }, + { "Nilable": false, "Type": "bool", "Name": "skippingStartExperience" } + ], + "Type": "Event", + "Name": "ConfirmSummon" + }, + { + "LiteralName": "ECLIPSE_DIRECTION_CHANGE", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "direction" }], + "Type": "Event", + "Name": "EclipseDirectionChange" + }, + { "LiteralName": "HEARTHSTONE_BOUND", "Type": "Event", "Name": "HearthstoneBound" }, + { + "LiteralName": "HONOR_XP_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "HonorXpUpdate" + }, + { + "LiteralName": "INCOMING_RESURRECT_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "IncomingResurrectChanged" + }, + { + "LiteralName": "INCOMING_SUMMON_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "IncomingSummonChanged" + }, + { + "LiteralName": "KNOWN_TITLES_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "KnownTitlesUpdate" + }, + { + "LiteralName": "LOCALPLAYER_PET_RENAMED", + "Type": "Event", + "Name": "LocalplayerPetRenamed" + }, + { + "LiteralName": "MIRROR_TIMER_PAUSE", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "timerName" }, + { "Nilable": false, "Type": "number", "Name": "paused" } + ], + "Type": "Event", + "Name": "MirrorTimerPause" + }, + { + "LiteralName": "MIRROR_TIMER_START", + "Payload": [ + { "Nilable": false, "Type": "cstring", "Name": "timerName" }, + { "Nilable": false, "Type": "number", "Name": "value" }, + { "Nilable": false, "Type": "number", "Name": "maxValue" }, + { "Nilable": false, "Type": "number", "Name": "scale" }, + { "Nilable": false, "Type": "number", "Name": "paused" }, + { "Nilable": false, "Type": "cstring", "Name": "timerLabel" } + ], + "Type": "Event", + "Name": "MirrorTimerStart" + }, + { + "LiteralName": "MIRROR_TIMER_STOP", + "Payload": [{ "Nilable": false, "Type": "cstring", "Name": "timerName" }], + "Type": "Event", + "Name": "MirrorTimerStop" + }, + { + "LiteralName": "NEUTRAL_FACTION_SELECT_RESULT", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Type": "Event", + "Name": "NeutralFactionSelectResult" + }, + { + "LiteralName": "OBJECT_ENTERED_AOI", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Event", + "Name": "ObjectEnteredAOI" + }, + { + "LiteralName": "OBJECT_LEFT_AOI", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Event", + "Name": "ObjectLeftAOI" + }, + { + "LiteralName": "PET_BAR_UPDATE_USABLE", + "Type": "Event", + "Name": "PetBarUpdateUsable" + }, + { "LiteralName": "PET_UI_UPDATE", "Type": "Event", "Name": "PetUiUpdate" }, + { + "LiteralName": "PLAYER_CAN_GLIDE_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "canGlide" }], + "Type": "Event", + "Name": "PlayerCanGlideChanged" + }, + { + "LiteralName": "PLAYER_DAMAGE_DONE_MODS", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "PlayerDamageDoneMods" + }, + { + "LiteralName": "PLAYER_ENTER_COMBAT", + "Type": "Event", + "Name": "PlayerEnterCombat" + }, + { + "LiteralName": "PLAYER_FARSIGHT_FOCUS_CHANGED", + "Type": "Event", + "Name": "PlayerFarsightFocusChanged" + }, + { + "LiteralName": "PLAYER_FLAGS_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "PlayerFlagsChanged" + }, + { + "LiteralName": "PLAYER_FOCUS_CHANGED", + "Type": "Event", + "Name": "PlayerFocusChanged" + }, + { + "LiteralName": "PLAYER_IMPULSE_APPLIED", + "Type": "Event", + "Name": "PlayerImpulseApplied" + }, + { + "LiteralName": "PLAYER_IS_GLIDING_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isGliding" }], + "Type": "Event", + "Name": "PlayerIsGlidingChanged" + }, + { + "LiteralName": "PLAYER_LEAVE_COMBAT", + "Type": "Event", + "Name": "PlayerLeaveCombat" + }, + { + "LiteralName": "PLAYER_LEVEL_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "oldLevel" }, + { "Nilable": false, "Type": "number", "Name": "newLevel" }, + { "Nilable": false, "Type": "bool", "Name": "real" } + ], + "Type": "Event", + "Name": "PlayerLevelChanged" + }, + { + "LiteralName": "PLAYER_LEVEL_UP", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": false, "Type": "number", "Name": "healthDelta" }, + { "Nilable": false, "Type": "number", "Name": "powerDelta" }, + { "Nilable": false, "Type": "number", "Name": "numNewTalents" }, + { "Nilable": false, "Type": "number", "Name": "numNewPvpTalentSlots" }, + { "Nilable": false, "Type": "number", "Name": "strengthDelta" }, + { "Nilable": false, "Type": "number", "Name": "agilityDelta" }, + { "Nilable": false, "Type": "number", "Name": "staminaDelta" }, + { "Nilable": false, "Type": "number", "Name": "intellectDelta" } + ], + "Type": "Event", + "Name": "PlayerLevelUp" + }, + { + "LiteralName": "PLAYER_MOUNT_DISPLAY_CHANGED", + "Type": "Event", + "Name": "PlayerMountDisplayChanged" + }, + { + "LiteralName": "PLAYER_PVP_KILLS_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "PlayerPvpKillsChanged" + }, + { + "LiteralName": "PLAYER_PVP_RANK_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "PlayerPvpRankChanged" + }, + { + "LiteralName": "PLAYER_REGEN_DISABLED", + "Type": "Event", + "Name": "PlayerRegenDisabled" + }, + { + "LiteralName": "PLAYER_REGEN_ENABLED", + "Type": "Event", + "Name": "PlayerRegenEnabled" + }, + { + "LiteralName": "PLAYER_SOFT_ENEMY_CHANGED", + "Type": "Event", + "Name": "PlayerSoftEnemyChanged" + }, + { + "LiteralName": "PLAYER_SOFT_FRIEND_CHANGED", + "Type": "Event", + "Name": "PlayerSoftFriendChanged" + }, + { + "LiteralName": "PLAYER_SOFT_INTERACT_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "oldTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "newTarget" } + ], + "Type": "Event", + "Name": "PlayerSoftInteractChanged" + }, + { + "LiteralName": "PLAYER_SOFT_TARGET_INTERACTION", + "Type": "Event", + "Name": "PlayerSoftTargetInteraction" + }, + { + "LiteralName": "PLAYER_SPECIALIZATION_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "PlayerSpecializationChanged" + }, + { + "LiteralName": "PLAYER_STARTED_LOOKING", + "Type": "Event", + "Name": "PlayerStartedLooking" + }, + { + "LiteralName": "PLAYER_STARTED_MOVING", + "Type": "Event", + "Name": "PlayerStartedMoving" + }, + { + "LiteralName": "PLAYER_STARTED_TURNING", + "Type": "Event", + "Name": "PlayerStartedTurning" + }, + { + "LiteralName": "PLAYER_STOPPED_LOOKING", + "Type": "Event", + "Name": "PlayerStoppedLooking" + }, + { + "LiteralName": "PLAYER_STOPPED_MOVING", + "Type": "Event", + "Name": "PlayerStoppedMoving" + }, + { + "LiteralName": "PLAYER_STOPPED_TURNING", + "Type": "Event", + "Name": "PlayerStoppedTurning" + }, + { + "LiteralName": "PLAYER_TARGET_CHANGED", + "Type": "Event", + "Name": "PlayerTargetChanged" + }, + { + "LiteralName": "PLAYER_TRIAL_XP_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "PlayerTrialXpUpdate" + }, + { + "LiteralName": "PLAYER_UPDATE_RESTING", + "Type": "Event", + "Name": "PlayerUpdateResting" + }, + { + "LiteralName": "PLAYER_XP_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "PlayerXpUpdate" + }, + { "LiteralName": "PORTRAITS_UPDATED", "Type": "Event", "Name": "PortraitsUpdated" }, + { + "LiteralName": "PROVING_GROUNDS_SCORE_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "points" }], + "Type": "Event", + "Name": "ProvingGroundsScoreUpdate" + }, + { + "LiteralName": "PVP_TIMER_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "PvpTimerUpdate" + }, + { + "LiteralName": "RUNE_POWER_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "runeIndex" }, + { "Nilable": true, "Type": "bool", "Name": "added" } + ], + "Type": "Event", + "Name": "RunePowerUpdate" + }, + { + "LiteralName": "RUNE_TYPE_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "runeIndex" }], + "Type": "Event", + "Name": "RuneTypeUpdate" + }, + { + "LiteralName": "SHOW_FACTION_SELECT_UI", + "Type": "Event", + "Name": "ShowFactionSelectUi" + }, + { + "LiteralName": "SPELL_CONFIRMATION_PROMPT", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "effectValue" }, + { "Nilable": false, "Type": "cstring", "Name": "message" }, + { "Nilable": false, "Type": "number", "Name": "duration" }, + { "Nilable": false, "Type": "number", "Name": "currencyTypesID" }, + { "Nilable": false, "Type": "number", "Name": "currencyCost" }, + { "Nilable": false, "Type": "number", "Name": "currentDifficulty" } + ], + "Type": "Event", + "Name": "SpellConfirmationPrompt" + }, + { + "LiteralName": "SPELL_CONFIRMATION_TIMEOUT", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "number", "Name": "effectValue" } + ], + "Type": "Event", + "Name": "SpellConfirmationTimeout" + }, + { + "LiteralName": "UNIT_ABSORB_AMOUNT_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitAbsorbAmountChanged" + }, + { + "LiteralName": "UNIT_AREA_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitAreaChanged" + }, + { + "LiteralName": "UNIT_ATTACK", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitAttack" + }, + { + "LiteralName": "UNIT_ATTACK_POWER", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitAttackPower" + }, + { + "LiteralName": "UNIT_ATTACK_SPEED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitAttackSpeed" + }, + { + "LiteralName": "UNIT_CHEAT_TOGGLE_EVENT", + "Type": "Event", + "Name": "UnitCheatToggleEvent" + }, + { + "LiteralName": "UNIT_CLASSIFICATION_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitClassificationChanged" + }, + { + "LiteralName": "UNIT_COMBAT", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "cstring", "Name": "event" }, + { "Nilable": false, "Type": "cstring", "Name": "flagText" }, + { "Nilable": false, "Type": "number", "Name": "amount" }, + { "Nilable": false, "Type": "number", "Name": "schoolMask" } + ], + "Type": "Event", + "Name": "UnitCombat" + }, + { + "LiteralName": "UNIT_CONNECTION", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "bool", "Name": "isConnected" } + ], + "Type": "Event", + "Name": "UnitConnection" + }, + { + "LiteralName": "UNIT_CTR_OPTIONS", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitCtrOptions" + }, + { + "LiteralName": "UNIT_DAMAGE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitDamage" + }, + { + "LiteralName": "UNIT_DEFENSE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitDefense" + }, + { + "LiteralName": "UNIT_DISPLAYPOWER", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitDisplaypower" + }, + { + "LiteralName": "UNIT_DISTANCE_CHECK_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "bool", "Name": "isInDistance" } + ], + "Type": "Event", + "Name": "UnitDistanceCheckUpdate" + }, + { + "LiteralName": "UNIT_FACTION", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitFaction" + }, + { + "LiteralName": "UNIT_FLAGS", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitFlags" + }, + { + "LiteralName": "UNIT_FORM_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitFormChanged" + }, + { + "LiteralName": "UNIT_HEAL_ABSORB_AMOUNT_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitHealAbsorbAmountChanged" + }, + { + "LiteralName": "UNIT_HEAL_PREDICTION", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitHealPrediction" + }, + { + "LiteralName": "UNIT_HEALTH", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitHealth" + }, + { + "LiteralName": "UNIT_IN_RANGE_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "bool", "Name": "isInRange" } + ], + "Type": "Event", + "Name": "UnitInRangeUpdate" + }, + { + "LiteralName": "UNIT_INVENTORY_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitInventoryChanged" + }, + { + "LiteralName": "UNIT_LEVEL", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitLevel" + }, + { + "LiteralName": "UNIT_MANA", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitMana" + }, + { + "LiteralName": "UNIT_MAX_HEALTH_MODIFIERS_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "number", "Name": "percentMaxHealthAdjusted" } + ], + "Type": "Event", + "Name": "UnitMaxHealthModifiersChanged" + }, + { + "LiteralName": "UNIT_MAXHEALTH", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitMaxhealth" + }, + { + "LiteralName": "UNIT_MAXPOWER", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "cstring", "Name": "powerType" } + ], + "Type": "Event", + "Name": "UnitMaxpower" + }, + { + "LiteralName": "UNIT_MODEL_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitModelChanged" + }, + { + "LiteralName": "UNIT_NAME_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitNameUpdate" + }, + { + "LiteralName": "UNIT_OTHER_PARTY_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitOtherPartyChanged" + }, + { + "LiteralName": "UNIT_PET", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitPet" + }, + { + "LiteralName": "UNIT_PET_EXPERIENCE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitPetExperience" + }, + { + "LiteralName": "UNIT_PHASE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitPhase" + }, + { + "LiteralName": "UNIT_PORTRAIT_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitPortraitUpdate" + }, + { + "LiteralName": "UNIT_POWER_BAR_HIDE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitPowerBarHide" + }, + { + "LiteralName": "UNIT_POWER_BAR_SHOW", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitPowerBarShow" + }, + { + "LiteralName": "UNIT_POWER_BAR_TIMER_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitPowerBarTimerUpdate" + }, + { + "LiteralName": "UNIT_POWER_FREQUENT", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "cstring", "Name": "powerType" } + ], + "Type": "Event", + "Name": "UnitPowerFrequent" + }, + { + "LiteralName": "UNIT_POWER_POINT_CHARGE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitPowerPointCharge" + }, + { + "LiteralName": "UNIT_POWER_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "cstring", "Name": "powerType" } + ], + "Type": "Event", + "Name": "UnitPowerUpdate" + }, + { + "LiteralName": "UNIT_QUEST_LOG_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitQuestLogChanged" + }, + { + "LiteralName": "UNIT_RANGED_ATTACK_POWER", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitRangedAttackPower" + }, + { + "LiteralName": "UNIT_RANGEDDAMAGE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitRangeddamage" + }, + { + "LiteralName": "UNIT_RESISTANCES", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitResistances" + }, + { + "LiteralName": "UNIT_SPELL_HASTE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitSpellHaste" + }, + { + "LiteralName": "UNIT_SPELLCAST_CHANNEL_START", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastChannelStart" + }, + { + "LiteralName": "UNIT_SPELLCAST_CHANNEL_STOP", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastChannelStop" + }, + { + "LiteralName": "UNIT_SPELLCAST_CHANNEL_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastChannelUpdate" + }, + { + "LiteralName": "UNIT_SPELLCAST_DELAYED", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastDelayed" + }, + { + "LiteralName": "UNIT_SPELLCAST_EMPOWER_START", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastEmpowerStart" + }, + { + "LiteralName": "UNIT_SPELLCAST_EMPOWER_STOP", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "bool", "Name": "complete" } + ], + "Type": "Event", + "Name": "UnitSpellcastEmpowerStop" + }, + { + "LiteralName": "UNIT_SPELLCAST_EMPOWER_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastEmpowerUpdate" + }, + { + "LiteralName": "UNIT_SPELLCAST_FAILED", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastFailed" + }, + { + "LiteralName": "UNIT_SPELLCAST_FAILED_QUIET", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastFailedQuiet" + }, + { + "LiteralName": "UNIT_SPELLCAST_INTERRUPTED", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastInterrupted" + }, + { + "LiteralName": "UNIT_SPELLCAST_INTERRUPTIBLE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitSpellcastInterruptible" + }, + { + "LiteralName": "UNIT_SPELLCAST_NOT_INTERRUPTIBLE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitSpellcastNotInterruptible" + }, + { + "LiteralName": "UNIT_SPELLCAST_RETICLE_CLEAR", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastReticleClear" + }, + { + "LiteralName": "UNIT_SPELLCAST_RETICLE_TARGET", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastReticleTarget" + }, + { + "LiteralName": "UNIT_SPELLCAST_START", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastStart" + }, + { + "LiteralName": "UNIT_SPELLCAST_STOP", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastStop" + }, + { + "LiteralName": "UNIT_SPELLCAST_SUCCEEDED", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castGUID" }, + { "Nilable": false, "Type": "number", "Name": "spellID" } + ], + "Type": "Event", + "Name": "UnitSpellcastSucceeded" + }, + { + "LiteralName": "UNIT_STATS", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitStats" + }, + { + "LiteralName": "UNIT_TARGET", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitTarget" + }, + { + "LiteralName": "UNIT_TARGETABLE_CHANGED", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitTargetableChanged" + }, + { + "LiteralName": "UNIT_THREAT_LIST_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitThreatListUpdate" + }, + { + "LiteralName": "UNIT_THREAT_SITUATION_UPDATE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitThreatSituationUpdate" + }, + { "LiteralName": "UPDATE_EXHAUSTION", "Type": "Event", "Name": "UpdateExhaustion" }, + { + "LiteralName": "UPDATE_MOUSEOVER_UNIT", + "Type": "Event", + "Name": "UpdateMouseoverUnit" + }, + { "LiteralName": "UPDATE_STEALTH", "Type": "Event", "Name": "UpdateStealth" }, + { + "LiteralName": "VEHICLE_ANGLE_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "normalizedPitch" }, + { "Nilable": false, "Type": "number", "Name": "radians" } + ], + "Type": "Event", + "Name": "VehicleAngleUpdate" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "PhaseReason", + "Fields": [ + { "EnumValue": 0, "Type": "PhaseReason", "Name": "Phasing" }, + { "EnumValue": 1, "Type": "PhaseReason", "Name": "Sharding" }, + { "EnumValue": 2, "Type": "PhaseReason", "Name": "WarMode" }, + { "EnumValue": 3, "Type": "PhaseReason", "Name": "ChromieTime" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "PvPUnitClassification", + "Fields": [ + { "EnumValue": 0, "Type": "PvPUnitClassification", "Name": "FlagCarrierHorde" }, + { + "EnumValue": 1, + "Type": "PvPUnitClassification", + "Name": "FlagCarrierAlliance" + }, + { + "EnumValue": 2, + "Type": "PvPUnitClassification", + "Name": "FlagCarrierNeutral" + }, + { "EnumValue": 3, "Type": "PvPUnitClassification", "Name": "CartRunnerHorde" }, + { + "EnumValue": 4, + "Type": "PvPUnitClassification", + "Name": "CartRunnerAlliance" + }, + { "EnumValue": 5, "Type": "PvPUnitClassification", "Name": "AssassinHorde" }, + { "EnumValue": 6, "Type": "PvPUnitClassification", "Name": "AssassinAlliance" }, + { "EnumValue": 7, "Type": "PvPUnitClassification", "Name": "OrbCarrierBlue" }, + { "EnumValue": 8, "Type": "PvPUnitClassification", "Name": "OrbCarrierGreen" }, + { "EnumValue": 9, "Type": "PvPUnitClassification", "Name": "OrbCarrierOrange" }, + { "EnumValue": 10, "Type": "PvPUnitClassification", "Name": "OrbCarrierPurple" } + ], + "MaxValue": 10, + "MinValue": 0, + "NumValues": 11 + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "minCorruption" } + ], + "Type": "Structure", + "Name": "CorruptionEffectInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "string", "Name": "displayName" }, + { "Nilable": false, "Type": "fileID", "Name": "textureID" }, + { "Nilable": false, "Type": "number", "Name": "startTimeMs" }, + { "Nilable": false, "Type": "number", "Name": "endTimeMs" }, + { "Nilable": false, "Type": "bool", "Name": "isTradeskill" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "castID" }, + { "Nilable": false, "Type": "bool", "Name": "notInterruptible" }, + { "Nilable": false, "Type": "number", "Name": "castingSpellID" } + ], + "Type": "Structure", + "Name": "UnitCastingInfoResult" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "displayName" }, + { "Nilable": false, "Type": "fileID", "Name": "textureID" }, + { "Nilable": false, "Type": "number", "Name": "startTimeMs" }, + { "Nilable": false, "Type": "number", "Name": "endTimeMs" }, + { "Nilable": false, "Type": "bool", "Name": "isTradeskill" }, + { "Nilable": false, "Type": "bool", "Name": "notInterruptible" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "bool", "Name": "isEmpowered" }, + { "Nilable": false, "Type": "number", "Name": "numEmpowerStages" } + ], + "Type": "Structure", + "Name": "UnitChannelInfoResult" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "ID" }, + { "Nilable": false, "Type": "number", "Name": "barType" }, + { "Nilable": false, "Type": "number", "Name": "minPower" }, + { "Nilable": false, "Type": "number", "Name": "startInset" }, + { "Nilable": false, "Type": "number", "Name": "endInset" }, + { "Nilable": false, "Type": "bool", "Name": "smooth" }, + { "Nilable": false, "Type": "bool", "Name": "hideFromOthers" }, + { "Nilable": false, "Type": "bool", "Name": "showOnRaid" }, + { "Nilable": false, "Type": "bool", "Name": "opaqueSpark" }, + { "Nilable": false, "Type": "bool", "Name": "opaqueFlash" }, + { "Nilable": false, "Type": "bool", "Name": "anchorTop" }, + { "Nilable": false, "Type": "bool", "Name": "forcePercentage" }, + { "Nilable": false, "Type": "bool", "Name": "sparkUnderFrame" }, + { "Nilable": false, "Type": "bool", "Name": "flashAtMinPower" }, + { "Nilable": false, "Type": "bool", "Name": "fractionalCounter" }, + { "Nilable": false, "Type": "bool", "Name": "animateNumbers" } + ], + "Type": "Structure", + "Name": "UnitPowerBarInfo" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "UnitSex", + "Fields": [ + { "EnumValue": 0, "Type": "UnitSex", "Name": "Male" }, + { "EnumValue": 1, "Type": "UnitSex", "Name": "Female" }, + { "EnumValue": 2, "Type": "UnitSex", "Name": "None" }, + { "EnumValue": 3, "Type": "UnitSex", "Name": "Both" }, + { "EnumValue": 4, "Type": "UnitSex", "Name": "Neutral" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_UserFeedback", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "bugInfo" }, + { + "Nilable": false, + "Default": false, + "Type": "bool", + "Name": "suppressNotification" + } + ], + "Type": "Function", + "Name": "SubmitBug" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "success" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "suggestion" }], + "Type": "Function", + "Name": "SubmitSuggestion" + } + ], + "Type": "System", + "Name": "UserFeedback", + "Events": [], + "Tables": [] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "ScrubStringFlags", + "Fields": [ + { "EnumValue": 0, "Type": "ScrubStringFlags", "Name": "None" }, + { "EnumValue": 1, "Type": "ScrubStringFlags", "Name": "TruncateNewLines" }, + { "EnumValue": 2, "Type": "ScrubStringFlags", "Name": "AllowBarCodes" }, + { "EnumValue": 4, "Type": "ScrubStringFlags", "Name": "StripControlCodes" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 4 + }, + { + "Type": "Enumeration", + "Name": "ValidateNameResult", + "Fields": [ + { "EnumValue": 0, "Type": "ValidateNameResult", "Name": "Success" }, + { "EnumValue": 1, "Type": "ValidateNameResult", "Name": "Failure" }, + { "EnumValue": 2, "Type": "ValidateNameResult", "Name": "NoName" }, + { "EnumValue": 3, "Type": "ValidateNameResult", "Name": "TooShort" }, + { "EnumValue": 4, "Type": "ValidateNameResult", "Name": "TooLong" }, + { "EnumValue": 5, "Type": "ValidateNameResult", "Name": "InvalidCharacter" }, + { "EnumValue": 6, "Type": "ValidateNameResult", "Name": "MixedLanguages" }, + { "EnumValue": 7, "Type": "ValidateNameResult", "Name": "Profane" }, + { "EnumValue": 8, "Type": "ValidateNameResult", "Name": "Reserved" }, + { "EnumValue": 9, "Type": "ValidateNameResult", "Name": "InvalidApostrophe" }, + { + "EnumValue": 10, + "Type": "ValidateNameResult", + "Name": "MultipleApostrophes" + }, + { "EnumValue": 11, "Type": "ValidateNameResult", "Name": "ThreeConsecutive" }, + { "EnumValue": 12, "Type": "ValidateNameResult", "Name": "InvalidSpace" }, + { "EnumValue": 13, "Type": "ValidateNameResult", "Name": "ConsecutiveSpaces" }, + { + "EnumValue": 14, + "Type": "ValidateNameResult", + "Name": "RussianConsecutiveSilentCharacters" + }, + { + "EnumValue": 15, + "Type": "ValidateNameResult", + "Name": "RussianSilentCharacterAtBeginningOrEnd" + }, + { + "EnumValue": 16, + "Type": "ValidateNameResult", + "Name": "DeclensionDoesntMatchBaseName" + }, + { "EnumValue": 17, "Type": "ValidateNameResult", "Name": "SpacesDisallowed" } + ], + "MaxValue": 17, + "MinValue": 0, + "NumValues": 18 + } + ] + }, + { "Tables": [] }, + { "Tables": [] }, + { + "Namespace": "C_Vehicle", + "Functions": [], + "Type": "System", + "Name": "Vehicle", + "Events": [ + { + "LiteralName": "PLAYER_GAINS_VEHICLE_DATA", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "number", "Name": "vehicleUIIndicatorID" } + ], + "Type": "Event", + "Name": "PlayerGainsVehicleData" + }, + { + "LiteralName": "PLAYER_LOSES_VEHICLE_DATA", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "PlayerLosesVehicleData" + }, + { + "LiteralName": "UNIT_ENTERED_VEHICLE", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "bool", "Name": "showVehicleFrame" }, + { "Nilable": false, "Type": "bool", "Name": "isControlSeat" }, + { "Nilable": false, "Type": "number", "Name": "vehicleUIIndicatorID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "vehicleGUID" }, + { "Nilable": false, "Type": "bool", "Name": "mayChooseExit" }, + { "Nilable": false, "Type": "bool", "Name": "hasPitch" } + ], + "Type": "Event", + "Name": "UnitEnteredVehicle" + }, + { + "LiteralName": "UNIT_ENTERING_VEHICLE", + "Payload": [ + { "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }, + { "Nilable": false, "Type": "bool", "Name": "showVehicleFrame" }, + { "Nilable": false, "Type": "bool", "Name": "isControlSeat" }, + { "Nilable": false, "Type": "number", "Name": "vehicleUIIndicatorID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "vehicleGUID" }, + { "Nilable": false, "Type": "bool", "Name": "mayChooseExit" }, + { "Nilable": false, "Type": "bool", "Name": "hasPitch" } + ], + "Type": "Event", + "Name": "UnitEnteringVehicle" + }, + { + "LiteralName": "UNIT_EXITED_VEHICLE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitExitedVehicle" + }, + { + "LiteralName": "UNIT_EXITING_VEHICLE", + "Payload": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitTarget" }], + "Type": "Event", + "Name": "UnitExitingVehicle" + }, + { + "LiteralName": "VEHICLE_ANGLE_SHOW", + "Payload": [{ "Nilable": true, "Type": "number", "Name": "shouldShow" }], + "Type": "Event", + "Name": "VehicleAngleShow" + }, + { + "LiteralName": "VEHICLE_PASSENGERS_CHANGED", + "Type": "Event", + "Name": "VehiclePassengersChanged" + }, + { + "LiteralName": "VEHICLE_POWER_SHOW", + "Payload": [{ "Nilable": true, "Type": "number", "Name": "shouldShow" }], + "Type": "Event", + "Name": "VehiclePowerShow" + }, + { "LiteralName": "VEHICLE_UPDATE", "Type": "Event", "Name": "VehicleUpdate" } + ], + "Tables": [] + }, + { + "Namespace": "C_VideoOptions", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "size" + } + ], + "Type": "Function", + "Name": "GetCurrentGameWindowSize" + }, + { + "Returns": [ + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "size" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "monitor" }], + "Type": "Function", + "Name": "GetDefaultGameWindowSize" + }, + { + "Returns": [ + { "Nilable": false, "InnerType": "vector2", "Type": "table", "Name": "sizes" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "monitor" }, + { "Nilable": false, "Type": "bool", "Name": "fullscreen" } + ], + "Type": "Function", + "Name": "GetGameWindowSizes" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "GxAdapterInfoDetails", + "Type": "table", + "Name": "adapters" + } + ], + "Type": "Function", + "Name": "GetGxAdapterInfo" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "x" }, + { "Nilable": false, "Type": "number", "Name": "y" } + ], + "Type": "Function", + "Name": "SetGameWindowSize" + } + ], + "Type": "System", + "Name": "Video", + "Events": [ + { + "LiteralName": "ADAPTER_LIST_CHANGED", + "Type": "Event", + "Name": "AdapterListChanged" + }, + { + "LiteralName": "DISPLAY_SIZE_CHANGED", + "Type": "Event", + "Name": "DisplaySizeChanged" + }, + { + "LiteralName": "GLUE_SCREENSHOT_FAILED", + "Type": "Event", + "Name": "GlueScreenshotFailed" + }, + { + "LiteralName": "GLUE_SCREENSHOT_STARTED", + "Type": "Event", + "Name": "GlueScreenshotStarted" + }, + { + "LiteralName": "GLUE_SCREENSHOT_SUCCEEDED", + "Type": "Event", + "Name": "GlueScreenshotSucceeded" + }, + { "LiteralName": "GX_RESTARTED", "Type": "Event", "Name": "GxRestarted" }, + { "LiteralName": "SCREENSHOT_FAILED", "Type": "Event", "Name": "ScreenshotFailed" }, + { + "LiteralName": "SCREENSHOT_STARTED", + "Type": "Event", + "Name": "ScreenshotStarted" + }, + { + "LiteralName": "SCREENSHOT_SUCCEEDED", + "Type": "Event", + "Name": "ScreenshotSucceeded" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "GraphicsValidationResult", + "Fields": [ + { "EnumValue": 0, "Type": "GraphicsValidationResult", "Name": "Supported" }, + { "EnumValue": 1, "Type": "GraphicsValidationResult", "Name": "Illegal" }, + { "EnumValue": 2, "Type": "GraphicsValidationResult", "Name": "Unsupported" }, + { "EnumValue": 3, "Type": "GraphicsValidationResult", "Name": "Graphics" }, + { "EnumValue": 4, "Type": "GraphicsValidationResult", "Name": "DualCore" }, + { "EnumValue": 5, "Type": "GraphicsValidationResult", "Name": "QuadCore" }, + { "EnumValue": 6, "Type": "GraphicsValidationResult", "Name": "CpuMem_2" }, + { "EnumValue": 7, "Type": "GraphicsValidationResult", "Name": "CpuMem_4" }, + { "EnumValue": 8, "Type": "GraphicsValidationResult", "Name": "CpuMem_8" }, + { "EnumValue": 9, "Type": "GraphicsValidationResult", "Name": "Needs_5_0" }, + { "EnumValue": 10, "Type": "GraphicsValidationResult", "Name": "Needs_6_0" }, + { "EnumValue": 11, "Type": "GraphicsValidationResult", "Name": "NeedsRt" }, + { "EnumValue": 12, "Type": "GraphicsValidationResult", "Name": "NeedsDx12" }, + { + "EnumValue": 13, + "Type": "GraphicsValidationResult", + "Name": "NeedsDx12Vrs2" + }, + { + "EnumValue": 14, + "Type": "GraphicsValidationResult", + "Name": "NeedsAppleGpu" + }, + { "EnumValue": 15, "Type": "GraphicsValidationResult", "Name": "NeedsAmdGpu" }, + { + "EnumValue": 16, + "Type": "GraphicsValidationResult", + "Name": "NeedsIntelGpu" + }, + { + "EnumValue": 17, + "Type": "GraphicsValidationResult", + "Name": "NeedsNvidiaGpu" + }, + { + "EnumValue": 18, + "Type": "GraphicsValidationResult", + "Name": "NeedsQualcommGpu" + }, + { + "EnumValue": 19, + "Type": "GraphicsValidationResult", + "Name": "NeedsMacOs_10_13" + }, + { + "EnumValue": 20, + "Type": "GraphicsValidationResult", + "Name": "NeedsMacOs_10_14" + }, + { + "EnumValue": 21, + "Type": "GraphicsValidationResult", + "Name": "NeedsMacOs_10_15" + }, + { + "EnumValue": 22, + "Type": "GraphicsValidationResult", + "Name": "NeedsMacOs_11_0" + }, + { + "EnumValue": 23, + "Type": "GraphicsValidationResult", + "Name": "NeedsMacOs_12_0" + }, + { + "EnumValue": 24, + "Type": "GraphicsValidationResult", + "Name": "NeedsMacOs_13_0" + }, + { + "EnumValue": 25, + "Type": "GraphicsValidationResult", + "Name": "NeedsWindows_10" + }, + { + "EnumValue": 26, + "Type": "GraphicsValidationResult", + "Name": "NeedsWindows_11" + }, + { + "EnumValue": 27, + "Type": "GraphicsValidationResult", + "Name": "MacOsUnsupported" + }, + { + "EnumValue": 28, + "Type": "GraphicsValidationResult", + "Name": "WindowsUnsupported" + }, + { + "EnumValue": 29, + "Type": "GraphicsValidationResult", + "Name": "LegacyUnsupported" + }, + { + "EnumValue": 30, + "Type": "GraphicsValidationResult", + "Name": "Dx11Unsupported" + }, + { + "EnumValue": 31, + "Type": "GraphicsValidationResult", + "Name": "Dx12Win7Unsupported" + }, + { + "EnumValue": 32, + "Type": "GraphicsValidationResult", + "Name": "RemoteDesktopUnsupported" + }, + { + "EnumValue": 33, + "Type": "GraphicsValidationResult", + "Name": "WineUnsupported" + }, + { + "EnumValue": 34, + "Type": "GraphicsValidationResult", + "Name": "NvapiWineUnsupported" + }, + { + "EnumValue": 35, + "Type": "GraphicsValidationResult", + "Name": "AppleGpuUnsupported" + }, + { + "EnumValue": 36, + "Type": "GraphicsValidationResult", + "Name": "AmdGpuUnsupported" + }, + { + "EnumValue": 37, + "Type": "GraphicsValidationResult", + "Name": "IntelGpuUnsupported" + }, + { + "EnumValue": 38, + "Type": "GraphicsValidationResult", + "Name": "NvidiaGpuUnsupported" + }, + { + "EnumValue": 39, + "Type": "GraphicsValidationResult", + "Name": "QualcommGpuUnsupported" + }, + { "EnumValue": 40, "Type": "GraphicsValidationResult", "Name": "GpuDriver" }, + { "EnumValue": 41, "Type": "GraphicsValidationResult", "Name": "CompatMode" }, + { "EnumValue": 42, "Type": "GraphicsValidationResult", "Name": "Unknown" } + ], + "MaxValue": 42, + "MinValue": 0, + "NumValues": 43 + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "bool", "Name": "isLowPower" }, + { "Nilable": false, "Type": "bool", "Name": "isExternal" } + ], + "Type": "Structure", + "Name": "GxAdapterInfoDetails" + } + ] + }, + { + "Tables": [ + { + "Type": "Enumeration", + "Name": "VignetteType", + "Fields": [ + { "EnumValue": 0, "Type": "VignetteType", "Name": "Normal" }, + { "EnumValue": 1, "Type": "VignetteType", "Name": "PvPBounty" }, + { "EnumValue": 2, "Type": "VignetteType", "Name": "Torghast" }, + { "EnumValue": 3, "Type": "VignetteType", "Name": "Treasure" }, + { "EnumValue": 4, "Type": "VignetteType", "Name": "FyrakkFlight" } + ], + "MaxValue": 4, + "MinValue": 0, + "NumValues": 5 + } + ] + }, + { + "Namespace": "C_VignetteInfo", + "Functions": [ + { + "Returns": [ + { "Nilable": true, "Type": "luaIndex", "Name": "bestUniqueVignetteIndex" } + ], + "Arguments": [ + { + "Nilable": false, + "InnerType": "WOWGUID", + "Type": "table", + "Name": "vignetteGUIDs" + } + ], + "Type": "Function", + "Name": "FindBestUniqueVignette" + }, + { + "Returns": [{ "Nilable": true, "Type": "VignetteInfo", "Name": "vignetteInfo" }], + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "vignetteGUID" }], + "Type": "Function", + "Name": "GetVignetteInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "Mixin": "Vector2DMixin", + "Type": "vector2", + "Name": "vignettePosition" + }, + { "Nilable": true, "Type": "number", "Name": "vignetteFacing" } + ], + "Arguments": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "vignetteGUID" }, + { "Nilable": false, "Type": "number", "Name": "uiMapID" } + ], + "Type": "Function", + "Name": "GetVignettePosition" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "WOWGUID", + "Type": "table", + "Name": "vignetteGUIDs" + } + ], + "Type": "Function", + "Name": "GetVignettes" + } + ], + "Type": "System", + "Name": "Vignette", + "Events": [ + { + "LiteralName": "VIGNETTE_MINIMAP_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "vignetteGUID" }, + { "Nilable": false, "Type": "bool", "Name": "onMinimap" } + ], + "Type": "Event", + "Name": "VignetteMinimapUpdated" + }, + { "LiteralName": "VIGNETTES_UPDATED", "Type": "Event", "Name": "VignettesUpdated" } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "vignetteGUID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "objectGUID" }, + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "bool", "Name": "isDead" }, + { "Nilable": false, "Type": "bool", "Name": "onWorldMap" }, + { "Nilable": false, "Type": "bool", "Name": "zoneInfiniteAOI" }, + { "Nilable": false, "Type": "bool", "Name": "onMinimap" }, + { "Nilable": false, "Type": "bool", "Name": "isUnique" }, + { "Nilable": false, "Type": "bool", "Name": "inFogOfWar" }, + { "Nilable": false, "Type": "textureAtlas", "Name": "atlasName" }, + { "Nilable": false, "Type": "bool", "Name": "hasTooltip" }, + { "Nilable": false, "Type": "number", "Name": "vignetteID" }, + { "Nilable": false, "Type": "VignetteType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "rewardQuestID" }, + { "Nilable": true, "Type": "number", "Name": "tooltipWidgetSet" }, + { "Nilable": true, "Type": "number", "Name": "iconWidgetSet" }, + { "Nilable": true, "Type": "bool", "Name": "addPaddingAboveTooltipWidgets" } + ], + "Type": "Structure", + "Name": "VignetteInfo" + } + ] + }, + { + "Namespace": "C_VoiceChat", + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "ActivateChannel" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "ActivateChannelTranscription" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "listenToLocalUser" }], + "Type": "Function", + "Name": "BeginLocalCapture" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canUseVoiceChat" }], + "Type": "Function", + "Name": "CanPlayerUseVoiceChat" + }, + { + "Returns": [ + { "Nilable": false, "Type": "VoiceChatStatusCode", "Name": "status" } + ], + "Arguments": [ + { "Nilable": false, "Type": "cstring", "Name": "channelDisplayName" } + ], + "Type": "Function", + "Name": "CreateChannel" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "DeactivateChannel" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "DeactivateChannelTranscription" + }, + { "Type": "Function", "Name": "EndLocalCapture" }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "GetActiveChannelID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "ChatChannelType", "Name": "channelType" } + ], + "Type": "Function", + "Name": "GetActiveChannelType" + }, + { + "Returns": [ + { + "Nilable": true, + "InnerType": "VoiceAudioDevice", + "Type": "table", + "Name": "inputDevices" + } + ], + "Type": "Function", + "Name": "GetAvailableInputDevices" + }, + { + "Returns": [ + { + "Nilable": true, + "InnerType": "VoiceAudioDevice", + "Type": "table", + "Name": "outputDevices" + } + ], + "Type": "Function", + "Name": "GetAvailableOutputDevices" + }, + { + "Returns": [{ "Nilable": true, "Type": "VoiceChatChannel", "Name": "channel" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "GetChannel" + }, + { + "Returns": [{ "Nilable": true, "Type": "VoiceChatChannel", "Name": "channel" }], + "Arguments": [ + { "Nilable": false, "Type": "ChatChannelType", "Name": "channelType" } + ], + "Type": "Function", + "Name": "GetChannelForChannelType" + }, + { + "Returns": [{ "Nilable": true, "Type": "VoiceChatChannel", "Name": "channel" }], + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Function", + "Name": "GetChannelForCommunityStream" + }, + { + "Returns": [ + { "Nilable": true, "Type": "CommunicationMode", "Name": "communicationMode" } + ], + "Type": "Function", + "Name": "GetCommunicationMode" + }, + { + "Returns": [ + { "Nilable": true, "Type": "VoiceChatStatusCode", "Name": "statusCode" } + ], + "Type": "Function", + "Name": "GetCurrentVoiceChatConnectionStatusCode" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "volume" }], + "Type": "Function", + "Name": "GetInputVolume" + }, + { + "Returns": [ + { "Nilable": true, "Type": "VoiceChannelErrorReason", "Name": "errorReason" } + ], + "Arguments": [{ "Nilable": false, "Type": "ClubId", "Name": "clubId" }], + "Type": "Function", + "Name": "GetJoinClubVoiceChannelError" + }, + { + "Returns": [{ "Nilable": true, "Type": "VoiceChatMember", "Name": "memberInfo" }], + "Type": "Function", + "Name": "GetLocalPlayerActiveChannelMemberInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "memberID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "GetLocalPlayerMemberID" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "GetMasterVolumeScale" + }, + { + "Returns": [{ "Nilable": false, "Type": "WOWGUID", "Name": "memberGUID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" } + ], + "Type": "Function", + "Name": "GetMemberGUID" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "memberID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "WOWGUID", "Name": "memberGUID" } + ], + "Type": "Function", + "Name": "GetMemberID" + }, + { + "Returns": [{ "Nilable": true, "Type": "VoiceChatMember", "Name": "memberInfo" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" } + ], + "Type": "Function", + "Name": "GetMemberInfo" + }, + { + "Returns": [{ "Nilable": true, "Type": "string", "Name": "memberName" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" } + ], + "Type": "Function", + "Name": "GetMemberName" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "volume" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "GetMemberVolume" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "volume" }], + "Type": "Function", + "Name": "GetOutputVolume" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "isPressed" }], + "Type": "Function", + "Name": "GetPTTButtonPressedState" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "VoiceChatProcess", + "Type": "table", + "Name": "processes" + } + ], + "Type": "Function", + "Name": "GetProcesses" + }, + { + "Returns": [ + { "Nilable": true, "InnerType": "string", "Type": "table", "Name": "keys" } + ], + "Type": "Function", + "Name": "GetPushToTalkBinding" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "VoiceTtsVoiceType", + "Type": "table", + "Name": "ttsVoices" + } + ], + "Type": "Function", + "Name": "GetRemoteTtsVoices" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "VoiceTtsVoiceType", + "Type": "table", + "Name": "ttsVoices" + } + ], + "Type": "Function", + "Name": "GetTtsVoices" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "sensitivity" }], + "Type": "Function", + "Name": "GetVADSensitivity" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isPending" }], + "Arguments": [ + { "Nilable": false, "Type": "ChatChannelType", "Name": "channelType" }, + { "Nilable": true, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": true, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Function", + "Name": "IsChannelJoinPending" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "isDeafened" }], + "Type": "Function", + "Name": "IsDeafened" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isEnabled" }], + "Type": "Function", + "Name": "IsEnabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLoggedIn" }], + "Type": "Function", + "Name": "IsLoggedIn" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isLocalPlayer" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" } + ], + "Type": "Function", + "Name": "IsMemberLocalPlayer" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "mutedForMe" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "IsMemberMuted" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "mutedForAll" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" } + ], + "Type": "Function", + "Name": "IsMemberMutedForAll" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "silenced" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" } + ], + "Type": "Function", + "Name": "IsMemberSilenced" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "isMuted" }], + "Type": "Function", + "Name": "IsMuted" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isParentalDisabled" }], + "Type": "Function", + "Name": "IsParentalDisabled" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isParentalMuted" }], + "Type": "Function", + "Name": "IsParentalMuted" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isUsingVoice" }], + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "IsPlayerUsingVoice" + }, + { + "Returns": [{ "Nilable": true, "Type": "bool", "Name": "isSilenced" }], + "Type": "Function", + "Name": "IsSilenced" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isActive" }], + "Type": "Function", + "Name": "IsSpeakForMeActive" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAllowed" }], + "Type": "Function", + "Name": "IsSpeakForMeAllowed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isTranscribing" }], + "Type": "Function", + "Name": "IsTranscribing" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isAllowed" }], + "Type": "Function", + "Name": "IsTranscriptionAllowed" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "connected" }], + "Type": "Function", + "Name": "IsVoiceChatConnected" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Function", + "Name": "LeaveChannel" + }, + { + "Returns": [ + { "Nilable": false, "Type": "VoiceChatStatusCode", "Name": "status" } + ], + "Type": "Function", + "Name": "Login" + }, + { + "Returns": [ + { "Nilable": false, "Type": "VoiceChatStatusCode", "Name": "status" } + ], + "Type": "Function", + "Name": "Logout" + }, + { + "Documentation": [ + "Once the UI has enumerated all channels, use this to reset the channel discovery state, it will be updated again if appropriate" + ], + "Type": "Function", + "Name": "MarkChannelsDiscovered" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Function", + "Name": "RequestJoinAndActivateCommunityStreamChannel" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "ChatChannelType", "Name": "channelType" }, + { "Nilable": true, "Type": "bool", "Name": "autoActivate" } + ], + "Type": "Function", + "Name": "RequestJoinChannelByChannelType" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "CommunicationMode", "Name": "communicationMode" } + ], + "Type": "Function", + "Name": "SetCommunicationMode" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "isDeafened" }], + "Type": "Function", + "Name": "SetDeafened" + }, + { + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "deviceID" }], + "Type": "Function", + "Name": "SetInputDevice" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "volume" }], + "Type": "Function", + "Name": "SetInputVolume" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "scale" }], + "Type": "Function", + "Name": "SetMasterVolumeScale" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + }, + { "Nilable": false, "Type": "bool", "Name": "muted" } + ], + "Type": "Function", + "Name": "SetMemberMuted" + }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + }, + { "Nilable": false, "Type": "number", "Name": "volume" } + ], + "Documentation": ["Adjusts member volume across all channels"], + "Type": "Function", + "Name": "SetMemberVolume" + }, + { + "Arguments": [{ "Nilable": false, "Type": "bool", "Name": "isMuted" }], + "Type": "Function", + "Name": "SetMuted" + }, + { + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "deviceID" }], + "Type": "Function", + "Name": "SetOutputDevice" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "volume" }], + "Type": "Function", + "Name": "SetOutputVolume" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "SimpleTexture", "Name": "textureObject" }, + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" } + ], + "Type": "Function", + "Name": "SetPortraitTexture" + }, + { + "Arguments": [ + { "Nilable": false, "InnerType": "string", "Type": "table", "Name": "keys" } + ], + "Type": "Function", + "Name": "SetPushToTalkBinding" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "sensitivity" }], + "Type": "Function", + "Name": "SetVADSensitivity" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "shouldDiscoverChannels" } + ], + "Documentation": [ + "Use this while loading to determine if the UI should attempt to rediscover the previously joined/active voice channels" + ], + "Type": "Function", + "Name": "ShouldDiscoverChannels" + }, + { + "Arguments": [{ "Nilable": false, "Type": "string", "Name": "text" }], + "Type": "Function", + "Name": "SpeakRemoteTextSample" + }, + { + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "voiceID" }, + { "Nilable": false, "Type": "cstring", "Name": "text" }, + { "Nilable": false, "Type": "VoiceTtsDestination", "Name": "destination" }, + { "Nilable": false, "Type": "number", "Name": "rate" }, + { "Nilable": false, "Type": "number", "Name": "volume" } + ], + "Type": "Function", + "Name": "SpeakText" + }, + { "Type": "Function", "Name": "StopSpeakingText" }, + { "Type": "Function", "Name": "ToggleDeafened" }, + { + "Arguments": [ + { + "Nilable": false, + "Mixin": "PlayerLocationMixin", + "Type": "PlayerLocation", + "Name": "playerLocation" + } + ], + "Type": "Function", + "Name": "ToggleMemberMuted" + }, + { "Type": "Function", "Name": "ToggleMuted" } + ], + "Type": "System", + "Name": "VoiceChat", + "Events": [ + { + "LiteralName": "VOICE_CHAT_ACTIVE_INPUT_DEVICE_UPDATED", + "Type": "Event", + "Name": "VoiceChatActiveInputDeviceUpdated" + }, + { + "LiteralName": "VOICE_CHAT_ACTIVE_OUTPUT_DEVICE_UPDATED", + "Type": "Event", + "Name": "VoiceChatActiveOutputDeviceUpdated" + }, + { + "LiteralName": "VOICE_CHAT_AUDIO_CAPTURE_ENERGY", + "Payload": [ + { "Nilable": false, "Type": "bool", "Name": "isSpeaking" }, + { "Nilable": false, "Type": "number", "Name": "energy" } + ], + "Type": "Event", + "Name": "VoiceChatAudioCaptureEnergy" + }, + { + "LiteralName": "VOICE_CHAT_AUDIO_CAPTURE_STARTED", + "Type": "Event", + "Name": "VoiceChatAudioCaptureStarted" + }, + { + "LiteralName": "VOICE_CHAT_AUDIO_CAPTURE_STOPPED", + "Type": "Event", + "Name": "VoiceChatAudioCaptureStopped" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_ACTIVATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Event", + "Name": "VoiceChatChannelActivated" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_DEACTIVATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Event", + "Name": "VoiceChatChannelDeactivated" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_DISPLAY_NAME_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "cstring", "Name": "channelDisplayName" } + ], + "Type": "Event", + "Name": "VoiceChatChannelDisplayNameChanged" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_JOINED", + "Payload": [ + { "Nilable": false, "Type": "VoiceChatStatusCode", "Name": "status" }, + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "ChatChannelType", "Name": "channelType" }, + { "Nilable": true, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": true, "Type": "ClubStreamId", "Name": "streamId" } + ], + "Type": "Event", + "Name": "VoiceChatChannelJoined" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_MEMBER_ACTIVE_STATE_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "bool", "Name": "isActive" } + ], + "Type": "Event", + "Name": "VoiceChatChannelMemberActiveStateChanged" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_MEMBER_ADDED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" } + ], + "Type": "Event", + "Name": "VoiceChatChannelMemberAdded" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_MEMBER_ENERGY_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "number", "Name": "speakingEnergy" } + ], + "Type": "Event", + "Name": "VoiceChatChannelMemberEnergyChanged" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_MEMBER_GUID_UPDATED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" } + ], + "Type": "Event", + "Name": "VoiceChatChannelMemberGuidUpdated" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_MEMBER_MUTE_FOR_ALL_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "bool", "Name": "isMutedForAll" } + ], + "Type": "Event", + "Name": "VoiceChatChannelMemberMuteForAllChanged" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_MEMBER_MUTE_FOR_ME_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "bool", "Name": "isMutedForMe" } + ], + "Type": "Event", + "Name": "VoiceChatChannelMemberMuteForMeChanged" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_MEMBER_REMOVED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" } + ], + "Type": "Event", + "Name": "VoiceChatChannelMemberRemoved" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_MEMBER_SILENCED_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "bool", "Name": "isSilenced" } + ], + "Type": "Event", + "Name": "VoiceChatChannelMemberSilencedChanged" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_MEMBER_SPEAKING_STATE_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "bool", "Name": "isSpeaking" } + ], + "Type": "Event", + "Name": "VoiceChatChannelMemberSpeakingStateChanged" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_MEMBER_STT_MESSAGE", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "string", "Name": "message" }, + { "Nilable": false, "Type": "string", "Name": "language" } + ], + "Type": "Event", + "Name": "VoiceChatChannelMemberSttMessage" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_MEMBER_VOLUME_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "number", "Name": "volume" } + ], + "Type": "Event", + "Name": "VoiceChatChannelMemberVolumeChanged" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_MUTE_STATE_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "bool", "Name": "isMuted" } + ], + "Type": "Event", + "Name": "VoiceChatChannelMuteStateChanged" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_PTT_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "cstring", "Name": "pushToTalkSetting" } + ], + "Type": "Event", + "Name": "VoiceChatChannelPttChanged" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_REMOVED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "channelID" }], + "Type": "Event", + "Name": "VoiceChatChannelRemoved" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_TRANSCRIBING_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "bool", "Name": "isTranscribing" } + ], + "Type": "Event", + "Name": "VoiceChatChannelTranscribingChanged" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_TRANSMIT_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "bool", "Name": "isTransmitting" } + ], + "Type": "Event", + "Name": "VoiceChatChannelTransmitChanged" + }, + { + "LiteralName": "VOICE_CHAT_CHANNEL_VOLUME_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "number", "Name": "volume" } + ], + "Type": "Event", + "Name": "VoiceChatChannelVolumeChanged" + }, + { + "LiteralName": "VOICE_CHAT_COMMUNICATION_MODE_CHANGED", + "Payload": [ + { "Nilable": false, "Type": "CommunicationMode", "Name": "communicationMode" } + ], + "Type": "Event", + "Name": "VoiceChatCommunicationModeChanged" + }, + { + "LiteralName": "VOICE_CHAT_CONNECTION_SUCCESS", + "Type": "Event", + "Name": "VoiceChatConnectionSuccess" + }, + { + "LiteralName": "VOICE_CHAT_DEAFENED_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isDeafened" }], + "Type": "Event", + "Name": "VoiceChatDeafenedChanged" + }, + { + "LiteralName": "VOICE_CHAT_ERROR", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "platformCode" }, + { "Nilable": false, "Type": "VoiceChatStatusCode", "Name": "statusCode" } + ], + "Type": "Event", + "Name": "VoiceChatError" + }, + { + "LiteralName": "VOICE_CHAT_INPUT_DEVICES_UPDATED", + "Type": "Event", + "Name": "VoiceChatInputDevicesUpdated" + }, + { + "LiteralName": "VOICE_CHAT_LOGIN", + "Payload": [ + { "Nilable": false, "Type": "VoiceChatStatusCode", "Name": "status" } + ], + "Type": "Event", + "Name": "VoiceChatLogin" + }, + { + "LiteralName": "VOICE_CHAT_LOGOUT", + "Payload": [ + { "Nilable": false, "Type": "VoiceChatStatusCode", "Name": "status" } + ], + "Type": "Event", + "Name": "VoiceChatLogout" + }, + { + "LiteralName": "VOICE_CHAT_MUTED_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isMuted" }], + "Type": "Event", + "Name": "VoiceChatMutedChanged" + }, + { + "LiteralName": "VOICE_CHAT_OUTPUT_DEVICES_UPDATED", + "Type": "Event", + "Name": "VoiceChatOutputDevicesUpdated" + }, + { + "LiteralName": "VOICE_CHAT_PENDING_CHANNEL_JOIN_STATE", + "Payload": [ + { "Nilable": false, "Type": "ChatChannelType", "Name": "channelType" }, + { "Nilable": true, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": true, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "bool", "Name": "pendingJoin" } + ], + "Type": "Event", + "Name": "VoiceChatPendingChannelJoinState" + }, + { + "LiteralName": "VOICE_CHAT_PTT_BUTTON_PRESSED_STATE_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isPressed" }], + "Type": "Event", + "Name": "VoiceChatPttButtonPressedStateChanged" + }, + { + "LiteralName": "VOICE_CHAT_SILENCED_CHANGED", + "Payload": [{ "Nilable": false, "Type": "bool", "Name": "isSilenced" }], + "Type": "Event", + "Name": "VoiceChatSilencedChanged" + }, + { + "LiteralName": "VOICE_CHAT_SPEAK_FOR_ME_ACTIVE_STATUS_UPDATED", + "Type": "Event", + "Name": "VoiceChatSpeakForMeActiveStatusUpdated" + }, + { + "LiteralName": "VOICE_CHAT_SPEAK_FOR_ME_FEATURE_STATUS_UPDATED", + "Type": "Event", + "Name": "VoiceChatSpeakForMeFeatureStatusUpdated" + }, + { + "LiteralName": "VOICE_CHAT_TTS_PLAYBACK_FAILED", + "Payload": [ + { "Nilable": false, "Type": "VoiceTtsStatusCode", "Name": "status" }, + { "Nilable": false, "Type": "number", "Name": "utteranceID" }, + { "Nilable": false, "Type": "VoiceTtsDestination", "Name": "destination" } + ], + "Type": "Event", + "Name": "VoiceChatTtsPlaybackFailed" + }, + { + "LiteralName": "VOICE_CHAT_TTS_PLAYBACK_FINISHED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "numConsumers" }, + { "Nilable": false, "Type": "number", "Name": "utteranceID" }, + { "Nilable": false, "Type": "VoiceTtsDestination", "Name": "destination" } + ], + "Type": "Event", + "Name": "VoiceChatTtsPlaybackFinished" + }, + { + "LiteralName": "VOICE_CHAT_TTS_PLAYBACK_STARTED", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "numConsumers" }, + { "Nilable": false, "Type": "number", "Name": "utteranceID" }, + { "Nilable": false, "Type": "number", "Name": "durationMS" }, + { "Nilable": false, "Type": "VoiceTtsDestination", "Name": "destination" } + ], + "Type": "Event", + "Name": "VoiceChatTtsPlaybackStarted" + }, + { + "LiteralName": "VOICE_CHAT_TTS_SPEAK_TEXT_UPDATE", + "Payload": [ + { "Nilable": false, "Type": "VoiceTtsStatusCode", "Name": "status" }, + { "Nilable": false, "Type": "number", "Name": "utteranceID" } + ], + "Type": "Event", + "Name": "VoiceChatTtsSpeakTextUpdate" + }, + { + "LiteralName": "VOICE_CHAT_TTS_VOICES_UPDATE", + "Type": "Event", + "Name": "VoiceChatTtsVoicesUpdate" + }, + { + "LiteralName": "VOICE_CHAT_VAD_SETTINGS_UPDATED", + "Type": "Event", + "Name": "VoiceChatVadSettingsUpdated" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "CommunicationMode", + "Fields": [ + { "EnumValue": 0, "Type": "CommunicationMode", "Name": "PushToTalk" }, + { "EnumValue": 1, "Type": "CommunicationMode", "Name": "OpenMic" } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "VoiceChannelErrorReason", + "Fields": [ + { "EnumValue": 0, "Type": "VoiceChannelErrorReason", "Name": "Unknown" }, + { + "EnumValue": 1, + "Type": "VoiceChannelErrorReason", + "Name": "IsBattleNetChannel" + } + ], + "MaxValue": 1, + "MinValue": 0, + "NumValues": 2 + }, + { + "Type": "Enumeration", + "Name": "VoiceChatStatusCode", + "Fields": [ + { "EnumValue": 0, "Type": "VoiceChatStatusCode", "Name": "Success" }, + { "EnumValue": 1, "Type": "VoiceChatStatusCode", "Name": "OperationPending" }, + { "EnumValue": 2, "Type": "VoiceChatStatusCode", "Name": "TooManyRequests" }, + { "EnumValue": 3, "Type": "VoiceChatStatusCode", "Name": "LoginProhibited" }, + { + "EnumValue": 4, + "Type": "VoiceChatStatusCode", + "Name": "ClientNotInitialized" + }, + { "EnumValue": 5, "Type": "VoiceChatStatusCode", "Name": "ClientNotLoggedIn" }, + { + "EnumValue": 6, + "Type": "VoiceChatStatusCode", + "Name": "ClientAlreadyLoggedIn" + }, + { + "EnumValue": 7, + "Type": "VoiceChatStatusCode", + "Name": "ChannelNameTooShort" + }, + { "EnumValue": 8, "Type": "VoiceChatStatusCode", "Name": "ChannelNameTooLong" }, + { + "EnumValue": 9, + "Type": "VoiceChatStatusCode", + "Name": "ChannelAlreadyExists" + }, + { "EnumValue": 10, "Type": "VoiceChatStatusCode", "Name": "AlreadyInChannel" }, + { "EnumValue": 11, "Type": "VoiceChatStatusCode", "Name": "TargetNotFound" }, + { "EnumValue": 12, "Type": "VoiceChatStatusCode", "Name": "Failure" }, + { "EnumValue": 13, "Type": "VoiceChatStatusCode", "Name": "ServiceLost" }, + { + "EnumValue": 14, + "Type": "VoiceChatStatusCode", + "Name": "UnableToLaunchProxy" + }, + { + "EnumValue": 15, + "Type": "VoiceChatStatusCode", + "Name": "ProxyConnectionTimeOut" + }, + { + "EnumValue": 16, + "Type": "VoiceChatStatusCode", + "Name": "ProxyConnectionUnableToConnect" + }, + { + "EnumValue": 17, + "Type": "VoiceChatStatusCode", + "Name": "ProxyConnectionUnexpectedDisconnect" + }, + { "EnumValue": 18, "Type": "VoiceChatStatusCode", "Name": "Disabled" }, + { + "EnumValue": 19, + "Type": "VoiceChatStatusCode", + "Name": "UnsupportedChatChannelType" + }, + { + "EnumValue": 20, + "Type": "VoiceChatStatusCode", + "Name": "InvalidCommunityStream" + }, + { "EnumValue": 21, "Type": "VoiceChatStatusCode", "Name": "PlayerSilenced" }, + { + "EnumValue": 22, + "Type": "VoiceChatStatusCode", + "Name": "PlayerVoiceChatParentalDisabled" + }, + { + "EnumValue": 23, + "Type": "VoiceChatStatusCode", + "Name": "InvalidInputDevice" + }, + { + "EnumValue": 24, + "Type": "VoiceChatStatusCode", + "Name": "InvalidOutputDevice" + } + ], + "MaxValue": 24, + "MinValue": 0, + "NumValues": 25 + }, + { + "Type": "Enumeration", + "Name": "VoiceTtsDestination", + "Fields": [ + { "EnumValue": 0, "Type": "VoiceTtsDestination", "Name": "RemoteTransmission" }, + { "EnumValue": 1, "Type": "VoiceTtsDestination", "Name": "LocalPlayback" }, + { + "EnumValue": 2, + "Type": "VoiceTtsDestination", + "Name": "RemoteTransmissionWithLocalPlayback" + }, + { + "EnumValue": 3, + "Type": "VoiceTtsDestination", + "Name": "QueuedRemoteTransmission" + }, + { + "EnumValue": 4, + "Type": "VoiceTtsDestination", + "Name": "QueuedLocalPlayback" + }, + { + "EnumValue": 5, + "Type": "VoiceTtsDestination", + "Name": "QueuedRemoteTransmissionWithLocalPlayback" + }, + { "EnumValue": 6, "Type": "VoiceTtsDestination", "Name": "ScreenReader" } + ], + "MaxValue": 6, + "MinValue": 0, + "NumValues": 7 + }, + { + "Type": "Enumeration", + "Name": "VoiceTtsStatusCode", + "Fields": [ + { "EnumValue": 0, "Type": "VoiceTtsStatusCode", "Name": "Success" }, + { "EnumValue": 1, "Type": "VoiceTtsStatusCode", "Name": "InvalidEngineType" }, + { + "EnumValue": 2, + "Type": "VoiceTtsStatusCode", + "Name": "EngineAllocationFailed" + }, + { "EnumValue": 3, "Type": "VoiceTtsStatusCode", "Name": "NotSupported" }, + { + "EnumValue": 4, + "Type": "VoiceTtsStatusCode", + "Name": "MaxCharactersExceeded" + }, + { + "EnumValue": 5, + "Type": "VoiceTtsStatusCode", + "Name": "UtteranceBelowMinimumDuration" + }, + { "EnumValue": 6, "Type": "VoiceTtsStatusCode", "Name": "InputTextEnqueued" }, + { "EnumValue": 7, "Type": "VoiceTtsStatusCode", "Name": "SdkNotInitialized" }, + { + "EnumValue": 8, + "Type": "VoiceTtsStatusCode", + "Name": "DestinationQueueFull" + }, + { "EnumValue": 9, "Type": "VoiceTtsStatusCode", "Name": "EnqueueNotNecessary" }, + { "EnumValue": 10, "Type": "VoiceTtsStatusCode", "Name": "UtteranceNotFound" }, + { "EnumValue": 11, "Type": "VoiceTtsStatusCode", "Name": "ManagerNotFound" }, + { "EnumValue": 12, "Type": "VoiceTtsStatusCode", "Name": "InvalidArgument" }, + { "EnumValue": 13, "Type": "VoiceTtsStatusCode", "Name": "InternalError" } + ], + "MaxValue": 13, + "MinValue": 0, + "NumValues": 14 + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "deviceID" }, + { "Nilable": false, "Type": "string", "Name": "displayName" }, + { "Nilable": false, "Type": "bool", "Name": "isActive" }, + { "Nilable": false, "Type": "bool", "Name": "isSystemDefault" }, + { "Nilable": false, "Type": "bool", "Name": "isCommsDefault" } + ], + "Type": "Structure", + "Name": "VoiceAudioDevice" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": false, "Type": "number", "Name": "channelID" }, + { "Nilable": false, "Type": "ChatChannelType", "Name": "channelType" }, + { "Nilable": false, "Type": "ClubId", "Name": "clubId" }, + { "Nilable": false, "Type": "ClubStreamId", "Name": "streamId" }, + { "Nilable": false, "Type": "number", "Name": "volume" }, + { "Nilable": false, "Type": "bool", "Name": "isActive" }, + { "Nilable": false, "Type": "bool", "Name": "isMuted" }, + { "Nilable": false, "Type": "bool", "Name": "isTransmitting" }, + { "Nilable": false, "Type": "bool", "Name": "isTranscribing" }, + { + "Nilable": false, + "InnerType": "VoiceChatMember", + "Type": "table", + "Name": "members" + } + ], + "Type": "Structure", + "Name": "VoiceChatChannel" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "energy" }, + { "Nilable": false, "Type": "number", "Name": "memberID" }, + { "Nilable": false, "Type": "bool", "Name": "isActive" }, + { "Nilable": false, "Type": "bool", "Name": "isSpeaking" }, + { "Nilable": false, "Type": "bool", "Name": "isMutedForAll" }, + { "Nilable": false, "Type": "bool", "Name": "isSilenced" } + ], + "Type": "Structure", + "Name": "VoiceChatMember" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "name" }, + { + "Nilable": false, + "InnerType": "VoiceChatChannel", + "Type": "table", + "Name": "channels" + } + ], + "Type": "Structure", + "Name": "VoiceChatProcess" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "voiceID" }, + { "Nilable": false, "Type": "string", "Name": "name" } + ], + "Type": "Structure", + "Name": "VoiceTtsVoiceType" + } + ] + }, + { + "Namespace": "C_VoidStorageInfo", + "Functions": [], + "Type": "System", + "Name": "VoidStorageInfo", + "Events": [ + { + "LiteralName": "VOID_DEPOSIT_WARNING", + "Payload": [ + { "Nilable": false, "Type": "number", "Name": "slot" }, + { "Nilable": false, "Type": "cstring", "Name": "link" } + ], + "Type": "Event", + "Name": "VoidDepositWarning" + }, + { + "LiteralName": "VOID_STORAGE_CONTENTS_UPDATE", + "Type": "Event", + "Name": "VoidStorageContentsUpdate" + }, + { + "LiteralName": "VOID_STORAGE_DEPOSIT_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "slot" }], + "Type": "Event", + "Name": "VoidStorageDepositUpdate" + }, + { + "LiteralName": "VOID_STORAGE_UPDATE", + "Type": "Event", + "Name": "VoidStorageUpdate" + }, + { + "LiteralName": "VOID_TRANSFER_DONE", + "Type": "Event", + "Name": "VoidTransferDone" + }, + { + "LiteralName": "VOID_TRANSFER_SUCCESS", + "Type": "Event", + "Name": "VoidTransferSuccess" + } + ], + "Tables": [] + }, + { + "Namespace": "C_CampaignInfo", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "number", + "Type": "table", + "Name": "campaignIDs" + } + ], + "Type": "Function", + "Name": "GetAvailableCampaigns" + }, + { + "Returns": [ + { + "Nilable": true, + "Type": "CampaignChapterInfo", + "Name": "campaignChapterInfo" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "campaignChapterID" } + ], + "Type": "Function", + "Name": "GetCampaignChapterInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "campaignID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "GetCampaignID" + }, + { + "Returns": [{ "Nilable": true, "Type": "CampaignInfo", "Name": "campaignInfo" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "campaignID" }], + "Type": "Function", + "Name": "GetCampaignInfo" + }, + { + "Returns": [ + { + "Nilable": true, + "InnerType": "number", + "Type": "table", + "Name": "chapterIDs" + } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "campaignID" }], + "Type": "Function", + "Name": "GetChapterIDs" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "currentChapterID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "campaignID" }], + "Type": "Function", + "Name": "GetCurrentChapterID" + }, + { + "Returns": [ + { "Nilable": true, "Type": "CampaignFailureReason", "Name": "failureReason" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "campaignID" }], + "Type": "Function", + "Name": "GetFailureReason" + }, + { + "Returns": [{ "Nilable": false, "Type": "CampaignState", "Name": "state" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "campaignID" }], + "Type": "Function", + "Name": "GetState" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCampaignQuest" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "questID" }], + "Type": "Function", + "Name": "IsCampaignQuest" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "sortAsNormalQuest" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "campaignID" }], + "Type": "Function", + "Name": "SortAsNormalQuest" + } + ], + "Type": "System", + "Name": "WarCampaign", + "Events": [], + "Tables": [ + { + "Type": "Enumeration", + "Name": "CampaignState", + "Fields": [ + { "EnumValue": 0, "Type": "CampaignState", "Name": "Invalid" }, + { "EnumValue": 1, "Type": "CampaignState", "Name": "Complete" }, + { "EnumValue": 2, "Type": "CampaignState", "Name": "InProgress" }, + { "EnumValue": 3, "Type": "CampaignState", "Name": "Stalled" } + ], + "MaxValue": 3, + "MinValue": 0, + "NumValues": 4 + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "number", "Name": "rewardQuestID" } + ], + "Type": "Structure", + "Name": "CampaignChapterInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "string", "Name": "text" }, + { "Nilable": true, "Type": "number", "Name": "questID" }, + { "Nilable": true, "Type": "number", "Name": "mapID" } + ], + "Type": "Structure", + "Name": "CampaignFailureReason" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "description" }, + { "Nilable": false, "Type": "textureKit", "Name": "uiTextureKit" }, + { "Nilable": false, "Type": "bool", "Name": "isWarCampaign" }, + { "Nilable": false, "Type": "bool", "Name": "usesNormalQuestIcons" }, + { "Nilable": false, "Type": "bool", "Name": "isContainerCampaign" }, + { "Nilable": false, "Type": "bool", "Name": "sortAsNormalQuest" } + ], + "Type": "Structure", + "Name": "CampaignInfo" + } + ] + }, + { + "Namespace": "C_WeeklyRewards", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isCurrentPeriod" }], + "Type": "Function", + "Name": "AreRewardsForCurrentRewardPeriod" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "canClaimRewards" }], + "Type": "Function", + "Name": "CanClaimRewards" + }, + { + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "id" }], + "Type": "Function", + "Name": "ClaimReward" + }, + { "Type": "Function", "Name": "CloseInteraction" }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "WeeklyRewardActivityInfo", + "Type": "table", + "Name": "activities" + } + ], + "Arguments": [ + { "Nilable": true, "Type": "WeeklyRewardChestThresholdType", "Name": "type" } + ], + "Type": "Function", + "Name": "GetActivities" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "WeeklyRewardActivityEncounterInfo", + "Type": "table", + "Name": "info" + } + ], + "Arguments": [ + { "Nilable": false, "Type": "WeeklyRewardChestThresholdType", "Name": "type" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" } + ], + "Type": "Function", + "Name": "GetActivityEncounterInfo" + }, + { + "Returns": [ + { "Nilable": false, "Type": "ConquestWeeklyProgress", "Name": "weeklyProgress" } + ], + "Type": "Function", + "Name": "GetConquestWeeklyProgress" + }, + { + "Returns": [{ "Nilable": false, "Type": "number", "Name": "difficultyID" }], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "activityTierID" }], + "Type": "Function", + "Name": "GetDifficultyIDForActivityTier" + }, + { + "Returns": [ + { "Nilable": false, "Type": "string", "Name": "hyperlink" }, + { "Nilable": false, "Type": "string", "Name": "upgradeHyperlink" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "id" }], + "Type": "Function", + "Name": "GetExampleRewardItemHyperlinks" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "hyperlink" }], + "Arguments": [ + { "Nilable": false, "Type": "WeeklyRewardItemDBID", "Name": "itemDBID" } + ], + "Type": "Function", + "Name": "GetItemHyperlink" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasSeasonData" }, + { "Nilable": true, "Type": "number", "Name": "nextActivityTierID" }, + { "Nilable": true, "Type": "number", "Name": "nextLevel" }, + { "Nilable": true, "Type": "number", "Name": "itemLevel" } + ], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "activityTierID" }, + { "Nilable": false, "Type": "number", "Name": "level" } + ], + "Type": "Function", + "Name": "GetNextActivitiesIncrease" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "hasSeasonData" }, + { "Nilable": true, "Type": "number", "Name": "nextMythicPlusLevel" }, + { "Nilable": true, "Type": "number", "Name": "itemLevel" } + ], + "Arguments": [{ "Nilable": false, "Type": "number", "Name": "mythicPlusLevel" }], + "Type": "Function", + "Name": "GetNextMythicPlusIncrease" + }, + { + "Returns": [ + { "Nilable": false, "Type": "number", "Name": "numHeroic" }, + { "Nilable": false, "Type": "number", "Name": "numMythic" }, + { "Nilable": false, "Type": "number", "Name": "numMythicPlus" } + ], + "Type": "Function", + "Name": "GetNumCompletedDungeonRuns" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasAvailableRewards" }], + "Type": "Function", + "Name": "HasAvailableRewards" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "hasGeneratedRewards" }], + "Type": "Function", + "Name": "HasGeneratedRewards" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isInteracting" }], + "Type": "Function", + "Name": "HasInteraction" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isRetired" }], + "Type": "Function", + "Name": "IsWeeklyChestRetired" + }, + { "Type": "Function", "Name": "OnUIInteract" }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "showRetirementMessage" } + ], + "Type": "Function", + "Name": "ShouldShowFinalRetirementMessage" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "showRetirementMessage" } + ], + "Type": "Function", + "Name": "ShouldShowRetirementMessage" + } + ], + "Type": "System", + "Name": "WeeklyRewards", + "Events": [ + { + "LiteralName": "WEEKLY_REWARDS_ITEM_CHANGED", + "Type": "Event", + "Name": "WeeklyRewardsItemChanged" + }, + { + "LiteralName": "WEEKLY_REWARDS_UPDATE", + "Type": "Event", + "Name": "WeeklyRewardsUpdate" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "ConquestProgressBarDisplayType", + "Fields": [ + { + "EnumValue": 0, + "Type": "ConquestProgressBarDisplayType", + "Name": "FirstChest" + }, + { + "EnumValue": 1, + "Type": "ConquestProgressBarDisplayType", + "Name": "AdditionalChest" + }, + { "EnumValue": 2, "Type": "ConquestProgressBarDisplayType", "Name": "Seasonal" } + ], + "MaxValue": 2, + "MinValue": 0, + "NumValues": 3 + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "progress" }, + { "Nilable": false, "Type": "number", "Name": "maxProgress" }, + { + "Nilable": false, + "Type": "ConquestProgressBarDisplayType", + "Name": "displayType" + }, + { "Nilable": false, "Type": "number", "Name": "unlocksCompleted" }, + { "Nilable": false, "Type": "number", "Name": "maxUnlocks" }, + { "Nilable": false, "Type": "string", "Name": "sampleItemHyperlink" } + ], + "Type": "Structure", + "Name": "ConquestWeeklyProgress" + }, + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "encounterID" }, + { "Nilable": false, "Type": "number", "Name": "bestDifficulty" }, + { "Nilable": false, "Type": "number", "Name": "uiOrder" }, + { "Nilable": false, "Type": "number", "Name": "instanceID" } + ], + "Type": "Structure", + "Name": "WeeklyRewardActivityEncounterInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "WeeklyRewardChestThresholdType", "Name": "type" }, + { "Nilable": false, "Type": "luaIndex", "Name": "index" }, + { "Nilable": false, "Type": "number", "Name": "threshold" }, + { "Nilable": false, "Type": "number", "Name": "progress" }, + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "number", "Name": "activityTierID" }, + { "Nilable": false, "Type": "number", "Name": "level" }, + { "Nilable": true, "Type": "number", "Name": "claimID" }, + { "Nilable": true, "Type": "cstring", "Name": "raidString" }, + { + "Nilable": false, + "InnerType": "WeeklyRewardActivityRewardInfo", + "Type": "table", + "Name": "rewards" + } + ], + "Type": "Structure", + "Name": "WeeklyRewardActivityInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "CachedRewardType", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "id" }, + { "Nilable": false, "Type": "number", "Name": "quantity" }, + { "Nilable": true, "Type": "WeeklyRewardItemDBID", "Name": "itemDBID" } + ], + "Type": "Structure", + "Name": "WeeklyRewardActivityRewardInfo" + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_WorldLootObject", + "Functions": [ + { + "Returns": [ + { "Nilable": false, "Type": "InventoryType", "Name": "inventoryType" } + ], + "Type": "Function", + "Name": "GetCurrentWorldLootObjectSwapInventoryType" + }, + { + "Returns": [{ "Nilable": false, "Type": "WorldLootObjectInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "GetWorldLootObjectInfo" + }, + { + "Returns": [{ "Nilable": false, "Type": "bool", "Name": "isWorldLootObject" }], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "IsWorldLootObject" + }, + { + "Returns": [ + { "Nilable": false, "Type": "bool", "Name": "isWorldLootObjectInRange" } + ], + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "IsWorldLootObjectInRange" + }, + { + "Arguments": [{ "Nilable": false, "Type": "UnitToken", "Name": "unitToken" }], + "Type": "Function", + "Name": "OnWorldLootObjectClick" + } + ], + "Type": "System", + "Name": "WorldLootObject", + "Events": [ + { + "LiteralName": "WORLD_LOOT_OBJECT_INFO_UPDATED", + "Payload": [{ "Nilable": false, "Type": "WOWGUID", "Name": "guid" }], + "Type": "Event", + "Name": "WorldLootObjectInfoUpdated" + }, + { + "LiteralName": "WORLD_LOOT_OBJECT_SWAP_INVENTORY_TYPE_UPDATED", + "Type": "Event", + "Name": "WorldLootObjectSwapInventoryTypeUpdated" + } + ], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "InventoryType", "Name": "inventoryType" }, + { "Nilable": false, "Type": "bool", "Name": "atMaxQuality" }, + { "Nilable": false, "Type": "bool", "Name": "isUpgrade" } + ], + "Type": "Structure", + "Name": "WorldLootObjectInfo" + } + ] + }, + { + "Namespace": "C_WorldStateInfo", + "Functions": [], + "Type": "System", + "Name": "WorldStateInfo", + "Events": [ + { + "LiteralName": "CANCEL_PLAYER_COUNTDOWN", + "Payload": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "initiatedBy" }, + { "Nilable": false, "Type": "bool", "Name": "informChat" }, + { "Nilable": true, "Type": "string", "Name": "initiatedByName" } + ], + "Type": "Event", + "Name": "CancelPlayerCountdown" + }, + { + "LiteralName": "START_PLAYER_COUNTDOWN", + "Payload": [ + { "Nilable": false, "Type": "WOWGUID", "Name": "initiatedBy" }, + { "Nilable": false, "Type": "time_t", "Name": "timeRemaining" }, + { "Nilable": false, "Type": "time_t", "Name": "totalTime" }, + { "Nilable": false, "Type": "bool", "Name": "informChat" }, + { "Nilable": true, "Type": "string", "Name": "initiatedByName" } + ], + "Type": "Event", + "Name": "StartPlayerCountdown" + }, + { + "LiteralName": "START_TIMER", + "Payload": [ + { "Nilable": false, "Type": "StartTimerType", "Name": "timerType" }, + { "Nilable": false, "Type": "time_t", "Name": "timeRemaining" }, + { "Nilable": false, "Type": "time_t", "Name": "totalTime" } + ], + "Type": "Event", + "Name": "StartTimer" + }, + { + "LiteralName": "STOP_TIMER_OF_TYPE", + "Payload": [{ "Nilable": false, "Type": "StartTimerType", "Name": "timerType" }], + "Type": "Event", + "Name": "StopTimerOfType" + }, + { + "LiteralName": "WORLD_STATE_TIMER_START", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "timerID" }], + "Type": "Event", + "Name": "WorldStateTimerStart" + }, + { + "LiteralName": "WORLD_STATE_TIMER_STOP", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "timerID" }], + "Type": "Event", + "Name": "WorldStateTimerStop" + } + ], + "Tables": [] + }, + { + "Namespace": "C_WowEntitlementInfo", + "Functions": [], + "Type": "System", + "Name": "WowEntitlementInfo", + "Events": [ + { + "LiteralName": "ENTITLEMENT_DELIVERED", + "Payload": [ + { "Nilable": false, "Type": "WoWEntitlementType", "Name": "entitlementType" }, + { "Nilable": false, "Type": "number", "Name": "textureID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "number", "Name": "payloadID" }, + { "Nilable": false, "Type": "bool", "Name": "showFancyToast" } + ], + "Type": "Event", + "Name": "EntitlementDelivered" + }, + { + "LiteralName": "RAF_ENTITLEMENT_DELIVERED", + "Payload": [ + { "Nilable": false, "Type": "WoWEntitlementType", "Name": "entitlementType" }, + { "Nilable": false, "Type": "number", "Name": "textureID" }, + { "Nilable": false, "Type": "string", "Name": "name" }, + { "Nilable": true, "Type": "number", "Name": "payloadID" }, + { "Nilable": false, "Type": "bool", "Name": "showFancyToast" }, + { + "Nilable": false, + "Type": "RecruitAFriendRewardsVersion", + "Name": "rafVersion" + } + ], + "Type": "Event", + "Name": "RafEntitlementDelivered" + } + ], + "Tables": [ + { + "Type": "Enumeration", + "Name": "WoWEntitlementType", + "Fields": [ + { "EnumValue": 0, "Type": "WoWEntitlementType", "Name": "Item" }, + { "EnumValue": 1, "Type": "WoWEntitlementType", "Name": "Mount" }, + { "EnumValue": 2, "Type": "WoWEntitlementType", "Name": "Battlepet" }, + { "EnumValue": 3, "Type": "WoWEntitlementType", "Name": "Toy" }, + { "EnumValue": 4, "Type": "WoWEntitlementType", "Name": "Appearance" }, + { "EnumValue": 5, "Type": "WoWEntitlementType", "Name": "AppearanceSet" }, + { "EnumValue": 6, "Type": "WoWEntitlementType", "Name": "GameTime" }, + { "EnumValue": 7, "Type": "WoWEntitlementType", "Name": "Title" }, + { "EnumValue": 8, "Type": "WoWEntitlementType", "Name": "Illusion" }, + { "EnumValue": 9, "Type": "WoWEntitlementType", "Name": "Invalid" } + ], + "MaxValue": 9, + "MinValue": 0, + "NumValues": 10 + } + ] + }, + { "Tables": [] }, + { + "Namespace": "C_WowTokenUI", + "Functions": [ + { + "Arguments": [{ "Nilable": false, "Type": "WOWGUID", "Name": "tokenGUID" }], + "Type": "Function", + "Name": "StartTokenSell" + } + ], + "Type": "System", + "Name": "WowTokenUI", + "Events": [ + { + "LiteralName": "TOKEN_AUCTION_SOLD", + "Type": "Event", + "Name": "TokenAuctionSold" + }, + { + "LiteralName": "TOKEN_BUY_CONFIRM_REQUIRED", + "Type": "Event", + "Name": "TokenBuyConfirmRequired" + }, + { + "LiteralName": "TOKEN_BUY_RESULT", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Event", + "Name": "TokenBuyResult" + }, + { + "LiteralName": "TOKEN_CAN_VETERAN_BUY_UPDATE", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Event", + "Name": "TokenCanVeteranBuyUpdate" + }, + { + "LiteralName": "TOKEN_DISTRIBUTIONS_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Event", + "Name": "TokenDistributionsUpdated" + }, + { + "LiteralName": "TOKEN_MARKET_PRICE_UPDATED", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Event", + "Name": "TokenMarketPriceUpdated" + }, + { + "LiteralName": "TOKEN_REDEEM_BALANCE_UPDATED", + "Type": "Event", + "Name": "TokenRedeemBalanceUpdated" + }, + { + "LiteralName": "TOKEN_REDEEM_CONFIRM_REQUIRED", + "Payload": [{ "Nilable": false, "Type": "luaIndex", "Name": "choiceType" }], + "Type": "Event", + "Name": "TokenRedeemConfirmRequired" + }, + { + "LiteralName": "TOKEN_REDEEM_FRAME_SHOW", + "Type": "Event", + "Name": "TokenRedeemFrameShow" + }, + { + "LiteralName": "TOKEN_REDEEM_GAME_TIME_UPDATED", + "Type": "Event", + "Name": "TokenRedeemGameTimeUpdated" + }, + { + "LiteralName": "TOKEN_REDEEM_RESULT", + "Payload": [ + { "Nilable": false, "Type": "luaIndex", "Name": "result" }, + { "Nilable": false, "Type": "luaIndex", "Name": "choiceType" } + ], + "Type": "Event", + "Name": "TokenRedeemResult" + }, + { + "LiteralName": "TOKEN_SELL_CONFIRM_REQUIRED", + "Type": "Event", + "Name": "TokenSellConfirmRequired" + }, + { + "LiteralName": "TOKEN_SELL_CONFIRMED", + "Type": "Event", + "Name": "TokenSellConfirmed" + }, + { + "LiteralName": "TOKEN_SELL_RESULT", + "Payload": [{ "Nilable": false, "Type": "number", "Name": "result" }], + "Type": "Event", + "Name": "TokenSellResult" + }, + { + "LiteralName": "TOKEN_STATUS_CHANGED", + "Type": "Event", + "Name": "TokenStatusChanged" + } + ], + "Tables": [] + }, + { + "Namespace": "C_XMLUtil", + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "XMLTemplateInfo", "Name": "info" }], + "Arguments": [{ "Nilable": false, "Type": "cstring", "Name": "name" }], + "Type": "Function", + "Name": "GetTemplateInfo" + }, + { + "Returns": [ + { + "Nilable": false, + "InnerType": "XMLTemplateListInfo", + "Type": "table", + "Name": "templates" + } + ], + "Type": "Function", + "Name": "GetTemplates" + } + ], + "Type": "System", + "Name": "XMLUtil", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "type" }, + { "Nilable": false, "Type": "number", "Name": "width" }, + { "Nilable": false, "Type": "number", "Name": "height" }, + { + "Nilable": false, + "InnerType": "XMLTemplateKeyValue", + "Type": "table", + "Name": "keyValues" + }, + { "Nilable": true, "Type": "cstring", "Name": "inherits" }, + { "Nilable": false, "Type": "string", "Name": "sourceLocation" } + ], + "Type": "Structure", + "Name": "XMLTemplateInfo" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "key" }, + { "Nilable": false, "Type": "cstring", "Name": "keyType" }, + { "Nilable": false, "Type": "cstring", "Name": "type" }, + { "Nilable": false, "Type": "cstring", "Name": "value" } + ], + "Type": "Structure", + "Name": "XMLTemplateKeyValue" + }, + { + "Fields": [ + { "Nilable": false, "Type": "cstring", "Name": "name" }, + { "Nilable": false, "Type": "cstring", "Name": "type" } + ], + "Type": "Structure", + "Name": "XMLTemplateListInfo" + } + ] + }, + { + "Namespace": "C_ZoneAbility", + "Functions": [ + { + "Returns": [ + { + "Nilable": false, + "InnerType": "ZoneAbilityInfo", + "Type": "table", + "Name": "zoneAbilities" + } + ], + "Type": "Function", + "Name": "GetActiveAbilities" + }, + { + "Returns": [{ "Nilable": true, "Type": "number", "Name": "zoneAbilityIconID" }], + "Arguments": [ + { "Nilable": false, "Type": "number", "Name": "zoneAbilitySpellID" } + ], + "Type": "Function", + "Name": "GetZoneAbilityIcon" + } + ], + "Type": "System", + "Name": "ZoneAbility", + "Events": [], + "Tables": [ + { + "Fields": [ + { "Nilable": false, "Type": "number", "Name": "zoneAbilityID" }, + { "Nilable": false, "Type": "number", "Name": "uiPriority" }, + { "Nilable": false, "Type": "number", "Name": "spellID" }, + { "Nilable": false, "Type": "textureKit", "Name": "textureKit" }, + { "Nilable": true, "Type": "cstring", "Name": "tutorialText" } + ], + "Type": "Structure", + "Name": "ZoneAbilityInfo" + } + ] + }, + { + "Functions": [ + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Type": "Function", + "Name": "GetAreaText" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Type": "Function", + "Name": "GetMinimapZoneText" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Arguments": [{ "Nilable": true, "Type": "number", "Name": "mapID" }], + "Type": "Function", + "Name": "GetRealZoneText" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Type": "Function", + "Name": "GetSubZoneText" + }, + { + "Returns": [{ "Nilable": false, "Type": "cstring", "Name": "text" }], + "Type": "Function", + "Name": "GetZoneText" + } + ], + "Type": "System", + "Name": "ZoneScript", + "Events": [], + "Tables": [] + } +] diff --git a/scripts/lua-docs/get-docs.lua b/scripts/lua-docs/get-docs.lua new file mode 100644 index 0000000..79f0f7d --- /dev/null +++ b/scripts/lua-docs/get-docs.lua @@ -0,0 +1,58 @@ +local dkjson = require("../../lib/dkjson/dkjson") + +-- In their documentation code, blizzard uses some globals that we need to stub in else they'll be nil +CustomOptionTattoo = 0 +CustomOptionTattooColor = 0 +MAX_STABLE_SLOTS = 200 +NUM_PET_SLOTS_THAT_NEED_LEARNED_SPELL = 5 +EXTRA_PET_STABLE_SLOT = 5 + +Enum = { + PlayerCurrencyFlagsDbFlags = { + InBackpack = 0, + UnusedInUI = 0, + }, + LFGRoleMeta = { + NumValues = 1 + } +} + +Constants = { + CharCustomizationConstants = { + CHAR_CUSTOMIZE_CUSTOM_DISPLAY_OPTION_LAST = 0, + CHAR_CUSTOMIZE_CUSTOM_DISPLAY_OPTION_FIRST = 0, + }, + PetConsts = { + MAX_STABLE_SLOTS = 200, + NUM_PET_SLOTS_THAT_NEED_LEARNED_SPELL = 5, + EXTRA_PET_STABLE_SLOT = 5 + } +} +-- End of stubs + +local Tables = {} +APIDocumentation = { + AddDocumentationTable = function(self, doc) + Tables[#Tables+1] = doc + end +} + +local directory = ... +for file in io.popen('ls "' .. directory .. '"'):lines() do + if file:match("^.+%.lua$") then + require(directory .. "/" .. file:gsub("%.lua$", "")) + end +end + +local encoded = dkjson.encode(Tables) + +local file = io.open("./scripts/lua-docs/docs/docs.json", "w") + +if file and type(encoded) == 'string' then + file:write(encoded) + file:close() + print("Generated JSON for Lua Types.") +else + print("Unable to find file to write to.") +end + diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json new file mode 100644 index 0000000..f7b942b --- /dev/null +++ b/scripts/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ESNext", + "lib": ["ESNext"], + "moduleResolution": "Node", + "types": ["node"], + "strict": true + }, +} diff --git a/src/_index.ts b/src/_index.ts new file mode 100644 index 0000000..a78dd93 --- /dev/null +++ b/src/_index.ts @@ -0,0 +1,95 @@ +const [_Tinkr] = [...$vararg] +const Tinkr = _Tinkr as unknown as tinkr + +interface PrintArgs { + text: string + prefix?: string + level?: 'info' | 'warn' | 'error' + color?: string +} + +function Print(this: void, { text, prefix, level, color }: PrintArgs) { + let textColor: string | undefined = color + + if (!textColor) { + textColor = + level === 'error' + ? 'FF76CE' + : level === 'info' + ? '94FFD8' + : level === 'warn' + ? 'FDFFC2' + : 'A3D8FF' + } + + print(`|cFF${textColor}[${prefix || 'Mekanome'}]|r |cFFFFFFFF ${text}`) +} + +function GetObject(this: void, token: string): WowGameObject | false { + return (Object as typeof TObject)(token) +} + +function Error(this: void, text: string) { + Print({ text, prefix: 'ERROR', level: 'error' }) + error(text) +} + +const Mekanome: Partial = { + enabled: false, + Print, + Error, + GetObject +} + +function Load(this: void, path: string) { + return Tinkr.Util.Evaluator.LoadString( + Tinkr.Util.File.Read(path), + [Tinkr, Mekanome], + path + ).default +} + +function LoadDirectoryFiles(this: void, path: string) { + const directories = ListDirectories(path) + + for (const directory of directories) { + LoadDirectoryFiles(`${path}/${directory}`) + } + + const files = ListFiles(path) + + for (const file of files) { + Load(`${path}/${file}`) + Print({ text: `${path}/${file}`, prefix: 'Loaded' }) + } +} + +function Init(this: void) { + Print({ text: '(V) (°,,,,°) (V)' }) + + LoadDirectoryFiles('scripts/utils') + LoadDirectoryFiles('scripts/managers') + LoadDirectoryFiles('scripts/actions') + + // @ts-ignore + const keys: (keyof IMekanome)[] = Object.keys(Mekanome) + + keys.forEach((key) => { + const module = Mekanome[key] + if ( + module !== undefined && + typeof module === 'object' && + // @ts-ignore + module['Init'] !== undefined + ) { + // @ts-ignore + module.Init() + + Print({ text: key, prefix: 'Initialized', level: 'info' }) + } + }) +} + +Init() + +export default {} diff --git a/src/actions/mage/arcane.ts b/src/actions/mage/arcane.ts new file mode 100644 index 0000000..8a35797 --- /dev/null +++ b/src/actions/mage/arcane.ts @@ -0,0 +1,16 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +const ArcaneInt = Mekanome.SpellUtils.Create(1459) + +function ArcaneMage(this: void): Castable | undefined { + return Mekanome.SpellUtils.SelfCast(ArcaneInt) +} + +Mekanome.ActionManager.Add('arcane_mage', { + run: ArcaneMage, + priority: 1, + loadConditions: { spec: 1, class: 8 } +}) + +export default undefined diff --git a/src/actions/mage/fire.ts b/src/actions/mage/fire.ts new file mode 100644 index 0000000..671ba1d --- /dev/null +++ b/src/actions/mage/fire.ts @@ -0,0 +1,16 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +function FireMage(this: void): Castable | undefined { + print('Fire!') + + return +} + +Mekanome.ActionManager.Add('fire_mage', { + run: FireMage, + priority: 1, + loadConditions: { spec: 2, class: 8 } +}) + +export default undefined diff --git a/src/actions/mage/frost.ts b/src/actions/mage/frost.ts new file mode 100644 index 0000000..1bffe40 --- /dev/null +++ b/src/actions/mage/frost.ts @@ -0,0 +1,16 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +function FrostMage(this: void): Castable | undefined { + print('Frost!') + + return undefined +} + +Mekanome.ActionManager.Add('frost_mage', { + run: FrostMage, + priority: 1, + loadConditions: { spec: 3, class: 8 } +}) + +export default undefined diff --git a/src/managers/action-manager.ts b/src/managers/action-manager.ts new file mode 100644 index 0000000..342e700 --- /dev/null +++ b/src/managers/action-manager.ts @@ -0,0 +1,230 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +const actions = new LuaMap() + +let isInitialized = false +let isMouseoverSettingEnabled = false + +interface ActionLoadConditions { + class?: number + spec?: number + custom?: () => boolean +} + +/** + * Evaluates the actions load conditions to tell the ActionManager + * wether or not this action should be loaded. + * @param loadConditions ActionLoadConditions + * @returns boolean + */ +function GetIsActionLoaded(this: void, loadConditions: ActionLoadConditions) { + let matchesClass = true + let matchesSpec = true + let matchesCustom = true + if (loadConditions.class !== undefined) { + const [, , classId] = UnitClass('player') + matchesClass = loadConditions.class === classId + } + if (loadConditions?.spec !== undefined) { + matchesSpec = loadConditions.spec === GetSpecialization() + } + if (loadConditions.custom !== undefined) { + matchesCustom = loadConditions.custom() + } + + return matchesClass === true && matchesSpec === true && matchesCustom === true +} + +/** + * Returns the actions map in array format, sorted by priority. + */ +function GetSortedActions(this: void) { + const actionsArray: Action[] = [] + + for (const [, action] of actions) { + actionsArray.push(action) + } + + return actionsArray.sort((a, b) => { + return a.priority - b.priority + }) +} + +/** + * Adds an action to the manager to call inside its ticker if loaded. + * @param name A unique name to identify the action. + * @param action The function to call for the action. + * @param options Options for the action to add. + */ +function Add( + this: void, + name: string, + options: { + run: RunAction + priority?: number + loadConditions: ActionLoadConditions + } +) { + if (actions.has(name)) { + throw Mekanome.Error(`Tried to add action ${name} but it already exists.`) + } + + const loaded = + options.loadConditions !== undefined + ? GetIsActionLoaded(options.loadConditions) + : false + + let priority = options.priority + + if (priority === undefined) { + const sortedActions = GetSortedActions() + + if (sortedActions.length === 0) { + priority = 1 + } else { + const lastAction = sortedActions[sortedActions.length - 1] + priority = lastAction.priority + 1 + } + } + + actions.set(name, { + priority, + run: options.run, + loadConditions: options.loadConditions, + loaded, + name + }) + + if (loaded) { + Mekanome.Print({ text: name, prefix: 'Module Loaded', level: 'info' }) + } +} + +/** + * Removes the action from the list. + * @param name The name of the action to remove. + */ +function Remove(this: void, name: string) { + if (actions.has(name)) { + actions.delete(name) + } +} + +/** + * Calls the list of loaded actions, in order. + * If an action returns a binding, that binding is run and the loop is terminted + * for a tick. + */ +function CallActions(this: void) { + const actionList = GetSortedActions() + + for (const action of actionList) { + if (action && action.loaded) { + // If an action returns a castable, dont call any other actions this tick. + const castable = action.run() + + if (castable !== undefined) { + Mekanome.Cast(castable) + break + } + } + } +} + +/** + * In order to cast on targets that arent the active target, we need + * to leverage mouse over casting. If the setting isnt enabled, Mekanome + * will not be able to cast on mobs that aren't the current target. + */ +function CheckSettings(this: void) { + const mouseoverSetting = C_CVar.GetCVar('enableMouseoverCast') + if (mouseoverSetting !== undefined && mouseoverSetting !== '0') { + isMouseoverSettingEnabled = true + } else { + isMouseoverSettingEnabled = false + throw Mekanome.Error('Please enable mouseover casting in the settings menu.') + } +} + +/** + * Initializes the action manager. + */ +function Init(this: void) { + if (isInitialized === false) { + // Check for the right settings. + CheckSettings() + + // Sets a ticker to call the list of actions. + C_Timer.NewTicker( + 0.15, + () => { + if (Mekanome.enabled && isMouseoverSettingEnabled) { + // Refresh the mob & traits managers every tick. + Mekanome.MobManager.Refresh() + Mekanome.PlayerStateManager.Refresh() + CallActions() + } + }, + undefined + ) + + // Listens to the player spec change event, as that might change the load + // status of actions in the list. + Mekanome.EventManager.RegisterEventHandler<'PLAYER_SPECIALIZATION_CHANGED'>( + 'PLAYER_SPECIALIZATION_CHANGED', + () => { + for (const [name, action] of actions) { + if (action.loadConditions) { + const loaded = GetIsActionLoaded(action.loadConditions) + if (loaded !== action.loaded) { + actions.set(name, { ...action, loaded }) + Mekanome.Print({ + text: name, + level: 'info', + prefix: loaded ? 'Loaded Module' : 'Unloaded Module' + }) + } + } + } + }, + 'am_spec_change' + ) + + // Listens to CVAR updates to make sure that mouseover casting isnt + // disabled while Mekanome is running. + Mekanome.EventManager.RegisterEventHandler<'CVAR_UPDATE'>( + 'CVAR_UPDATE', + ([eventName]) => { + if (eventName === 'enableMouseoverCast') { + CheckSettings() + } + }, + 'am_cvar_update' + ) + + isInitialized = true + } +} + +const _ActionManager = { + Add, + Remove, + Init +} + +declare global { + type ActionManager = typeof _ActionManager + type RunAction = (this: void) => Castable | undefined + interface Action { + priority: number + name: string + loaded: boolean + loadConditions?: ActionLoadConditions + run: RunAction + } +} + +Mekanome.ActionManager = _ActionManager + +export default {} diff --git a/src/managers/aura-manager.ts b/src/managers/aura-manager.ts new file mode 100644 index 0000000..2eea551 --- /dev/null +++ b/src/managers/aura-manager.ts @@ -0,0 +1,99 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +function New(this: void, token: string): Auras { + const auras = new LuaMap() + + const helpfulSlots = C_UnitAuras.GetAuraSlots( + token as UnitToken, + 'HELPFUL', + 200, + undefined + ) + + helpfulSlots.forEach((s) => { + if (s !== undefined) { + const aura = C_UnitAuras.GetAuraDataBySlot(token, s) + if (aura) { + auras.set(aura.auraInstanceID, aura) + } + } + }) + + const harmfulSlots = C_UnitAuras.GetAuraSlots( + token as UnitToken, + 'HARMFUL', + 200, + undefined + ) + + harmfulSlots.forEach((s) => { + if (s !== undefined) { + const aura = C_UnitAuras.GetAuraDataBySlot(token, s) + if (aura) { + auras.set(aura.auraInstanceID, aura) + } + } + }) + + return auras +} + +function GetUpdatedAuras(this: void, updateInfo: UnitAuraUpdateInfo, mob: Mob): Auras { + const auras: Auras = new LuaMap() + + // If its a full update, just return a fresh aura manager. + if (updateInfo.isFullUpdate) { + return New(mob.token) + } + + if (mob.auras !== undefined) { + for (const [instanceId, aura] of mob.auras) { + auras.set(instanceId, aura) + } + } + + // Remove any removed auras from the table. + if (updateInfo.removedAuraInstanceIDs !== undefined) { + updateInfo.removedAuraInstanceIDs.forEach((id) => { + if (auras.has(id)) { + auras.delete(id) + } + }) + } + // Add any added auras to the table. + if (updateInfo.addedAuras !== undefined) { + updateInfo.addedAuras.forEach((data) => { + auras.set(data.auraInstanceID, data) + }) + } + + if (updateInfo.updatedAuraInstanceIDs) { + updateInfo.updatedAuraInstanceIDs.forEach((id) => { + const data = C_UnitAuras.GetAuraDataByAuraInstanceID(mob.token, id) + if (data) { + auras.set(data.auraInstanceID, data) + } + }) + } + + return auras +} + +const _AuraManager = { + New, + GetUpdatedAuras +} + +declare global { + type Auras = LuaMap + type AuraManager = typeof _AuraManager + interface Aura { + id: number + isPlayerAura?: boolean + } +} + +Mekanome.AuraManager = _AuraManager + +export default {} diff --git a/src/managers/bindings-manager.ts b/src/managers/bindings-manager.ts new file mode 100644 index 0000000..3ac87ba --- /dev/null +++ b/src/managers/bindings-manager.ts @@ -0,0 +1,170 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +const ActionBarButtonNames = [ + 'ActionButton', + 'MultiBarBottomLeftButton', + 'MultiBarBottomRightButton', + 'MultiBarLeftButton', + 'MultiBarRightButton', + 'MultiBar5Button', + 'MultiBar6Button', + 'MultiBar7Button' +] + +const BarMap = { + ActionButton: 'ACTIONBUTTON', + MultiBarBottomLeftButton: 'MULTIACTIONBAR1BUTTON', + MultiBarBottomRightButton: 'MULTIACTIONBAR2BUTTON', + MultiBarRightButton: 'MULTIACTIONBAR3BUTTON', + MultiBarLeftButton: 'MULTIACTIONBAR4BUTTON', + MultiBar5Button: 'MULTIACTIONBAR5BUTTON', + MultiBar6Button: 'MULTIACTIONBAR6BUTTON' +} + +interface Binding { + binding: ActionButtons + id: number | string + type: 'item' | 'spell' +} + +const bindings = new Map() + +let isInitialized = false + +/** + * Loops through all of the WoW action bar buttons, checks to see if there is a spell + * or item on them, then stores that relationship for later use. + */ +function CheckBindings() { + bindings.clear() + for (const bar of ActionBarButtonNames) { + for (const i of $range(1, 12)) { + const actionButton = `${bar}${i}` + + // @ts-ignore + const button = _G[actionButton] + + if ( + button !== undefined && + typeof button === 'object' && + button.action !== undefined + ) { + const [type, id] = GetActionInfo(button.action) + + if (type === 'spell' || type === 'item') { + // @ts-ignore + const barName = BarMap[bar] + + const binding = `${barName}${i}` as ActionButtons + + bindings.set(button.action, { + binding, + id, + type + }) + } + } + } + } + + Mekanome.Print({ + text: `${bindings.size}`, + prefix: 'Bindings Update', + level: 'warn' + }) +} + +/** + * Returns the ActionButtons binding for a given spell. + * @param spell + * @returns ActionButtons + */ +function GetBindingForSpell(this: void, spell: Spell) { + let binding: ActionButtons | undefined = undefined + for (const [, bindingInfo] of bindings) { + if (bindingInfo.id === spell.id) { + binding = bindingInfo.binding + break + } + } + return binding +} + +function CallBinding(this: void, binding: ActionButtons) { + RunBinding(binding) + RunBinding(binding, 'up') +} + +/** + * Initializes the bindings manager. + */ +function Init(this: void) { + if (isInitialized === false) { + CheckBindings() + + // Listen for the evet fired when a spell is added or removed from the action + // bar so that we can update our bindings. + Mekanome.EventManager.RegisterEventHandler<'ACTIONBAR_SLOT_CHANGED'>( + 'ACTIONBAR_SLOT_CHANGED', + (args) => { + const slot = args[0] + const binding = bindings.get(slot) + const [type, id] = GetActionInfo(slot) + + // This event gets fired for a couple of different reasons. + // 1. A spell is added or removed from the action bar. + // 2. A considtional macro on the action bar is update (e.g a mouseover macro when the player hovers something) + // 3. A cast starts and ends. + // We only care about case 1, so we only update bindings if we either dont have a binding saved + // for this slot, or the binding is changed. + if (binding !== undefined) { + if (type !== binding.type || id !== binding.id) { + CheckBindings() + } + } else { + if (type === 'spell' || type === 'item') { + CheckBindings() + } + } + }, + 'bm_action_bar_slot_changed' + ) + + // When you mount a dragon riding mount, and your spells get replaced with dragon + // riding abilities this is called so we update the bindings. + Mekanome.EventManager.RegisterEventHandler<'UPDATE_BONUS_ACTIONBAR'>( + 'UPDATE_BONUS_ACTIONBAR', + () => { + CheckBindings() + }, + 'bm_player_mount_display' + ) + + // Listens to the player spec change event, as that might change the load + // status of actions in the list. + Mekanome.EventManager.RegisterEventHandler<'PLAYER_SPECIALIZATION_CHANGED'>( + 'PLAYER_SPECIALIZATION_CHANGED', + () => { + CheckBindings() + }, + 'bm_spec_change' + ) + + isInitialized = true + } +} + +const _BindingsManager = { + Init, + GetBindingForSpell, + CallBinding +} + +declare global { + type BindingsManager = typeof _BindingsManager +} + +Mekanome.BindingsManager = _BindingsManager + +export default {} diff --git a/src/managers/command-manager.ts b/src/managers/command-manager.ts new file mode 100644 index 0000000..87698ce --- /dev/null +++ b/src/managers/command-manager.ts @@ -0,0 +1,51 @@ +const [_Tinkr, _Mekanome] = [...$vararg] +const Tinkr = _Tinkr as unknown as tinkr +const Mekanome = _Mekanome as unknown as IMekanome +const meka = Tinkr.Util.Commands.New('meka') + +/** + * Registers a commant to be used under the "meka" namespace + * @param prefix /meka {prefix} + * @param callback The function to be called when the command is entered. + * @param helpText Optional text to help describe the command. + */ +function Register( + this: void, + prefix: string, + callback: (this: void) => void, + helpText?: string +) { + meka.Register(prefix, callback, helpText) +} + +/** + * Initializes core commands. + */ +function Init(this: void) { + Register( + 'toggle', + () => { + if (Mekanome.enabled === false) { + Mekanome.Print({ text: 'Started' }) + Mekanome.enabled = true + } else { + Mekanome.Print({ text: 'Stopped' }) + Mekanome.enabled = false + } + }, + 'Toggles Mekanome.' + ) +} + +const _CommandManager = { + Register, + Init +} + +declare global { + type CommandManager = typeof _CommandManager +} + +Mekanome.CommandManager = _CommandManager + +export default {} diff --git a/src/managers/event-manager.ts b/src/managers/event-manager.ts new file mode 100644 index 0000000..21e0a15 --- /dev/null +++ b/src/managers/event-manager.ts @@ -0,0 +1,87 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +type EventCallback = (args: WowEventPayload[T]) => void + +const events = new LuaMap void>>() + +const frame = CreateFrame<'Frame'>('Frame') + +frame.SetScript('OnEvent', (f, event, ...args) => { + const callbacks = events.get(event) + if (callbacks) { + for (const [, cb] of callbacks) { + cb(args) + } + } +}) + +/** + * Registers an event to listen to. + * @param event The name of the wow event. + * @param callback The function to call when the event triggers. + * @param id The ID specific to this callback, so that multiple handlers can be added per event. + */ +function RegisterEventHandler( + this: void, + event: WowEvent, + callback: EventCallback, + id: string +) { + const existingHandlers = events.get(event) + + if (existingHandlers) { + if (existingHandlers.has(id)) { + return + } + existingHandlers.set(id, callback) + events.set(event, existingHandlers) + } else { + frame.RegisterEvent(event) + const handlers = new LuaMap>() + handlers.set(id, callback) + events.set(event, handlers) + Mekanome.Print({ text: event, prefix: 'Registered', level: 'info' }) + } +} + +/** + * Unregisters a Wow event handler. + * @param event The event to unregister from. + * @param id The ID of the handler to unregister. + */ +function UnregisterEventHandler(this: void, event: WowEvent, id: string) { + const handlers = events.get(event) + + if (handlers && handlers.has(id)) { + handlers.delete(id) + Mekanome.Print({ + text: `Event: ${event} | ID: ${id}`, + prefix: 'Handler', + level: 'error' + }) + } + + if (handlers && handlers.isEmpty() === true) { + events.delete(event) + frame.UnregisterEvent(event) + Mekanome.Print({ + text: event, + prefix: 'Event', + level: 'error' + }) + } +} + +const _EventManager = { + RegisterEventHandler, + UnregisterEventHandler +} + +declare global { + type EventManager = typeof _EventManager +} + +Mekanome.EventManager = _EventManager + +export default {} diff --git a/src/managers/mob-manager.ts b/src/managers/mob-manager.ts new file mode 100644 index 0000000..4792065 --- /dev/null +++ b/src/managers/mob-manager.ts @@ -0,0 +1,239 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +let isInitialized = false + +// We dont really care about critters, non combat pets, and gas clouds +const CREATURE_TYPES_TO_IGNORE: UnitCreatureType[] = [8, 12, 13, 14] + +// Dummys dont really place nice with the combat checking APIs, so we +// just consider th +const DUMMYS = [ + // City (SW, Orgrimar, etc) + 31146, 31144, 32666, 32667, 46647, 114832, 153285, 153292, + // DragonFlight Valdrakken + 198594, 194648, 189632, 194643, 194644, 197833, 189617, 194649, + // DragonFlight Iskaara + 193563, + // Other + 65310, 66374, 196394, 196406, 199057 +] + +const mobs = new LuaMap() + +// ------------ +// INTERNAL +// ------------ + +/** + * Creates a "Mob" from a WowGameObject + * @param mobObject A WowGameObject corresponding to the unit + * @returns mob data + */ +function CreateMobFromObject(this: void, mobObject: WowGameObject): Mob { + let type: Mob['type'] = 'unknown' + + const id = mobObject.id() + const unit = mobObject.unit() + + if ( + UnitIsFriend('player', unit as UnitToken) || + UnitInParty(unit as UnitToken, undefined) || + UnitInRaid(unit as UnitToken, undefined) + ) { + type = 'friend' + } + + if ( + UnitCanAttack('player', unit as UnitToken) || + (typeof id === 'number' && DUMMYS.includes(id)) + ) { + type = 'enemy' + } + + return { + type, + token: mobObject.unit(), + guid: mobObject.guid(), + id: mobObject.id(), + auras: Mekanome.AuraManager.New(mobObject.unit()) + } +} + +function GetMobFromObject(this: void, mobObject: WowGameObject): Mob | undefined { + return mobs.get(mobObject.guid()) +} + +/** + * Updates the time in which a mob was last in combat. + * @param guid The GUID of the mob to update. + */ +function UpdateCombatTime(this: void, guid: string) { + const mob = GetMob({ guid }) + + if (mob && mob.type === 'enemy') { + mob.lastCombatTime = GetTime() + mobs.set(guid, mob) + } +} + +// ------------ +// EXTERNAL +// ------------ + +/** + * Returns a mob from the mob manager, if it exists + */ +function GetMob( + this: void, + { token, guid }: { token?: string; guid?: string } +): Mob | undefined { + let id: string | undefined = undefined + + if (guid) { + id = guid + } else if (token) { + id = token === 'none' ? token : ObjectGUID(token) + } + + if (id === undefined) return undefined + + if (mobs.has(id) === false) { + const gameObject = (Object as typeof TObject)(id) + + if (gameObject !== false) { + mobs.set(id, CreateMobFromObject(gameObject)) + } + } + + return mobs.get(id) +} + +/** + * Refreshes the list of mobs. + */ +function Refresh(this: void) { + const touchedMobs: string[] = [] + const unitObjects = Objects(5) + const playerObjects = Objects(6) + const activePlayerObject = Objects(7) + + const objects = unitObjects.concat(playerObjects).concat(activePlayerObject) + + for (const gameObject of objects) { + const objectType = ObjectCreatureType(gameObject) + + if (CREATURE_TYPES_TO_IGNORE.includes(objectType) === false) { + const existingMob = GetMobFromObject(gameObject) + const mob = CreateMobFromObject(gameObject) + + touchedMobs.push(mob.guid) + + if (existingMob === undefined) { + mobs.set(mob.guid, mob) + } else { + const isStale = existingMob.id !== mob.id || existingMob.token !== mob.token + + if (isStale) { + mobs.set(existingMob.guid, { + ...existingMob, + id: mob.id, + token: mob.token + }) + } + } + } + } + + for (const [guid, _] of mobs) { + if (touchedMobs.includes(guid) === false) { + mobs.delete(guid) + } + } +} + +/** + * Iterates over the mob list, and calls a function for each mob. + * @param callback Function called for each mob in the list. + * @param type The type of mobs to iterate over. "enemies_active" iterates over enemies that are in combat. + */ +function Iterate( + this: void, + callback: (mob: Mob) => void, + type?: Mob['type'] | 'enemies_active' +) { + for (const [_, mob] of mobs) { + if (type !== undefined) { + if (type === 'enemies_active') { + const combatOdds = Mekanome.MobUtils.InCombatOdds(mob) + if (combatOdds !== undefined && combatOdds < 0.4) { + callback(mob) + } + } else if (mob.type === type) { + callback(mob) + } + } else { + callback(mob) + } + } +} + +/** + * Initializes the mob manager. + */ +function Init(this: void) { + if (isInitialized === false) { + // Update mobs combat times when combat log events come through for them. + // TODO: Only do this if the source is the player, or someone in the players party. + Mekanome.EventManager.RegisterEventHandler<'COMBAT_LOG_EVENT_UNFILTERED'>( + 'COMBAT_LOG_EVENT_UNFILTERED', + () => { + if (Mekanome.enabled) { + const [, , , source, , , , dest] = CombatLogGetCurrentEventInfo() + + UpdateCombatTime(source) + UpdateCombatTime(dest) + } + }, + 'mm_combat_log_event_unfiltered' + ) + // Update mobs aura info when this event comes through and they're being managed. + Mekanome.EventManager.RegisterEventHandler<'UNIT_AURA'>( + 'UNIT_AURA', + ([token, auraInfo]) => { + const mob = GetMob({ token }) + if (mob) { + const updatedAuras = Mekanome.AuraManager.GetUpdatedAuras(auraInfo, mob) + mob.auras = updatedAuras + mobs.set(mob.guid, mob) + } + }, + 'mm_unit_aura' + ) + + isInitialized = true + } +} + +const _MobManager = { + Iterate, + Refresh, + GetMob, + Init +} + +declare global { + type Mob = { + type: 'friend' | 'enemy' | 'unknown' + lastCombatTime?: number + token: string + guid: string + id: number | boolean + auras: Auras + } + type MobManager = typeof _MobManager +} + +Mekanome.MobManager = _MobManager + +export default {} diff --git a/src/managers/player-state-manager.ts b/src/managers/player-state-manager.ts new file mode 100644 index 0000000..8fb4e39 --- /dev/null +++ b/src/managers/player-state-manager.ts @@ -0,0 +1,104 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +let isMoving = false +let isCasting = false +let isChanneling = false +let isAlive = true +let isMounted = false +let Player: Mob | undefined = undefined +let Target: Mob | undefined = undefined +let Mouseover: Mob | undefined = undefined +const sqw = C_CVar.GetCVar('SpellQueueWindow') +let spellQueueWindow = sqw !== undefined ? Number(sqw) : 0 + +/** + * Refresh the players state + */ +function Refresh(this: void) { + const { MobUtils, MobManager } = Mekanome + + const player = MobManager.GetMob({ token: 'player' }) + const target = MobManager.GetMob({ token: 'target' }) + const mouseover = MobManager.GetMob({ token: 'mouseover' }) + + if (player === undefined) { + throw Mekanome.Error('Unable to refresh player state as player object doesnt exist.') + } + + Player = player + Target = target + Mouseover = mouseover + isMoving = MobUtils.GetIsMoving(player) + isMounted = MobUtils.IsMounted(player) + isAlive = MobUtils.IsAlive(player) + + const castEnd = MobUtils.GetCastEndTime(player) + const channelEnd = MobUtils.GetChannelEndTime(player) + + if (castEnd) { + const timeUntilEnd = castEnd - GetTime() + isCasting = timeUntilEnd > spellQueueWindow / 1000 + } else { + isCasting = false + } + + if (channelEnd) { + const timeUntilEnd = channelEnd - GetTime() + isChanneling = timeUntilEnd > spellQueueWindow / 1000 + } else { + isChanneling = false + } +} + +/** + * Get the players state + */ +function GetPlayerState(this: void) { + if (Player === undefined) { + throw Mekanome.Error('Unable to get player state as player object doesnt exist.') + } + + return { + Player, + Target, + Mouseover, + spellQueueWindow, + isAlive, + isMounted, + isMoving, + isCasting, + isChanneling + } +} + +function Init(this: void) { + // Listens to CVAR updates to make sure that our local sqw var + // is kept in sync with the players + Mekanome.EventManager.RegisterEventHandler<'CVAR_UPDATE'>( + 'CVAR_UPDATE', + ([eventName]) => { + if (eventName === 'SpellQueueWindow') { + const newSQW = C_CVar.GetCVar('SpellQueueWindow') + if (newSQW !== undefined) { + spellQueueWindow = Number(newSQW) + } + } + }, + 'tm_cvar_update' + ) +} + +const _PlayerStateManager = { + Refresh, + GetPlayerState, + Init +} + +declare global { + type PlayerStateManager = typeof _PlayerStateManager +} + +Mekanome.PlayerStateManager = _PlayerStateManager + +export default {} diff --git a/src/types/Mekanome.d.ts b/src/types/Mekanome.d.ts new file mode 100644 index 0000000..6379d55 --- /dev/null +++ b/src/types/Mekanome.d.ts @@ -0,0 +1,53 @@ +interface BaseCastable { + variant: CastableVariant + id: number + binding: ActionButtons +} + +interface GroundCastable extends BaseCastable { + position: Vector3 + variant: 'ground' +} + +interface TargetCastable extends BaseCastable { + target: Mob + variant: 'target' +} + +interface SelfCastable extends BaseCastable { + variant: 'self' +} + +declare global { + interface IMekanome { + enabled: boolean + CommandManager: CommandManager + ActionManager: ActionManager + EventManager: EventManager + PlayerStateManager: PlayerStateManager + MobManager: MobManager + MobUtils: MobUtils + VectorUtils: VectorUtils + BindingsManager: BindingsManager + SpellUtils: SpellUtils + AuraManager: AuraManager + AuraUtils: AuraUtils + Cast: (this: void, castable: Castable) => void + GetObject: (this: void, token: string) => WowGameObject | false + Require(this: void, file: string): T + Error(this: void, text: string): void + Print( + this: void, + args: { + text: string + prefix?: string + level?: 'info' | 'warn' | 'error' + color?: string + } + ): void + } + type CastableVariant = 'self' | 'target' | 'ground' + type Castable = GroundCastable | TargetCastable | SelfCastable +} + +export {} diff --git a/src/types/Tinkr.d.ts b/src/types/Tinkr.d.ts new file mode 100644 index 0000000..bdb2abf --- /dev/null +++ b/src/types/Tinkr.d.ts @@ -0,0 +1,319 @@ +declare global { + interface WowGameObject { + /** Returns the Tinkr object managers reference to the object. */ + unit: () => string + /** Returns the objects full WoW GUID. */ + guid: () => string + /** Returns the units ID (can also be found in the GUID). Players dont have an ID. */ + id: () => number | boolean + } + + function DirectoryExists(this: void, path: string): boolean + function ListFiles(this: void, directory: string): string[] + function ListDirectories(this: void, path: string): string[] + function SetMouseover(this: void, mob: WowGameObject | undefined): true | false + + interface Missile { + // Current X + cx: number + // Current Y + cy: number + // Current Z + cz: number + // Hit X + hx: number + // Hit Y + hy: number + // Hit Z + hz: number + // Init X + ix: number + // Init Y + iy: number + // Init Z + iz: number + // Model X + mx: number + // Model Y + my: number + // Model Z + mz: number + source?: WowGameObject + target?: WowGameObject + spellId?: number + spellVisualId?: number + } + + type ObjectType = + // Object + | 0 + // Item + | 1 + // Container + | 2 + // AzeriteEmpoweredItem + | 3 + // AzeriteItem + | 4 + // Unit + | 5 + // Player + | 6 + // ActivePlayer + | 7 + // GameObject + | 8 + // DynamicObject + | 9 + // Corpse + | 10 + // AreaTrigger + | 11 + // SceneObject + | 12 + // Conversation + | 13 + // AiGroup + | 14 + // Scenario + | 15 + // Loot + | 16 + // Invalid + | 17 + + type UnitCreatureType = + // Beast + | 1 + // Dragonkin + | 2 + // Demon + | 3 + // Elemental + | 4 + // Giant + | 5 + // Undead + | 6 + // Humanoid + | 7 + // Critter + | 8 + // Mechanical + | 9 + // NotSpecified + | 10 + // Totem + | 11 + // NonCombatPet + | 12 + // GasCloud + | 13 + // WildPet + | 14 + // Aberration + | 15 + + /** + * Returns a list of missiles + */ + function Missiles(this: void): LuaPairsIterable + + /** + * Returns whether or not a path exists. + * */ + function DirectoryExists(this: void, path: string): boolean + /** + * Returns an iterator of all files in the directory + * */ + function ListFiles(this: void, path: string): LuaIterable + /** + * Logs to the tinkr console + * */ + function Log(this: void, toLog: string): void + + /** + * Will return a tokens GUID + */ + function ObjectGUID(this: void, token: string | WowGameObject): string + + /** + * Will return a tokens GUID + */ + function TObject(this: void, token: string): WowGameObject | false + + /** + * Returns a list of WowGameObjects, optionally filtered by type + */ + function Objects(this: void, type?: ObjectType): WowGameObject[] + + /** + * Returns a gameobject's creature type + */ + function ObjectCreatureType(this: void, gameObject: WowGameObject): UnitCreatureType + + /** + * Returns an objects spec number + */ + function ObjectSpecializationID(this: void, gameObject: WowGameObject): number + + /** + * Returns an objects height + */ + function ObjectHeight(this: void, token: string | WowGameObject): number + + /** + * Returns a units vector3 position + */ + function ObjectPosition( + this: void, + object: WowGameObject | string + ): LuaMultiReturn<[number, number, number]> + + /** + * Returns the distance between two coordinates + */ + function FastDistance( + this: void, + x: number, + y: number, + z: number, + x2: number, + y2: number, + z2: number + ): number + + /** + * Returns the coords of the specified attachment position + */ + function GetUnitAttachmentPosition( + this: void, + token: string | WowGameObject, + position: number + ): LuaMultiReturn<[number, number, number]> + + /** + * Traces a line between two coords, and returns a position if there was a collision while tracing + */ + function TraceLine( + this: void, + x1: number, + y1: number, + z1: number, + x2: number, + y2: number, + z2: number, + flag: number + ): LuaMultiReturn<[number, number, number]> + + /** + * Returns the object combat reach + */ + function ObjectCombatReach(this: void, token: string): number | false + + /** + * Returns the game object of the objects current cast target + */ + function ObjectCastingTarget( + this: void, + token: string | WowGameObject + ): WowGameObject | false + + /** + * Returns the objects movement bit. See https://docs.tinkr.site/Lua/Objects/ObjectMovementFlag/ + */ + function ObjectMovementFlag(this: void, token: string | WowGameObject): number + + /** + * Returns the objects rotation + */ + function ObjectRotation(this: void, token: string | WowGameObject): number | false + + /** + * Returns wether or not the unit is sitting + */ + function UnitIsSitting(this: void, token: string | WowGameObject): boolean + + /** + * Returns the objects model id + */ + function ObjectModelId(this: void, token: string | WowGameObject): number | false + + /** + * Returns the objects object manager ID + */ + function ObjectId(this: void, token: string | WowGameObject): number | false + + /** + * Returns whether or not the unit is mounted + */ + function UnitIsMounted(this: void, token: string | WowGameObject): boolean + + /** + * Returns the target object of the object + */ + function ObjectTarget( + this: void, + token: string | WowGameObject + ): WowGameObject | undefined + + /** + * Returns whether or not a spell is pending (green cursor) + */ + function IsSpellPending(this: void): number + + /** + * Clicks on the specified position. + */ + function Click(this: void, x: number, y: number, z: number): void + + interface tinkr { + Util: { + Evaluator: { + LoadString: (toLoad: string, args: any[], filePath: string) => any + } + Commands: { + New(prefix: string): { + Register: (prefix: string, cb: () => void, helpMessage?: string) => void + } + } + File: { + Read: (filePath: string) => string + Run: (filePath: string, args?: any[]) => any + LoadPackage: (filePath: string) => void + } + } + Common: { + GetAnglesBetweenPositions( + x1: number, + y1: number, + z1: number, + x2: number, + y2: number, + z2: number + ): number + } + } + + // Overrides of WoW Docs + namespace C_Timer { + function After(this: void, seconds: number, callback: () => void): void + + function NewTicker( + this: void, + seconds: number, + callback: () => void, + iterations: number | undefined + ): { IsCancelled(): boolean; Cancel(): void } + + function NewTimer( + this: void, + seconds: number, + callback: () => void + ): { IsCancelled(): boolean; Cancel(): void } + } + + const SlashCmdList: { [key: string]: (this: void, message: string) => void } +} + +export {} diff --git a/src/types/Wow/callbacks.d.ts b/src/types/Wow/callbacks.d.ts new file mode 100644 index 0000000..318a986 --- /dev/null +++ b/src/types/Wow/callbacks.d.ts @@ -0,0 +1,55 @@ +/* eslint-disable @typescript-eslint/no-duplicate-enum-values */ +/* eslint-disable @typescript-eslint/ban-types */ +/** @noSelfInFile **/ + +declare global { + type CraftingOrderRequestCallback = ( + result: CraftingOrderResult, + orderType: CraftingOrderType, + displayBuckets: boolean, + expectMoreRows: boolean, + offset: number, + isSorted: boolean + ) => void + + type CraftingOrderRequestMyOrdersCallback = ( + result: CraftingOrderResult, + expectMoreRows: boolean, + offset: number, + isSorted: boolean + ) => void + + type PingCooldownStartedCallback = (info: PingCooldownInfo) => void + + type PingPinFrameAddedCallback = ( + region: unknown, + uiTextureKit: string, + isWorldPoint: boolean + ) => void + + type PingPinFrameRemovedCallback = (region: unknown) => void + + type PingPinFrameScreenClampStateUpdatedCallback = ( + region: unknown, + state: boolean + ) => void + + type PingRadialWheelCreatedCallback = (region: unknown) => void + + type SendMacroPingCallback = ( + type: PingSubjectType | undefined, + targetToken: string | undefined + ) => void + + type TogglePingListenerCallback = (down: boolean) => void + + type GetTitleIconTextureCallback = (success: boolean, texture: number) => void + + type MacroExecuteLineCallback = (macroLine: string) => void + + type TickerCallback = (cb: TimerCallback) => void + + type TimerCallback = () => void +} + +export {} diff --git a/src/types/Wow/constants.d.ts b/src/types/Wow/constants.d.ts new file mode 100644 index 0000000..10d8052 --- /dev/null +++ b/src/types/Wow/constants.d.ts @@ -0,0 +1,168 @@ +/* eslint-disable @typescript-eslint/no-duplicate-enum-values */ +/* eslint-disable @typescript-eslint/ban-types */ +/** @noSelfInFile **/ + +declare global { + const AuctionConstants: { DEFAULT_AUCTION_PRICE_MULTIPLIER: 1.5 } + + const CharCustomizationConstants: { + CHAR_CUSTOMIZE_CUSTOM_DISPLAY_OPTION_FIRST: 0 + CHAR_CUSTOMIZE_CUSTOM_DISPLAY_OPTION_LAST: 0 + NUM_CUSTOM_DISPLAY: 1 + } + + const ContentTrackingConsts: { + MaxTrackedCollectableSources: 15 + MaxTrackedAchievements: 10 + } + + const Callings: { MaxCallings: 3 } + + const CraftingOrderConsts: { MAX_CRAFTING_ORDER_FAVORITE_RECIPES: 100 } + + const CurrencyConsts: { + PLAYER_CURRENCY_CLIENT_FLAGS: 0 + MAX_CURRENCY_QUANTITY: 100000000 + CONQUEST_ARENA_AND_BG_META_CURRENCY_ID: 483 + CONQUEST_RATED_BG_META_CURRENCY_ID: 484 + CONQUEST_ASHRAN_META_CURRENCY_ID: 692 + ACCOUNT_WIDE_HONOR_CURRENCY_ID: 1585 + ACCOUNT_WIDE_HONOR_LEVEL_CURRENCY_ID: 1586 + CONQUEST_CURRENCY_ID: 1602 + CONQUEST_POINTS_CURRENCY_ID: 390 + CONQUEST_ARENA_META_CURRENCY_ID: 483 + CONQUEST_BG_META_CURRENCY_ID: 484 + HONOR_CURRENCY_ID: 1792 + ARTIFACT_KNOWLEDGE_CURRENCY_ID: 1171 + WAR_RESOURCES_CURRENCY_ID: 1560 + ECHOES_OF_NYALOTHA_CURRENCY_ID: 1803 + DRAGON_ISLES_SUPPLIES_CURRENCY_ID: 2003 + QUESTIONMARK_INV_ICON: 134400 + PVP_CURRENCY_CONQUEST_ALLIANCE_INV_ICON: 463448 + PVP_CURRENCY_CONQUEST_HORDE_INV_ICON: 463449 + PVP_CURRENCY_HONOR_ALLIANCE_INV_ICON: 463450 + PVP_CURRENCY_HONOR_HORDE_INV_ICON: 463451 + CURRENCY_ID_RENOWN: 1822 + CURRENCY_ID_RENOWN_KYRIAN: 1829 + CURRENCY_ID_RENOWN_VENTHYR: 1830 + CURRENCY_ID_RENOWN_NIGHT_FAE: 1831 + CURRENCY_ID_RENOWN_NECROLORD: 1832 + CURRENCY_ID_WILLING_SOUL: 1810 + CURRENCY_ID_RESERVOIR_ANIMA: 1813 + CURRENCY_ID_PERKS_PROGRAM_DISPLAY_INFO: 2032 + } + + const DelvesConsts: { + DELVES_MIN_PLAYER_LEVEL_CONTENT_TUNING_ID: 2677 + DELVES_NORMAL_KEY_CURRENCY_ID: 3028 + DELVES_COMPANION_TOOLTIP_WIDGET_SET_ID: 1331 + DELVES_COMPANION_TRAIT_SYSTEM_ID: 6 + BRANN_COMPANION_INFO_ID: 1 + } + + const EditModeConsts: { + EditModeDefaultGridSpacing: 100 + EditModeMinGridSpacing: 20 + EditModeMaxGridSpacing: 300 + EditModeMaxLayoutsPerType: 5 + } + + const ItemConsts: { + NUM_ITEM_ENCHANTMENT_SOCKETS: 3 + MAX_LOOT_OBJECT_ITEMS: 31 + INVALID_TRANSACTION_BANK_TAB_SLOT: 255 + } + + const ITEM_WEAPON_SUBCLASSConstants: { ITEM_WEAPON_SUBCLASS_NONE: -1 } + + const GroupFinderConstants: { MAX_GROUP_FINDER_ACTIVITIES: 41 } + + const LFG_ROLEConstants: { LFG_ROLE_NO_ROLE: -1; LFG_ROLE_ANY: 1 } + + const LevelConstsExposed: { MIN_RES_SICKNESS_LEVEL: 10; MIN_ACHIEVEMENT_LEVEL: 10 } + + const LootConsts: { MasterLootQualityThreshold: 5 } + + const MajorFactionsConsts: { + WORLD_STATE_RENOWN_CAP_10_0: 19735 + WORLD_STATE_RAPID_RENOWN_CAP_10_0: 20851 + PLUNDERSTORM_MAJOR_FACTION_ID: 2593 + } + + const MoneyFormattingConstants: { GOLD_REWARD_THRESHOLD_TO_HIDE_COPPER: 10 } + + const MountDynamicFlightConsts: { TRAIT_SYSTEM_ID: 1; TREE_ID: 672 } + + const PetConsts_PostCata: { + MAX_STABLE_SLOTS: 200 + MAX_SUMMONABLE_PETS: 25 + MAX_SUMMONABLE_HUNTER_PETS: 5 + NUM_PET_SLOTS_THAT_NEED_LEARNED_SPELL: 5 + NUM_PET_SLOTS: 205 + EXTRA_PET_STABLE_SLOT: 5 + STABLED_PETS_FIRST_SLOT_INDEX: 6 + } + + const PetConsts_PreWrath: { + MAX_STABLE_SLOTS: 2 + MAX_SUMMONABLE_PETS: 25 + MAX_SUMMONABLE_HUNTER_PETS: 1 + NUM_PET_SLOTS_THAT_NEED_LEARNED_SPELL: 1 + NUM_PET_SLOTS: 205 + EXTRA_PET_STABLE_SLOT: 0 + STABLED_PETS_FIRST_SLOT_INDEX: 6 + } + + const PetConsts_Wrath: { + MAX_STABLE_SLOTS: 4 + MAX_SUMMONABLE_PETS: 25 + MAX_SUMMONABLE_HUNTER_PETS: 1 + NUM_PET_SLOTS_THAT_NEED_LEARNED_SPELL: 1 + NUM_PET_SLOTS: 205 + EXTRA_PET_STABLE_SLOT: 0 + STABLED_PETS_FIRST_SLOT_INDEX: 6 + } + + const ProfessionConsts: { + NUM_PRIMARY_PROFESSIONS: 2 + CLASSIC_PROFESSION_PARENT_TIER_INDEX: 4 + RUNEFORGING_SKILL_LINE_ID: 960 + RUNEFORGING_ROOT_CATEGORY_ID: 210 + MAX_CRAFTING_REAGENT_SLOTS: 12 + CRAFTING_ORDER_CLAIM_DURATION: 0 + PUBLIC_CRAFTING_ORDER_STALE_THRESHOLD: 0 + CRAFTING_ORDER_ITEM_RETENTION: 30 + } + + const PvpInfoConsts: { MaxPlayersPerInstance: 80 } + + const QuestWatchConsts: { + MAX_QUEST_WATCHES: 25 + MAX_WORLD_QUEST_WATCHES_AUTOMATIC: 1 + MAX_WORLD_QUEST_WATCHES_MANUAL: 5 + } + + const TimerunningConsts: { + TIMERUNNING_SEASON_NONE: 0 + TIMERUNNING_SEASON_PANDARIA: 1 + TIMERUNNING_ITEM_CTR: 2905 + TIMERUNNING_STARTLOC_ID_ALLIANCE: 10211 + TIMERUNNING_STARTLOC_ID_HORDE: 10212 + } + + const TraitConsts: { + MAX_COMBAT_TRAIT_CONFIGS: 40 + COMMIT_COMBAT_TRAIT_CONFIG_CHANGES_SPELL_ID: 384255 + INSPECT_TRAIT_CONFIG_ID: -1 + STARTER_BUILD_TRAIT_CONFIG_ID: -2 + VIEW_TRAIT_CONFIG_ID: -3 + } + + const Transmog: { + NoTransmogID: 0 + MainHandTransmogIsIndividualWeapon: -1 + MainHandTransmogIsPairedWeapon: 0 + } +} + +export {} diff --git a/src/types/Wow/enums.d.ts b/src/types/Wow/enums.d.ts new file mode 100644 index 0000000..8399b9e --- /dev/null +++ b/src/types/Wow/enums.d.ts @@ -0,0 +1,5033 @@ +/* eslint-disable @typescript-eslint/no-duplicate-enum-values */ +/* eslint-disable @typescript-eslint/ban-types */ +/** @noSelfInFile **/ + +declare global { + enum AccountData { + Config = 0, + Config2 = 1, + Bindings = 2, + Bindings2 = 3, + Macros = 4, + Macros2 = 5, + UILayout = 6, + ChatSettings = 7, + TtsSettings = 8, + TtsSettings2 = 9, + FlaggedIDs = 10, + FlaggedIDs2 = 11, + ClickBindings = 12, + UIEditModeAccount = 13, + UIEditModeChar = 14, + FrontendChatSettings = 15, + CharacterListOrder = 16 + } + enum AccountDataUpdateStatus { + AccountDataUpdateSuccess = 0, + AccountDataUpdateFailed = 1, + AccountDataUpdateCorrupt = 2, + AccountDataUpdateToobig = 3 + } + enum AccountExportResult { + Success = 0, + UnknownError = 1, + Cancelled = 2, + ShuttingDown = 3, + TimedOut = 4, + NoAccountFound = 5, + RequestedInvalidCharacter = 6, + RpcError = 7, + FileInvalid = 8, + FileWriteFailed = 9, + Unavailable = 10, + AlreadyInProgress = 11, + FailedToLockAccount = 12, + FailedToGenerateFile = 13 + } + enum AccountTransType { + ProxyForwarder = 0, + Purchase = 1, + Distribution = 2, + Battlepet = 3, + Achievements = 4, + Criteria = 5, + Mounts = 6, + Characters = 7, + Purchases = 8, + ArchivedPurchases = 9, + Distributions = 10, + CurrencyCaps = 11, + QuestLog = 12, + CriteriaNotif = 13, + Settings = 14, + FixedLicense = 15, + AddLicense = 16, + ItemCollections = 17, + AuctionableToken = 18, + ConsumableToken = 19, + VasTransaction = 20, + Productitem = 21, + TrialBoostHistory = 22, + TrialBoostHistories = 23, + QuestCriteria = 24, + BattlenetAccount = 25, + AccountCurrencies = 26, + RafRecruiterAcceptances = 27, + RafFriendMonth = 28, + RafReward = 29, + DynamicCriteria = 30, + RafActivity = 31, + CreateOrderInfo = 32, + ProxyHonorInitialConversion = 33, + ProxyCreateAccountHonor = 34, + ProxyValidateAccountHonor = 35, + ProxyGmSetHonor = 36, + ProxyGenerateBpayID = 37, + AccountNotifications = 38, + PerkItemHold = 39, + PerkPendingRewards = 40, + PerkRecentPurchases = 41, + PerkPastRewards = 42, + PerkTransaction = 43, + OutstandingRpc = 44, + LoadWowlabs = 45, + UpgradeAccount = 46, + GetOrderStatusByPurchaseID = 47, + Items = 48, + BankTab = 49, + Factions = 50, + BitVectors = 51, + CombinedQuestLog = 52, + PlayerDataElements = 53 + } + enum BnetAccountFlag { + None = 0, + BattlePetTrainer = 1, + RafVeteranNotified = 2, + TwitterLinked = 4, + TwitterHasTempSecret = 8, + Employee = 16, + EmployeeFlagIsManual = 32, + AccountQuestBitFixUp = 64, + AchievementsToBi = 128, + InvalidTransmogsFixUp = 256, + InvalidTransmogsFixUp2 = 512, + GdprErased = 1024, + DarkRealmLightCopy = 2048, + QuestLogFlagsFixUp = 4096, + WasSecured = 8192, + LockedForExport = 16384, + CanBuyAhGameTimeTokens = 32768, + PetAchievementFixUp = 65536, + IsLegacy = 131072, + CataLegendaryMountChecked = 262144, + CataLegendaryMountObtained = 524288 + } + enum DisableAccountProfilesFlags { + None = 0, + Document = 1, + SharedCollections = 2, + MountsCollections = 4, + PetsCollections = 8, + ItemsCollections = 16 + } + enum AddOnEnableState { + None = 0, + Some = 1, + All = 2 + } + enum AnimaDiversionNodeState { + Unavailable = 0, + Available = 1, + SelectedTemporary = 2, + SelectedPermanent = 3, + Cooldown = 4 + } + enum ArrowCalloutDirection { + Up = 0, + Down = 1, + Left = 2, + Right = 3 + } + enum ArrowCalloutType { + None = 0, + Generic = 1, + WorldLootObject = 2, + Tutorial = 3, + WidgetContainerNoBorder = 4 + } + enum AuctionHouseFilterCategory { + Uncategorized = 0, + Equipment = 1, + Rarity = 2 + } + enum AuctionStatus { + Active = 0, + Sold = 1 + } + enum ItemCommodityStatus { + Unknown = 0, + Item = 1, + Commodity = 2 + } + enum AuctionHouseCommoditySortOrder { + UnitPrice = 0, + Quantity = 1 + } + enum AuctionHouseError { + NotEnoughMoney = 0, + HigherBid = 1, + BidIncrement = 2, + BidOwn = 3, + ItemNotFound = 4, + RestrictedAccountTrial = 5, + HasRestriction = 6, + IsBusy = 7, + Unavailable = 8, + ItemHasQuote = 9, + DatabaseError = 10, + MinBid = 11, + NotEnoughItems = 12, + RepairItem = 13, + UsedCharges = 14, + QuestItem = 15, + BoundItem = 16, + ConjuredItem = 17, + LimitedDurationItem = 18, + IsBag = 19, + EquippedBag = 20, + WrappedItem = 21, + LootItem = 22, + DoubleBid = 23, + FavoritesMaxed = 24, + ItemNotAvailable = 25, + ItemBoundToAccountUntilEquip = 26 + } + enum AuctionHouseExtraColumn { + None = 0, + Ilvl = 1, + Slots = 2, + Level = 3, + Skill = 4 + } + enum AuctionHouseFilter { + None = 0, + UncollectedOnly = 1, + UsableOnly = 2, + CurrentExpansionOnly = 3, + UpgradesOnly = 4, + ExactMatch = 5, + PoorQuality = 6, + CommonQuality = 7, + UncommonQuality = 8, + RareQuality = 9, + EpicQuality = 10, + LegendaryQuality = 11, + ArtifactQuality = 12, + LegendaryCraftedItemOnly = 13 + } + enum AuctionHouseItemSortOrder { + Bid = 0, + Buyout = 1 + } + enum AuctionHouseNotification { + BidPlaced = 0, + AuctionRemoved = 1, + AuctionWon = 2, + AuctionOutbid = 3, + AuctionSold = 4, + AuctionExpired = 5 + } + enum AuctionHouseSortOrder { + Price = 0, + Name = 1, + Level = 2, + Bid = 3, + Buyout = 4, + TimeRemaining = 5 + } + enum AuctionHouseTimeLeftBand { + Short = 0, + Medium = 1, + Long = 2, + VeryLong = 3 + } + enum AzeriteEssenceSlot { + MainSlot = 0, + PassiveOneSlot = 1, + PassiveTwoSlot = 2, + PassiveThreeSlot = 3 + } + enum AzeritePowerLevel { + Base = 0, + Upgraded = 1, + Downgraded = 2 + } + enum BagFlag { + DontFindStack = 1, + AlreadyOwner = 2, + AlreadyBound = 4, + Swap = 8, + BagIsEmpty = 16, + LookInInventory = 32, + IgnoreBoundItemCheck = 64, + StackOnly = 128, + RecurseQuivers = 256, + IgnoreBankcheck = 512, + AllowBagsInNonBagSlots = 1024, + PreferQuivers = 2048, + SwapBags = 4096, + IgnoreExisting = 8192, + AllowPartialStack = 16384, + LookInBankOnly = 32768, + AllowBuyback = 65536, + IgnorePetBankcheck = 131072, + PreferPriorityBags = 262144, + PreferNeutralPriorityBags = 524288, + LookInReagentsBankOnly = 1048576, + AsymmetricSwap = 2097152, + PreferReagentBags = 4194304, + IgnoreSoulbound = 8388608, + IgnoreReagentBags = 16777216, + LookInAccountBankOnly = 33554432, + HasRefund = 67108864, + SkipValidCountCheck = 134217728 + } + enum BagSlotFlags { + DisableAutoSort = 1, + ClassEquipment = 2, + ClassConsumables = 4, + ClassProfessionGoods = 8, + ClassJunk = 16, + ClassQuestItems = 32, + ExcludeJunkSell = 64, + ClassReagents = 128, + ExpansionCurrent = 256, + ExpansionLegacy = 512 + } + enum BagIndex { + Accountbanktab = -5, + Bankbag = -4, + Reagentbank = -3, + Keyring = -2, + Bank = -1, + Backpack = 0, + Bag_1 = 1, + Bag_2 = 2, + Bag_3 = 3, + Bag_4 = 4, + ReagentBag = 5, + BankBag_1 = 6, + BankBag_2 = 7, + BankBag_3 = 8, + BankBag_4 = 9, + BankBag_5 = 10, + BankBag_6 = 11, + BankBag_7 = 12, + AccountBankTab_1 = 13, + AccountBankTab_2 = 14, + AccountBankTab_3 = 15, + AccountBankTab_4 = 16, + AccountBankTab_5 = 17 + } + enum BattlePetAbilityFlag { + DisplayAsHostileDebuff = 1, + HideStrongWeakHints = 2, + Passive = 4, + ServerOnlyAura = 8, + ShowCast = 16, + StartOnCooldown = 32 + } + enum BattlePetAbilitySlot { + A = 0, + B = 1, + C = 2 + } + enum BattlePetAbilityTargets { + EnemyFrontPet = 0, + FriendlyFrontPet = 1, + Weather = 2, + EnemyPad = 3, + FriendlyPad = 4, + EnemyBackPet_1 = 5, + EnemyBackPet_2 = 6, + FriendlyBackPet_1 = 7, + FriendlyBackPet_2 = 8, + Caster = 9, + Owner = 10, + Specific = 11, + ProcTarget = 12 + } + enum BattlePetAbilityTurnFlag { + CanProcFromProc = 1, + TriggerBySelf = 2, + TriggerByFriend = 4, + TriggerByEnemy = 8, + TriggerByWeather = 16, + TriggerByAuraCaster = 32 + } + enum BattlePetAbilityTurnType { + Normal = 0, + TriggeredEffect = 1 + } + enum BattlePetAbilityType { + Ability = 0, + Aura = 1 + } + enum BattlePetAction { + None = 0, + Ability = 1, + SwitchPet = 2, + Trap = 3, + Skip = 4 + } + enum BattlePetBreedQuality { + Poor = 0, + Common = 1, + Uncommon = 2, + Rare = 3, + Epic = 4, + Legendary = 5 + } + enum BattlePetEffectFlags { + EnableAbilityPicker = 1, + LuaNeedsAllPets = 2 + } + enum BattlePetEffectParamType { + Int = 0, + Ability = 1 + } + enum BattlePetEvent { + OnAuraApplied = 0, + OnDamageTaken = 1, + OnDamageDealt = 2, + OnHealTaken = 3, + OnHealDealt = 4, + OnAuraRemoved = 5, + OnRoundStart = 6, + OnRoundEnd = 7, + OnTurn = 8, + OnAbility = 9, + OnSwapIn = 10, + OnSwapOut = 11, + PostAuraTicks = 12 + } + enum BattlePetNpcEmote { + BattleUnused = 0, + BattleStart = 1, + BattleWin = 2, + BattleLose = 3, + PetSwap = 4, + PetKill = 5, + PetDie = 6, + PetAbility = 7 + } + enum BattlePetNpcTeamFlag { + MatchPlayerHighPetLevel = 1, + NoPlayerXP = 2 + } + enum BattlePetOwner { + Weather = 0, + Ally = 1, + Enemy = 2 + } + enum BattlePetSources { + Drop = 0, + Quest = 1, + Vendor = 2, + Profession = 3, + WildPet = 4, + Achievement = 5, + WorldEvent = 6, + Promotion = 7, + Tcg = 8, + PetStore = 9, + Discovery = 10, + TradingPost = 11 + } + enum BattlePetSpeciesFlags { + NoRename = 1, + WellKnown = 2, + NotAcccountwide = 4, + Capturable = 8, + NotTradable = 16, + HideFromJournal = 32, + LegacyAccountUnique = 64, + CantBattle = 128, + HordeOnly = 256, + AllianceOnly = 512, + Boss = 1024, + RandomDisplay = 2048, + NoLicenseRequired = 4096, + AddsAllowedWithBoss = 8192, + HideUntilLearned = 16384, + MatchPlayerHighPetLevel = 32768, + NoWildPetAddsAllowed = 65536 + } + enum BattlePetStateFlag { + None = 0, + SwapOutLock = 1, + TurnLock = 2, + SpeedBonus = 4, + Client = 8, + MaxHealthBonus = 16, + Stamina = 32, + QualityDoesNotEffect = 64, + DynamicScaling = 128, + Power = 256, + SpeedMult = 512, + SwapInLock = 1024, + ServerOnly = 2048 + } + enum BattlePetTypes { + Humanoid = 0, + Dragonkin = 1, + Flying = 2, + Undead = 3, + Critter = 4, + Magic = 5, + Elemental = 6, + Beast = 7, + Aquatic = 8, + Mechanical = 9 + } + enum BattlePetVisualFlag { + Test1 = 1, + Test2 = 2, + Test3 = 4 + } + enum BattlePetVisualRange { + Melee = 0, + Ranged = 1, + InPlace = 2, + PointBlank = 3, + BehindMelee = 4, + BehindRanged = 5 + } + enum BattlepetDbFlags { + None = 0, + Favorite = 1, + Converted = 2, + Revoked = 4, + LockedForConvert = 8, + Ability0Selection = 16, + Ability1Selection = 32, + Ability2Selection = 64, + FanfareNeeded = 128, + DisplayOverridden = 256, + AcquiredViaLicense = 512, + TradingPost = 1024, + LockMask = 12 + } + enum BattlepetDeletedReason { + Unknown = 0, + PlayerReleased = 1, + PlayerCaged = 2, + Gm = 3, + CageError = 4, + DelJournal = 5, + TradingPost = 6 + } + enum BattlepetSlotLockCheat { + Cheat_2_Locked = -3, + Cheat_1_Locked = -2, + Cheat_0_Locked = -1, + CheatOff = 0, + UnlockAll = 1 + } + enum CalendarCommandType { + Create = 0, + Invite = 1, + Rsvp = 2, + RemoveInvite = 3, + RemoveEvent = 4, + Status = 5, + ModeratorStatus = 6, + GetCalendar = 7, + GetEvent = 8, + UpdateEvent = 9, + Complain = 10, + Notes = 11 + } + enum CalendarErrorType { + Success = 0, + CommunityEventsExceeded = 1, + EventsExceeded = 2, + SelfInvitesExceeded = 3, + OtherInvitesExceeded = 4, + NoPermission = 5, + EventInvalid = 6, + NotInvited = 7, + UnknownError = 8, + NotInGuild = 9, + NotInCommunity = 10, + TargetAlreadyInvited = 11, + NameNotFound = 12, + WrongFaction = 13, + Ignored = 14, + InvitesExceeded = 15, + InvalidMaxSize = 16, + InvalidDate = 17, + InvalidTime = 18, + NoInvites = 19, + NeedsTitle = 20, + EventPassed = 21, + EventLocked = 22, + DeleteCreatorFailed = 23, + DataAlreadySet = 24, + CalendarDisabled = 25, + RestrictedAccount = 26, + ArenaEventsExceeded = 27, + RestrictedLevel = 28, + Squelched = 29, + NoInvite = 30, + ComplaintDisabled = 31, + ComplaintSelf = 32, + ComplaintSameGuild = 33, + ComplaintGm = 34, + ComplaintLimit = 35, + ComplaintNotFound = 36, + EventWrongServer = 37, + NoCommunityInvites = 38, + InvalidSignup = 39, + NoModerator = 40, + ModeratorRestricted = 41, + InvalidNotes = 42, + InvalidTitle = 43, + InvalidDescription = 44, + InvalidClub = 45, + CreatorNotFound = 46, + EventThrottled = 47, + InviteThrottled = 48, + Internal = 49, + ComplaintAdded = 50 + } + enum CalendarEventBits { + Player = 1, + GuildDeprecated = 2, + System = 4, + Holiday = 8, + Locked = 16, + AutoApprove = 32, + CommunityAnnouncement = 64, + RaidLockout = 128, + ArenaDeprecated = 256, + RaidResetDeprecated = 512, + CommunitySignup = 1024, + GuildSignup = 2048, + CommunityWide = 3136, + PlayerCreated = 3395, + CantComplain = 3788 + } + enum CalendarEventRepeatOptions { + Never = 0, + Weekly = 1, + Biweekly = 2, + Monthly = 3 + } + enum CalendarEventType { + Raid = 0, + Dungeon = 1, + PvP = 2, + Meeting = 3, + Other = 4, + HeroicDeprecated = 5 + } + enum CalendarFilterFlags { + WeeklyHoliday = 1, + Darkmoon = 2, + Battleground = 4, + RaidLockout = 8, + RaidReset = 16 + } + enum CalendarGetEventType { + Get = 0, + Add = 1, + Copy = 2 + } + enum CalendarHolidayFilterType { + Weekly = 0, + Darkmoon = 1, + Battleground = 2 + } + enum CalendarInviteBits { + None = 0, + PendingInvite = 1, + Moderator = 2, + Creator = 4, + Signup = 8 + } + enum CalendarInviteSortType { + Name = 0, + Level = 1, + Class = 2, + Status = 3, + Party = 4, + Notes = 5 + } + enum CalendarInviteType { + Normal = 0, + Signup = 1 + } + enum CalendarModeratorStatus { + None = 0, + Moderator = 1, + Creator = 2 + } + enum CalendarStatus { + Invited = 0, + Available = 1, + Declined = 2, + Confirmed = 3, + Out = 4, + Standby = 5, + Signedup = 6, + NotSignedup = 7, + Tentative = 8 + } + enum CalendarTexturesType { + Dungeons = 0, + Raid = 1 + } + enum CalendarType { + Player = 0, + Community = 1, + RaidLockout = 2, + RaidResetDeprecated = 3, + Holiday = 4, + HolidayWeekly = 5, + HolidayDarkmoon = 6, + HolidayBattleground = 7 + } + enum CalendarWebActionType { + Accept = 0, + Decline = 1, + Remove = 2, + ReportSpam = 3, + Signup = 4, + Tentative = 5, + TentativeSignup = 6 + } + enum HolidayCalendarFlags { + Alliance = 1, + Horde = 2 + } + enum HolidayFlags { + IsRegionwide = 1, + DontShowInCalendar = 2, + DontDisplayEnd = 4, + DontDisplayBanner = 8, + NotAvailableClientSide = 16, + DurationUseMinutes = 32, + BeginEventOnlyOnStageChange = 64 + } + enum CameraModeAspectRatio { + Default = 0, + LegacyLetterbox = 1, + HighDefinition_16_X_9 = 2, + Cinemascope_2_Dot_4_X_1 = 3 + } + enum CharCustomizationType { + Skin = 0, + Face = 1, + Hair = 2, + HairColor = 3, + FacialHair = 4, + CustomOptionTattoo = 5, + CustomOptionHorn = 6, + CustomOptionFacewear = 7, + CustomOptionTattooColor = 8, + Outfit = 9, + Facepaint = 10, + FacepaintColor = 11 + } + enum ChrCustomizationCategoryFlag { + UndressModel = 1, + Subcategory = 2 + } + enum ChrCustomizationOptionType { + Dropdown = 0, + Checkbox = 1, + Slider = 2 + } + enum ChrModelFeatureFlags { + Summons = 1, + Forms = 2, + Identity = 4, + DragonCompanions = 8, + Mounts = 16, + HunterPets = 32 + } + enum CustomizationScope { + Player = 0, + DragonCompanion = 1 + } + enum WarbandEventState { + None = 0, + DelayingEvent = 1, + SheathingWeapon = 2, + DelayingStandStateTransition = 3, + StandStateTransitioning = 4, + ShowingWeapon = 5, + StandStateLooping = 6, + NumWarbandEventStates = 7 + } + enum WarbandGroupFlags { + None = 0, + Collapsed = 1 + } + enum WarbandSceneAnimationEvent { + StartingPose = 0, + Idle = 1, + Mouseover = 2, + Select = 3, + Deselect = 4, + Insert = 5, + EnterWorld = 6, + Spin = 7, + Poke = 8 + } + enum WarbandSceneAnimationSheatheState { + Maintain = 0, + SheatheWeapons = 1, + ShowWeapons = 2 + } + enum WarbandSceneAnimationStandState { + Maintain = 0, + Stand = 1, + SitOnGround = 2, + Kneel = 3, + ReadyStance = 4, + Sleep = 5 + } + enum WarbandSceneSlotType { + Character = 0, + Pet = 1 + } + enum ChatChannelRuleset { + None = 0, + Mentor = 1, + Disabled = 2, + ChromieTimeCataclysm = 3, + ChromieTimeBuringCrusade = 4, + ChromieTimeWrath = 5, + ChromieTimeMists = 6, + ChromieTimeWoD = 7, + ChromieTimeLegion = 8 + } + enum ChatChannelType { + None = 0, + Custom = 1, + PrivateParty = 2, + PublicParty = 3, + Communities = 4 + } + enum ChatToxityFilterOptOut { + FilterAll = 0, + ExcludeFilterFriend = 1, + ExcludeFilterGuild = 2, + ExcludeFilterAll = 4294967295 + } + enum ChatWhisperTargetStatus { + CanWhisper = 0, + CanWhisperGuild = 1, + Offline = 2, + WrongFaction = 3 + } + enum ExcludedCensorSources { + None = 0, + Friends = 1, + Guild = 2, + Reserve1 = 4, + Reserve2 = 8, + Reserve3 = 16, + Reserve4 = 32, + Reserve5 = 64, + Reserve6 = 128, + All = 255 + } + enum LanguageFlag { + IsExotic = 1, + HiddenFromPlayer = 2, + HideLanguageNameInChat = 4 + } + enum PermanentChatChannelType { + None = 0, + Zone = 1, + Communities = 2, + Custom = 3 + } + enum TtsBoolSetting { + PlaySoundSeparatingChatLineBreaks = 0, + AddCharacterNameToSpeech = 1, + PlayActivitySoundWhenNotFocused = 2, + AlternateSystemVoice = 3, + NarrateMyMessages = 4 + } + enum TtsVoiceType { + Standard = 0, + Alternate = 1 + } + enum RegisterAddonMessagePrefixResult { + Success = 0, + DuplicatePrefix = 1, + InvalidPrefix = 2, + MaxPrefixes = 3 + } + enum SendAddonMessageResult { + Success = 0, + InvalidPrefix = 1, + InvalidMessage = 2, + AddonMessageThrottle = 3, + InvalidChatType = 4, + NotInGroup = 5, + TargetRequired = 6, + InvalidChannel = 7, + ChannelThrottle = 8, + GeneralError = 9 + } + enum CinematicType { + GlueMovie = 0, + GameMovie = 1, + GameClientScene = 2, + GameCinematicSequence = 3 + } + enum LoadConfigResult { + Error = 0, + NoChangesNecessary = 1, + LoadInProgress = 2, + Ready = 3 + } + enum ClickBindingInteraction { + Target = 1, + OpenContextMenu = 2 + } + enum ClickBindingType { + None = 0, + Spell = 1, + Macro = 2, + Interaction = 3, + PetAction = 4 + } + enum ClientSceneType { + DefaultSceneType = 0, + MinigameSceneType = 1 + } + enum ClientSettingsConfigFlag { + ClientSettingsConfigDebug = 1, + ClientSettingsConfigInternal = 2, + ClientSettingsConfigPerf = 4, + ClientSettingsConfigGm = 8, + ClientSettingsConfigTest = 16, + ClientSettingsConfigTestRetail = 32, + ClientSettingsConfigBeta = 64, + ClientSettingsConfigBetaRetail = 128, + ClientSettingsConfigRetail = 256 + } + enum ClubActionType { + ErrorClubActionSubscribe = 0, + ErrorClubActionCreate = 1, + ErrorClubActionEdit = 2, + ErrorClubActionDestroy = 3, + ErrorClubActionLeave = 4, + ErrorClubActionCreateTicket = 5, + ErrorClubActionDestroyTicket = 6, + ErrorClubActionRedeemTicket = 7, + ErrorClubActionGetTicket = 8, + ErrorClubActionGetTickets = 9, + ErrorClubActionGetBans = 10, + ErrorClubActionGetInvitations = 11, + ErrorClubActionRevokeInvitation = 12, + ErrorClubActionAcceptInvitation = 13, + ErrorClubActionDeclineInvitation = 14, + ErrorClubActionCreateStream = 15, + ErrorClubActionEditStream = 16, + ErrorClubActionDestroyStream = 17, + ErrorClubActionInviteMember = 18, + ErrorClubActionEditMember = 19, + ErrorClubActionEditMemberNote = 20, + ErrorClubActionKickMember = 21, + ErrorClubActionAddBan = 22, + ErrorClubActionRemoveBan = 23, + ErrorClubActionCreateMessage = 24, + ErrorClubActionEditMessage = 25, + ErrorClubActionDestroyMessage = 26 + } + enum ClubErrorType { + ErrorCommunitiesNone = 0, + ErrorCommunitiesUnknown = 1, + ErrorCommunitiesNeutralFaction = 2, + ErrorCommunitiesUnknownRealm = 3, + ErrorCommunitiesBadTarget = 4, + ErrorCommunitiesWrongFaction = 5, + ErrorCommunitiesRestricted = 6, + ErrorCommunitiesIgnored = 7, + ErrorCommunitiesGuild = 8, + ErrorCommunitiesWrongRegion = 9, + ErrorCommunitiesUnknownTicket = 10, + ErrorCommunitiesMissingShortName = 11, + ErrorCommunitiesProfanity = 12, + ErrorCommunitiesTrial = 13, + ErrorCommunitiesVeteranTrial = 14, + ErrorCommunitiesChatMute = 15, + ErrorClubFull = 16, + ErrorClubNoClub = 17, + ErrorClubNotMember = 18, + ErrorClubAlreadyMember = 19, + ErrorClubNoSuchMember = 20, + ErrorClubNoSuchInvitation = 21, + ErrorClubInvitationAlreadyExists = 22, + ErrorClubInvalidRoleID = 23, + ErrorClubInsufficientPrivileges = 24, + ErrorClubTooManyClubsJoined = 25, + ErrorClubVoiceFull = 26, + ErrorClubStreamNoStream = 27, + ErrorClubStreamInvalidName = 28, + ErrorClubStreamCountAtMin = 29, + ErrorClubStreamCountAtMax = 30, + ErrorClubMemberHasRequiredRole = 31, + ErrorClubSentInvitationCountAtMax = 32, + ErrorClubReceivedInvitationCountAtMax = 33, + ErrorClubTargetIsBanned = 34, + ErrorClubBanAlreadyExists = 35, + ErrorClubBanCountAtMax = 36, + ErrorClubTicketCountAtMax = 37, + ErrorClubTicketNoSuchTicket = 38, + ErrorClubTicketHasConsumedAllowedRedeemCount = 39, + ErrorClubDoesntAllowCrossFaction = 40, + ErrorClubEditHasCrossFactionMembers = 41 + } + enum ClubFieldType { + ClubName = 0, + ClubShortName = 1, + ClubDescription = 2, + ClubBroadcast = 3, + ClubStreamName = 4, + ClubStreamSubject = 5, + NumTypes = 6 + } + enum ClubInvitationCandidateStatus { + Available = 0, + InvitePending = 1, + AlreadyMember = 2 + } + enum ClubMemberPresence { + Unknown = 0, + Online = 1, + OnlineMobile = 2, + Offline = 3, + Away = 4, + Busy = 5 + } + enum ClubRemovedReason { + None = 0, + Banned = 1, + Removed = 2, + ClubDestroyed = 3 + } + enum ClubRestrictionReason { + None = 0, + Unavailable = 1 + } + enum ClubStreamNotificationFilter { + None = 0, + Mention = 1, + All = 2 + } + enum ClubStreamType { + General = 0, + Guild = 1, + Officer = 2, + Other = 3 + } + enum ClubType { + BattleNet = 0, + Character = 1, + Guild = 2, + Other = 3 + } + enum ClubFinderApplicationUpdateType { + None = 0, + AcceptInvite = 1, + DeclineInvite = 2, + Cancel = 3 + } + enum ClubFinderClubPostingStatusFlags { + None = 0, + NeedsCacheUpdate = 1, + ForceDescriptionChange = 2, + ForceNameChange = 3, + UnderReview = 4, + Banned = 5, + FakePost = 6, + PendingDelete = 7, + PostDelisted = 8 + } + enum ClubFinderDisableReason { + Muted = 0, + Silenced = 1, + VeteranTrial = 2 + } + enum ClubFinderPostingReportType { + PostersName = 0, + ClubName = 1, + PostingDescription = 2, + ApplicantsName = 3, + JoinNote = 4 + } + enum ClubFinderRequestType { + None = 0, + Guild = 1, + Community = 2, + All = 3 + } + enum ClubFinderSettingFlags { + None = 0, + Dungeons = 1, + Raids = 2, + PvP = 3, + RP = 4, + Social = 5, + Small = 6, + Medium = 7, + Large = 8, + Tank = 9, + Healer = 10, + Damage = 11, + EnableListing = 12, + MaxLevelOnly = 13, + AutoAccept = 14, + FactionHorde = 15, + FactionAlliance = 16, + FactionNeutral = 17, + SortRelevance = 18, + SortMemberCount = 19, + SortNewest = 20, + LanguageReserved1 = 21, + LanguageReserved2 = 22, + LanguageReserved3 = 23, + LanguageReserved4 = 24, + LanguageReserved5 = 25 + } + enum PlayerClubRequestStatus { + None = 0, + Pending = 1, + AutoApproved = 2, + Declined = 3, + Approved = 4, + Joined = 5, + JoinedAnother = 6, + Canceled = 7 + } + enum ClubRoleIdentifier { + Owner = 1, + Leader = 2, + Moderator = 3, + Member = 4 + } + enum TrackedSpellCategory { + None = 0, + Offensive = 1, + Defensive = 2, + Debuff = 3, + RacialAbility = 4 + } + enum ConfigurationWarning { + ShaderModelWillBeOutdated = 0, + ShaderModelIsOutdated = 1, + ConsoleDeviceSseOutdated = 2, + DriverBlocklisted = 3, + DriverOutOfDate = 4, + DeviceBlocklisted = 5, + GraphicsApiWillBeOutdated = 6, + OsBitsWillBeOutdated = 7 + } + enum ConsoleCategory { + Debug = 0, + Graphics = 1, + Console = 2, + Combat = 3, + Game = 4, + Default = 5, + Net = 6, + Sound = 7, + Gm = 8, + Reveal = 9, + None = 10 + } + enum ConsoleColorType { + DefaultColor = 0, + InputColor = 1, + EchoColor = 2, + ErrorColor = 3, + WarningColor = 4, + GlobalColor = 5, + AdminColor = 6, + HighlightColor = 7, + BackgroundColor = 8, + ClickbufferColor = 9, + PrivateColor = 10, + DefaultGreen = 11 + } + enum ConsoleCommandType { + Cvar = 0, + Command = 1, + Macro = 2, + Script = 3 + } + enum ContentTrackingError { + Untrackable = 0, + MaxTracked = 1, + AlreadyTracked = 2 + } + enum ContentTrackingResult { + Success = 0, + DataPending = 1, + Failure = 2 + } + enum ContentTrackingStopType { + Invalidated = 0, + Collected = 1, + Manual = 2 + } + enum ContentTrackingTargetType { + JournalEncounter = 0, + Vendor = 1, + Achievement = 2, + Profession = 3, + Quest = 4 + } + enum ContentTrackingType { + Appearance = 0, + Mount = 1, + Achievement = 2 + } + enum ContributionAppearanceFlags { + TooltipUseTimeRemaining = 0 + } + enum ContributionResult { + Success = 0, + MustBeNearNpc = 1, + IncorrectState = 2, + InvalidID = 3, + QuestDataMissing = 4, + FailedConditionCheck = 5, + UnableToCompleteTurnIn = 6, + InternalError = 7 + } + enum CallingStates { + QuestOffer = 0, + QuestActive = 1, + QuestCompleted = 2 + } + enum CovenantAbilityType { + Class = 0, + Signature = 1, + Soulbind = 2 + } + enum CraftingOrderCustomerCategoryType { + Primary = 0, + Secondary = 1, + Tertiary = 2 + } + enum CraftingOrderReagentsType { + All = 0, + Some = 1, + None = 2 + } + enum AccountCurrencyTransferResult { + Success = 0, + InvalidCharacter = 1, + CharacterLoggedIn = 2, + InsufficientCurrency = 3, + MaxQuantity = 4, + InvalidCurrency = 5, + NoValidSourceCharacter = 6, + ServerError = 7, + CannotUseCurrency = 8 + } + enum CurrencyFlags { + CurrencyTradable = 1, + CurrencyAppearsInLootWindow = 2, + CurrencyComputedWeeklyMaximum = 4, + Currency_100_Scaler = 8, + CurrencyNoLowLevelDrop = 16, + CurrencyIgnoreMaxQtyOnLoad = 32, + CurrencyLogOnWorldChange = 64, + CurrencyTrackQuantity = 128, + CurrencyResetTrackedQuantity = 256, + CurrencyUpdateVersionIgnoreMax = 512, + CurrencySuppressChatMessageOnVersionChange = 1024, + CurrencySingleDropInLoot = 2048, + CurrencyHasWeeklyCatchup = 4096, + CurrencyDoNotCompressChat = 8192, + CurrencyDoNotLogAcquisitionToBi = 16384, + CurrencyNoRaidDrop = 32768, + CurrencyNotPersistent = 65536, + CurrencyDeprecated = 131072, + CurrencyDynamicMaximum = 262144, + CurrencySuppressChatMessages = 524288, + CurrencyDoNotToast = 1048576, + CurrencyDestroyExtraOnLoot = 2097152, + CurrencyDontShowTotalInTooltip = 4194304, + CurrencyDontCoalesceInLootWindow = 8388608, + CurrencyAccountWide = 16777216, + CurrencyAllowOverflowMailer = 33554432, + CurrencyHideAsReward = 67108864, + CurrencyHasWarmodeBonus = 134217728, + CurrencyIsAllianceOnly = 268435456, + CurrencyIsHordeOnly = 536870912, + CurrencyLimitWarmodeBonusOncePerTooltip = 1073741824, + DeprecatedCurrencyFlag = 2147483648 + } + enum CurrencyFlagsB { + CurrencyBUseTotalEarnedForEarned = 1, + CurrencyBShowQuestXPGainInTooltip = 2, + CurrencyBNoNotificationMailOnOfflineProgress = 4, + CurrencyBBattlenetVirtualCurrency = 8, + FutureCurrencyFlag = 16, + CurrencyBDontDisplayIfZero = 32, + CurrencyBScaleMaxQuantityBySeasonWeeks = 64, + CurrencyBScaleMaxQuantityByWeeksSinceStart = 128 + } + enum CurrencyGainFlags { + None = 0, + BonusAward = 1, + DroppedFromDeath = 2, + FromAccountServer = 4, + Autotracking = 8 + } + enum CurrencyTokenCategoryFlags { + FlagSortLast = 1, + FlagPlayerItemAssignment = 2, + Hidden = 4, + Virtual = 8, + StartsCollapsed = 16 + } + enum LinkedCurrencyFlags { + IgnoreAdd = 1, + IgnoreSubtract = 2, + SuppressChatLog = 4, + AddIgnoresMax = 8 + } + enum PlayerCurrencyFlags { + Incremented = 1, + Loading = 2 + } + enum PlayerCurrencyFlagsDbFlags { + IgnoreMaxQtyOnload = 1, + Reuse1 = 2, + InBackpack = 4, + UnusedInUI = 8, + Reuse2 = 16 + } + enum CurrencyDestroyReason { + Cheat = 0, + Spell = 1, + VersionUpdate = 2, + QuestTurnin = 3, + Vendor = 4, + Trade = 5, + Capped = 6, + Garrison = 7, + DroppedToCorpse = 8, + BonusRoll = 9, + FactionConversion = 10, + FulfillCraftingOrder = 11, + Script = 12, + ConcentrationCast = 13, + AccountTransfer = 14 + } + enum CurrencySource { + ConvertOldItem = 0, + ConvertOldPvPCurrency = 1, + ItemRefund = 2, + QuestReward = 3, + Cheat = 4, + Vendor = 5, + PvPKillCredit = 6, + PvPMetaCredit = 7, + PvPScriptedAward = 8, + Loot = 9, + UpdatingVersion = 10, + LFGReward = 11, + Trade = 12, + Spell = 13, + ItemDeletion = 14, + RatedBattleground = 15, + RandomBattleground = 16, + Arena = 17, + ExceededMaxQty = 18, + PvPCompletionBonus = 19, + Script = 20, + GuildBankWithdrawal = 21, + Pushloot = 22, + GarrisonBuilding = 23, + PvPDrop = 24, + GarrisonFollowerActivation = 25, + GarrisonBuildingRefund = 26, + GarrisonMissionReward = 27, + GarrisonResourceOverTime = 28, + QuestRewardIgnoreCapsDeprecated = 29, + GarrisonTalent = 30, + GarrisonWorldQuestBonus = 31, + PvPHonorReward = 32, + BonusRoll = 33, + AzeriteRespec = 34, + WorldQuestReward = 35, + WorldQuestRewardIgnoreCapsDeprecated = 36, + FactionConversion = 37, + DailyQuestReward = 38, + DailyQuestWarModeReward = 39, + WeeklyQuestReward = 40, + WeeklyQuestWarModeReward = 41, + AccountCopy = 42, + WeeklyRewardChest = 43, + GarrisonTalentTreeReset = 44, + DailyReset = 45, + AddConduitToCollection = 46, + Barbershop = 47, + ConvertItemsToCurrencyValue = 48, + PvPTeamContribution = 49, + Transmogrify = 50, + AuctionDeposit = 51, + PlayerTrait = 52, + PhBuffer_53 = 53, + PhBuffer_54 = 54, + RenownRepGain = 55, + CraftingOrder = 56, + CatalystBalancing = 57, + CatalystCraft = 58, + ProfessionInitialAward = 59, + PlayerTraitRefund = 60, + AccountHwmUpdate = 61, + ConvertItemsToCurrencyAndReputation = 62, + PhBuffer_63 = 63, + SpellSkipLinkedCurrency = 64, + AccountTransfer = 65 + } + enum CursorStyle { + Mouse = 0, + Crosshair = 1 + } + enum Cursormode { + NoCursor = 0, + PointCursor = 1, + CastCursor = 2, + BuyCursor = 3, + AttackCursor = 4, + InteractCursor = 5, + SpeakCursor = 6, + InspectCursor = 7, + PickupCursor = 8, + TaxiCursor = 9, + TrainerCursor = 10, + MineCursor = 11, + SkinCursor = 12, + GatherCursor = 13, + LockCursor = 14, + MailCursor = 15, + LootAllCursor = 16, + RepairCursor = 17, + RepairnpcCursor = 18, + ItemCursor = 19, + SkinHordeCursor = 20, + SkinAllianceCursor = 21, + InnkeeperCursor = 22, + CampaignQuestCursor = 23, + CampaignQuestTurninCursor = 24, + QuestCursor = 25, + QuestRepeatableCursor = 26, + QuestTurninCursor = 27, + QuestLegendaryCursor = 28, + QuestLegendaryTurninCursor = 29, + QuestImportantCursor = 30, + QuestImportantTurninCursor = 31, + QuestMetaCursor = 32, + QuestMetaTurninCursor = 33, + QuestRecurringCursor = 34, + QuestRecurringTurninCursor = 35, + VehicleCursor = 36, + MapPinCursor = 37, + PingCursor = 38, + EnchantCursor = 39, + UIMoveCursor = 40, + UIResizeCursor = 41, + PointErrorCursor = 42, + CastErrorCursor = 43, + BuyErrorCursor = 44, + AttackErrorCursor = 45, + InteractErrorCursor = 46, + SpeakErrorCursor = 47, + InspectErrorCursor = 48, + PickupErrorCursor = 49, + TaxiErrorCursor = 50, + TrainerErrorCursor = 51, + MineErrorCursor = 52, + SkinErrorCursor = 53, + GatherErrorCursor = 54, + LockErrorCursor = 55, + MailErrorCursor = 56, + LootAllErrorCursor = 57, + RepairErrorCursor = 58, + RepairnpcErrorCursor = 59, + ItemErrorCursor = 60, + SkinHordeErrorCursor = 61, + SkinAllianceErrorCursor = 62, + InnkeeperErrorCursor = 63, + CampaignQuestErrorCursor = 64, + CampaignQuestTurninErrorCursor = 65, + QuestErrorCursor = 66, + QuestRepeatableErrorCursor = 67, + QuestTurninErrorCursor = 68, + QuestLegendaryErrorCursor = 69, + QuestLegendaryTurninErrorCursor = 70, + QuestImportantErrorCursor = 71, + QuestImportantTurninErrorCursor = 72, + QuestMetaErrorCursor = 73, + QuestMetaTurninErrorCursor = 74, + QuestRecurringErrorCursor = 75, + QuestRecurringTurninErrorCursor = 76, + VehicleErrorCursor = 77, + MapPinErrorCursor = 78, + PingErrorCursor = 79, + EnchantErrorCursor = 80, + CustomCursor = 81 + } + enum UICursorType { + Default = 0, + Item = 1, + Money = 2, + Spell = 3, + PetAction = 4, + Merchant = 5, + ActionBar = 6, + Macro = 7, + AmmoObsolete = 8, + Pet = 9, + GuildBank = 10, + GuildBankMoney = 11, + EquipmentSet = 12, + Currency = 13, + Flyout = 14, + VoidItem = 15, + BattlePet = 16, + Mount = 17, + Toy = 18, + ConduitCollectionItem = 19, + PerksProgramVendorItem = 20 + } + enum WorldCursorAnchorType { + None = 0, + Default = 1, + Cursor = 2, + Nameplate = 3 + } + enum Causeofdeath { + None = 0, + PlayerPvP = 1, + PlayerDuel = 2, + Creature = 3, + Falling = 4, + Drowning = 5, + Fatigue = 6, + Slime = 7, + Lava = 8, + Fire = 9 + } + enum CauseofdeathFlags { + NoneNeeded = 0, + PlayerNameNeeded = 1, + CreatureNameNeeded = 2, + ZoneNameNeeded = 4 + } + enum Damageclass { + Physical = 0, + Holy = 1, + Fire = 2, + Nature = 3, + Frost = 4, + Shadow = 5, + Arcane = 6, + FirstResist = 2, + LastResist = 6, + MaskNone = 0, + MaskPhysical = 1, + MaskHoly = 2, + MaskFire = 4, + MaskNature = 8, + MaskFrost = 16, + MaskShadow = 32, + MaskArcane = 64, + AllPhysical = 1, + AllMagical = 126, + All = 127, + MaskFlamestrike = 5, + MaskFroststrike = 17, + MaskSpellstrike = 65, + MaskShadowstrike = 33, + MaskStormstrike = 9, + MaskHolystrike = 3, + MaskFrostfire = 20, + MaskSpellfire = 68, + MaskFirestorm = 12, + MaskShadowflame = 36, + MaskHolyfire = 6, + MaskSpellfrost = 80, + MaskFroststorm = 24, + MaskShadowfrost = 48, + MaskHolyfrost = 18, + MaskSpellstorm = 72, + MaskSpellshadow = 96, + MaskDivine = 66, + MaskShadowstorm = 40, + MaskHolystorm = 10, + MaskTwilight = 34, + MaskElemental = 28, + MaskChromatic = 62, + MaskMagical = 126, + MaskChaos = 124, + MaskCosmic = 106 + } + enum DamageclassType { + Physical = 0, + Magical = 1 + } + enum EnvironmentalDamageFlags { + OneTime = 1, + DmgIsPct = 2 + } + enum Environmentaldamagetype { + Fatigue = 0, + Drowning = 1, + Falling = 2, + Lava = 3, + Slime = 4, + Fire = 5 + } + enum TimeEventFlag { + GlueScreenShortcut = 1, + WeeklyReset = 2, + GlobalLaunch = 4 + } + enum SelfResurrectOptionType { + Spell = 0, + Item = 1 + } + enum CompanionConfigSlotTypes { + Role = 0, + Utility = 1, + Combat = 2 + } + enum CurioRarity { + Common = 1, + Uncommon = 2, + Rare = 3, + Epic = 4 + } + enum CompanionRoleType { + Dps = 0, + Heal = 1 + } + enum CurioType { + Combat = 0, + Utility = 1 + } + enum ActionBarOrientation { + Horizontal = 0, + Vertical = 1 + } + enum ActionBarVisibleSetting { + Always = 0, + InCombat = 1, + OutOfCombat = 2, + Hidden = 3 + } + enum AuraFrameIconDirection { + Down = 0, + Up = 1, + Left = 0, + Right = 1 + } + enum AuraFrameIconWrap { + Down = 0, + Up = 1, + Left = 0, + Right = 1 + } + enum AuraFrameOrientation { + Horizontal = 0, + Vertical = 1 + } + enum BagsDirection { + Left = 0, + Right = 1, + Up = 0, + Down = 1 + } + enum BagsOrientation { + Horizontal = 0, + Vertical = 1 + } + enum EditModeAccountSetting { + ShowGrid = 0, + GridSpacing = 1, + SettingsExpanded = 2, + ShowTargetAndFocus = 3, + ShowStanceBar = 4, + ShowPetActionBar = 5, + ShowPossessActionBar = 6, + ShowCastBar = 7, + ShowEncounterBar = 8, + ShowExtraAbilities = 9, + ShowBuffsAndDebuffs = 10, + DeprecatedShowDebuffFrame = 11, + ShowPartyFrames = 12, + ShowRaidFrames = 13, + ShowTalkingHeadFrame = 14, + ShowVehicleLeaveButton = 15, + ShowBossFrames = 16, + ShowArenaFrames = 17, + ShowLootFrame = 18, + ShowHudTooltip = 19, + ShowStatusTrackingBar2 = 20, + ShowDurabilityFrame = 21, + EnableSnap = 22, + EnableAdvancedOptions = 23, + ShowPetFrame = 24, + ShowTimerBars = 25, + ShowVehicleSeatIndicator = 26, + ShowArchaeologyBar = 27 + } + enum EditModeActionBarSetting { + Orientation = 0, + NumRows = 1, + NumIcons = 2, + IconSize = 3, + IconPadding = 4, + VisibleSetting = 5, + HideBarArt = 6, + DeprecatedSnapToSide = 7, + HideBarScrolling = 8, + AlwaysShowButtons = 9 + } + enum EditModeActionBarSystemIndices { + MainBar = 1, + Bar2 = 2, + Bar3 = 3, + RightBar1 = 4, + RightBar2 = 5, + ExtraBar1 = 6, + ExtraBar2 = 7, + ExtraBar3 = 8, + StanceBar = 11, + PetActionBar = 12, + PossessActionBar = 13 + } + enum EditModeArchaeologyBarSetting { + Size = 0 + } + enum EditModeAuraFrameSetting { + Orientation = 0, + IconWrap = 1, + IconDirection = 2, + IconLimitBuffFrame = 3, + IconLimitDebuffFrame = 4, + IconSize = 5, + IconPadding = 6, + DeprecatedShowFull = 7 + } + enum EditModeAuraFrameSystemIndices { + BuffFrame = 1, + DebuffFrame = 2 + } + enum EditModeBagsSetting { + Orientation = 0, + Direction = 1, + Size = 2 + } + enum EditModeCastBarSetting { + BarSize = 0, + LockToPlayerFrame = 1, + ShowCastTime = 2 + } + enum EditModeChatFrameSetting { + WidthHundreds = 0, + WidthTensAndOnes = 1, + HeightHundreds = 2, + HeightTensAndOnes = 3 + } + enum EditModeDurabilityFrameSetting { + Size = 0 + } + enum EditModeLayoutType { + Preset = 0, + Account = 1, + Character = 2, + Override = 3 + } + enum EditModeMicroMenuSetting { + Orientation = 0, + Order = 1, + Size = 2, + EyeSize = 3 + } + enum EditModeMinimapSetting { + HeaderUnderneath = 0, + RotateMinimap = 1, + Size = 2 + } + enum EditModeObjectiveTrackerSetting { + Height = 0, + Opacity = 1, + TextSize = 2 + } + enum EditModePresetLayouts { + Modern = 0, + Classic = 1 + } + enum EditModeSettingDisplayType { + Dropdown = 0, + Checkbox = 1, + Slider = 2 + } + enum EditModeStatusTrackingBarSetting { + Height = 0, + Width = 1, + TextSize = 2 + } + enum EditModeStatusTrackingBarSystemIndices { + StatusTrackingBar1 = 1, + StatusTrackingBar2 = 2 + } + enum EditModeSystem { + ActionBar = 0, + CastBar = 1, + Minimap = 2, + UnitFrame = 3, + EncounterBar = 4, + ExtraAbilities = 5, + AuraFrame = 6, + TalkingHeadFrame = 7, + ChatFrame = 8, + VehicleLeaveButton = 9, + LootFrame = 10, + HudTooltip = 11, + ObjectiveTracker = 12, + MicroMenu = 13, + Bags = 14, + StatusTrackingBar = 15, + DurabilityFrame = 16, + TimerBars = 17, + VehicleSeatIndicator = 18, + ArchaeologyBar = 19 + } + enum EditModeTimerBarsSetting { + Size = 0 + } + enum EditModeUnitFrameSetting { + HidePortrait = 0, + CastBarUnderneath = 1, + BuffsOnTop = 2, + UseLargerFrame = 3, + UseRaidStylePartyFrames = 4, + ShowPartyFrameBackground = 5, + UseHorizontalGroups = 6, + CastBarOnSide = 7, + ShowCastTime = 8, + ViewRaidSize = 9, + FrameWidth = 10, + FrameHeight = 11, + DisplayBorder = 12, + RaidGroupDisplayType = 13, + SortPlayersBy = 14, + RowSize = 15, + FrameSize = 16, + ViewArenaSize = 17 + } + enum EditModeUnitFrameSystemIndices { + Player = 1, + Target = 2, + Focus = 3, + Party = 4, + Raid = 5, + Boss = 6, + Arena = 7, + Pet = 8 + } + enum EditModeVehicleSeatIndicatorSetting { + Size = 0 + } + enum MicroMenuOrder { + Default = 0, + Reverse = 1 + } + enum MicroMenuOrientation { + Horizontal = 0, + Vertical = 1 + } + enum RaidGroupDisplayType { + SeparateGroupsVertical = 0, + SeparateGroupsHorizontal = 1, + CombineGroupsVertical = 2, + CombineGroupsHorizontal = 3 + } + enum SortPlayersBy { + Role = 0, + Group = 1, + Alphabetical = 2 + } + enum ViewArenaSize { + Two = 0, + Three = 1 + } + enum ViewRaidSize { + Ten = 0, + TwentyFive = 1, + Forty = 2 + } + enum JournalEncounterFlags { + Obsolete = 1, + LimitDifficulties = 2, + AllianceOnly = 4, + HordeOnly = 8, + NoMap = 16, + InternalOnly = 32, + DoNotDisplayEncounter = 64 + } + enum JournalEncounterIconFlags { + Tank = 1, + Dps = 2, + Healer = 4, + Heroic = 8, + Deadly = 16, + Important = 32, + Interruptible = 64, + Magic = 128, + Curse = 256, + Poison = 512, + Disease = 1024, + Enrage = 2048, + Mythic = 4096, + Bleed = 8192 + } + enum JournalEncounterItemFlags { + Obsolete = 1, + LimitDifficulties = 2, + DisplayAsPerPlayerLoot = 4, + DisplayAsVeryRare = 8, + DisplayAsExtremelyRare = 16 + } + enum JournalEncounterLocFlags { + Primary = 1 + } + enum JournalEncounterSecTypes { + Generic = 0, + Creature = 1, + Ability = 2, + Overview = 3 + } + enum JournalEncounterSectionFlags { + StartExpanded = 1, + LimitDifficulties = 2 + } + enum JournalInstanceFlags { + Timewalker = 1, + HideUserSelectableDifficulty = 2, + DoNotDisplayInstance = 4 + } + enum JournalLinkTypes { + Instance = 0, + Encounter = 1, + Section = 2, + Tier = 3 + } + enum ItemSlotFilterType { + Head = 0, + Neck = 1, + Shoulder = 2, + Cloak = 3, + Chest = 4, + Wrist = 5, + Hand = 6, + Waist = 7, + Legs = 8, + Feet = 9, + MainHand = 10, + OffHand = 11, + Finger = 12, + Trinket = 13, + Other = 14, + NoFilter = 15 + } + enum SubscriptionInterstitialResponseType { + Clicked = 0, + Closed = 1, + WebRedirect = 2 + } + enum SubscriptionInterstitialType { + Standard = 0, + LeftNpeArea = 1, + MaxLevel = 2 + } + enum ExpansionLandingPageType { + None = 0, + Dragonflight = 1, + WarWithin = 2 + } + enum ModelLightType { + Directional = 0, + Point = 1 + } + enum GarrisonFollowerType { + FollowerType_6_0_GarrisonFollower = 1, + FollowerType_6_0_Boat = 2, + FollowerType_7_0_GarrisonFollower = 4, + FollowerType_8_0_GarrisonFollower = 22, + FollowerType_9_0_GarrisonFollower = 123 + } + enum GarrisonType { + Type_6_0_Garrison = 2, + Type_7_0_Garrison = 3, + Type_8_0_Garrison = 9, + Type_9_0_Garrison = 111 + } + enum EventRealmQueues { + None = 0, + PlunderstormSolo = 1, + PlunderstormDuo = 2, + PlunderstormTrio = 4 + } + enum GameEnvironment { + WoW = 0, + WoWLabs = 1 + } + enum GamePadPowerLevel { + Critical = 0, + Low = 1, + Medium = 2, + High = 3, + Wired = 4, + Unknown = 5 + } + enum GameRuleFlags { + None = 0, + AllowClient = 1 + } + enum ContributionState { + None = 0, + Building = 1, + Active = 2, + UnderAttack = 3, + Destroyed = 4 + } + enum CovenantSkill { + Kyrian = 2730, + Venthyr = 2731, + NightFae = 2732, + Necrolord = 2733 + } + enum CovenantType { + None = 0, + Kyrian = 1, + Venthyr = 2, + NightFae = 3, + Necrolord = 4 + } + enum FollowerAbilityCastResult { + Success = 0, + Failure = 1, + NoPendingCast = 2, + InvalidTarget = 3, + InvalidFollowerSpell = 4, + RerollNotAllowed = 5, + SingleMissionDuration = 6, + MustTargetFollower = 7, + MustTargetTrait = 8, + InvalidFollowerType = 9, + MustBeUnique = 10, + CannotTargetLimitedUseFollower = 11, + MustTargetLimitedUseFollower = 12, + AlreadyAtMaxDurability = 13, + CannotTargetNonAutoMissionFollower = 14 + } + enum GarrAutoBoardIndex { + None = -1, + AllyLeftBack = 0, + AllyRightBack = 1, + AllyLeftFront = 2, + AllyCenterFront = 3, + AllyRightFront = 4, + EnemyLeftFront = 5, + EnemyCenterLeftFront = 6, + EnemyCenterRightFront = 7, + EnemyRightFront = 8, + EnemyLeftBack = 9, + EnemyCenterLeftBack = 10, + EnemyCenterRightBack = 11, + EnemyRightBack = 12 + } + enum GarrAutoCombatSpellTutorialFlag { + None = 0, + Single = 1, + Column = 2, + Row = 3, + All = 4 + } + enum GarrAutoCombatTutorial { + SelectMission = 1, + PlaceCompanion = 2, + HealCompanion = 4, + LevelHeal = 8, + BeneficialEffect = 16, + AttackSingle = 32, + AttackColumn = 64, + AttackRow = 128, + AttackAll = 256, + TroopTutorial = 512, + EnvironmentalEffect = 1024 + } + enum GarrAutoCombatantRole { + None = 0, + Melee = 1, + RangedPhysical = 2, + RangedMagic = 3, + HealSupport = 4, + Tank = 5 + } + enum GarrAutoEventFlags { + None = 0, + AutoAttack = 1, + Passive = 2, + Environment = 4 + } + enum GarrAutoMissionEventType { + MeleeDamage = 0, + RangeDamage = 1, + SpellMeleeDamage = 2, + SpellRangeDamage = 3, + Heal = 4, + PeriodicDamage = 5, + PeriodicHeal = 6, + ApplyAura = 7, + RemoveAura = 8, + Died = 9 + } + enum GarrAutoPreviewTargetType { + None = 0, + Damage = 1, + Heal = 2, + Buff = 4, + Debuff = 8 + } + enum GarrFollowerMissionCompleteState { + Alive = 0, + KilledByMissionFailure = 1, + SavedByPreventDeath = 2, + OutOfDurability = 3 + } + enum GarrFollowerQuality { + None = 0, + Common = 1, + Uncommon = 2, + Rare = 3, + Epic = 4, + Legendary = 5, + Title = 6 + } + enum GarrTalentCostType { + Initial = 0, + Respec = 1, + MakePermanent = 2, + TreeReset = 3 + } + enum GarrTalentFeatureSubtype { + Generic = 0, + Bastion = 1, + Revendreth = 2, + Ardenweald = 3, + Maldraxxus = 4 + } + enum GarrTalentFeatureType { + Generic = 0, + AnimaDiversion = 1, + TravelPortals = 2, + Adventures = 3, + ReservoirUpgrades = 4, + SanctumUnique = 5, + SoulBinds = 6, + AnimaDiversionMap = 7, + Cyphers = 8 + } + enum GarrTalentResearchCostSource { + Talent = 0, + Tree = 1 + } + enum GarrTalentSocketType { + None = 0, + Spell = 1, + Conduit = 2 + } + enum GarrTalentTreeType { + Tiers = 0, + Classic = 1 + } + enum GarrTalentType { + Standard = 0, + Minor = 1, + Major = 2, + Socket = 3 + } + enum GarrTalentUI { + Generic = 0, + CovenantSanctum = 1, + SoulBinds = 2, + AnimaDiversionMap = 3 + } + enum GarrisonTalentAvailability { + Available = 0, + Unavailable = 1, + UnavailableAnotherIsResearching = 2, + UnavailableNotEnoughResources = 3, + UnavailableNotEnoughGold = 4, + UnavailableTierUnavailable = 5, + UnavailablePlayerCondition = 6, + UnavailableAlreadyHave = 7, + UnavailableRequiresPrerequisiteTalent = 8 + } + enum GossipNpcOption { + None = 0, + Vendor = 1, + Taxinode = 2, + Trainer = 3, + SpiritHealer = 4, + Binder = 5, + Banker = 6, + PetitionVendor = 7, + GuildTabardVendor = 8, + Battlemaster = 9, + Auctioneer = 10, + TalentMaster = 11, + Stablemaster = 12, + PetSpecializationMaster = 13, + GuildBanker = 14, + Spellclick = 15, + DisableXPGain = 16, + EnableXPGain = 17, + Mailbox = 18, + WorldPvPQueue = 19, + LFGDungeon = 20, + ArtifactRespec = 21, + CemeterySelect = 22, + SpecializationMaster = 23, + GlyphMaster = 24, + QueueScenario = 25, + GarrisonArchitect = 26, + GarrisonMissionNpc = 27, + ShipmentCrafter = 28, + GarrisonTradeskillNpc = 29, + GarrisonRecruitment = 30, + AdventureMap = 31, + GarrisonTalent = 32, + ContributionCollector = 33, + Transmogrify = 34, + AzeriteRespec = 35, + IslandsMissionNpc = 36, + UIItemInteraction = 37, + WorldMap = 38, + Soulbind = 39, + ChromieTimeNpc = 40, + CovenantPreviewNpc = 41, + RuneforgeLegendaryCrafting = 42, + NewPlayerGuide = 43, + RuneforgeLegendaryUpgrade = 44, + CovenantRenownNpc = 45, + BlackMarketAuctionHouse = 46, + PerksProgramVendor = 47, + ProfessionsCraftingOrder = 48, + ProfessionsOpen = 49, + ProfessionsCustomerOrder = 50, + TraitSystem = 51, + BarbersChoice = 52, + MajorFactionRenown = 53, + PersonalTabardVendor = 54, + ForgeMaster = 55, + CharacterBanker = 56, + AccountBanker = 57 + } + enum GossipNpcOptionDisplayFlags { + ForceInteractionOnSingleChoice = 1 + } + enum GossipOptionRecFlags { + QuestLabelPrepend = 1, + HideOptionIDFromClient = 2 + } + enum GossipOptionRewardType { + Item = 0, + Currency = 1 + } + enum GossipOptionStatus { + Available = 0, + Unavailable = 1, + Locked = 2, + AlreadyComplete = 3 + } + enum GossipOptionUIWidgetSetTypes { + Modifiers = 0, + Background = 1 + } + enum NavigationState { + Invalid = 0, + Occluded = 1, + InRange = 2, + Disabled = 3 + } + enum SummonStatus { + None = 0, + Pending = 1, + Accepted = 2, + Declined = 3 + } + enum InputContext { + None = 0, + Keyboard = 1, + Mouse = 2, + GamePad = 3 + } + enum BankType { + Character = 0, + Guild = 1, + Account = 2 + } + enum BonusStatIndex { + Mana = 0, + Health = 1, + Endurance = 2, + Agility = 3, + Strength = 4, + Intellect = 5, + SpiritUnused = 6, + Stamina = 7, + Energy = 8, + Rage = 9, + Focus = 10, + WeaponSkillRatingObsolete = 11, + DefenseSkillRating = 12, + DodgeRating = 13, + ParryRating = 14, + BlockRating = 15, + HitMeleeRating = 16, + HitRangedRating = 17, + HitSpellRating = 18, + CritMeleeRating = 19, + CritRangedRating = 20, + CritSpellRating = 21, + Corruption = 22, + CorruptionResistance = 23, + ModifiedCraftingStat_1 = 24, + ModifiedCraftingStat_2 = 25, + CritTakenRangedRatingObsolete = 26, + CritTakenSpellRatingObsolete = 27, + HasteMeleeRatingObsolete = 28, + HasteRangedRatingObsolete = 29, + HasteSpellRatingObsolete = 30, + HitRating = 31, + CritRating = 32, + HitTakenRatingObsolete = 33, + CritTakenRatingObsolete = 34, + ResilienceRating = 35, + HasteRating = 36, + ExpertiseRating = 37, + AttackPower = 38, + RangedAttackPower = 39, + Versatility = 40, + SpellHealingDone = 41, + SpellDamageDone = 42, + ManaRegenerationObsolete = 43, + Unused = 44, + SpellPower = 45, + HealthRegen = 46, + SpellPenetration = 47, + BlockValueObsolete = 48, + MasteryRating = 49, + ExtraArmor = 50, + FireResistance = 51, + FrostResistance = 52, + HolyResistance = 53, + ShadowResistance = 54, + NatureResistance = 55, + ArcaneResistance = 56, + PvPPower = 57, + CombatRatingUnused_0 = 58, + CombatRatingUnused_2 = 59, + CombatRatingUnused_3 = 60, + CombatRatingSpeed = 61, + CombatRatingLifesteal = 62, + CombatRatingAvoidance = 63, + CombatRatingSturdiness = 64, + CombatRatingUnused_7 = 65, + CombatRatingUnused_27 = 66, + CombatRatingUnused_9 = 67, + CombatRatingUnused_10 = 68, + CombatRatingUnused_11 = 69, + CombatRatingUnused_12 = 70, + AgilityOrStrengthOrIntellect = 71, + AgilityOrStrength = 72, + AgilityOrIntellect = 73, + StrengthOrIntellect = 74, + ProfessionInspiration = 75, + ProfessionResourcefulness = 76, + ProfessionFinesse = 77, + ProfessionDeftness = 78, + ProfessionPerception = 79, + ProfessionCraftingSpeed = 80, + ProfessionMulticraft = 81, + ProfessionIngenuity = 82 + } + enum InventoryType { + IndexNonEquipType = 0, + IndexHeadType = 1, + IndexNeckType = 2, + IndexShoulderType = 3, + IndexBodyType = 4, + IndexChestType = 5, + IndexWaistType = 6, + IndexLegsType = 7, + IndexFeetType = 8, + IndexWristType = 9, + IndexHandType = 10, + IndexFingerType = 11, + IndexTrinketType = 12, + IndexWeaponType = 13, + IndexShieldType = 14, + IndexRangedType = 15, + IndexCloakType = 16, + Index2HweaponType = 17, + IndexBagType = 18, + IndexTabardType = 19, + IndexRobeType = 20, + IndexWeaponmainhandType = 21, + IndexWeaponoffhandType = 22, + IndexHoldableType = 23, + IndexAmmoType = 24, + IndexThrownType = 25, + IndexRangedrightType = 26, + IndexQuiverType = 27, + IndexRelicType = 28, + IndexProfessionToolType = 29, + IndexProfessionGearType = 30, + IndexEquipablespellOffensiveType = 31, + IndexEquipablespellUtilityType = 32, + IndexEquipablespellDefensiveType = 33, + IndexEquipablespellWeaponType = 34 + } + enum ItemArmorSubclass { + Generic = 0, + Cloth = 1, + Leather = 2, + Mail = 3, + Plate = 4, + Cosmetic = 5, + Shield = 6, + Libram = 7, + Idol = 8, + Totem = 9, + Sigil = 10, + Relic = 11 + } + enum ItemBind { + None = 0, + OnAcquire = 1, + OnEquip = 2, + OnUse = 3, + Quest = 4, + Unused1 = 5, + Unused2 = 6, + ToWoWAccount = 7, + ToBnetAccount = 8, + ToBnetAccountUntilEquipped = 9 + } + enum ItemClass { + Consumable = 0, + Container = 1, + Weapon = 2, + Gem = 3, + Armor = 4, + Reagent = 5, + Projectile = 6, + Tradegoods = 7, + ItemEnhancement = 8, + Recipe = 9, + CurrencyTokenObsolete = 10, + Quiver = 11, + Questitem = 12, + Key = 13, + PermanentObsolete = 14, + Miscellaneous = 15, + Glyph = 16, + Battlepet = 17, + WoWToken = 18, + Profession = 19 + } + enum ItemConsumableSubclass { + Generic = 0, + Potion = 1, + Elixir = 2, + Flasksphials = 3, + Scroll = 4, + Fooddrink = 5, + Itemenhancement = 6, + Bandage = 7, + Other = 8, + VantusRune = 9, + UtilityCurio = 10, + CombatCurio = 11 + } + enum ItemGemColor { + Meta = 1, + Red = 2, + Yellow = 4, + Blue = 8, + Hydraulic = 16, + Cogwheel = 32, + Iron = 64, + Blood = 128, + Shadow = 256, + Fel = 512, + Arcane = 1024, + Frost = 2048, + Fire = 4096, + Water = 8192, + Life = 16384, + Wind = 32768, + Holy = 65536, + PunchcardRed = 131072, + PunchcardYellow = 262144, + PunchcardBlue = 524288, + DominationBlood = 1048576, + DominationFrost = 2097152, + DominationUnholy = 4194304, + Cypher = 8388608, + Tinker = 16777216, + Primordial = 33554432, + Fragrance = 67108864 + } + enum ItemMiscellaneousSubclass { + Junk = 0, + Reagent = 1, + CompanionPet = 2, + Holiday = 3, + Other = 4, + Mount = 5, + MountEquipment = 6 + } + enum ItemProfessionSubclass { + Blacksmithing = 0, + Leatherworking = 1, + Alchemy = 2, + Herbalism = 3, + Cooking = 4, + Mining = 5, + Tailoring = 6, + Engineering = 7, + Enchanting = 8, + Fishing = 9, + Skinning = 10, + Jewelcrafting = 11, + Inscription = 12, + Archaeology = 13 + } + enum ItemQuality { + Poor = 0, + Common = 1, + Uncommon = 2, + Rare = 3, + Epic = 4, + Legendary = 5, + Artifact = 6, + Heirloom = 7, + WoWToken = 8 + } + enum ItemReagentSubclass { + Reagent = 0, + Keystone = 1, + ContextToken = 2 + } + enum ItemRecipeSubclass { + Book = 0, + Leatherworking = 1, + Tailoring = 2, + Engineering = 3, + Blacksmithing = 4, + Cooking = 5, + Alchemy = 6, + FirstAid = 7, + Enchanting = 8, + Fishing = 9, + Jewelcrafting = 10, + Inscription = 11 + } + enum ItemSocketType { + None = 0, + Meta = 1, + Red = 2, + Yellow = 3, + Blue = 4, + Hydraulic = 5, + Cogwheel = 6, + Prismatic = 7, + Iron = 8, + Blood = 9, + Shadow = 10, + Fel = 11, + Arcane = 12, + Frost = 13, + Fire = 14, + Water = 15, + Life = 16, + Wind = 17, + Holy = 18, + PunchcardRed = 19, + PunchcardYellow = 20, + PunchcardBlue = 21, + Domination = 22, + Cypher = 23, + Tinker = 24, + Primordial = 25, + Fragrance = 26 + } + enum ItemSubclassDisplay { + HideSubclassInTooltips = 1, + HideSubclassInAuction = 2, + ShowItemCount = 4 + } + enum ItemSubclassFlag { + WeaponsubclassCanparry = 1, + WeaponsubclassSetfingerseq = 2, + WeaponsubclassIsunarmed = 4, + WeaponsubclassIsrifle = 8, + WeaponsubclassIsthrown = 16, + WeaponsubclassRighthandRanged = 32, + ItemsubclassQuivernotrequired = 64, + WeaponsubclassRanged = 128, + WeaponsubclassDeprecatedReuseMe = 256, + ItemsubclassUsesInvtype = 512, + ArmorsubclassLfgscalingarmor = 1024 + } + enum ItemWeaponSubclass { + Axe1H = 0, + Axe2H = 1, + Bows = 2, + Guns = 3, + Mace1H = 4, + Mace2H = 5, + Polearm = 6, + Sword1H = 7, + Sword2H = 8, + Warglaive = 9, + Staff = 10, + Bearclaw = 11, + Catclaw = 12, + Unarmed = 13, + Generic = 14, + Dagger = 15, + Thrown = 16, + Obsolete3 = 17, + Crossbow = 18, + Wand = 19, + Fishingpole = 20 + } + enum Itemclassfilterflags { + Consumable = 1, + Container = 2, + Weapon = 4, + Gem = 8, + Armor = 16, + Reagent = 32, + Projectile = 64, + Tradegoods = 128, + ItemEnhancement = 256, + Recipe = 512, + CurrencyTokenObsolete = 1024, + Quiver = 2048, + Questitemclassfilterflags = 4096, + Key = 8192, + PermanentObsolete = 16384, + Miscellaneous = 32768, + Glyph = 65536, + Battlepet = 131072 + } + enum Itemsetflags { + Legacy = 1, + UseItemHistorySetSlots = 2, + RequiresPvPTalentsActive = 4 + } + enum SlotRegion { + Invalid = 0, + PlayerEquip = 1, + PlayerBags = 2, + PlayerInv = 3, + Bank = 4, + ReagentBank = 5, + AccountBank = 6 + } + enum SlotRegionMask { + Invalid = 1, + PlayerEquip = 2, + PlayerBags = 4, + PlayerInv = 8, + Bank = 16, + ReagentBank = 32, + AccountBank = 64 + } + enum SubcontainerType { + Bag = 0, + Equipped = 1, + Bankgeneric = 2, + Bankbag = 3, + Mail = 4, + Auction = 5, + KeyringObsolete = 6, + GuildBank0 = 7, + GuildBank1 = 8, + GuildBank2 = 9, + GuildBank3 = 10, + GuildBank4 = 11, + GuildBank5 = 12, + GuildOverflow = 13, + Equipablespells = 14, + CurrencytokenOboslete = 15, + GuildBank6 = 16, + GuildBank7 = 17, + GuildBank8 = 18, + GuildBank9 = 19, + GuildBank10 = 20, + GuildBank11 = 21, + Reagentbank = 22, + Childequipmentstorage = 23, + Quarantine = 24, + CreatedImmediately = 25, + BuybackSlots = 26, + CachedReward = 27, + EquippedBags = 28, + EquippedProfession1 = 29, + EquippedProfession2 = 30, + EquippedCooking = 31, + EquippedFishing = 32, + EquippedReagentbag = 33, + CraftingOrder = 34, + CraftingOrderReagents = 35, + AccountBankTabs = 36 + } + enum UIItemInteractionFlags { + DisplayWithInset = 1, + ConfirmationHasDelay = 2, + ConversionMode = 4, + ClickShowsFlyout = 8, + AddCurrency = 16, + UsesCharges = 32 + } + enum UIItemInteractionType { + None = 0, + CastSpell = 1, + CleanseCorruption = 2, + RunecarverScrapping = 3, + ItemConversion = 4 + } + enum ItemGemSubclass { + Intellect = 0, + Agility = 1, + Strength = 2, + Stamina = 3, + Spirit = 4, + Criticalstrike = 5, + Mastery = 6, + Haste = 7, + Versatility = 8, + Other = 9, + Multiplestats = 10, + Artifactrelic = 11 + } + enum ItemRedundancySlot { + Head = 0, + Neck = 1, + Shoulder = 2, + Chest = 3, + Waist = 4, + Legs = 5, + Feet = 6, + Wrist = 7, + Hand = 8, + Finger = 9, + Trinket = 10, + Cloak = 11, + Twohand = 12, + MainhandWeapon = 13, + OnehandWeapon = 14, + OnehandWeaponSecond = 15, + Offhand = 16 + } + enum PointsModifierSourceType { + PlayerLevel = 0, + SkillRank = 1, + ProgressiveEventMissCount = 2, + ProgressiveEventItemWinCount = 3, + NumLooters = 4, + BaseItemLevel = 5, + LootLevel = 6, + InstanceGroupSize = 7, + QuestItemGroupMissCount = 8, + TreasureItemPvalue = 9, + FollowerLevelInBuilding = 10, + FollowerQualityInBuilding = 11, + NumGroupFriends = 12, + FollowerLevelForCurrentShipment = 13, + FollowerQualityForCurrentShipment = 14, + PvPBracketRatingSpecific = 15, + ChallengeModeLevel = 16, + CurrencyMaxDelta = 17, + WorldStateValue = 18, + PlayerKeystoneLevel = 19, + PlayerCondition = 20, + PassesTreasureTrackingQuestEligibility = 21, + PvPBracketRatingCurrentInstance = 22, + PvPTeamSize = 23, + ItemLevelHighWaterMarkAverage = 24, + ProgressiveEventNumWinsForLootSpec = 25, + ProgressiveEventNumRemainingForLootSpec = 26, + WorldStateExpression = 27, + ProgressiveEventNumRemainingForClass = 28, + CreatureClassification = 29, + HonorEarnedThisPvPMatch = 30, + NumTappers = 31, + PvPJackpotTier = 32, + PlayerLevelContentTuningMax = 33, + SalvagedItemIsCloth = 34, + SalvagedItemIsLeather = 35, + SalvagedItemIsMail = 36, + SalvagedItemIsPlate = 37, + SalvagedItemIsMisc = 38, + QuestExpansionID = 39, + Reserved_2 = 40, + JailersTowerActiveFloorDifficulty = 41, + NumLootSourceAuraStacks = 42, + HasLegendaryCloakUpdgradeAvailable = 43, + ObjectLevel = 44, + PercentThroughContentTuning = 45, + PvPTier = 46, + CurrencyQuantity = 47, + AreaGroup = 48, + ObjectLabelID = 49, + WeeklyMythicPlusCount = 50, + PercentThroughExpansion = 51, + AutoMissionScalar = 52, + RenownCatchup = 53, + RenownRapidCatchup = 54, + ParagonLevel = 55, + NumPlayersThatGainedDungeonScore = 56, + ProfessionQualityLevel = 57, + CraftSkill = 58, + NumWeeklyRewardsThresholdsEarned = 59, + SalvagedItemLevel = 60, + ProfessionRatingFinessePercent = 61, + ProfessionRatingPerceptionPercent = 62, + ProfessionTraitRanksByLabel = 63, + CreatureHealthMod = 64, + FirstTimeQuestCompletionRewards = 65, + PointsModifierSet = 66 + } + enum BindingSet { + Default = 0, + Account = 1, + Character = 2, + Current = 3 + } + enum CustomBindingType { + VoicePushToTalk = 0 + } + enum LFGEntryPlaystyle { + None = 0, + Standard = 1, + Casual = 2, + Hardcore = 3 + } + enum LFGListFilter { + Recommended = 1, + NotRecommended = 2, + PvE = 4, + PvP = 8, + Timerunning = 16, + CurrentExpansion = 32, + CurrentSeason = 64, + NotCurrentSeason = 128 + } + enum LFGRole { + Tank = 0, + Healer = 1, + Damage = 2 + } + enum LFGListDisplayType { + RoleCount = 0, + RoleEnumerate = 1, + ClassEnumerate = 2, + HideAll = 3, + PlayerCount = 4, + Comment = 5 + } + enum RuneforgePowerFilter { + All = 0, + Relevant = 1, + Available = 2, + Unavailable = 3 + } + enum RuneforgePowerState { + Available = 0, + Unavailable = 1, + Invalid = 2 + } + enum LootSlotType { + None = 0, + Item = 1, + Money = 2, + Currency = 3 + } + enum EncounterLootDropRollState { + NeedMainSpec = 0, + NeedOffSpec = 1, + Transmog = 2, + Greed = 3, + NoRoll = 4, + Pass = 5 + } + enum MajorFactionFeatureAbility { + Generic = 0, + Fishing = 1, + Hunts = 2 + } + enum MajorFactionType { + None = 0, + DragonscaleExpedition = 1, + MaruukCentaur = 2, + IskaaraTuskarr = 3, + ValdrakkenAccord = 4 + } + enum MapCanvasPosition { + None = 0, + BottomLeft = 1, + BottomRight = 2, + TopLeft = 3, + TopRight = 4 + } + enum UIMapFlag { + NoHighlight = 1, + ShowOverlays = 2, + ShowTaxiNodes = 4, + GarrisonMap = 8, + FallbackToParentMap = 16, + NoHighlightTexture = 32, + ShowTaskObjectives = 64, + NoWorldPositions = 128, + HideArchaeologyDigs = 256, + DoNotTranslateBranches = 512, + HideIcons = 1024, + HideVignettes = 2048, + ForceAllOverlayExplored = 4096, + FlightMapShowZoomOut = 8192, + FlightMapAutoZoom = 16384, + ForceOnNavbar = 32768, + AlwaysAllowUserWaypoints = 65536, + AlwaysAllowTaxiPathing = 131072, + ForceAllowMapLinks = 262144, + DoNotShowOnNavbar = 524288, + IsCityMap = 1048576 + } + enum UIMapGroupFlag { + ShowIconsAcrossFloors = 1 + } + enum UIMapSystem { + World = 0, + Taxi = 1, + Adventure = 2, + Minimap = 3 + } + enum UIMapType { + Cosmic = 0, + World = 1, + Continent = 2, + Zone = 3, + Dungeon = 4, + Micro = 5, + Orphan = 6 + } + enum MinimapTrackingFilter { + Unfiltered = 0, + Auctioneer = 1, + Banker = 2, + Battlemaster = 4, + TaxiNode = 8, + VenderFood = 16, + Innkeeper = 32, + Mailbox = 64, + TrainerProfession = 128, + VendorReagent = 256, + Repair = 512, + TrivialQuests = 1024, + Stablemaster = 2048, + Transmogrifier = 4096, + POI = 8192, + Target = 16384, + Focus = 32768, + QuestPoIs = 65536, + Digsites = 131072, + Barber = 262144, + ItemUpgrade = 524288, + VendorPoison = 1048576, + AccountCompletedQuests = 2097152, + AccountBanker = 4194304 + } + enum ModelBlendOperation { + None = 0, + Anim = 1 + } + enum MountType { + Ground = 0, + Flying = 1, + Aquatic = 2, + Dragonriding = 3, + RideAlong = 4 + } + enum MountTypeFlag { + IsFlyingMount = 1, + IsAquaticMount = 2, + IsDragonRidingMount = 4, + IsRideAlongMount = 8 + } + enum AvgItemLevelCategories { + Base = 0, + EquippedBase = 1, + EquippedEffective = 2, + PvP = 3, + PvPWeighted = 4, + EquippedEffectiveWeighted = 5 + } + enum RestrictPingsTo { + None = 0, + Lead = 1, + Assist = 2, + TankHealer = 3 + } + enum PartyRequestJoinRelation { + None = 0, + Friend = 1, + Guild = 2, + Club = 3, + NumPartyRequestJoinRelations = 4 + } + enum PartyPoseFlags { + HideLeaveInstanceButton = 1 + } + enum PerksVendorCategoryType { + Transmog = 1, + Mount = 2, + Pet = 3, + Toy = 5, + Illusion = 7, + Transmogset = 8 + } + enum PetBattleQueueStatus { + None = 0, + Queued = 1, + QueuedUpdate = 2, + AlreadyQueued = 3, + JoinFailed = 4, + JoinFailedSlots = 5, + JoinFailedJournalLock = 6, + JoinFailedNeutral = 7, + MatchAccepted = 8, + MatchDeclined = 9, + MatchOpponentDeclined = 10, + ProposalTimedOut = 11, + Removed = 12, + RequeuedAfterInternalError = 13, + RequeuedAfterOpponentRemoved = 14, + Matchmaking = 15, + LostConnection = 16, + Shutdown = 17, + Suspended = 18, + Unsuspended = 19, + InBattle = 20, + NoBattlingHere = 21 + } + enum PetbattleAuraStateFlags { + None = 0, + Infinite = 1, + Canceled = 2, + InitDisabled = 4, + CountdownFirstRound = 8, + JustApplied = 16, + RemoveEventHandled = 32 + } + enum PetbattleCheatFlags { + None = 0, + AutoPlay = 1 + } + enum PetbattleEffectFlags { + None = 0, + InvalidTarget = 1, + Miss = 2, + Crit = 4, + Blocked = 8, + Dodge = 16, + Heal = 32, + Unkillable = 64, + Reflect = 128, + Absorb = 256, + Immune = 512, + Strong = 1024, + Weak = 2048, + SuccessChain = 4096, + AuraReapply = 8192 + } + enum PetbattleEffectType { + SetHealth = 0, + AuraApply = 1, + AuraCancel = 2, + AuraChange = 3, + PetSwap = 4, + StatusChange = 5, + SetState = 6, + SetMaxHealth = 7, + SetSpeed = 8, + SetPower = 9, + TriggerAbility = 10, + AbilityChange = 11, + NpcEmote = 12, + AuraProcessingBegin = 13, + AuraProcessingEnd = 14, + ReplacePet = 15, + OverrideAbility = 16, + WorldStateUpdate = 17 + } + enum PetbattleEnviros { + Pad0 = 0, + Pad1 = 1, + Weather = 2 + } + enum PetbattleInputMoveMsgDebugFlag { + None = 0, + DontValidate = 1, + EnemyCast = 2 + } + enum PetbattleMoveType { + Quit = 0, + Ability = 1, + Swap = 2, + Trap = 3, + FinalRoundOk = 4, + Pass = 5 + } + enum PetbattlePboid { + P0Pet_0 = 0, + P0Pet_1 = 1, + P0Pet_2 = 2, + P1Pet_0 = 3, + P1Pet_1 = 4, + P1Pet_2 = 5, + EnvPad_0 = 6, + EnvPad_1 = 7, + EnvWeather = 8 + } + enum PetbattlePetStatus { + FlagNone = 0, + FlagTrapped = 1, + Stunned = 2, + SwapOutLocked = 4, + SwapInLocked = 8 + } + enum PetbattlePlayer { + Player_0 = 0, + Player_1 = 1 + } + enum PetbattlePlayerInputFlags { + None = 0, + TurnInProgress = 1, + AbilityLocked = 2, + SwapLocked = 4, + WaitingForPet = 8 + } + enum PetbattleResult { + FailUnknown = 0, + FailNotHere = 1, + FailNotHereOnTransport = 2, + FailNotHereUnevenGround = 3, + FailNotHereObstructed = 4, + FailNotWhileInCombat = 5, + FailNotWhileDead = 6, + FailNotWhileFlying = 7, + FailTargetInvalid = 8, + FailTargetOutOfRange = 9, + FailTargetNotCapturable = 10, + FailNotATrainer = 11, + FailDeclined = 12, + FailInBattle = 13, + FailInvalidLoadout = 14, + FailInvalidLoadoutAllDead = 15, + FailInvalidLoadoutNoneSlotted = 16, + FailNoJournalLock = 17, + FailWildPetTapped = 18, + FailRestrictedAccount = 19, + FailOpponentNotAvailable = 20, + FailLogout = 21, + FailDisconnect = 22, + Success = 23 + } + enum PetbattleSlot { + Slot_0 = 0, + Slot_1 = 1, + Slot_2 = 2 + } + enum PetbattleSlotAbility { + Ability_0 = 0, + Ability_1 = 1, + Ability_2 = 2 + } + enum PetbattleSlotResult { + Success = 0, + SlotLocked = 1, + SlotEmpty = 2, + NoTracker = 3, + NoSpeciesRec = 4, + CantBattle = 5, + Revoked = 6, + Dead = 7, + NoPet = 8 + } + enum PetbattleState { + Created = 0, + WaitingPreBattle = 1, + RoundInProgress = 2, + WaitingForFrontPets = 3, + CreatedFailed = 4, + FinalRound = 5, + Finished = 6 + } + enum PetbattleTrapstatus { + Invalid = 0, + CanTrap = 1, + CantTrapNewbie = 2, + CantTrapPetDead = 3, + CantTrapPetHealth = 4, + CantTrapNoRoomInJournal = 5, + CantTrapPetNotCapturable = 6, + CantTrapTrainerBattle = 7, + CantTrapTwice = 8 + } + enum PetbattleType { + PvE = 0, + PvP = 1, + Lfpb = 2, + Npc = 3 + } + enum PetJournalError { + None = 0, + PetIsDead = 1, + JournalIsLocked = 2, + InvalidFaction = 3, + NoFavoritesToSummon = 4, + NoValidRandomSummon = 5 + } + enum PingMode { + KeyDown = 0, + ClickDrag = 1 + } + enum PingResult { + Success = 0, + FailedGeneric = 1, + FailedSpamming = 2, + FailedDisabledByLeader = 3, + FailedDisabledBySettings = 4, + FailedOutOfPingArea = 5, + FailedSquelched = 6, + FailedUnspecified = 7 + } + enum PingSubjectType { + Attack = 0, + Warning = 1, + Assist = 2, + OnMyWay = 3, + AlertThreat = 4, + AlertNotThreat = 5 + } + enum PingTypeFlags { + DefaultPing = 1 + } + enum ClientPlatformType { + Windows = 0, + Macintosh = 1 + } + enum PlayerChoiceRarity { + Common = 0, + Uncommon = 1, + Rare = 2, + Epic = 3 + } + enum PlayerInteractionType { + None = 0, + TradePartner = 1, + Item = 2, + Gossip = 3, + QuestGiver = 4, + Merchant = 5, + TaxiNode = 6, + Trainer = 7, + Banker = 8, + AlliedRaceDetailsGiver = 9, + GuildBanker = 10, + Registrar = 11, + Vendor = 12, + PetitionVendor = 13, + GuildTabardVendor = 14, + TalentMaster = 15, + SpecializationMaster = 16, + MailInfo = 17, + SpiritHealer = 18, + AreaSpiritHealer = 19, + Binder = 20, + Auctioneer = 21, + StableMaster = 22, + BattleMaster = 23, + Transmogrifier = 24, + LFGDungeon = 25, + VoidStorageBanker = 26, + BlackMarketAuctioneer = 27, + AdventureMap = 28, + WorldMap = 29, + GarrArchitect = 30, + GarrTradeskill = 31, + GarrMission = 32, + ShipmentCrafter = 33, + GarrRecruitment = 34, + GarrTalent = 35, + Trophy = 36, + PlayerChoice = 37, + ArtifactForge = 38, + ObliterumForge = 39, + ScrappingMachine = 40, + ContributionCollector = 41, + AzeriteRespec = 42, + IslandQueue = 43, + ItemInteraction = 44, + ChromieTime = 45, + CovenantPreview = 46, + AnimaDiversion = 47, + LegendaryCrafting = 48, + WeeklyRewards = 49, + Soulbind = 50, + CovenantSanctum = 51, + NewPlayerGuide = 52, + ItemUpgrade = 53, + AdventureJournal = 54, + Renown = 55, + AzeriteForge = 56, + PerksProgramVendor = 57, + ProfessionsCraftingOrder = 58, + Professions = 59, + ProfessionsCustomerOrder = 60, + TraitSystem = 61, + BarbersChoice = 62, + JailersTowerBuffs = 63, + MajorFactionRenown = 64, + PersonalTabardVendor = 65, + ForgeMaster = 66, + CharacterBanker = 67, + AccountBanker = 68 + } + enum PlayerMentorshipApplicationResult { + Success = 0, + AlreadyMentor = 1, + Ineligible = 2 + } + enum PlayerMentorshipStatus { + None = 0, + Newcomer = 1, + Mentor = 2 + } + enum BalanceType { + None = -1, + Eclipse = 0 + } + enum PowerType { + Mana = 0, + Rage = 1, + Focus = 2, + Energy = 3, + ComboPoints = 4, + Runes = 5, + RunicPower = 6, + SoulShards = 7, + LunarPower = 8, + HolyPower = 9, + Alternate = 10, + Maelstrom = 11, + Chi = 12, + Insanity = 13, + Obsolete = 14, + Obsolete2 = 15, + ArcaneCharges = 16, + Fury = 17, + Pain = 18, + Essence = 19, + RuneBlood = 20, + RuneFrost = 21, + RuneUnholy = 22, + AlternateQuest = 23, + AlternateEncounter = 24, + AlternateMount = 25, + Balance = 26 + } + enum PowerTypeSign { + None = -1, + Positive = 0, + Negative = 1 + } + enum PowerTypeSlot { + Slot_0 = 0, + Slot_1 = 1, + Slot_2 = 2, + Slot_3 = 3, + Slot_4 = 4, + Slot_5 = 5, + Slot_6 = 6, + Slot_7 = 7, + Slot_8 = 8, + Slot_9 = 9 + } + enum CraftingOrderDuration { + Short = 0, + Medium = 1, + Long = 2 + } + enum CraftingOrderFlags { + IsRecraft = 1, + HasNoneReagents = 2, + HasSomeReagents = 4, + HasAllReagents = 8, + IsFulfillable = 16 + } + enum CraftingOrderItemType { + Reagent = 0, + Recraft = 1, + CraftedResult = 2, + RemoveReagent = 3, + NpcProvided = 4 + } + enum CraftingOrderReagentSource { + Any = 0, + Customer = 1, + Crafter = 2, + None = 3 + } + enum CraftingOrderResult { + Ok = 0, + Aborted = 1, + AlreadyClaimed = 2, + AlreadyCrafted = 3, + CannotBeOrdered = 4, + CannotCancel = 5, + CannotClaim = 6, + CannotClaimOwnOrder = 7, + CannotCraft = 8, + CannotCreate = 9, + CannotFulfill = 10, + CannotRecraft = 11, + CannotReject = 12, + CannotRelease = 13, + CrafterIsIgnored = 14, + DatabaseError = 15, + Expired = 16, + Locked = 17, + InvalidDuration = 18, + InvalidMinQuality = 19, + InvalidNotes = 20, + InvalidReagent = 21, + InvalidRealm = 22, + InvalidRecipe = 23, + InvalidRecraftItem = 24, + InvalidSort = 25, + InvalidTarget = 26, + InvalidType = 27, + MaxOrdersReached = 28, + MissingCraftingTable = 29, + MissingItem = 30, + MissingNpc = 31, + MissingOrder = 32, + MissingRecraftItem = 33, + NoAccountItems = 34, + NotClaimed = 35, + NotCrafted = 36, + NotInGuild = 37, + NotYetImplemented = 38, + OutOfPublicOrderCapacity = 39, + ServerIsNotAvailable = 40, + ThrottleViolation = 41, + TargetCannotCraft = 42, + TargetLocked = 43, + Timeout = 44, + TooManyItems = 45, + WrongVersion = 46 + } + enum CraftingOrderSortType { + ItemName = 0, + AveTip = 1, + MaxTip = 2, + Quantity = 3, + Reagents = 4, + Tip = 5, + TimeRemaining = 6, + Status = 7 + } + enum CraftingOrderState { + None = 0, + Creating = 1, + Created = 2, + Claiming = 3, + Claimed = 4, + Rejecting = 5, + Rejected = 6, + Releasing = 7, + Crafting = 8, + Recrafting = 9, + Fulfilling = 10, + Fulfilled = 11, + Canceling = 12, + Canceled = 13, + Expiring = 14, + Expired = 15 + } + enum CraftingOrderType { + Public = 0, + Guild = 1, + Personal = 2, + Npc = 3 + } + enum CraftingReagentType { + Modifying = 0, + Basic = 1, + Finishing = 2, + Automatic = 3 + } + enum ItemRecraftFlags { + ItemRecraftFlagInvalid = 1 + } + enum NpcCraftingOrderSetFlags { + CraftingOrderFlagAllowMultiple = 1, + CraftingOrderFlagAllowDuplicate = 2 + } + enum Profession { + FirstAid = 0, + Blacksmithing = 1, + Leatherworking = 2, + Alchemy = 3, + Herbalism = 4, + Cooking = 5, + Mining = 6, + Tailoring = 7, + Engineering = 8, + Enchanting = 9, + Fishing = 10, + Skinning = 11, + Jewelcrafting = 12, + Inscription = 13, + Archaeology = 14 + } + enum ProfessionActionType { + Craft = 0, + Gather = 1 + } + enum ProfessionEffect { + Skill = 0, + StatInspiration = 1, + StatResourcefulness = 2, + StatFinesse = 3, + StatDeftness = 4, + StatPerception = 5, + StatCraftingSpeed = 6, + StatMulticraft = 7, + UnlockReagentSlot = 8, + ModInspiration = 9, + ModResourcefulness = 10, + ModFinesse = 11, + ModDeftness = 12, + ModPerception = 13, + ModCraftingSpeed = 14, + ModMulticraft = 15, + ModUnused_1 = 16, + ModUnused_2 = 17, + ModCraftExtraQuantity = 18, + ModGatherExtraQuantity = 19, + ModCraftCritSize = 20, + ModCraftReductionQuantity = 21, + DecreaseDifficulty = 22, + IncreaseDifficulty = 23, + ModSkillGain = 24, + AccumulateRanksByLabel = 25, + StatIngenuity = 26, + ModConcentration = 27, + Tokenizer = 28, + ModIngenuity = 29, + ConcentrationRefund = 30 + } + enum ProfessionRating { + Inspiration = 0, + Resourcefulness = 1, + Finesse = 2, + Deftness = 3, + Perception = 4, + CraftingSpeed = 5, + Multicraft = 6, + Ingenuity = 7, + Unused_2 = 8 + } + enum ProfessionRatingType { + Craft = 0, + Gather = 1 + } + enum RcoCloseReason { + RcoCloseFulfill = 0, + RcoCloseExpire = 1, + RcoCloseCancel = 2, + RcoCloseReject = 3, + RcoCloseGmCancel = 4, + RcoCloseCrafterFulfill = 5, + RcoCloseInvalid = 6 + } + enum SkinningState { + None = 0, + Reserved = 1, + Skinning = 2, + Looting = 3, + Skinned = 4 + } + enum ProfTraitPerkNodeFlags { + UnlocksSubpath = 1, + IsMajorBonus = 2 + } + enum ProfessionsSpecPathState { + Locked = 0, + Progressing = 1, + Completed = 2 + } + enum ProfessionsSpecPerkState { + Unearned = 0, + Pending = 1, + Earned = 2 + } + enum ProfessionsSpecTabState { + Locked = 0, + Unlocked = 1, + Unlockable = 2 + } + enum PvPFaction { + Horde = 0, + Alliance = 1 + } + enum BrawlType { + None = 0, + Battleground = 1, + Arena = 2, + LFG = 3, + SoloShuffle = 4, + SoloRbg = 5 + } + enum PvPMatchState { + Inactive = 0, + Waiting = 1, + StartUp = 2, + Engaged = 3, + PostRound = 4, + Complete = 5 + } + enum CombinedQuestLogStatus { + Available = 0, + Complete = 1, + CompleteDaily = 2, + CompleteWeekly = 3, + CompleteMonthly = 4, + CompleteYearly = 5, + CompleteGameReset = 6, + Reset = 7 + } + enum CombinedQuestStatus { + Invalid = 0, + Completed = 1, + NotCompleted = 2 + } + enum QuestCompleteSpellType { + LegacyBehavior = 0, + Follower = 1, + Tradeskill = 2, + Ability = 3, + Aura = 4, + Spell = 5, + Unlock = 6, + Companion = 7, + QuestlineUnlock = 8, + QuestlineReward = 9, + QuestlineUnlockPart = 10 + } + enum QuestRepeatability { + None = 0, + Daily = 1, + Weekly = 2, + Turnin = 3, + World = 4 + } + enum QuestRewardContextFlags { + None = 0, + FirstCompletionBonus = 1, + RepeatCompletionBonus = 2 + } + enum QuestTagType { + Tag = 0, + Profession = 1, + Normal = 2, + PvP = 3, + PetBattle = 4, + Bounty = 5, + Dungeon = 6, + Invasion = 7, + Raid = 8, + Contribution = 9, + RatedReward = 10, + InvasionWrapper = 11, + FactionAssault = 12, + Islands = 13, + Threat = 14, + CovenantCalling = 15, + DragonRiderRacing = 16, + Capstone = 17, + WorldBoss = 18 + } + enum QuestTreasurePickerType { + Visible = 0, + Hidden = 1, + Select = 2 + } + enum RelativeContentDifficulty { + Trivial = 0, + Easy = 1, + Fair = 2, + Difficult = 3, + Impossible = 4 + } + enum QuestClassification { + Important = 0, + Legendary = 1, + Campaign = 2, + Calling = 3, + Meta = 4, + Recurring = 5, + Questline = 6, + Normal = 7, + BonusObjective = 8, + Threat = 9, + WorldQuest = 10 + } + enum QuestLineFloorLocation { + Above = 0, + Below = 1, + Same = 2 + } + enum MapOverlayDisplayLocation { + Default = 0, + BottomLeft = 1, + TopLeft = 2, + BottomRight = 3, + TopRight = 4, + Hidden = 5 + } + enum QuestFrequency { + Default = 0, + Daily = 1, + Weekly = 2, + ResetByScheduler = 3 + } + enum QuestTag { + Group = 1, + PvP = 41, + Raid = 62, + Dungeon = 81, + Legendary = 83, + Heroic = 85, + Raid10 = 88, + Raid25 = 89, + Scenario = 98, + Account = 102, + CombatAlly = 266, + Delve = 288 + } + enum QuestWatchType { + Automatic = 0, + Manual = 1 + } + enum WorldQuestQuality { + Common = 0, + Rare = 1, + Epic = 2 + } + enum QuestSessionCommand { + None = 0, + Start = 1, + Stop = 2, + SessionActiveNoCommand = 3 + } + enum QuestSessionResult { + Ok = 0, + NotInParty = 1, + InvalidOwner = 2, + AlreadyActive = 3, + NotActive = 4, + InRaid = 5, + OwnerRefused = 6, + Timeout = 7, + Disabled = 8, + Started = 9, + Stopped = 10, + Joined = 11, + Left = 12, + OwnerLeft = 13, + ReadyCheckFailed = 14, + PartyDestroyed = 15, + MemberTimeout = 16, + AlreadyMember = 17, + NotOwner = 18, + AlreadyOwner = 19, + AlreadyJoined = 20, + NotMember = 21, + Busy = 22, + JoinRejected = 23, + Logout = 24, + Empty = 25, + QuestNotCompleted = 26, + Resync = 27, + Restricted = 28, + InPetBattle = 29, + InvalidPublicParty = 30, + Unknown = 31, + InCombat = 32, + MemberInCombat = 33, + RestrictedCrossFaction = 34 + } + enum RafRecruitActivityState { + Incomplete = 0, + Complete = 1, + RewardClaimed = 2 + } + enum RafRecruitSubStatus { + Trial = 0, + Active = 1, + Inactive = 2 + } + enum RafRewardType { + Pet = 0, + Mount = 1, + Appearance = 2, + Title = 3, + GameTime = 4, + AppearanceSet = 5, + Illusion = 6, + Invalid = 7 + } + enum RafLinkType { + None = 0, + Recruit = 1, + Friend = 2, + Both = 3 + } + enum RecruitAFriendRewardsVersion { + InvalidVersion = 0, + UnusedVersionOne = 1, + VersionTwo = 2, + VersionThree = 3 + } + enum ReportMajorCategory { + InappropriateCommunication = 0, + GameplaySabotage = 1, + Cheating = 2, + InappropriateName = 3 + } + enum ReportMinorCategory { + TextChat = 1, + Boosting = 2, + Spam = 4, + Afk = 8, + IntentionallyFeeding = 16, + BlockingProgress = 32, + Hacking = 64, + Botting = 128, + Advertisement = 256, + BTag = 512, + GroupName = 1024, + CharacterName = 2048, + GuildName = 4096, + Description = 8192, + Name = 16384, + HarmfulToMinors = 32768 + } + enum ReportSubComplaintTypes { + Inappropriate = 0, + Advertising = 1 + } + enum ReportType { + Chat = 0, + InWorld = 1, + ClubFinderPosting = 2, + ClubFinderApplicant = 3, + GroupFinderPosting = 4, + GroupFinderApplicant = 5, + ClubMember = 6, + GroupMember = 7, + Friend = 8, + Pet = 9, + BattlePet = 10, + Calendar = 11, + Mail = 12, + PvP = 13, + PvPScoreboard = 14, + PvPGroupMember = 15, + CraftingOrder = 16 + } + enum ReputationSortType { + None = 0, + Account = 1, + Character = 2 + } + enum JailersTowerType { + TwistingCorridors = 0, + SkoldusHalls = 1, + FractureChambers = 2, + Soulforges = 3, + Coldheart = 4, + Mortregar = 5, + UpperReaches = 6, + ArkobanHall = 7, + TormentChamberJaina = 8, + TormentChamberThrall = 9, + TormentChamberAnduin = 10, + AdamantVaults = 11, + ForgottenCatacombs = 12, + Ossuary = 13, + BossRush = 14 + } + enum ScriptedAnimationBehavior { + None = 0, + TargetShake = 1, + TargetKnockBack = 2, + SourceRecoil = 3, + SourceCollideWithTarget = 4, + UIParentShake = 5 + } + enum ScriptedAnimationFlags { + UseTargetAsSource = 1 + } + enum ScriptedAnimationTrajectory { + AtSource = 0, + AtTarget = 1, + Straight = 2, + CurveLeft = 3, + CurveRight = 4, + CurveRandom = 5, + HalfwayBetween = 6 + } + enum PingTextureType { + Center = 0, + Expand = 1, + Rotation = 2 + } + enum SocialWhoOrigin { + Unknown = 0, + Social = 1, + Chat = 2, + Item = 3 + } + enum SoftTargetEnableFlags { + None = 0, + Gamepad = 1, + Kbm = 2, + Any = 3 + } + enum AddSoulbindConduitReason { + None = 0, + Cheat = 1, + SpellEffect = 2, + Upgrade = 3 + } + enum SoulbindConduitFlags { + VisibleToGetallsoulbindconduitScript = 1 + } + enum SoulbindConduitInstallResult { + Success = 0, + InvalidItem = 1, + InvalidConduit = 2, + InvalidTalent = 3, + DuplicateConduit = 4, + ForgeNotInProximity = 5, + SocketNotEmpty = 6 + } + enum SoulbindConduitTransactionType { + Install = 0, + Uninstall = 1 + } + enum SoulbindConduitType { + Finesse = 0, + Potency = 1, + Endurance = 2, + Flex = 3 + } + enum SoulbindNodeState { + Unavailable = 0, + Unselected = 1, + Selectable = 2, + Selected = 3 + } + enum SpellBookSkillLineIndex { + General = 1, + Class = 2, + MainSpec = 3, + OffSpecStart = 4 + } + enum SpellBookItemType { + None = 0, + Spell = 1, + FutureSpell = 2, + PetAction = 3, + Flyout = 4 + } + enum SpellBookSpellBank { + Player = 0, + Pet = 1 + } + enum SplashScreenType { + WhatsNew = 0, + SeasonRollOver = 1 + } + enum SuperTrackingMapPinType { + AreaPOI = 0, + QuestOffer = 1, + TaxiNode = 2, + DigSite = 3 + } + enum SuperTrackingType { + Quest = 0, + UserWaypoint = 1, + Corpse = 2, + Scenario = 3, + Content = 4, + PartyMember = 5, + MapPin = 6, + Vignette = 7 + } + enum FlightPathFaction { + Neutral = 0, + Horde = 1, + Alliance = 2 + } + enum FlightPathState { + Current = 0, + Reachable = 1, + Unreachable = 2 + } + enum TitleIconVersion { + Small = 0, + Medium = 1, + Large = 2 + } + enum StartTimerType { + PvPBeginTimer = 0, + ChallengeModeCountdown = 1, + PlayerCountdown = 2, + PlunderstormCountdown = 3 + } + enum TooltipComparisonMethod { + Single = 0, + WithBothHands = 1, + WithBagMainHandItem = 2, + WithBagOffHandItem = 3 + } + enum TooltipSide { + Left = 0, + Right = 1, + Top = 2, + Bottom = 3 + } + enum TooltipTextureAnchor { + LeftTop = 0, + LeftCenter = 1, + LeftBottom = 2, + RightTop = 3, + RightCenter = 4, + RightBottom = 5, + All = 6 + } + enum TooltipTextureRelativeRegion { + LeftLine = 0, + RightLine = 1 + } + enum TooltipDataItemBinding { + Quest = 0, + Account = 1, + BnetAccount = 2, + Soulbound = 3, + BindToAccount = 4, + BindToBnetAccount = 5, + BindOnPickup = 6, + BindOnEquip = 7, + BindOnUse = 8 + } + enum TooltipDataLineType { + None = 0, + Blank = 1, + UnitName = 2, + GemSocket = 3, + AzeriteEssenceSlot = 4, + AzeriteEssencePower = 5, + LearnableSpell = 6, + UnitThreat = 7, + QuestObjective = 8, + AzeriteItemPowerDescription = 9, + RuneforgeLegendaryPowerDescription = 10, + SellPrice = 11, + ProfessionCraftingQuality = 12, + SpellName = 13, + CurrencyTotal = 14, + ItemEnchantmentPermanent = 15, + UnitOwner = 16, + QuestTitle = 17, + QuestPlayer = 18, + NestedBlock = 19, + ItemBinding = 20, + RestrictedRaceClass = 21, + RestrictedFaction = 22, + RestrictedSkill = 23, + RestrictedPvPMedal = 24, + RestrictedReputation = 25, + RestrictedSpellKnown = 26, + RestrictedLevel = 27, + EquipSlot = 28, + ItemName = 29, + Separator = 30, + ToyName = 31, + ToyText = 32, + ToyEffect = 33, + ToyDuration = 34, + RestrictedArena = 35, + RestrictedBg = 36, + ToyFlavorText = 37, + ToyDescription = 38, + ToySource = 39, + GemSocketEnchantment = 40 + } + enum TooltipDataType { + Item = 0, + Spell = 1, + Unit = 2, + Corpse = 3, + Object = 4, + Currency = 5, + BattlePet = 6, + UnitAura = 7, + AzeriteEssence = 8, + CompanionPet = 9, + Mount = 10, + PetAction = 11, + Achievement = 12, + EnhancedConduit = 13, + EquipmentSet = 14, + InstanceLock = 15, + PvPBrawl = 16, + RecipeRankInfo = 17, + Totem = 18, + Toy = 19, + CorruptionCleanser = 20, + MinimapMouseover = 21, + Flyout = 22, + Quest = 23, + QuestPartyProgress = 24, + Macro = 25, + Debug = 26 + } + enum CraftingReagentItemFlag { + TooltipShowsAsStatModifications = 0 + } + enum RecipeRequirementType { + SpellFocus = 0, + Totem = 1, + Area = 2 + } + enum TradeskillOrderDuration { + Short = 1, + Medium = 2, + Long = 3 + } + enum TradeskillOrderRecipient { + Public = 1, + Guild = 2, + Private = 3 + } + enum TradeskillOrderStatus { + Unclaimed = 1, + Started = 2, + Completed = 3, + Expired = 4 + } + enum TradeskillRecipeType { + Item = 1, + Salvage = 2, + Enchant = 3, + Recraft = 4, + Gathering = 5 + } + enum TradeskillRelativeDifficulty { + Optimal = 0, + Medium = 1, + Easy = 2, + Trivial = 3 + } + enum TradeskillSlotDataType { + Reagent = 1, + ModifiedReagent = 2, + Currency = 3 + } + enum NodeOpFailureReason { + None = 0, + MissingEdgeConnection = 1, + RequiredForEdge = 2, + MissingRequiredEdge = 3, + HasMutuallyExclusiveEdge = 4, + NotEnoughSourcedCurrencySpent = 5, + NotEnoughCurrencySpent = 6, + NotEnoughGoldSpent = 7, + MissingAchievement = 8, + MissingQuest = 9, + WrongSpec = 10, + WrongSelection = 11, + MaxRank = 12, + DataError = 13, + NotEnoughSourcedCurrency = 14, + NotEnoughCurrency = 15, + NotEnoughGold = 16, + SameSelection = 17, + NodeNotFound = 18, + EntryNotFound = 19, + RequiredForCondition = 20, + WrongTreeID = 21, + LevelTooLow = 22, + TreeFlaggedNoRefund = 23, + NodeNeverPurchasable = 24, + AccountDataNoMatch = 25 + } + enum SharedStringFlag { + InternalOnly = 1 + } + enum TraitCombatConfigFlags { + ActiveForSpec = 1, + StarterBuild = 2, + SharedActionBars = 4 + } + enum TraitCondFlag { + IsGate = 1, + IsAlwaysMet = 2, + IsSufficient = 4 + } + enum TraitConditionType { + Available = 0, + Visible = 1, + Granted = 2, + Increased = 3, + DisplayError = 4 + } + enum TraitConfigDbState { + Ready = 0, + Created = 1, + Removed = 2, + Deleted = 3 + } + enum TraitConfigType { + Invalid = 0, + Combat = 1, + Profession = 2, + Generic = 3 + } + enum TraitCurrencyFlag { + ShowQuantityAsSpent = 1, + TraitSourcedShowMax = 2, + UseClassIcon = 4, + UseSpecIcon = 8 + } + enum TraitCurrencyType { + Gold = 0, + CurrencyTypesBased = 1, + TraitSourced = 2 + } + enum TraitDefinitionSubType { + DragonflightRed = 0, + DragonflightBlue = 1, + DragonflightGreen = 2, + DragonflightBronze = 3, + DragonflightBlack = 4 + } + enum TraitEdgeType { + VisualOnly = 0, + DeprecatedRankConnection = 1, + SufficientForAvailability = 2, + RequiredForAvailability = 3, + MutuallyExclusive = 4, + DeprecatedSelectionOption = 5 + } + enum TraitEdgeVisualStyle { + None = 0, + Straight = 1 + } + enum TraitNodeEntryType { + SpendHex = 0, + SpendSquare = 1, + SpendCircle = 2, + SpendSmallCircle = 3, + DeprecatedSelect = 4, + DragAndDrop = 5, + SpendDiamond = 6, + ProfPath = 7, + ProfPerk = 8, + ProfPathUnlock = 9 + } + enum TraitNodeFlag { + ShowMultipleIcons = 1, + NeverPurchasable = 2, + TestPositionLocked = 4, + TestGridPositioned = 8 + } + enum TraitNodeGroupFlag { + AvailableByDefault = 1 + } + enum TraitNodeType { + Single = 0, + Tiered = 1, + Selection = 2, + SubTreeSelection = 3 + } + enum TraitPointsOperationType { + None = -1, + Set = 0, + Multiply = 1 + } + enum TraitSystemFlag { + AllowMultipleLoadoutsPerTree = 1, + ShowSpendConfirmation = 2 + } + enum TraitTreeFlag { + CannotRefund = 1, + HideSingleRankNumbers = 2 + } + enum TransmogIllisionFlags { + HideUntilCollected = 1, + PlayerConditionGrantsOnLogin = 2 + } + enum TransmogSlot { + Head = 0, + Shoulder = 1, + Back = 2, + Chest = 3, + Body = 4, + Tabard = 5, + Wrist = 6, + Hand = 7, + Waist = 8, + Legs = 9, + Feet = 10, + Mainhand = 11, + Offhand = 12 + } + enum TransmogPendingType { + Apply = 0, + Revert = 1, + ToggleOn = 2, + ToggleOff = 3 + } + enum TransmogCameraVariation { + None = 0, + RightShoulder = 1, + CloakBackpack = 1 + } + enum TransmogCollectionType { + None = 0, + Head = 1, + Shoulder = 2, + Back = 3, + Chest = 4, + Shirt = 5, + Tabard = 6, + Wrist = 7, + Hands = 8, + Waist = 9, + Legs = 10, + Feet = 11, + Wand = 12, + OneHAxe = 13, + OneHSword = 14, + OneHMace = 15, + Dagger = 16, + Fist = 17, + Shield = 18, + Holdable = 19, + TwoHAxe = 20, + TwoHSword = 21, + TwoHMace = 22, + Staff = 23, + Polearm = 24, + Bow = 25, + Gun = 26, + Crossbow = 27, + Warglaives = 28, + Paired = 29 + } + enum TransmogModification { + Main = 0, + Secondary = 1 + } + enum TransmogSearchType { + Items = 1, + BaseSets = 2, + UsableSets = 3 + } + enum TransmogSource { + None = 0, + JournalEncounter = 1, + Quest = 2, + Vendor = 3, + WorldDrop = 4, + HiddenUntilCollected = 5, + CantCollect = 6, + Achievement = 7, + Profession = 8, + NotValidForTransmog = 9, + TradingPost = 10 + } + enum TransmogType { + Appearance = 0, + Illusion = 1 + } + enum TransmogUseErrorType { + None = 0, + PlayerCondition = 1, + Skill = 2, + Ability = 3, + Reputation = 4, + Holiday = 5, + HotRecheckFailed = 6, + Class = 7, + Race = 8, + Faction = 9, + ItemProficiency = 10 + } + enum EventToastDisplayType { + NormalSingleLine = 0, + NormalBlockText = 1, + NormalTitleAndSubTitle = 2, + NormalTextWithIcon = 3, + LargeTextWithIcon = 4, + NormalTextWithIconAndRarity = 5, + Scenario = 6, + ChallengeMode = 7, + ScenarioClickExpand = 8, + WeeklyRewardUnlock = 9, + WeeklyRewardUpgrade = 10, + FlightpointDiscovered = 11, + CapstoneUnlocked = 12, + SingleLineWithIcon = 13 + } + enum EventToastEventType { + LevelUp = 0, + LevelUpSpell = 1, + LevelUpDungeon = 2, + LevelUpRaid = 3, + LevelUpPvP = 4, + PetBattleNewAbility = 5, + PetBattleFinalRound = 6, + PetBattleCapture = 7, + BattlePetLevelChanged = 8, + BattlePetLevelUpAbility = 9, + QuestBossEmote = 10, + MythicPlusWeeklyRecord = 11, + QuestTurnedIn = 12, + WorldStateChange = 13, + Scenario = 14, + LevelUpOther = 15, + PlayerAuraAdded = 16, + PlayerAuraRemoved = 17, + SpellScript = 18, + CriteriaUpdated = 19, + PvPTierUpdate = 20, + SpellLearned = 21, + TreasureItem = 22, + WeeklyRewardUnlock = 23, + WeeklyRewardUpgrade = 24, + FlightpointDiscovered = 25 + } + enum EventToastFlags { + DisableRightClickDismiss = 1 + } + enum UIFrameType { + JailersTowerBuffs = 0 + } + enum ModelSceneSetting { + AlignLightToOrbitDelta = 1 + } + enum ModelSceneType { + MountJournal = 0, + PetJournalCard = 1, + ShopCard = 2, + EncounterJournal = 3, + PetJournalLoadout = 4, + ArtifactTier2 = 5, + ArtifactTier2ForgingScene = 6, + ArtifactTier2SlamEffect = 7, + CommentatorVictoryFanfare = 8, + ArtifactRelicTalentEffect = 9, + PvPWarModeOrb = 10, + PvPWarModeFire = 11, + PartyPose = 12, + AzeriteItemLevelUpToast = 13, + AzeritePowers = 14, + AzeriteRewardGlow = 15, + HeartOfAzeroth = 16, + WorldMapThreat = 17, + Soulbinds = 18, + JailersTowerAnimaGlow = 19 + } + enum UIModelSceneActorFlag { + Deprecated1 = 1, + UseCenterForOriginX = 2, + UseCenterForOriginY = 4, + UseCenterForOriginZ = 8 + } + enum ItemTryOnReason { + Success = 0, + WrongRace = 1, + NotEquippable = 2, + DataPending = 3 + } + enum UISystemType { + InGameNavigation = 0 + } + enum UITextureSliceMode { + Stretched = 0, + Tiled = 1 + } + enum CaptureBarWidgetFillDirectionType { + RightToLeft = 0, + LeftToRight = 1 + } + enum IconAndTextWidgetState { + Hidden = 0, + Shown = 1, + ShownWithDynamicIconFlashing = 2, + ShownWithDynamicIconNotFlashing = 3 + } + enum IconState { + Hidden = 0, + ShowState1 = 1, + ShowState2 = 2 + } + enum ItemDisplayTextDisplayStyle { + WorldQuestReward = 0, + ItemNameAndInfoText = 1, + ItemNameOnlyCentered = 2, + PlayerChoiceReward = 3 + } + enum ItemDisplayTooltipEnabledType { + Enabled = 0, + Disabled = 1 + } + enum MapPinAnimationType { + None = 0, + Pulse = 1 + } + enum SpellDisplayBorderColor { + None = 0, + Black = 1, + White = 2, + Red = 3, + Yellow = 4, + Orange = 5, + Purple = 6, + Green = 7, + Blue = 8 + } + enum SpellDisplayIconDisplayType { + Buff = 0, + Debuff = 1, + Circular = 2, + NoBorder = 3 + } + enum SpellDisplayTextShownStateType { + Shown = 0, + Hidden = 1 + } + enum SpellDisplayTint { + None = 0, + Red = 1 + } + enum StatusBarColorTintValue { + None = 0, + Black = 1, + White = 2, + Red = 3, + Yellow = 4, + Orange = 5, + Purple = 6, + Green = 7, + Blue = 8 + } + enum StatusBarOverrideBarTextShownType { + Never = 0, + Always = 1, + OnlyOnMouseover = 2, + OnlyNotOnMouseover = 3 + } + enum StatusBarValueTextType { + Hidden = 0, + Percentage = 1, + Value = 2, + Time = 3, + TimeShowOneLevelOnly = 4, + ValueOverMax = 5, + ValueOverMaxNormalized = 6 + } + enum TugOfWarMarkerArrowShownState { + Never = 0, + Always = 1, + FlashOnMove = 2 + } + enum TugOfWarStyleValue { + DefaultYellow = 0, + ArchaeologyBrown = 1 + } + enum UIWidgetBlendModeType { + Opaque = 0, + Additive = 1 + } + enum UIWidgetFlag { + UniversalWidget = 1 + } + enum UIWidgetFontType { + Normal = 0, + Shadow = 1, + Outline = 2 + } + enum UIWidgetModelSceneLayer { + None = 0, + Front = 1, + Back = 2 + } + enum UIWidgetMotionType { + Instant = 0, + Smooth = 1 + } + enum UIWidgetOverrideState { + Inactive = 0, + Active = 1 + } + enum UIWidgetRewardShownState { + Hidden = 0, + ShownEarned = 1, + ShownUnearned = 2 + } + enum UIWidgetTextSizeType { + Small12Pt = 0, + Medium16Pt = 1, + Large24Pt = 2, + Huge27Pt = 3, + Standard14Pt = 4, + Small10Pt = 5, + Small11Pt = 6, + Medium18Pt = 7, + Large20Pt = 8 + } + enum UIWidgetTextureAndTextSizeType { + Small = 0, + Medium = 1, + Large = 2, + Huge = 3, + Standard = 4, + Medium2 = 5 + } + enum UIWidgetTooltipLocation { + Default = 0, + BottomLeft = 1, + Left = 2, + TopLeft = 3, + Top = 4, + TopRight = 5, + Right = 6, + BottomRight = 7, + Bottom = 8 + } + enum UIWidgetUpdateAnimType { + None = 0, + Flash = 1 + } + enum WidgetAnimationType { + None = 0, + Fade = 1 + } + enum WidgetCurrencyClass { + Currency = 0, + Item = 1 + } + enum WidgetEnabledState { + Disabled = 0, + Yellow = 1, + Red = 2, + White = 3, + Green = 4, + Artifact = 5, + Black = 6, + BrightBlue = 7 + } + enum WidgetGlowAnimType { + None = 0, + Pulse = 1 + } + enum WidgetIconSizeType { + Small = 0, + Medium = 1, + Large = 2, + Standard = 3 + } + enum WidgetIconSourceType { + Spell = 0, + Item = 1 + } + enum WidgetOpacityType { + OneHundred = 0, + Ninety = 1, + Eighty = 2, + Seventy = 3, + Sixty = 4, + Fifty = 5, + Forty = 6, + Thirty = 7, + Twenty = 8, + Ten = 9, + Zero = 10 + } + enum WidgetShowGlowState { + HideGlow = 0, + ShowGlow = 1 + } + enum WidgetShownState { + Hidden = 0, + Shown = 1 + } + enum WidgetTextHorizontalAlignmentType { + Left = 0, + Center = 1, + Right = 2 + } + enum WidgetUnitPowerBarFlashMomentType { + FlashWhenMax = 0, + FlashWhenMin = 1, + NeverFlash = 2 + } + enum ZoneControlActiveState { + Inactive = 0, + Active = 1 + } + enum ZoneControlDangerFlashType { + ShowOnGoodStates = 0, + ShowOnBadStates = 1, + ShowOnBoth = 2, + ShowOnNeither = 3 + } + enum ZoneControlFillType { + SingleFillClockwise = 0, + SingleFillCounterClockwise = 1, + DoubleFillClockwise = 2, + DoubleFillCounterClockwise = 3 + } + enum ZoneControlLeadingEdgeType { + NoLeadingEdge = 0, + UseLeadingEdge = 1 + } + enum ZoneControlMode { + BothStatesAreGood = 0, + State1IsGood = 1, + State2IsGood = 2, + NeitherStateIsGood = 3 + } + enum ZoneControlState { + State1 = 0, + State2 = 1 + } + enum MapIconUIWidgetSetType { + Tooltip = 0, + BehindIcon = 1 + } + enum UIWidgetHorizontalDirection { + LeftToRight = 0, + RightToLeft = 1 + } + enum UIWidgetLayoutDirection { + Default = 0, + Vertical = 1, + Horizontal = 2, + Overlap = 3, + HorizontalForceNewRow = 4 + } + enum UIWidgetScale { + OneHundred = 0, + Ninty = 1, + Eighty = 2, + Seventy = 3, + Sixty = 4, + Fifty = 5, + OneHundredTen = 6, + OneHundredTwenty = 7, + OneHundredThirty = 8, + OneHundredForty = 9, + OneHundredFifty = 10, + OneHundredSixty = 11, + OneHundredSeventy = 12, + OneHundredEighty = 13, + OneHundredNinety = 14, + TwoHundred = 15 + } + enum UIWidgetSetLayoutDirection { + Vertical = 0, + Horizontal = 1, + Overlap = 2 + } + enum UIWidgetVisualizationType { + IconAndText = 0, + CaptureBar = 1, + StatusBar = 2, + DoubleStatusBar = 3, + IconTextAndBackground = 4, + DoubleIconAndText = 5, + StackedResourceTracker = 6, + IconTextAndCurrencies = 7, + TextWithState = 8, + HorizontalCurrencies = 9, + BulletTextList = 10, + ScenarioHeaderCurrenciesAndBackground = 11, + TextureAndText = 12, + SpellDisplay = 13, + DoubleStateIconRow = 14, + TextureAndTextRow = 15, + ZoneControl = 16, + CaptureZone = 17, + TextureWithAnimation = 18, + DiscreteProgressSteps = 19, + ScenarioHeaderTimer = 20, + TextColumnRow = 21, + Spacer = 22, + UnitPowerBar = 23, + FillUpFrames = 24, + TextWithSubtext = 25, + MapPinAnimation = 26, + ItemDisplay = 27, + TugOfWar = 28, + ScenarioHeaderDelves = 29 + } + enum UIModelSceneContext { + None = -1, + PerksProgram = 0 + } + enum UIModelSceneFlags { + SheatheWeapon = 1, + HideWeapon = 2, + Autodress = 4 + } + enum PhaseReason { + Phasing = 0, + Sharding = 1, + WarMode = 2, + ChromieTime = 3 + } + enum PvPUnitClassification { + FlagCarrierHorde = 0, + FlagCarrierAlliance = 1, + FlagCarrierNeutral = 2, + CartRunnerHorde = 3, + CartRunnerAlliance = 4, + AssassinHorde = 5, + AssassinAlliance = 6, + OrbCarrierBlue = 7, + OrbCarrierGreen = 8, + OrbCarrierOrange = 9, + OrbCarrierPurple = 10 + } + enum ScrubStringFlags { + None = 0, + TruncateNewLines = 1, + AllowBarCodes = 2, + StripControlCodes = 4 + } + enum ValidateNameResult { + Success = 0, + Failure = 1, + NoName = 2, + TooShort = 3, + TooLong = 4, + InvalidCharacter = 5, + MixedLanguages = 6, + Profane = 7, + Reserved = 8, + InvalidApostrophe = 9, + MultipleApostrophes = 10, + ThreeConsecutive = 11, + InvalidSpace = 12, + ConsecutiveSpaces = 13, + RussianConsecutiveSilentCharacters = 14, + RussianSilentCharacterAtBeginningOrEnd = 15, + DeclensionDoesntMatchBaseName = 16, + SpacesDisallowed = 17 + } + enum GraphicsValidationResult { + Supported = 0, + Illegal = 1, + Unsupported = 2, + Graphics = 3, + DualCore = 4, + QuadCore = 5, + CpuMem_2 = 6, + CpuMem_4 = 7, + CpuMem_8 = 8, + Needs_5_0 = 9, + Needs_6_0 = 10, + NeedsRt = 11, + NeedsDx12 = 12, + NeedsDx12Vrs2 = 13, + NeedsAppleGpu = 14, + NeedsAmdGpu = 15, + NeedsIntelGpu = 16, + NeedsNvidiaGpu = 17, + NeedsQualcommGpu = 18, + NeedsMacOs_10_13 = 19, + NeedsMacOs_10_14 = 20, + NeedsMacOs_10_15 = 21, + NeedsMacOs_11_0 = 22, + NeedsMacOs_12_0 = 23, + NeedsMacOs_13_0 = 24, + NeedsWindows_10 = 25, + NeedsWindows_11 = 26, + MacOsUnsupported = 27, + WindowsUnsupported = 28, + LegacyUnsupported = 29, + Dx11Unsupported = 30, + Dx12Win7Unsupported = 31, + RemoteDesktopUnsupported = 32, + WineUnsupported = 33, + NvapiWineUnsupported = 34, + AppleGpuUnsupported = 35, + AmdGpuUnsupported = 36, + IntelGpuUnsupported = 37, + NvidiaGpuUnsupported = 38, + QualcommGpuUnsupported = 39, + GpuDriver = 40, + CompatMode = 41, + Unknown = 42 + } + enum VignetteType { + Normal = 0, + PvPBounty = 1, + Torghast = 2, + Treasure = 3, + FyrakkFlight = 4 + } + enum CommunicationMode { + PushToTalk = 0, + OpenMic = 1 + } + enum VoiceChannelErrorReason { + Unknown = 0, + IsBattleNetChannel = 1 + } + enum VoiceChatStatusCode { + Success = 0, + OperationPending = 1, + TooManyRequests = 2, + LoginProhibited = 3, + ClientNotInitialized = 4, + ClientNotLoggedIn = 5, + ClientAlreadyLoggedIn = 6, + ChannelNameTooShort = 7, + ChannelNameTooLong = 8, + ChannelAlreadyExists = 9, + AlreadyInChannel = 10, + TargetNotFound = 11, + Failure = 12, + ServiceLost = 13, + UnableToLaunchProxy = 14, + ProxyConnectionTimeOut = 15, + ProxyConnectionUnableToConnect = 16, + ProxyConnectionUnexpectedDisconnect = 17, + Disabled = 18, + UnsupportedChatChannelType = 19, + InvalidCommunityStream = 20, + PlayerSilenced = 21, + PlayerVoiceChatParentalDisabled = 22, + InvalidInputDevice = 23, + InvalidOutputDevice = 24 + } + enum VoiceTtsDestination { + RemoteTransmission = 0, + LocalPlayback = 1, + RemoteTransmissionWithLocalPlayback = 2, + QueuedRemoteTransmission = 3, + QueuedLocalPlayback = 4, + QueuedRemoteTransmissionWithLocalPlayback = 5, + ScreenReader = 6 + } + enum VoiceTtsStatusCode { + Success = 0, + InvalidEngineType = 1, + EngineAllocationFailed = 2, + NotSupported = 3, + MaxCharactersExceeded = 4, + UtteranceBelowMinimumDuration = 5, + InputTextEnqueued = 6, + SdkNotInitialized = 7, + DestinationQueueFull = 8, + EnqueueNotNecessary = 9, + UtteranceNotFound = 10, + ManagerNotFound = 11, + InvalidArgument = 12, + InternalError = 13 + } + enum CampaignState { + Invalid = 0, + Complete = 1, + InProgress = 2, + Stalled = 3 + } + enum ConquestProgressBarDisplayType { + FirstChest = 0, + AdditionalChest = 1, + Seasonal = 2 + } + enum WoWEntitlementType { + Item = 0, + Mount = 1, + Battlepet = 2, + Toy = 3, + Appearance = 4, + AppearanceSet = 5, + GameTime = 6, + Title = 7, + Illusion = 8, + Invalid = 9 + } +} + +export {} diff --git a/src/types/Wow/events.d.ts b/src/types/Wow/events.d.ts new file mode 100644 index 0000000..0e21f0a --- /dev/null +++ b/src/types/Wow/events.d.ts @@ -0,0 +1,5121 @@ +/* eslint-disable @typescript-eslint/no-duplicate-enum-values */ +/* eslint-disable @typescript-eslint/ban-types */ +/** @noSelfInFile **/ + +declare global { + interface WowEventPayload { + ACHIEVEMENT_EARNED: LuaMultiReturn< + [achievementID: number, alreadyEarned: boolean | undefined] + > + + ACHIEVEMENT_PLAYER_NAME: LuaMultiReturn<[achievementID: number]> + + ACHIEVEMENT_SEARCH_UPDATED: undefined + + CRITERIA_COMPLETE: LuaMultiReturn<[criteriaID: number]> + + CRITERIA_EARNED: LuaMultiReturn<[achievementID: number, description: string]> + + CRITERIA_UPDATE: undefined + + INSPECT_ACHIEVEMENT_READY: LuaMultiReturn<[guid: string]> + + RECEIVED_ACHIEVEMENT_LIST: undefined + + RECEIVED_ACHIEVEMENT_MEMBER_LIST: LuaMultiReturn<[achievementID: number]> + + TRACKED_ACHIEVEMENT_LIST_CHANGED: LuaMultiReturn< + [achievementID: number | undefined, added: boolean | undefined] + > + + TRACKED_ACHIEVEMENT_UPDATE: LuaMultiReturn< + [ + achievementID: number, + criteriaID: number | undefined, + elapsed: number | undefined, + duration: number | undefined + ] + > + + ACTION_RANGE_CHECK_UPDATE: LuaMultiReturn< + [slot: number, isInRange: boolean, checksRange: boolean] + > + + ACTION_USABLE_CHANGED: LuaMultiReturn<[changes: undefined[]]> + + ACTIONBAR_HIDEGRID: undefined + + ACTIONBAR_PAGE_CHANGED: undefined + + ACTIONBAR_SHOW_BOTTOMLEFT: undefined + + ACTIONBAR_SHOWGRID: undefined + + ACTIONBAR_SLOT_CHANGED: LuaMultiReturn<[slot: number]> + + ACTIONBAR_UPDATE_COOLDOWN: undefined + + ACTIONBAR_UPDATE_STATE: undefined + + ACTIONBAR_UPDATE_USABLE: undefined + + PET_BAR_UPDATE: undefined + + UPDATE_BONUS_ACTIONBAR: undefined + + UPDATE_EXTRA_ACTIONBAR: undefined + + UPDATE_MULTI_CAST_ACTIONBAR: undefined + + UPDATE_OVERRIDE_ACTIONBAR: undefined + + ADDON_LOADED: LuaMultiReturn<[addOnName: string, containsBindings: boolean]> + + ADDONS_UNLOADING: LuaMultiReturn<[closingClient: boolean]> + + SAVED_VARIABLES_TOO_LARGE: LuaMultiReturn<[addOnName: string]> + + AJ_DUNGEON_ACTION: LuaMultiReturn<[lfgDungeonID: number]> + + AJ_OPEN: undefined + + AJ_OPEN_COLLECTIONS_ACTION: undefined + + AJ_PVE_LFG_ACTION: undefined + + AJ_PVP_ACTION: LuaMultiReturn<[battleMasterListID: number]> + + AJ_PVP_LFG_ACTION: undefined + + AJ_PVP_RBG_ACTION: undefined + + AJ_PVP_SKIRMISH_ACTION: undefined + + AJ_QUEST_LOG_OPEN: LuaMultiReturn<[questID: number, uiMapID: number]> + + AJ_RAID_ACTION: LuaMultiReturn<[lfgDungeonID: number]> + + AJ_REFRESH_DISPLAY: LuaMultiReturn<[newAdventureNotice: boolean]> + + AJ_REWARD_DATA_RECEIVED: undefined + + ADVENTURE_MAP_CLOSE: undefined + + ADVENTURE_MAP_OPEN: LuaMultiReturn<[followerTypeID: number]> + + ADVENTURE_MAP_QUEST_UPDATE: LuaMultiReturn<[questID: number]> + + ADVENTURE_MAP_UPDATE_INSETS: undefined + + ADVENTURE_MAP_UPDATE_POIS: undefined + + ALLIED_RACE_CLOSE: undefined + + ALLIED_RACE_OPEN: LuaMultiReturn<[raceID: number]> + + ANIMA_DIVERSION_CLOSE: undefined + + ANIMA_DIVERSION_OPEN: LuaMultiReturn<[info: AnimaDiversionFrameInfo]> + + ANIMA_DIVERSION_TALENT_UPDATED: undefined + + AREA_POIS_UPDATED: undefined + + ARTIFACT_CLOSE: undefined + + ARTIFACT_ENDGAME_REFUND: LuaMultiReturn< + [ + numRefundedPowers: number, + refundedTier: string, + bagOrSlotIndex: number, + slotIndex: number | undefined + ] + > + + ARTIFACT_RELIC_FORGE_CLOSE: undefined + + ARTIFACT_RELIC_FORGE_PREVIEW_RELIC_CHANGED: undefined + + ARTIFACT_RELIC_FORGE_UPDATE: undefined + + ARTIFACT_RELIC_INFO_RECEIVED: undefined + + ARTIFACT_RESPEC_PROMPT: undefined + + ARTIFACT_TIER_CHANGED: LuaMultiReturn< + [newTier: number, bagOrSlotIndex: number, slotIndex: number | undefined] + > + + ARTIFACT_UPDATE: LuaMultiReturn<[newItem: boolean]> + + ARTIFACT_XP_UPDATE: undefined + + AUCTION_CANCELED: LuaMultiReturn<[auctionID: number]> + + AUCTION_HOUSE_AUCTION_CREATED: LuaMultiReturn<[auctionID: number]> + + AUCTION_HOUSE_AUCTIONS_EXPIRED: LuaMultiReturn<[auctionID: number]> + + AUCTION_HOUSE_BROWSE_FAILURE: undefined + + AUCTION_HOUSE_BROWSE_RESULTS_ADDED: LuaMultiReturn<[addedBrowseResults: undefined[]]> + + AUCTION_HOUSE_BROWSE_RESULTS_UPDATED: undefined + + AUCTION_HOUSE_CLOSED: undefined + + AUCTION_HOUSE_DISABLED: undefined + + AUCTION_HOUSE_FAVORITES_UPDATED: undefined + + AUCTION_HOUSE_ITEM_DELIVERY_DELAY_UPDATE: LuaMultiReturn< + [purchasedItemDeliveryDelay: number, cancelledItemDeliveryDelay: number] + > + + AUCTION_HOUSE_NEW_BID_RECEIVED: LuaMultiReturn<[auctionID: number]> + + AUCTION_HOUSE_NEW_RESULTS_RECEIVED: LuaMultiReturn<[itemKey: ItemKey | undefined]> + + AUCTION_HOUSE_POST_ERROR: undefined + + AUCTION_HOUSE_POST_WARNING: undefined + + AUCTION_HOUSE_PURCHASE_COMPLETED: LuaMultiReturn<[auctionID: number]> + + AUCTION_HOUSE_SCRIPT_DEPRECATED: undefined + + AUCTION_HOUSE_SHOW: undefined + + AUCTION_HOUSE_SHOW_COMMODITY_WON_NOTIFICATION: LuaMultiReturn< + [commodityName: string, commodityQuantity: number] + > + + AUCTION_HOUSE_SHOW_ERROR: LuaMultiReturn<[error: AuctionHouseError]> + + AUCTION_HOUSE_SHOW_FORMATTED_NOTIFICATION: LuaMultiReturn< + [ + notification: AuctionHouseNotification, + text: string, + auctionID: number | undefined + ] + > + + AUCTION_HOUSE_SHOW_NOTIFICATION: LuaMultiReturn< + [notification: AuctionHouseNotification] + > + + AUCTION_HOUSE_THROTTLED_MESSAGE_DROPPED: undefined + + AUCTION_HOUSE_THROTTLED_MESSAGE_QUEUED: undefined + + AUCTION_HOUSE_THROTTLED_MESSAGE_RESPONSE_RECEIVED: undefined + + AUCTION_HOUSE_THROTTLED_MESSAGE_SENT: undefined + + AUCTION_HOUSE_THROTTLED_SYSTEM_READY: undefined + + AUCTION_MULTISELL_FAILURE: undefined + + AUCTION_MULTISELL_START: LuaMultiReturn<[numRepetitions: number]> + + AUCTION_MULTISELL_UPDATE: LuaMultiReturn< + [createdCount: number, totalToCreate: number] + > + + BID_ADDED: LuaMultiReturn<[bidID: number]> + + BIDS_UPDATED: undefined + + COMMODITY_PRICE_UNAVAILABLE: undefined + + COMMODITY_PRICE_UPDATED: LuaMultiReturn< + [updatedUnitPrice: number, updatedTotalPrice: number] + > + + COMMODITY_PURCHASE_FAILED: undefined + + COMMODITY_PURCHASE_SUCCEEDED: undefined + + COMMODITY_PURCHASED: LuaMultiReturn<[itemID: number, quantity: number]> + + COMMODITY_SEARCH_RESULTS_ADDED: LuaMultiReturn<[itemID: number]> + + COMMODITY_SEARCH_RESULTS_RECEIVED: undefined + + COMMODITY_SEARCH_RESULTS_UPDATED: LuaMultiReturn<[itemID: number]> + + EXTRA_BROWSE_INFO_RECEIVED: LuaMultiReturn<[itemID: number]> + + ITEM_KEY_ITEM_INFO_RECEIVED: LuaMultiReturn<[itemID: number]> + + ITEM_PURCHASED: LuaMultiReturn<[itemID: number]> + + ITEM_SEARCH_RESULTS_ADDED: LuaMultiReturn<[itemKey: ItemKey]> + + ITEM_SEARCH_RESULTS_UPDATED: LuaMultiReturn< + [itemKey: ItemKey, newAuctionID: number | undefined] + > + + OWNED_AUCTION_BIDDER_INFO_RECEIVED: LuaMultiReturn< + [auctionID: number, bidderName: string] + > + + OWNED_AUCTIONS_UPDATED: undefined + + REPLICATE_ITEM_LIST_UPDATE: undefined + + AZERITE_EMPOWERED_ITEM_EQUIPPED_STATUS_CHANGED: LuaMultiReturn< + [isHeartEquipped: boolean] + > + + AZERITE_EMPOWERED_ITEM_SELECTION_UPDATED: LuaMultiReturn< + [azeriteEmpoweredItemLocation: ItemLocationMixin] + > + + AZERITE_ESSENCE_ACTIVATED: LuaMultiReturn< + [slot: AzeriteEssenceSlot, essenceID: number] + > + + AZERITE_ESSENCE_ACTIVATION_FAILED: LuaMultiReturn< + [slot: AzeriteEssenceSlot, essenceID: number] + > + + AZERITE_ESSENCE_CHANGED: LuaMultiReturn<[essenceID: number, newRank: number]> + + AZERITE_ESSENCE_FORGE_CLOSE: undefined + + AZERITE_ESSENCE_FORGE_OPEN: undefined + + AZERITE_ESSENCE_MILESTONE_UNLOCKED: LuaMultiReturn<[milestoneID: number]> + + AZERITE_ESSENCE_UPDATE: undefined + + PENDING_AZERITE_ESSENCE_CHANGED: LuaMultiReturn<[essenceID: number | undefined]> + + AZERITE_ITEM_ENABLED_STATE_CHANGED: LuaMultiReturn<[enabled: boolean]> + + AZERITE_ITEM_EXPERIENCE_CHANGED: LuaMultiReturn< + [ + azeriteItemLocation: ItemLocationMixin, + oldExperienceAmount: number, + newExperienceAmount: number + ] + > + + AZERITE_ITEM_POWER_LEVEL_CHANGED: LuaMultiReturn< + [ + azeriteItemLocation: ItemLocationMixin, + oldPowerLevel: number, + newPowerLevel: number, + unlockedEmpoweredItemsInfo: undefined[], + azeriteItemID: number + ] + > + + BANK_BAG_SLOT_FLAGS_UPDATED: LuaMultiReturn<[slot: number]> + + BANK_TAB_SETTINGS_UPDATED: LuaMultiReturn<[bankType: BankType]> + + BANK_TABS_CHANGED: LuaMultiReturn<[bankType: BankType]> + + BANKFRAME_CLOSED: undefined + + BANKFRAME_OPENED: undefined + + PLAYER_ACCOUNT_BANK_TAB_SLOTS_CHANGED: LuaMultiReturn<[slot: number]> + + PLAYERBANKBAGSLOTS_CHANGED: undefined + + PLAYERBANKSLOTS_CHANGED: LuaMultiReturn<[slot: number]> + + PLAYERREAGENTBANKSLOTS_CHANGED: LuaMultiReturn<[slot: number]> + + REAGENTBANK_PURCHASED: undefined + + REAGENTBANK_UPDATE: undefined + + BARBER_SHOP_APPEARANCE_APPLIED: undefined + + BARBER_SHOP_CAMERA_VALUES_UPDATED: undefined + + BARBER_SHOP_CLOSE: undefined + + BARBER_SHOP_COST_UPDATE: undefined + + BARBER_SHOP_FORCE_CUSTOMIZATIONS_UPDATE: undefined + + BARBER_SHOP_OPEN: undefined + + BARBER_SHOP_RESULT: LuaMultiReturn<[success: boolean]> + + PET_BATTLE_ABILITY_CHANGED: LuaMultiReturn< + [owner: number, petIndex: number, abilityID: number] + > + + PET_BATTLE_ACTION_SELECTED: undefined + + PET_BATTLE_AURA_APPLIED: LuaMultiReturn< + [owner: number, petIndex: number, auraInstanceID: number] + > + + PET_BATTLE_AURA_CANCELED: LuaMultiReturn< + [owner: number, petIndex: number, auraInstanceID: number] + > + + PET_BATTLE_AURA_CHANGED: LuaMultiReturn< + [owner: number, petIndex: number, auraInstanceID: number] + > + + PET_BATTLE_CAPTURED: LuaMultiReturn<[owner: number, petIndex: number]> + + PET_BATTLE_CLOSE: undefined + + PET_BATTLE_FINAL_ROUND: LuaMultiReturn<[owner: number]> + + PET_BATTLE_HEALTH_CHANGED: LuaMultiReturn< + [owner: number, petIndex: number, healthChange: number] + > + + PET_BATTLE_LEVEL_CHANGED: LuaMultiReturn< + [owner: number, petIndex: number, newLevel: number] + > + + PET_BATTLE_MAX_HEALTH_CHANGED: LuaMultiReturn< + [owner: number, petIndex: number, healthChange: number] + > + + PET_BATTLE_OPENING_DONE: undefined + + PET_BATTLE_OPENING_START: undefined + + PET_BATTLE_OVER: undefined + + PET_BATTLE_OVERRIDE_ABILITY: LuaMultiReturn<[abilityIndex: number]> + + PET_BATTLE_PET_CHANGED: LuaMultiReturn<[owner: number]> + + PET_BATTLE_PET_ROUND_PLAYBACK_COMPLETE: LuaMultiReturn<[roundNumber: number]> + + PET_BATTLE_PET_ROUND_RESULTS: LuaMultiReturn<[roundNumber: number]> + + PET_BATTLE_PET_TYPE_CHANGED: LuaMultiReturn< + [owner: number, petIndex: number, stateValue: number] + > + + PET_BATTLE_PVP_DUEL_REQUEST_CANCEL: undefined + + PET_BATTLE_PVP_DUEL_REQUESTED: LuaMultiReturn<[fullName: string]> + + PET_BATTLE_QUEUE_PROPOSAL_ACCEPTED: undefined + + PET_BATTLE_QUEUE_PROPOSAL_DECLINED: undefined + + PET_BATTLE_QUEUE_PROPOSE_MATCH: undefined + + PET_BATTLE_QUEUE_STATUS: undefined + + PET_BATTLE_XP_CHANGED: LuaMultiReturn< + [owner: number, petIndex: number, xpChange: number] + > + + BEHAVIORAL_NOTIFICATION: LuaMultiReturn<[notificationType: string, dbId: string]> + + BLACK_MARKET_BID_RESULT: LuaMultiReturn<[marketID: number, resultCode: number]> + + BLACK_MARKET_CLOSE: undefined + + BLACK_MARKET_ITEM_UPDATE: undefined + + BLACK_MARKET_OPEN: undefined + + BLACK_MARKET_OUTBID: LuaMultiReturn<[marketID: number, itemID: number]> + + BLACK_MARKET_UNAVAILABLE: undefined + + BLACK_MARKET_WON: LuaMultiReturn<[marketID: number, itemID: number]> + + SIMPLE_BROWSER_WEB_ERROR: LuaMultiReturn<[errorCode: number]> + + SIMPLE_BROWSER_WEB_PROXY_FAILED: undefined + + SIMPLE_CHECKOUT_CLOSED: undefined + + CALENDAR_ACTION_PENDING: LuaMultiReturn<[pending: boolean]> + + CALENDAR_CLOSE_EVENT: undefined + + CALENDAR_EVENT_ALARM: LuaMultiReturn<[title: string, hour: number, minute: number]> + + CALENDAR_NEW_EVENT: LuaMultiReturn<[isCopy: boolean]> + + CALENDAR_OPEN_EVENT: LuaMultiReturn<[calendarType: string]> + + CALENDAR_UPDATE_ERROR: LuaMultiReturn<[errorReason: string]> + + CALENDAR_UPDATE_ERROR_WITH_COUNT: LuaMultiReturn<[errorReason: string, count: number]> + + CALENDAR_UPDATE_ERROR_WITH_PLAYER_NAME: LuaMultiReturn< + [errorReason: string, playerName: string] + > + + CALENDAR_UPDATE_EVENT: undefined + + CALENDAR_UPDATE_EVENT_LIST: undefined + + CALENDAR_UPDATE_GUILD_EVENTS: undefined + + CALENDAR_UPDATE_INVITE_LIST: LuaMultiReturn<[hasCompleteList: boolean | undefined]> + + CALENDAR_UPDATE_PENDING_INVITES: undefined + + CHALLENGE_MODE_COMPLETED: undefined + + CHALLENGE_MODE_DEATH_COUNT_UPDATED: undefined + + CHALLENGE_MODE_KEYSTONE_RECEPTABLE_OPEN: undefined + + CHALLENGE_MODE_KEYSTONE_SLOTTED: LuaMultiReturn<[keystoneID: number]> + + CHALLENGE_MODE_LEADERS_UPDATE: undefined + + CHALLENGE_MODE_MAPS_UPDATE: undefined + + CHALLENGE_MODE_MEMBER_INFO_UPDATED: undefined + + CHALLENGE_MODE_RESET: LuaMultiReturn<[mapID: number]> + + CHALLENGE_MODE_START: LuaMultiReturn<[mapID: number]> + + ALTERNATIVE_DEFAULT_LANGUAGE_CHANGED: undefined + + BN_CHAT_MSG_ADDON: LuaMultiReturn< + [prefix: string, text: string, channel: string, senderID: number] + > + + CAN_LOCAL_WHISPER_TARGET_RESPONSE: LuaMultiReturn< + [whisperTarget: string, status: ChatWhisperTargetStatus] + > + + CAN_PLAYER_SPEAK_LANGUAGE_CHANGED: LuaMultiReturn< + [languageId: number, canSpeakLanguage: boolean] + > + + CHANNEL_COUNT_UPDATE: LuaMultiReturn<[displayIndex: number, count: number]> + + CHANNEL_FLAGS_UPDATED: LuaMultiReturn<[displayIndex: number]> + + CHANNEL_INVITE_REQUEST: LuaMultiReturn<[channelID: string, name: string]> + + CHANNEL_LEFT: LuaMultiReturn<[chatChannelID: number, name: string]> + + CHANNEL_PASSWORD_REQUEST: LuaMultiReturn<[channelID: string]> + + CHANNEL_ROSTER_UPDATE: LuaMultiReturn<[displayIndex: number, count: number]> + + CHANNEL_UI_UPDATE: undefined + + CHAT_COMBAT_MSG_ARENA_POINTS_GAIN: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_ACHIEVEMENT: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_ADDON: LuaMultiReturn< + [ + prefix: string, + text: string, + channel: string, + sender: string, + target: string, + zoneChannelID: number, + localID: number, + name: string, + instanceID: number + ] + > + + CHAT_MSG_ADDON_LOGGED: LuaMultiReturn< + [ + prefix: string, + text: string, + channel: string, + sender: string, + target: string, + zoneChannelID: number, + localID: number, + name: string, + instanceID: number + ] + > + + CHAT_MSG_AFK: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_BG_SYSTEM_ALLIANCE: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_BG_SYSTEM_HORDE: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_BG_SYSTEM_NEUTRAL: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_BN: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_BN_INLINE_TOAST_ALERT: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_BN_INLINE_TOAST_BROADCAST: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_BN_INLINE_TOAST_BROADCAST_INFORM: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_BN_INLINE_TOAST_CONVERSATION: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_BN_WHISPER: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_BN_WHISPER_INFORM: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_BN_WHISPER_PLAYER_OFFLINE: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_CHANNEL: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_CHANNEL_JOIN: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_CHANNEL_LEAVE: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_CHANNEL_LEAVE_PREVENTED: LuaMultiReturn<[channelName: string]> + + CHAT_MSG_CHANNEL_LIST: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_CHANNEL_NOTICE: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_CHANNEL_NOTICE_USER: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_COMBAT_FACTION_CHANGE: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_COMBAT_HONOR_GAIN: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_COMBAT_MISC_INFO: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_COMBAT_XP_GAIN: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_COMMUNITIES_CHANNEL: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_CURRENCY: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_DND: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_EMOTE: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_FILTERED: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_GUILD: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_GUILD_ACHIEVEMENT: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_GUILD_ITEM_LOOTED: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_IGNORED: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_INSTANCE_CHAT: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_INSTANCE_CHAT_LEADER: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_LOOT: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_MONEY: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_MONSTER_EMOTE: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_MONSTER_PARTY: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_MONSTER_SAY: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_MONSTER_WHISPER: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_MONSTER_YELL: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_OFFICER: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_OPENING: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_PARTY: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_PARTY_LEADER: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_PET_BATTLE_COMBAT_LOG: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_PET_BATTLE_INFO: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_PET_INFO: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_PING: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_RAID: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_RAID_BOSS_EMOTE: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_RAID_BOSS_WHISPER: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_RAID_LEADER: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_RAID_WARNING: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_RESTRICTED: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_SAY: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_SKILL: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_SYSTEM: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_TARGETICONS: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_TEXT_EMOTE: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_TRADESKILLS: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_VOICE_TEXT: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_WHISPER: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_WHISPER_INFORM: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_MSG_YELL: LuaMultiReturn< + [ + text: string, + playerName: string, + languageName: string, + channelName: string, + playerName2: string, + specialFlags: string, + zoneChannelID: number, + channelIndex: number, + channelBaseName: string, + languageID: number, + lineID: number, + guid: string, + bnSenderID: number, + isMobile: boolean, + isSubtitle: boolean, + hideSenderInLetterbox: boolean, + supressRaidIcons: boolean + ] + > + + CHAT_REGIONAL_SEND_FAILED: undefined + + CHAT_REGIONAL_STATUS_CHANGED: LuaMultiReturn<[isServiceAvailable: boolean]> + + CHAT_SERVER_DISCONNECTED: LuaMultiReturn<[isInitialMessage: boolean | undefined]> + + CHAT_SERVER_RECONNECTED: undefined + + CLEAR_BOSS_EMOTES: undefined + + DAILY_RESET_INSTANCE_WELCOME: LuaMultiReturn<[mapname: string, timeLeft: number]> + + INSTANCE_RESET_WARNING: LuaMultiReturn<[warningMessage: string, timeLeft: number]> + + LANGUAGE_LIST_CHANGED: undefined + + NOTIFY_CHAT_SUPPRESSED: undefined + + QUEST_BOSS_EMOTE: LuaMultiReturn< + [ + text: string, + playerName: string, + displayTime: number, + enableBossEmoteWarningSound: boolean + ] + > + + RAID_BOSS_EMOTE: LuaMultiReturn< + [ + text: string, + playerName: string, + displayTime: number, + enableBossEmoteWarningSound: boolean + ] + > + + RAID_BOSS_WHISPER: LuaMultiReturn< + [ + text: string, + playerName: string, + displayTime: number, + enableBossEmoteWarningSound: boolean + ] + > + + RAID_INSTANCE_WELCOME: LuaMultiReturn< + [mapname: string, timeLeft: number, locked: number, extended: number] + > + + UPDATE_CHAT_COLOR: LuaMultiReturn<[name: string, r: number, g: number, b: number]> + + UPDATE_CHAT_COLOR_NAME_BY_CLASS: LuaMultiReturn< + [name: string, colorNameByClass: boolean] + > + + UPDATE_CHAT_WINDOWS: undefined + + UPDATE_FLOATING_CHAT_WINDOWS: undefined + + CINEMATIC_START: LuaMultiReturn< + [canBeCancelled: boolean, forcedAspectRatio: CameraModeAspectRatio] + > + + CINEMATIC_STOP: undefined + + HIDE_SUBTITLE: undefined + + PLAY_MOVIE: LuaMultiReturn<[movieID: number]> + + SHOW_SUBTITLE: LuaMultiReturn<[subtitle: string, sender: string | undefined]> + + STOP_MOVIE: undefined + + ACTIVE_COMBAT_CONFIG_CHANGED: LuaMultiReturn<[configID: number]> + + SELECTED_LOADOUT_CHANGED: undefined + + SPECIALIZATION_CHANGE_CAST_FAILED: undefined + + STARTER_BUILD_ACTIVATION_FAILED: undefined + + CLASS_TRIAL_TIMER_START: undefined + + CLASS_TRIAL_UPGRADE_COMPLETE: undefined + + CLICKBINDINGS_SET_HIGHLIGHTS_SHOWN: LuaMultiReturn<[showHighlights: boolean]> + + CLIENT_SCENE_CLOSED: undefined + + CLIENT_SCENE_OPENED: LuaMultiReturn<[sceneType: ClientSceneType]> + + AVATAR_LIST_UPDATED: LuaMultiReturn<[clubType: ClubType]> + + CLUB_ADDED: LuaMultiReturn<[clubId: string]> + + CLUB_ERROR: LuaMultiReturn< + [action: ClubActionType, error: ClubErrorType, clubType: ClubType] + > + + CLUB_INVITATION_ADDED_FOR_SELF: LuaMultiReturn<[invitation: ClubSelfInvitationInfo]> + + CLUB_INVITATION_REMOVED_FOR_SELF: LuaMultiReturn<[invitationId: string]> + + CLUB_INVITATIONS_RECEIVED_FOR_CLUB: LuaMultiReturn<[clubId: string]> + + CLUB_MEMBER_ADDED: LuaMultiReturn<[clubId: string, memberId: number]> + + CLUB_MEMBER_PRESENCE_UPDATED: LuaMultiReturn< + [clubId: string, memberId: number, presence: ClubMemberPresence] + > + + CLUB_MEMBER_REMOVED: LuaMultiReturn<[clubId: string, memberId: number]> + + CLUB_MEMBER_ROLE_UPDATED: LuaMultiReturn< + [clubId: string, memberId: number, roleId: number] + > + + CLUB_MEMBER_UPDATED: LuaMultiReturn<[clubId: string, memberId: number]> + + CLUB_MESSAGE_ADDED: LuaMultiReturn< + [clubId: string, streamId: string, messageId: ClubMessageIdentifier] + > + + CLUB_MESSAGE_HISTORY_RECEIVED: LuaMultiReturn< + [ + clubId: string, + streamId: string, + downloadedRange: ClubMessageRange, + contiguousRange: ClubMessageRange + ] + > + + CLUB_MESSAGE_UPDATED: LuaMultiReturn< + [clubId: string, streamId: string, messageId: ClubMessageIdentifier] + > + + CLUB_REMOVED: LuaMultiReturn<[clubId: string]> + + CLUB_REMOVED_MESSAGE: LuaMultiReturn< + [clubName: string, clubRemovedReason: ClubRemovedReason] + > + + CLUB_SELF_MEMBER_ROLE_UPDATED: LuaMultiReturn<[clubId: string, roleId: number]> + + CLUB_STREAM_ADDED: LuaMultiReturn<[clubId: string, streamId: string]> + + CLUB_STREAM_REMOVED: LuaMultiReturn<[clubId: string, streamId: string]> + + CLUB_STREAM_SUBSCRIBED: LuaMultiReturn<[clubId: string, streamId: string]> + + CLUB_STREAM_UNSUBSCRIBED: LuaMultiReturn<[clubId: string, streamId: string]> + + CLUB_STREAM_UPDATED: LuaMultiReturn<[clubId: string, streamId: string]> + + CLUB_STREAMS_LOADED: LuaMultiReturn<[clubId: string]> + + CLUB_TICKET_CREATED: LuaMultiReturn<[clubId: string, ticketInfo: ClubTicketInfo]> + + CLUB_TICKET_RECEIVED: LuaMultiReturn<[ticket: string]> + + CLUB_TICKETS_RECEIVED: LuaMultiReturn<[clubId: string]> + + CLUB_UPDATED: LuaMultiReturn<[clubId: string]> + + INITIAL_CLUBS_LOADED: undefined + + STREAM_VIEW_MARKER_UPDATED: LuaMultiReturn< + [clubId: string, streamId: string, lastReadTime: number | undefined] + > + + CLUB_FINDER_APPLICANT_INVITE_RECIEVED: LuaMultiReturn<[clubFinderGUIDs: string[]]> + + CLUB_FINDER_APPLICATIONS_UPDATED: LuaMultiReturn< + [type: ClubFinderRequestType, clubFinderGUIDs: string[]] + > + + CLUB_FINDER_CAN_WHISPER_APPLICANT: LuaMultiReturn<[applicant: string]> + + CLUB_FINDER_CLUB_LIST_RETURNED: LuaMultiReturn<[type: ClubFinderRequestType]> + + CLUB_FINDER_CLUB_REPORTED: LuaMultiReturn< + [type: ClubFinderRequestType, clubFinderGUID: string] + > + + CLUB_FINDER_COMMUNITY_OFFLINE_JOIN: LuaMultiReturn<[clubId: string]> + + CLUB_FINDER_ENABLED_OR_DISABLED: undefined + + CLUB_FINDER_GUILD_REALM_NAME_UPDATED: LuaMultiReturn< + [clubFinderGUID: string, realmName: string] + > + + CLUB_FINDER_LINKED_CLUB_RETURNED: LuaMultiReturn<[clubInfo: RecruitingClubInfo]> + + CLUB_FINDER_MEMBERSHIP_LIST_CHANGED: undefined + + CLUB_FINDER_PLAYER_PENDING_LIST_RECIEVED: LuaMultiReturn< + [type: ClubFinderRequestType] + > + + CLUB_FINDER_POST_UPDATED: LuaMultiReturn<[clubFinderGUIDs: string[]]> + + CLUB_FINDER_RECRUIT_LIST_CHANGED: undefined + + CLUB_FINDER_RECRUITMENT_POST_RETURNED: LuaMultiReturn<[type: ClubFinderRequestType]> + + CLUB_FINDER_RECRUITS_UPDATED: LuaMultiReturn<[type: ClubFinderRequestType]> + + COMBAT_LOG_EVENT: undefined + + COMBAT_LOG_EVENT_UNFILTERED: undefined + + COMBAT_TEXT_UPDATE: LuaMultiReturn<[combatTextType: string]> + + COMMENTATOR_ENTER_WORLD: undefined + + COMMENTATOR_HISTORY_FLUSHED: undefined + + COMMENTATOR_IMMEDIATE_FOV_UPDATE: LuaMultiReturn<[fov: number]> + + COMMENTATOR_MAP_UPDATE: undefined + + COMMENTATOR_PLAYER_NAME_OVERRIDE_UPDATE: LuaMultiReturn< + [nameToOverride: string, overrideName: string | undefined] + > + + COMMENTATOR_PLAYER_UPDATE: undefined + + COMMENTATOR_RESET_SETTINGS: undefined + + COMMENTATOR_TEAM_NAME_UPDATE: LuaMultiReturn<[teamName: string]> + + COMMENTATOR_TEAMS_SWAPPED: LuaMultiReturn<[swapped: boolean]> + + COMPACT_UNIT_FRAME_PROFILES_LOADED: undefined + + CONSOLE_CLEAR: undefined + + CONSOLE_COLORS_CHANGED: undefined + + CONSOLE_FONT_SIZE_CHANGED: undefined + + CONSOLE_LOG: LuaMultiReturn<[message: string]> + + CONSOLE_MESSAGE: LuaMultiReturn<[message: string, colorType: number]> + + CVAR_UPDATE: LuaMultiReturn<[eventName: string, value: string]> + + GLUE_CONSOLE_LOG: LuaMultiReturn<[message: string]> + + TOGGLE_CONSOLE: LuaMultiReturn<[showConsole: boolean | undefined]> + + BAG_CLOSED: LuaMultiReturn<[bagID: BagIndex]> + + BAG_CONTAINER_UPDATE: undefined + + BAG_NEW_ITEMS_UPDATED: undefined + + BAG_OPEN: LuaMultiReturn<[bagID: number]> + + BAG_OVERFLOW_WITH_FULL_INVENTORY: undefined + + BAG_SLOT_FLAGS_UPDATED: LuaMultiReturn<[slot: number]> + + BAG_UPDATE: LuaMultiReturn<[bagID: BagIndex]> + + BAG_UPDATE_COOLDOWN: undefined + + BAG_UPDATE_DELAYED: undefined + + EQUIP_BIND_REFUNDABLE_CONFIRM: LuaMultiReturn< + [slot: number, itemLocation: ItemLocationMixin] + > + + EQUIP_BIND_TRADEABLE_CONFIRM: LuaMultiReturn< + [slot: number, itemLocation: ItemLocationMixin] + > + + EXPAND_BAG_BAR_CHANGED: LuaMultiReturn<[expandBagBar: boolean]> + + INVENTORY_SEARCH_UPDATE: undefined + + ITEM_LOCK_CHANGED: LuaMultiReturn< + [bagOrSlotIndex: BagIndex, slotIndex: number | undefined] + > + + ITEM_LOCKED: LuaMultiReturn<[bagOrSlotIndex: BagIndex, slotIndex: number | undefined]> + + ITEM_UNLOCKED: LuaMultiReturn< + [bagOrSlotIndex: BagIndex, slotIndex: number | undefined] + > + + USE_COMBINED_BAGS_CHANGED: LuaMultiReturn<[useCombinedBags: boolean]> + + CONTENT_TRACKING_IS_ENABLED_UPDATE: LuaMultiReturn<[isEnabled: boolean]> + + CONTENT_TRACKING_LIST_UPDATE: undefined + + CONTENT_TRACKING_UPDATE: LuaMultiReturn< + [type: ContentTrackingType, id: number, isTracked: boolean] + > + + TRACKABLE_INFO_UPDATE: LuaMultiReturn<[type: ContentTrackingType, id: number]> + + TRACKING_TARGET_INFO_UPDATE: LuaMultiReturn< + [targetType: ContentTrackingTargetType, targetID: number] + > + + CONTRIBUTION_CHANGED: LuaMultiReturn< + [ + state: ContributionState, + result: ContributionResult, + name: string, + contributionID: number + ] + > + + CONTRIBUTION_COLLECTOR_PENDING: LuaMultiReturn< + [contributionID: number, isPending: boolean, result: number] + > + + CONTRIBUTION_COLLECTOR_UPDATE: undefined + + CONTRIBUTION_COLLECTOR_UPDATE_SINGLE: LuaMultiReturn<[contributionID: number]> + + COVENANT_CALLINGS_UPDATED: LuaMultiReturn<[callings: undefined[]]> + + COVENANT_PREVIEW_CLOSE: undefined + + COVENANT_PREVIEW_OPEN: LuaMultiReturn<[previewInfo: CovenantPreviewInfo]> + + COVENANT_RENOWN_CATCH_UP_STATE_UPDATE: undefined + + COVENANT_SANCTUM_RENOWN_LEVEL_CHANGED: LuaMultiReturn< + [newRenownLevel: number, oldRenownLevel: number] + > + + COVENANT_CHOSEN: LuaMultiReturn<[covenantID: number]> + + CRAFTING_HOUSE_DISABLED: undefined + + CRAFTINGORDERS_CAN_REQUEST: undefined + + CRAFTINGORDERS_CLAIM_ORDER_RESPONSE: LuaMultiReturn< + [result: CraftingOrderResult, orderID: number] + > + + CRAFTINGORDERS_CLAIMED_ORDER_ADDED: undefined + + CRAFTINGORDERS_CLAIMED_ORDER_REMOVED: undefined + + CRAFTINGORDERS_CLAIMED_ORDER_UPDATED: LuaMultiReturn<[orderID: number]> + + CRAFTINGORDERS_CRAFT_ORDER_RESPONSE: LuaMultiReturn< + [result: CraftingOrderResult, orderID: number] + > + + CRAFTINGORDERS_CUSTOMER_FAVORITES_CHANGED: undefined + + CRAFTINGORDERS_CUSTOMER_OPTIONS_PARSED: undefined + + CRAFTINGORDERS_DISPLAY_CRAFTER_FULFILLED_MSG: LuaMultiReturn< + [ + orderTypeString: string, + itemNameString: string, + playerNameString: string, + tipAmount: number, + quantityCrafted: number + ] + > + + CRAFTINGORDERS_FULFILL_ORDER_RESPONSE: LuaMultiReturn< + [result: CraftingOrderResult, orderID: number] + > + + CRAFTINGORDERS_HIDE_CRAFTER: undefined + + CRAFTINGORDERS_HIDE_CUSTOMER: undefined + + CRAFTINGORDERS_ORDER_CANCEL_RESPONSE: LuaMultiReturn<[result: CraftingOrderResult]> + + CRAFTINGORDERS_ORDER_PLACEMENT_RESPONSE: LuaMultiReturn<[result: CraftingOrderResult]> + + CRAFTINGORDERS_REJECT_ORDER_RESPONSE: LuaMultiReturn< + [result: CraftingOrderResult, orderID: number] + > + + CRAFTINGORDERS_RELEASE_ORDER_RESPONSE: LuaMultiReturn< + [result: CraftingOrderResult, orderID: number] + > + + CRAFTINGORDERS_SHOW_CRAFTER: undefined + + CRAFTINGORDERS_SHOW_CUSTOMER: undefined + + CRAFTINGORDERS_UNEXPECTED_ERROR: undefined + + CRAFTINGORDERS_UPDATE_CUSTOMER_NAME: LuaMultiReturn< + [customerName: string, orderID: number] + > + + CRAFTINGORDERS_UPDATE_ORDER_COUNT: LuaMultiReturn< + [orderType: CraftingOrderType, numOrders: number] + > + + CRAFTINGORDERS_UPDATE_PERSONAL_ORDER_COUNTS: undefined + + ACCOUNT_CHARACTER_CURRENCY_DATA_RECEIVED: undefined + + ACCOUNT_MONEY: undefined + + CURRENCY_DISPLAY_UPDATE: LuaMultiReturn< + [ + currencyType: number | undefined, + quantity: number | undefined, + quantityChange: number | undefined, + quantityGainSource: number | undefined, + destroyReason: number | undefined + ] + > + + CURRENCY_TRANSFER_FAILED: undefined + + CURRENCY_TRANSFER_LOG_UPDATE: undefined + + PLAYER_MONEY: undefined + + BATTLE_PET_CURSOR_CLEAR: undefined + + CURSOR_CHANGED: LuaMultiReturn< + [ + isDefault: boolean, + newCursorType: UICursorType, + oldCursorType: UICursorType, + oldCursorVirtualID: number + ] + > + + MOUNT_CURSOR_CLEAR: undefined + + WORLD_CURSOR_TOOLTIP_UPDATE: LuaMultiReturn<[anchorType: WorldCursorAnchorType]> + + HARDCORE_DEATHS: LuaMultiReturn<[memberName: string]> + + AREA_SPIRIT_HEALER_IN_RANGE: undefined + + AREA_SPIRIT_HEALER_OUT_OF_RANGE: undefined + + CEMETERY_PREFERENCE_UPDATED: undefined + + CONFIRM_XP_LOSS: undefined + + CORPSE_IN_INSTANCE: undefined + + CORPSE_IN_RANGE: undefined + + CORPSE_OUT_OF_RANGE: undefined + + PLAYER_ALIVE: undefined + + PLAYER_DEAD: undefined + + PLAYER_SKINNED: LuaMultiReturn<[hasFreeRepop: number]> + + PLAYER_UNGHOST: undefined + + REQUEST_CEMETERY_LIST_RESPONSE: LuaMultiReturn<[isGossipTriggered: boolean]> + + RESURRECT_REQUEST: LuaMultiReturn<[inviter: string]> + + SELF_RES_SPELL_CHANGED: undefined + + ACTIVE_DELVE_DATA_UPDATE: undefined + + DELVES_ACCOUNT_DATA_ELEMENT_CHANGED: undefined + + SHOW_DELVES_COMPANION_CONFIGURATION_UI: undefined + + SHOW_DELVES_DISPLAY_UI: undefined + + WALK_IN_DATA_UPDATE: undefined + + LEARNED_SPELL_IN_TAB: LuaMultiReturn< + [spellID: number, skillInfoIndex: number, isGuildPerkSpell: boolean] + > + + DUEL_FINISHED: undefined + + DUEL_INBOUNDS: undefined + + DUEL_OUTOFBOUNDS: undefined + + DUEL_REQUESTED: LuaMultiReturn<[playerName: string]> + + DUEL_TO_THE_DEATH_REQUESTED: LuaMultiReturn<[playerName: string]> + + EDIT_MODE_LAYOUTS_UPDATED: LuaMultiReturn< + [layoutInfo: EditModeLayouts, reconcileLayouts: boolean] + > + + BOSS_KILL: LuaMultiReturn<[encounterID: number, encounterName: string]> + + DISABLE_LOW_LEVEL_RAID: undefined + + ENABLE_LOW_LEVEL_RAID: undefined + + ENCOUNTER_END: LuaMultiReturn< + [ + encounterID: number, + encounterName: string, + difficultyID: number, + groupSize: number, + success: number + ] + > + + ENCOUNTER_START: LuaMultiReturn< + [ + encounterID: number, + encounterName: string, + difficultyID: number, + groupSize: number + ] + > + + INSTANCE_LOCK_START: undefined + + INSTANCE_LOCK_STOP: undefined + + INSTANCE_LOCK_WARNING: undefined + + RAID_TARGET_UPDATE: undefined + + UPDATE_INSTANCE_INFO: undefined + + EJ_DIFFICULTY_UPDATE: LuaMultiReturn<[difficultyID: number]> + + EJ_LOOT_DATA_RECIEVED: LuaMultiReturn<[itemID: number | undefined]> + + EQUIPMENT_SETS_CHANGED: undefined + + EQUIPMENT_SWAP_FINISHED: LuaMultiReturn<[result: boolean, setID: number | undefined]> + + EQUIPMENT_SWAP_PENDING: undefined + + TRANSMOG_OUTFITS_CHANGED: undefined + + SETTINGS_LOADED: undefined + + MAX_EXPANSION_LEVEL_UPDATED: undefined + + MIN_EXPANSION_LEVEL_UPDATED: undefined + + SHOW_SUBSCRIPTION_INTERSTITIAL: LuaMultiReturn<[type: SubscriptionInterstitialType]> + + FOG_OF_WAR_UPDATED: undefined + + BATTLETAG_INVITE_SHOW: LuaMultiReturn<[name: string]> + + BN_BLOCK_FAILED_TOO_MANY: LuaMultiReturn<[blockType: string]> + + BN_BLOCK_LIST_UPDATED: undefined + + BN_CHAT_WHISPER_UNDELIVERABLE: LuaMultiReturn<[senderID: number]> + + BN_CONNECTED: LuaMultiReturn<[suppressNotification: boolean]> + + BN_CUSTOM_MESSAGE_CHANGED: LuaMultiReturn<[id: number | undefined]> + + BN_CUSTOM_MESSAGE_LOADED: undefined + + BN_DISCONNECTED: LuaMultiReturn<[result: boolean, suppressNotification: boolean]> + + BN_FRIEND_ACCOUNT_OFFLINE: LuaMultiReturn<[friendId: number, isCompanionApp: boolean]> + + BN_FRIEND_ACCOUNT_ONLINE: LuaMultiReturn<[friendId: number, isCompanionApp: boolean]> + + BN_FRIEND_INFO_CHANGED: LuaMultiReturn<[friendIndex: number | undefined]> + + BN_FRIEND_INVITE_ADDED: LuaMultiReturn<[accountID: number]> + + BN_FRIEND_INVITE_LIST_INITIALIZED: LuaMultiReturn<[listSize: number]> + + BN_FRIEND_INVITE_REMOVED: undefined + + BN_FRIEND_LIST_SIZE_CHANGED: LuaMultiReturn<[accountID: number | undefined]> + + BN_INFO_CHANGED: undefined + + BN_REQUEST_FOF_SUCCEEDED: undefined + + FRIENDLIST_UPDATE: undefined + + IGNORELIST_UPDATE: undefined + + MUTELIST_UPDATE: undefined + + NEW_MATCHMAKING_PARTY_INVITE: undefined + + REJECTED_MATCHMAKING_PARTY_INVITE: LuaMultiReturn<[name: string]> + + WHO_LIST_UPDATE: undefined + + GM_PLAYER_INFO: LuaMultiReturn<[name: string, info: string]> + + ITEM_RESTORATION_BUTTON_STATUS: undefined + + PETITION_CLOSED: undefined + + PETITION_SHOW: undefined + + PLAYER_REPORT_SUBMITTED: LuaMultiReturn<[invitedByGUID: string]> + + QUICK_TICKET_SYSTEM_STATUS: undefined + + QUICK_TICKET_THROTTLE_CHANGED: undefined + + UPDATE_WEB_TICKET: LuaMultiReturn< + [ + hasTicket: boolean, + numTickets: number | undefined, + ticketStatus: number | undefined, + caseIndex: number | undefined, + waitTimeMinutes: number | undefined, + waitMessage: string | undefined + ] + > + + GAME_ENVIRONMENT_SWITCHED: LuaMultiReturn<[gameEnvironment: GameEnvironment]> + + GAME_PAD_ACTIVE_CHANGED: LuaMultiReturn<[isActive: boolean]> + + GAME_PAD_CONFIGS_CHANGED: undefined + + GAME_PAD_CONNECTED: undefined + + GAME_PAD_DISCONNECTED: undefined + + GAME_PAD_POWER_CHANGED: LuaMultiReturn<[powerLevel: GamePadPowerLevel]> + + GARRISON_ARCHITECT_CLOSED: undefined + + GARRISON_ARCHITECT_OPENED: LuaMultiReturn<[followerTypeID: number]> + + GARRISON_BUILDING_ACTIVATABLE: LuaMultiReturn< + [buildingName: string, garrisonType: number] + > + + GARRISON_BUILDING_ACTIVATED: LuaMultiReturn< + [garrisonPlotInstanceID: number, garrisonBuildingID: number] + > + + GARRISON_BUILDING_ERROR: undefined + + GARRISON_BUILDING_LIST_UPDATE: LuaMultiReturn<[categoryID: number]> + + GARRISON_BUILDING_PLACED: LuaMultiReturn< + [garrisonPlotInstanceID: number, newPlacement: boolean] + > + + GARRISON_BUILDING_REMOVED: LuaMultiReturn< + [garrPlotInstanceID: number, garrBuildingID: number] + > + + GARRISON_BUILDING_UPDATE: LuaMultiReturn< + [garrisonBuildingID: number, garrPlotInstanceID: number | undefined] + > + + GARRISON_FOLLOWER_ADDED: LuaMultiReturn< + [ + followerDbID: number, + followerName: string, + followerClassName: string, + followerLevel: number, + followerQuality: number, + isUpgraded: boolean, + textureKit: string, + followerTypeID: number + ] + > + + GARRISON_FOLLOWER_CATEGORIES_UPDATED: undefined + + GARRISON_FOLLOWER_DURABILITY_CHANGED: LuaMultiReturn< + [garrFollowerTypeID: number, followerDbID: number, followerDurability: number] + > + + GARRISON_FOLLOWER_HEALED: LuaMultiReturn<[followerID: number]> + + GARRISON_FOLLOWER_LIST_UPDATE: LuaMultiReturn<[followerTypeID: number]> + + GARRISON_FOLLOWER_REMOVED: LuaMultiReturn<[followerTypeID: number]> + + GARRISON_FOLLOWER_UPGRADED: LuaMultiReturn<[followerDbID: number]> + + GARRISON_FOLLOWER_XP_CHANGED: LuaMultiReturn< + [ + garrFollowerTypeID: number, + followerDbID: number, + xpChange: number, + oldFollowerXp: number, + oldFollowerLevel: number, + oldFollowerQuality: number + ] + > + + GARRISON_HIDE_LANDING_PAGE: undefined + + GARRISON_INVASION_AVAILABLE: undefined + + GARRISON_INVASION_UNAVAILABLE: undefined + + GARRISON_LANDINGPAGE_SHIPMENTS: undefined + + GARRISON_MISSION_AREA_BONUS_ADDED: LuaMultiReturn< + [garrisonMissonBonusAbilityID: number] + > + + GARRISON_MISSION_BONUS_ROLL_COMPLETE: LuaMultiReturn< + [missionID: number, success: boolean] + > + + GARRISON_MISSION_COMPLETE_RESPONSE: LuaMultiReturn< + [ + missionID: number, + canComplete: boolean, + success: boolean, + bonusRollSuccess: boolean, + followerDeaths: undefined[], + autoCombatResult: AutoCombatResult | undefined + ] + > + + GARRISON_MISSION_FINISHED: LuaMultiReturn<[followerTypeID: number, missionID: number]> + + GARRISON_MISSION_LIST_UPDATE: LuaMultiReturn<[garrFollowerTypeID: number]> + + GARRISON_MISSION_NPC_CLOSED: undefined + + GARRISON_MISSION_NPC_OPENED: LuaMultiReturn<[followerTypeID: number]> + + GARRISON_MISSION_REWARD_INFO: LuaMultiReturn< + [missionID: number, followerDbID: number] + > + + GARRISON_MISSION_STARTED: LuaMultiReturn< + [garrFollowerTypeID: number, missionID: number] + > + + GARRISON_MONUMENT_CLOSE_UI: undefined + + GARRISON_MONUMENT_LIST_LOADED: LuaMultiReturn<[success: boolean]> + + GARRISON_MONUMENT_REPLACED: LuaMultiReturn<[success: boolean]> + + GARRISON_MONUMENT_SELECTED_TROPHY_ID_LOADED: LuaMultiReturn<[success: boolean]> + + GARRISON_MONUMENT_SHOW_UI: undefined + + GARRISON_RANDOM_MISSION_ADDED: LuaMultiReturn< + [followerTypeID: number, missionID: number] + > + + GARRISON_RECALL_PORTAL_LAST_USED_TIME: LuaMultiReturn< + [success: boolean, recallPortalLastUsedTime: number] + > + + GARRISON_RECALL_PORTAL_USED: LuaMultiReturn<[success: boolean]> + + GARRISON_RECRUIT_FOLLOWER_RESULT: undefined + + GARRISON_RECRUITMENT_FOLLOWERS_GENERATED: undefined + + GARRISON_RECRUITMENT_NPC_CLOSED: undefined + + GARRISON_RECRUITMENT_NPC_OPENED: LuaMultiReturn<[followerTypeID: number]> + + GARRISON_RECRUITMENT_READY: undefined + + GARRISON_SHIPMENT_RECEIVED: undefined + + GARRISON_SHIPYARD_NPC_CLOSED: undefined + + GARRISON_SHIPYARD_NPC_OPENED: LuaMultiReturn<[followerTypeID: number]> + + GARRISON_SHOW_LANDING_PAGE: undefined + + GARRISON_SPEC_GROUP_UPDATED: LuaMultiReturn<[garrTypeID: number, specID: number]> + + GARRISON_SPEC_GROUPS_CLEARED: LuaMultiReturn<[garrTypeID: number]> + + GARRISON_TALENT_COMPLETE: LuaMultiReturn<[garrTypeID: number, doAlert: boolean]> + + GARRISON_TALENT_EVENT_UPDATE: LuaMultiReturn<[eventType: number, eventID: number]> + + GARRISON_TALENT_NPC_CLOSED: undefined + + GARRISON_TALENT_NPC_OPENED: LuaMultiReturn< + [garrisonTypeID: number, garrisonTalentTreeID: number] + > + + GARRISON_TALENT_RESEARCH_STARTED: LuaMultiReturn< + [garrTypeID: number, garrisonTalentTreeID: number, garrTalentID: number] + > + + GARRISON_TALENT_UNLOCKS_RESULT: undefined + + GARRISON_TALENT_UPDATE: LuaMultiReturn<[garrTypeID: number]> + + GARRISON_TRADESKILL_NPC_CLOSED: undefined + + GARRISON_UPDATE: undefined + + GARRISON_UPGRADEABLE_RESULT: LuaMultiReturn<[garrisonUpgradeable: boolean]> + + GARRISON_USE_PARTY_GARRISON_CHANGED: undefined + + SHIPMENT_CRAFTER_CLOSED: undefined + + SHIPMENT_CRAFTER_INFO: LuaMultiReturn< + [ + success: number, + shipmentCount: number, + maxShipments: number, + ownedShipments: number, + plotInstanceID: number + ] + > + + SHIPMENT_CRAFTER_OPENED: LuaMultiReturn<[charShipmentContainerID: number]> + + SHIPMENT_CRAFTER_REAGENT_UPDATE: undefined + + SHIPMENT_UPDATE: LuaMultiReturn< + [shipmentStarted: boolean | undefined, hasAttachedFollower: boolean | undefined] + > + + ACTIVATE_GLYPH: LuaMultiReturn<[spellID: number]> + + CANCEL_GLYPH_CAST: undefined + + USE_GLYPH: LuaMultiReturn<[spellID: number]> + + DYNAMIC_GOSSIP_POI_UPDATED: undefined + + GOSSIP_CLOSED: LuaMultiReturn<[interactionIsContinuing: boolean]> + + GOSSIP_CONFIRM: LuaMultiReturn<[gossipID: number, text: string, cost: number]> + + GOSSIP_CONFIRM_CANCEL: undefined + + GOSSIP_ENTER_CODE: LuaMultiReturn<[gossipID: number]> + + GOSSIP_OPTIONS_REFRESHED: undefined + + GOSSIP_SHOW: LuaMultiReturn<[uiTextureKit: string | undefined]> + + GUILDBANK_ITEM_LOCK_CHANGED: undefined + + GUILDBANK_TEXT_CHANGED: LuaMultiReturn<[guildBankTab: number]> + + GUILDBANK_UPDATE_MONEY: undefined + + GUILDBANK_UPDATE_TABS: undefined + + GUILDBANK_UPDATE_TEXT: LuaMultiReturn<[guildBankTab: number]> + + GUILDBANK_UPDATE_WITHDRAWMONEY: undefined + + GUILDBANKBAGSLOTS_CHANGED: undefined + + GUILDBANKFRAME_CLOSED: undefined + + GUILDBANKFRAME_OPENED: undefined + + GUILDBANKLOG_UPDATE: undefined + + CLOSE_TABARD_FRAME: undefined + + DISABLE_DECLINE_GUILD_INVITE: undefined + + ENABLE_DECLINE_GUILD_INVITE: undefined + + GUILD_CHALLENGE_COMPLETED: LuaMultiReturn< + [challengeType: number, currentCount: number, maxCount: number, goldAwarded: number] + > + + GUILD_CHALLENGE_UPDATED: undefined + + GUILD_EVENT_LOG_UPDATE: undefined + + GUILD_INVITE_CANCEL: undefined + + GUILD_INVITE_REQUEST: LuaMultiReturn< + [ + inviter: string, + guildName: string, + guildAchievementPoints: number, + oldGuildName: string, + isNewGuild: boolean | undefined, + tabardInfo: GuildTabardInfo | undefined + ] + > + + GUILD_MOTD: LuaMultiReturn<[motdText: string]> + + GUILD_NEWS_UPDATE: undefined + + GUILD_PARTY_STATE_UPDATED: LuaMultiReturn<[inGuildParty: boolean]> + + GUILD_RANKS_UPDATE: undefined + + GUILD_RECIPE_KNOWN_BY_MEMBERS: undefined + + GUILD_REGISTRAR_CLOSED: undefined + + GUILD_REGISTRAR_SHOW: undefined + + GUILD_RENAME_REQUIRED: LuaMultiReturn<[flagSet: boolean]> + + GUILD_REWARDS_LIST: undefined + + GUILD_ROSTER_UPDATE: LuaMultiReturn<[canRequestRosterUpdate: boolean]> + + GUILD_TRADESKILL_UPDATE: undefined + + GUILDTABARD_UPDATE: undefined + + OPEN_TABARD_FRAME: undefined + + PLAYER_GUILD_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + REQUIRED_GUILD_RENAME_RESULT: LuaMultiReturn<[success: boolean]> + + TABARD_CANSAVE_CHANGED: undefined + + TABARD_SAVE_PENDING: undefined + + HEIRLOOM_UPGRADE_TARGETING_CHANGED: LuaMultiReturn< + [pendingHeirloomUpgradeSpellcast: boolean] + > + + HEIRLOOMS_UPDATED: LuaMultiReturn< + [ + itemID: number | undefined, + updateReason: string | undefined, + hideUntilLearned: boolean | undefined + ] + > + + IMMERSIVE_INTERACTION_BEGIN: undefined + + IMMERSIVE_INTERACTION_END: undefined + + NAVIGATION_FRAME_CREATED: LuaMultiReturn<[region: unknown]> + + NAVIGATION_FRAME_DESTROYED: undefined + + INSTANCE_ENCOUNTER_ADD_TIMER: LuaMultiReturn<[timeRemaining: number]> + + INSTANCE_ENCOUNTER_ENGAGE_UNIT: undefined + + INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE: LuaMultiReturn<[objectiveID: number]> + + INSTANCE_ENCOUNTER_OBJECTIVE_START: LuaMultiReturn< + [objectiveID: number, objectiveProgress: number] + > + + INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE: LuaMultiReturn< + [objectiveID: number, objectiveProgress: number] + > + + ISLAND_AZERITE_GAIN: LuaMultiReturn< + [ + amount: number, + gainedByPlayer: boolean, + factionIndex: number, + gainedBy: string, + gainedFrom: string + ] + > + + ISLANDS_QUEUE_CLOSE: undefined + + ISLANDS_QUEUE_OPEN: undefined + + ACTION_WILL_BIND_ITEM: undefined + + BIND_ENCHANT: undefined + + CHARACTER_ITEM_FIXUP_NOTIFICATION: LuaMultiReturn<[fixupVersion: number]> + + CONFIRM_BEFORE_USE: undefined + + CONVERT_TO_BIND_TO_ACCOUNT_CONFIRM: undefined + + DELETE_ITEM_CONFIRM: LuaMultiReturn< + [itemName: string, qualityID: number, bonding: number, questWarn: number] + > + + END_BOUND_TRADEABLE: LuaMultiReturn<[reason: string]> + + GET_ITEM_INFO_RECEIVED: LuaMultiReturn<[itemID: number, success: boolean]> + + ITEM_CHANGED: LuaMultiReturn<[previousHyperlink: string, newHyperlink: string]> + + ITEM_CONVERSION_DATA_READY: LuaMultiReturn<[itemGUID: string]> + + ITEM_COUNT_CHANGED: LuaMultiReturn<[itemID: number]> + + ITEM_DATA_LOAD_RESULT: LuaMultiReturn<[itemID: number, success: boolean]> + + MERCHANT_CONFIRM_TRADE_TIMER_REMOVAL: LuaMultiReturn<[itemLink: string]> + + REPLACE_ENCHANT: LuaMultiReturn<[existingStr: string, replacementStr: string]> + + REPLACE_TRADESKILL_ENCHANT: LuaMultiReturn<[existing: string, replacement: string]> + + TRADE_REPLACE_ENCHANT: LuaMultiReturn<[existing: string, replacement: string]> + + USE_BIND_CONFIRM: undefined + + USE_NO_REFUND_CONFIRM: undefined + + WEAPON_ENCHANT_CHANGED: undefined + + ITEM_INTERACTION_CHARGE_INFO_UPDATED: undefined + + ITEM_INTERACTION_ITEM_SELECTION_UPDATED: LuaMultiReturn< + [itemLocation: ItemLocationMixin | undefined] + > + + SOCKET_INFO_ACCEPT: undefined + + SOCKET_INFO_BIND_CONFIRM: undefined + + SOCKET_INFO_CLOSE: undefined + + SOCKET_INFO_FAILURE: undefined + + SOCKET_INFO_REFUNDABLE_CONFIRM: undefined + + SOCKET_INFO_SUCCESS: undefined + + SOCKET_INFO_UPDATE: undefined + + ITEM_TEXT_BEGIN: undefined + + ITEM_TEXT_CLOSED: undefined + + ITEM_TEXT_READY: undefined + + ITEM_TEXT_TRANSLATION: LuaMultiReturn<[delay: number]> + + ITEM_UPGRADE_FAILED: undefined + + ITEM_UPGRADE_MASTER_SET_ITEM: undefined + + MODIFIER_STATE_CHANGED: LuaMultiReturn<[key: string, down: number]> + + UPDATE_BINDINGS: undefined + + KNOWLEDGE_BASE_ARTICLE_LOAD_FAILURE: undefined + + KNOWLEDGE_BASE_ARTICLE_LOAD_SUCCESS: undefined + + KNOWLEDGE_BASE_QUERY_LOAD_FAILURE: undefined + + KNOWLEDGE_BASE_QUERY_LOAD_SUCCESS: undefined + + KNOWLEDGE_BASE_SERVER_MESSAGE: undefined + + KNOWLEDGE_BASE_SETUP_LOAD_FAILURE: undefined + + KNOWLEDGE_BASE_SETUP_LOAD_SUCCESS: undefined + + KNOWLEDGE_BASE_SYSTEM_MOTD_UPDATED: undefined + + ISLAND_COMPLETED: LuaMultiReturn<[mapID: number, winner: number]> + + LFG_BOOT_PROPOSAL_UPDATE: undefined + + LFG_COMPLETION_REWARD: undefined + + LFG_ENABLED_STATE_CHANGED: undefined + + LFG_INVALID_ERROR_MESSAGE: LuaMultiReturn< + [reason: number, subReason1: number, subReason2: number] + > + + LFG_LOCK_INFO_RECEIVED: undefined + + LFG_OFFER_CONTINUE: LuaMultiReturn< + [name: string, lfgDungeonsID: number, typeID: number] + > + + LFG_OPEN_FROM_GOSSIP: LuaMultiReturn<[dungeonID: number]> + + LFG_PROPOSAL_DONE: undefined + + LFG_PROPOSAL_FAILED: undefined + + LFG_PROPOSAL_SHOW: undefined + + LFG_PROPOSAL_SUCCEEDED: undefined + + LFG_PROPOSAL_UPDATE: undefined + + LFG_QUEUE_STATUS_UPDATE: undefined + + LFG_READY_CHECK_DECLINED: LuaMultiReturn<[name: string]> + + LFG_READY_CHECK_HIDE: undefined + + LFG_READY_CHECK_PLAYER_IS_READY: LuaMultiReturn<[name: string]> + + LFG_READY_CHECK_SHOW: LuaMultiReturn<[isRequeue: boolean]> + + LFG_READY_CHECK_UPDATE: undefined + + LFG_ROLE_CHECK_DECLINED: undefined + + LFG_ROLE_CHECK_HIDE: undefined + + LFG_ROLE_CHECK_ROLE_CHOSEN: LuaMultiReturn< + [name: string, isTank: boolean, isHealer: boolean, isDamage: boolean] + > + + LFG_ROLE_CHECK_SHOW: LuaMultiReturn<[isRequeue: boolean]> + + LFG_ROLE_CHECK_UPDATE: undefined + + LFG_ROLE_UPDATE: undefined + + LFG_UPDATE: undefined + + LFG_UPDATE_RANDOM_INFO: undefined + + SHOW_LFG_EXPAND_SEARCH_PROMPT: undefined + + UPDATE_LFG_LIST: undefined + + WARFRONT_COMPLETED: LuaMultiReturn<[mapID: number, winner: number]> + + LFG_GROUP_DELISTED_LEADERSHIP_CHANGE: LuaMultiReturn< + [listingName: string, automaticDelistTimeRemaining: number] + > + + LFG_LIST_ACTIVE_ENTRY_UPDATE: LuaMultiReturn<[created: boolean | undefined]> + + LFG_LIST_APPLICANT_LIST_UPDATED: LuaMultiReturn< + [newPendingEntry: boolean | undefined, newPendingEntryWithData: boolean | undefined] + > + + LFG_LIST_APPLICANT_UPDATED: LuaMultiReturn<[applicantID: number]> + + LFG_LIST_APPLICATION_STATUS_UPDATED: LuaMultiReturn< + [searchResultID: number, newStatus: string, oldStatus: string, groupName: string] + > + + LFG_LIST_AVAILABILITY_UPDATE: undefined + + LFG_LIST_ENTRY_CREATION_FAILED: undefined + + LFG_LIST_ENTRY_EXPIRED_TIMEOUT: undefined + + LFG_LIST_ENTRY_EXPIRED_TOO_MANY_PLAYERS: undefined + + LFG_LIST_JOINED_GROUP: LuaMultiReturn<[searchResultID: number, groupName: string]> + + LFG_LIST_SEARCH_FAILED: LuaMultiReturn<[reason: string | undefined]> + + LFG_LIST_SEARCH_RESULT_UPDATED: LuaMultiReturn<[searchResultID: number]> + + LFG_LIST_SEARCH_RESULTS_RECEIVED: undefined + + NEW_RUNEFORGE_POWER_ADDED: LuaMultiReturn<[powerID: number]> + + RUNEFORGE_LEGENDARY_CRAFTING_CLOSED: undefined + + RUNEFORGE_LEGENDARY_CRAFTING_OPENED: LuaMultiReturn<[isUpgrade: boolean]> + + RUNEFORGE_POWER_INFO_UPDATED: LuaMultiReturn<[powerID: number]> + + LOADING_SCREEN_DISABLED: undefined + + LOADING_SCREEN_ENABLED: undefined + + AZERITE_EMPOWERED_ITEM_LOOTED: LuaMultiReturn<[itemLink: string]> + + BONUS_ROLL_ACTIVATE: undefined + + BONUS_ROLL_DEACTIVATE: undefined + + BONUS_ROLL_FAILED: undefined + + BONUS_ROLL_RESULT: LuaMultiReturn< + [ + typeIdentifier: string, + itemLink: string, + quantity: number, + specID: number, + sex: number, + personalLootToast: boolean, + currencyID: number | undefined, + isSecondaryResult: boolean, + corrupted: boolean + ] + > + + BONUS_ROLL_STARTED: undefined + + CANCEL_ALL_LOOT_ROLLS: undefined + + CANCEL_LOOT_ROLL: LuaMultiReturn<[rollID: number]> + + CONFIRM_DISENCHANT_ROLL: LuaMultiReturn<[rollID: number, rollType: number]> + + CONFIRM_LOOT_ROLL: LuaMultiReturn< + [rollID: number, rollType: number, confirmReason: string] + > + + ENCOUNTER_LOOT_RECEIVED: LuaMultiReturn< + [ + encounterID: number, + itemID: number, + itemLink: string, + quantity: number, + itemName: string, + fileName: string + ] + > + + GARRISON_MISSION_BONUS_ROLL_LOOT: LuaMultiReturn<[itemID: number, quantity: number]> + + ITEM_PUSH: LuaMultiReturn<[bagSlot: number, iconFileID: number]> + + LOOT_BIND_CONFIRM: LuaMultiReturn<[lootSlot: number]> + + LOOT_CLOSED: undefined + + LOOT_ITEM_AVAILABLE: LuaMultiReturn<[itemTooltip: string, lootHandle: number]> + + LOOT_ITEM_ROLL_WON: LuaMultiReturn< + [ + itemLink: string, + rollQuantity: number, + rollType: number, + roll: number, + upgraded: boolean + ] + > + + LOOT_OPENED: LuaMultiReturn<[autoLoot: boolean, isFromItem: boolean]> + + LOOT_READY: LuaMultiReturn<[autoloot: boolean]> + + LOOT_ROLLS_COMPLETE: LuaMultiReturn<[lootHandle: number]> + + LOOT_SLOT_CHANGED: LuaMultiReturn<[lootSlot: number]> + + LOOT_SLOT_CLEARED: LuaMultiReturn<[lootSlot: number]> + + MAIN_SPEC_NEED_ROLL: LuaMultiReturn< + [rollID: number, roll: number, isWinning: boolean] + > + + OPEN_MASTER_LOOT_LIST: undefined + + PET_BATTLE_LOOT_RECEIVED: LuaMultiReturn< + [typeIdentifier: string, itemLink: string, quantity: number] + > + + PLAYER_LOOT_SPEC_UPDATED: undefined + + QUEST_CURRENCY_LOOT_RECEIVED: LuaMultiReturn< + [questID: number, currencyId: number, quantity: number] + > + + QUEST_LOOT_RECEIVED: LuaMultiReturn< + [questID: number, itemLink: string, quantity: number] + > + + SHOW_LOOT_TOAST: LuaMultiReturn< + [ + typeIdentifier: string, + itemLink: string, + quantity: number, + specID: number, + sex: number, + personalLootToast: boolean, + toastMethod: number, + lessAwesome: boolean, + upgraded: boolean, + corrupted: boolean + ] + > + + SHOW_LOOT_TOAST_LEGENDARY_LOOTED: LuaMultiReturn<[itemLink: string]> + + SHOW_LOOT_TOAST_UPGRADE: LuaMultiReturn< + [ + itemLink: string, + quantity: number, + specID: number, + sex: number, + baseQuality: number, + personalLootToast: boolean, + lessAwesome: boolean + ] + > + + SHOW_PVP_FACTION_LOOT_TOAST: LuaMultiReturn< + [ + typeIdentifier: string, + itemLink: string, + quantity: number, + specID: number, + sex: number, + personalLootToast: boolean, + lessAwesome: boolean + ] + > + + SHOW_RATED_PVP_REWARD_TOAST: LuaMultiReturn< + [ + typeIdentifier: string, + itemLink: string, + quantity: number, + specID: number, + sex: number, + personalLootToast: boolean, + lessAwesome: boolean + ] + > + + START_LOOT_ROLL: LuaMultiReturn< + [rollID: number, rollTime: number, lootHandle: number | undefined] + > + + TRIAL_CAP_REACHED_MONEY: undefined + + UPDATE_MASTER_LOOT_LIST: undefined + + LOOT_HISTORY_CLEAR_HISTORY: undefined + + LOOT_HISTORY_GO_TO_ENCOUNTER: LuaMultiReturn<[encounterID: number]> + + LOOT_HISTORY_ONE_HUNDRED_ROLL: LuaMultiReturn< + [encounterID: number, lootListID: number] + > + + LOOT_HISTORY_UPDATE_DROP: LuaMultiReturn<[encounterID: number, lootListID: number]> + + LOOT_HISTORY_UPDATE_ENCOUNTER: LuaMultiReturn<[encounterID: number]> + + LOOT_JOURNAL_ITEM_UPDATE: undefined + + LORE_TEXT_UPDATED_CAMPAIGN: LuaMultiReturn< + [campaignID: number, textEntries: undefined[]] + > + + LOSS_OF_CONTROL_ADDED: LuaMultiReturn<[unitTarget: UnitToken, effectIndex: number]> + + LOSS_OF_CONTROL_COMMENTATOR_ADDED: LuaMultiReturn< + [victim: string, effectIndex: number] + > + + LOSS_OF_CONTROL_COMMENTATOR_UPDATE: LuaMultiReturn<[victim: string]> + + LOSS_OF_CONTROL_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + PLAYER_CONTROL_GAINED: undefined + + PLAYER_CONTROL_LOST: undefined + + CLOSE_INBOX_ITEM: LuaMultiReturn<[mailIndex: number]> + + MAIL_CLOSED: undefined + + MAIL_FAILED: LuaMultiReturn<[itemID: number | undefined]> + + MAIL_INBOX_UPDATE: undefined + + MAIL_LOCK_SEND_ITEMS: LuaMultiReturn<[attachSlot: number, itemLink: string]> + + MAIL_SEND_INFO_UPDATE: undefined + + MAIL_SEND_SUCCESS: undefined + + MAIL_SHOW: undefined + + MAIL_SUCCESS: LuaMultiReturn<[itemID: number | undefined]> + + MAIL_UNLOCK_SEND_ITEMS: undefined + + SEND_MAIL_COD_CHANGED: undefined + + SEND_MAIL_MONEY_CHANGED: undefined + + UPDATE_PENDING_MAIL: undefined + + MAJOR_FACTION_INTERACTION_ENDED: undefined + + MAJOR_FACTION_INTERACTION_STARTED: undefined + + MAJOR_FACTION_RENOWN_LEVEL_CHANGED: LuaMultiReturn< + [majorFactionID: number, newRenownLevel: number, oldRenownLevel: number] + > + + MAJOR_FACTION_UNLOCKED: LuaMultiReturn<[majorFactionID: number]> + + NEW_WMO_CHUNK: undefined + + PLAYER_MAP_CHANGED: LuaMultiReturn<[oldMapID: number, newMapID: number]> + + USER_WAYPOINT_UPDATED: undefined + + WORLD_MAP_OPEN: LuaMultiReturn<[uiMapID: number]> + + ZONE_CHANGED: undefined + + ZONE_CHANGED_INDOORS: undefined + + ZONE_CHANGED_NEW_AREA: undefined + + MAP_EXPLORATION_UPDATED: undefined + + MERCHANT_CLOSED: undefined + + MERCHANT_FILTER_ITEM_UPDATE: LuaMultiReturn<[itemID: number]> + + MERCHANT_SHOW: undefined + + MERCHANT_UPDATE: undefined + + MINIMAP_PING: LuaMultiReturn<[unitTarget: UnitToken, y: number, x: number]> + + MINIMAP_UPDATE_TRACKING: undefined + + MINIMAP_UPDATE_ZOOM: undefined + + MOUNT_EQUIPMENT_APPLY_RESULT: LuaMultiReturn<[success: boolean]> + + MOUNT_JOURNAL_SEARCH_UPDATED: undefined + + MOUNT_JOURNAL_USABILITY_CHANGED: undefined + + NEW_MOUNT_ADDED: LuaMultiReturn<[mountID: number]> + + MYTHIC_PLUS_CURRENT_AFFIX_UPDATE: undefined + + MYTHIC_PLUS_NEW_WEEKLY_RECORD: LuaMultiReturn< + [mapChallengeModeID: number, completionMilliseconds: number, level: number] + > + + FORBIDDEN_NAME_PLATE_CREATED: LuaMultiReturn<[namePlateFrame: NamePlateFrame]> + + FORBIDDEN_NAME_PLATE_UNIT_ADDED: LuaMultiReturn<[unitToken: string]> + + FORBIDDEN_NAME_PLATE_UNIT_REMOVED: LuaMultiReturn<[unitToken: string]> + + NAME_PLATE_CREATED: LuaMultiReturn<[namePlateFrame: NamePlateFrame]> + + NAME_PLATE_UNIT_ADDED: LuaMultiReturn<[unitToken: string]> + + NAME_PLATE_UNIT_REMOVED: LuaMultiReturn<[unitToken: string]> + + AVOIDANCE_UPDATE: undefined + + CHARACTER_POINTS_CHANGED: LuaMultiReturn<[change: number]> + + CHARACTER_UPGRADE_SPELL_TIER_SET: LuaMultiReturn<[tierIndex: number]> + + COMBAT_RATING_UPDATE: undefined + + DISABLE_XP_GAIN: undefined + + ENABLE_XP_GAIN: undefined + + EQUIP_BIND_CONFIRM: LuaMultiReturn<[slot: number, itemLocation: ItemLocationMixin]> + + INSPECT_HONOR_UPDATE: undefined + + INSPECT_READY: LuaMultiReturn<[inspecteeGUID: string]> + + LIFESTEAL_UPDATE: undefined + + MASTERY_UPDATE: undefined + + PET_SPELL_POWER_UPDATE: undefined + + PLAYER_AVG_ITEM_LEVEL_UPDATE: undefined + + PLAYER_EQUIPMENT_CHANGED: LuaMultiReturn<[equipmentSlot: number, hasCurrent: boolean]> + + PROFESSION_EQUIPMENT_CHANGED: LuaMultiReturn<[skillLineID: number, isTool: boolean]> + + PVP_POWER_UPDATE: undefined + + SPEED_UPDATE: undefined + + SPELL_POWER_CHANGED: undefined + + STURDINESS_UPDATE: undefined + + UPDATE_FACTION: undefined + + UPDATE_INVENTORY_ALERTS: undefined + + UPDATE_INVENTORY_DURABILITY: undefined + + WEAPON_SLOT_CHANGED: undefined + + BNET_REQUEST_INVITE_CONFIRMATION: LuaMultiReturn< + [ + gameAccountID: number, + questSessionActive: boolean, + tank: boolean, + healer: boolean, + dps: boolean + ] + > + + CONVERT_TO_RAID_CONFIRMATION: undefined + + ENTERED_DIFFERENT_INSTANCE_FROM_PARTY: undefined + + GROUP_FORMED: LuaMultiReturn<[category: number, partyGUID: string]> + + GROUP_INVITE_CONFIRMATION: undefined + + GROUP_JOINED: LuaMultiReturn<[category: number, partyGUID: string]> + + GROUP_LEFT: LuaMultiReturn<[category: number, partyGUID: string]> + + GROUP_ROSTER_UPDATE: undefined + + INSTANCE_BOOT_START: undefined + + INSTANCE_BOOT_STOP: undefined + + INSTANCE_GROUP_SIZE_CHANGED: undefined + + INVITE_TO_PARTY_CONFIRMATION: LuaMultiReturn< + [targetName: string, willConvertToRaid: boolean, questSessionActive: boolean] + > + + INVITE_TRAVEL_PASS_CONFIRMATION: LuaMultiReturn< + [ + targetName: string, + targetGUID: string, + willConvertToRaid: boolean, + questSessionActive: boolean + ] + > + + LEAVE_PARTY_CONFIRMATION: undefined + + PARTY_INVITE_CANCEL: undefined + + PARTY_INVITE_REQUEST: LuaMultiReturn< + [ + name: string, + isTank: boolean, + isHealer: boolean, + isDamage: boolean, + isNativeRealm: boolean, + allowMultipleRoles: boolean, + inviterGUID: string, + questSessionActive: boolean + ] + > + + PARTY_LEADER_CHANGED: undefined + + PARTY_LFG_RESTRICTED: undefined + + PARTY_LOOT_METHOD_CHANGED: undefined + + PARTY_MEMBER_DISABLE: LuaMultiReturn<[unitTarget: UnitToken]> + + PARTY_MEMBER_ENABLE: LuaMultiReturn<[unitTarget: UnitToken]> + + PLAYER_DIFFICULTY_CHANGED: undefined + + PLAYER_ROLES_ASSIGNED: undefined + + RAID_ROSTER_UPDATE: undefined + + READY_CHECK: LuaMultiReturn<[initiatorName: string, readyCheckTimeLeft: number]> + + READY_CHECK_CONFIRM: LuaMultiReturn<[unitTarget: UnitToken, isReady: boolean]> + + READY_CHECK_FINISHED: LuaMultiReturn<[preempted: boolean]> + + REQUEST_INVITE_CONFIRMATION: LuaMultiReturn< + [ + targetName: string, + partyLevelLink: number, + questSessionActive: boolean, + tank: boolean | undefined, + healer: boolean | undefined, + dps: boolean | undefined + ] + > + + ROLE_CHANGED_INFORM: LuaMultiReturn< + [changedName: string, fromName: string, oldRole: string, newRole: string] + > + + ROLE_POLL_BEGIN: LuaMultiReturn<[fromName: string]> + + VOTE_KICK_REASON_NEEDED: LuaMultiReturn<[name: string, resultGUID: string]> + + SHOW_PARTY_POSE_UI: LuaMultiReturn<[mapID: number, won: boolean]> + + PERKS_ACTIVITIES_TRACKED_LIST_CHANGED: LuaMultiReturn< + [perksActivityID: number, added: boolean] + > + + PERKS_ACTIVITIES_TRACKED_UPDATED: undefined + + PERKS_ACTIVITIES_UPDATED: undefined + + PERKS_ACTIVITY_COMPLETED: LuaMultiReturn<[perksActivityID: number]> + + CHEST_REWARDS_UPDATED_FROM_SERVER: undefined + + PERKS_PROGRAM_ADD_PENDING_SHOP_ITEM: LuaMultiReturn<[vendorItemID: number]> + + PERKS_PROGRAM_CLOSE: undefined + + PERKS_PROGRAM_CURRENCY_AWARDED: LuaMultiReturn<[value: number]> + + PERKS_PROGRAM_CURRENCY_REFRESH: LuaMultiReturn<[oldValue: number, newValue: number]> + + PERKS_PROGRAM_DATA_REFRESH: undefined + + PERKS_PROGRAM_DATA_SPECIFIC_ITEM_REFRESH: LuaMultiReturn<[vendorItemID: number]> + + PERKS_PROGRAM_DISABLED: undefined + + PERKS_PROGRAM_OPEN: undefined + + PERKS_PROGRAM_PURCHASE_SUCCESS: LuaMultiReturn<[vendorItemID: number]> + + PERKS_PROGRAM_REFUND_SUCCESS: LuaMultiReturn<[vendorItemID: number]> + + PERKS_PROGRAM_REMOVE_PENDING_SHOP_ITEM: LuaMultiReturn<[vendorItemID: number]> + + PERKS_PROGRAM_RESULT_ERROR: undefined + + PERKS_PROGRAM_SET_FROZEN_ITEM: LuaMultiReturn<[vendorItemID: number]> + + PET_ATTACK_START: undefined + + PET_ATTACK_STOP: undefined + + PET_BAR_HIDEGRID: undefined + + PET_BAR_SHOWGRID: undefined + + PET_BAR_UPDATE_COOLDOWN: undefined + + PET_DISMISS_START: LuaMultiReturn<[delay: number]> + + PET_FORCE_NAME_DECLENSION: LuaMultiReturn< + [ + name: string, + petNumber: number | undefined, + declinedName1: string | undefined, + declinedName2: string | undefined, + declinedName3: string | undefined, + declinedName4: string | undefined, + declinedName5: string | undefined + ] + > + + PET_UI_CLOSE: undefined + + RAISED_AS_GHOUL: undefined + + UPDATE_POSSESS_BAR: undefined + + UPDATE_VEHICLE_ACTIONBAR: undefined + + BATTLEPET_FORCE_NAME_DECLENSION: LuaMultiReturn<[name: string, battlePetGUID: string]> + + COMPANION_LEARNED: undefined + + COMPANION_UNLEARNED: undefined + + COMPANION_UPDATE: LuaMultiReturn<[companionType: string | undefined]> + + NEW_PET_ADDED: LuaMultiReturn<[battlePetGUID: string]> + + PET_JOURNAL_AUTO_SLOTTED_PET: LuaMultiReturn< + [slotIndex: number, battlePetGUID: string] + > + + PET_JOURNAL_CAGE_FAILED: undefined + + PET_JOURNAL_LIST_UPDATE: undefined + + PET_JOURNAL_NEW_BATTLE_SLOT: undefined + + PET_JOURNAL_PET_DELETED: LuaMultiReturn<[battlePetGUID: string]> + + PET_JOURNAL_PET_RESTORED: LuaMultiReturn<[battlePetGUID: string]> + + PET_JOURNAL_PET_REVOKED: LuaMultiReturn<[battlePetGUID: string]> + + PET_JOURNAL_PETS_HEALED: undefined + + PET_JOURNAL_TRAP_LEVEL_SET: LuaMultiReturn<[trapLevel: number]> + + UPDATE_SUMMONPETS_ACTION: undefined + + PING_SYSTEM_ERROR: LuaMultiReturn<[error: string]> + + PLAYER_CHOICE_CLOSE: undefined + + PLAYER_CHOICE_UPDATE: undefined + + PLAYER_INTERACTION_MANAGER_FRAME_HIDE: LuaMultiReturn<[type: PlayerInteractionType]> + + PLAYER_INTERACTION_MANAGER_FRAME_SHOW: LuaMultiReturn<[type: PlayerInteractionType]> + + MENTORSHIP_STATUS_CHANGED: undefined + + NEWCOMER_GRADUATION: undefined + + SKILL_LINE_SPECS_RANKS_CHANGED: undefined + + SKILL_LINE_SPECS_UNLOCKED: LuaMultiReturn<[skillLineID: number, tradeSkillID: number]> + + ARENA_OPPONENT_UPDATE: LuaMultiReturn<[unitToken: string, updateReason: string]> + + ARENA_PREP_OPPONENT_SPECIALIZATIONS: undefined + + ARENA_SEASON_WORLD_STATE: undefined + + BATTLEFIELD_AUTO_QUEUE: undefined + + BATTLEFIELD_AUTO_QUEUE_EJECT: undefined + + BATTLEFIELD_QUEUE_TIMEOUT: undefined + + BATTLEFIELDS_CLOSED: undefined + + BATTLEFIELDS_SHOW: LuaMultiReturn< + [isArena: boolean | undefined, battleMasterListID: number | undefined] + > + + BATTLEGROUND_OBJECTIVES_UPDATE: undefined + + BATTLEGROUND_POINTS_UPDATE: undefined + + GDF_SIM_COMPLETE: undefined + + HONOR_LEVEL_UPDATE: LuaMultiReturn<[isHigherLevel: boolean]> + + NOTIFY_PVP_AFK_RESULT: LuaMultiReturn< + [offender: string, numBlackMarksOnOffender: number, numPlayersIHaveReported: number] + > + + PLAYER_ENTERING_BATTLEGROUND: undefined + + PLAYER_JOINED_PVP_MATCH: undefined + + POST_MATCH_CURRENCY_REWARD_UPDATE: LuaMultiReturn< + [reward: PVPPostMatchCurrencyReward] + > + + POST_MATCH_ITEM_REWARD_UPDATE: undefined + + PVP_BRAWL_INFO_UPDATED: undefined + + PVP_MATCH_ACTIVE: undefined + + PVP_MATCH_COMPLETE: LuaMultiReturn<[winner: number, duration: number]> + + PVP_MATCH_INACTIVE: undefined + + PVP_MATCH_STATE_CHANGED: undefined + + PVP_RATED_STATS_UPDATE: undefined + + PVP_REWARDS_UPDATE: undefined + + PVP_ROLE_POPUP_HIDE: LuaMultiReturn<[readyCheckInfo: PvpReadyCheckInfo | undefined]> + + PVP_ROLE_POPUP_SHOW: LuaMultiReturn<[readyCheckInfo: PvpReadyCheckInfo]> + + PVP_ROLE_UPDATE: undefined + + PVP_SPECIAL_EVENT_INFO_UPDATED: undefined + + PVP_TYPES_ENABLED: LuaMultiReturn< + [ + wargameBattlegrounds: boolean, + ratedBattlegrounds: boolean, + ratedArenas: boolean, + ratedSoloShuffle: boolean, + ratedBGBlitz: boolean + ] + > + + PVP_VEHICLE_INFO_UPDATED: undefined + + PVP_WORLDSTATE_UPDATE: undefined + + PVPQUEUE_ANYWHERE_SHOW: undefined + + PVPQUEUE_ANYWHERE_UPDATE_AVAILABLE: undefined + + UPDATE_ACTIVE_BATTLEFIELD: undefined + + UPDATE_BATTLEFIELD_SCORE: undefined + + UPDATE_BATTLEFIELD_STATUS: LuaMultiReturn<[battleFieldIndex: number]> + + WAR_MODE_STATUS_UPDATE: LuaMultiReturn<[warModeEnabled: boolean]> + + WARGAME_INVITE_SENT: undefined + + WARGAME_REQUEST_RESPONSE: LuaMultiReturn< + [responderGUID: string, responderName: string | undefined, accepted: boolean] + > + + WARGAME_REQUESTED: LuaMultiReturn< + [ + opposingPartyMemberName: string, + battlegroundName: string, + timeoutSeconds: number, + tournamentRules: boolean + ] + > + + WORLD_PVP_QUEUE: undefined + + QUEST_ACCEPTED: LuaMultiReturn<[questId: number]> + + QUEST_AUTOCOMPLETE: LuaMultiReturn<[questId: number]> + + QUEST_COMPLETE: undefined + + QUEST_DATA_LOAD_RESULT: LuaMultiReturn<[questID: number, success: boolean]> + + QUEST_DETAIL: LuaMultiReturn<[questStartItemID: number | undefined]> + + QUEST_LOG_CRITERIA_UPDATE: LuaMultiReturn< + [ + questID: number, + specificTreeID: number, + description: string, + numFulfilled: number, + numRequired: number + ] + > + + QUEST_LOG_UPDATE: undefined + + QUEST_POI_UPDATE: undefined + + QUEST_REMOVED: LuaMultiReturn<[questID: number, wasReplayQuest: boolean]> + + QUEST_TURNED_IN: LuaMultiReturn< + [questID: number, xpReward: number, moneyReward: number] + > + + QUEST_WATCH_LIST_CHANGED: LuaMultiReturn< + [questID: number | undefined, added: boolean | undefined] + > + + QUEST_WATCH_UPDATE: LuaMultiReturn<[questID: number]> + + QUESTLINE_UPDATE: LuaMultiReturn<[requestRequired: boolean]> + + TASK_PROGRESS_UPDATE: undefined + + TREASURE_PICKER_CACHE_FLUSH: undefined + + WAYPOINT_UPDATE: undefined + + WORLD_QUEST_COMPLETED_BY_SPELL: LuaMultiReturn<[questID: number]> + + QUEST_ACCEPT_CONFIRM: LuaMultiReturn<[name: string, questTitle: string]> + + QUEST_FINISHED: undefined + + QUEST_GREETING: undefined + + QUEST_ITEM_UPDATE: undefined + + QUEST_PROGRESS: undefined + + QUEST_SESSION_CREATED: undefined + + QUEST_SESSION_DESTROYED: undefined + + QUEST_SESSION_ENABLED_STATE_CHANGED: LuaMultiReturn<[enabled: boolean]> + + QUEST_SESSION_JOINED: undefined + + QUEST_SESSION_LEFT: undefined + + QUEST_SESSION_MEMBER_CONFIRM: undefined + + QUEST_SESSION_MEMBER_START_RESPONSE: LuaMultiReturn<[guid: string, response: boolean]> + + QUEST_SESSION_NOTIFICATION: LuaMultiReturn<[result: QuestSessionResult, guid: string]> + + RAF_INFO_UPDATED: LuaMultiReturn<[info: RafInfo]> + + RAF_RECRUITING_ENABLED_STATUS: LuaMultiReturn<[enabled: boolean]> + + RAF_REWARD_CLAIM_FAILED: undefined + + RAF_SYSTEM_ENABLED_STATUS: LuaMultiReturn<[enabled: boolean]> + + RAF_SYSTEM_INFO_UPDATED: LuaMultiReturn<[systemInfo: RafSystemInfo]> + + REPORT_PLAYER_RESULT: LuaMultiReturn<[success: boolean, reportType: ReportType]> + + ARCHAEOLOGY_CLOSED: undefined + + ARCHAEOLOGY_FIND_COMPLETE: LuaMultiReturn< + [numFindsCompleted: number, totalFinds: number, researchBranchID: number] + > + + ARCHAEOLOGY_SURVEY_CAST: LuaMultiReturn< + [ + numFindsCompleted: number, + totalFinds: number, + researchBranchID: number, + successfulFind: number + ] + > + + ARCHAEOLOGY_TOGGLE: undefined + + ARTIFACT_DIGSITE_COMPLETE: LuaMultiReturn<[researchBranchID: number]> + + RESEARCH_ARTIFACT_COMPLETE: LuaMultiReturn<[name: string]> + + RESEARCH_ARTIFACT_DIG_SITE_UPDATED: undefined + + RESEARCH_ARTIFACT_UPDATE: undefined + + ADDON_ACTION_BLOCKED: LuaMultiReturn<[isTainted: string, function: string]> + + ADDON_ACTION_FORBIDDEN: LuaMultiReturn<[isTainted: string, function: string]> + + MACRO_ACTION_BLOCKED: LuaMultiReturn<[function: string]> + + MACRO_ACTION_FORBIDDEN: LuaMultiReturn<[function: string]> + + RETURNING_PLAYER_PROMPT: undefined + + JAILERS_TOWER_LEVEL_UPDATE: LuaMultiReturn<[level: number, type: JailersTowerType]> + + SCENARIO_BONUS_OBJECTIVE_COMPLETE: LuaMultiReturn<[bonusObjectiveID: number]> + + SCENARIO_BONUS_VISIBILITY_UPDATE: undefined + + SCENARIO_COMPLETED: LuaMultiReturn< + [questID: number | undefined, xp: number | undefined, money: number | undefined] + > + + SCENARIO_CRITERIA_SHOW_STATE_UPDATE: LuaMultiReturn<[show: boolean]> + + SCENARIO_CRITERIA_UPDATE: LuaMultiReturn<[criteriaID: number]> + + SCENARIO_POI_UPDATE: undefined + + SCENARIO_SPELL_UPDATE: undefined + + SCENARIO_UPDATE: LuaMultiReturn<[newStep: boolean | undefined]> + + SCRAPPING_MACHINE_ITEM_ADDED: LuaMultiReturn<[index: number]> + + SCRAPPING_MACHINE_ITEM_REMOVED: LuaMultiReturn<[index: number]> + + SCRAPPING_MACHINE_PENDING_ITEM_CHANGED: undefined + + SCRAPPING_MACHINE_SCRAPPING_FINISHED: undefined + + LUA_WARNING: LuaMultiReturn<[warnType: number, warningText: string]> + + SCRIPTED_ANIMATIONS_UPDATE: undefined + + SECURE_TRANSFER_CANCEL: undefined + + SECURE_TRANSFER_CONFIRM_SEND_MAIL: undefined + + SECURE_TRANSFER_CONFIRM_TRADE_ACCEPT: undefined + + CONFIG_COMMIT_FAILED: LuaMultiReturn<[configID: number]> + + TRAIT_COND_INFO_CHANGED: LuaMultiReturn<[condID: number]> + + TRAIT_CONFIG_CREATED: LuaMultiReturn<[configInfo: TraitConfigInfo]> + + TRAIT_CONFIG_DELETED: LuaMultiReturn<[configID: number]> + + TRAIT_CONFIG_LIST_UPDATED: undefined + + TRAIT_CONFIG_UPDATED: LuaMultiReturn<[configID: number]> + + TRAIT_NODE_CHANGED: LuaMultiReturn<[nodeID: number]> + + TRAIT_NODE_CHANGED_PARTIAL: LuaMultiReturn<[ID: number, info: TraitNodeInfoPartial]> + + TRAIT_NODE_ENTRY_UPDATED: LuaMultiReturn<[nodeEntryID: number]> + + TRAIT_SUB_TREE_CHANGED: LuaMultiReturn<[subTreeID: number]> + + TRAIT_SYSTEM_INTERACTION_STARTED: LuaMultiReturn<[treeID: number]> + + TRAIT_SYSTEM_NPC_CLOSED: undefined + + TRAIT_TREE_CHANGED: LuaMultiReturn<[treeID: number]> + + TRAIT_TREE_CURRENCY_INFO_UPDATED: LuaMultiReturn<[treeID: number]> + + SKILL_LINES_CHANGED: undefined + + SOCIAL_ITEM_RECEIVED: undefined + + TWITTER_LINK_RESULT: LuaMultiReturn< + [isLinked: boolean, screenName: string, error: string] + > + + TWITTER_POST_RESULT: LuaMultiReturn<[result: number]> + + TWITTER_STATUS_UPDATE: LuaMultiReturn< + [isTwitterEnabled: boolean, isLinked: boolean, screenName: string] + > + + SOCIAL_QUEUE_CONFIG_UPDATED: undefined + + SOCIAL_QUEUE_UPDATE: LuaMultiReturn< + [groupGUID: string, numAddedItems: number | undefined] + > + + ALERT_REGIONAL_CHAT_DISABLED: undefined + + CHAT_DISABLED_CHANGE_FAILED: LuaMultiReturn<[disabled: boolean]> + + CHAT_DISABLED_CHANGED: LuaMultiReturn<[disabled: boolean]> + + SOULBIND_ACTIVATED: LuaMultiReturn<[soulbindID: number]> + + SOULBIND_CONDUIT_COLLECTION_CLEARED: undefined + + SOULBIND_CONDUIT_COLLECTION_REMOVED: LuaMultiReturn<[conduitID: number]> + + SOULBIND_CONDUIT_COLLECTION_UPDATED: LuaMultiReturn< + [collectionData: ConduitCollectionData] + > + + SOULBIND_CONDUIT_INSTALLED: LuaMultiReturn< + [nodeID: number, data: SoulbindConduitData] + > + + SOULBIND_CONDUIT_UNINSTALLED: LuaMultiReturn< + [nodeID: number, data: SoulbindConduitData] + > + + SOULBIND_FORGE_INTERACTION_ENDED: undefined + + SOULBIND_FORGE_INTERACTION_STARTED: undefined + + SOULBIND_NODE_LEARNED: LuaMultiReturn<[nodeID: number]> + + SOULBIND_NODE_UNLEARNED: LuaMultiReturn<[nodeID: number]> + + SOULBIND_NODE_UPDATED: LuaMultiReturn<[nodeID: number]> + + SOULBIND_PATH_CHANGED: undefined + + SOULBIND_PENDING_CONDUIT_CHANGED: LuaMultiReturn<[nodeID: number, conduitID: number]> + + SOUND_DEVICE_UPDATE: undefined + + SOUNDKIT_FINISHED: LuaMultiReturn<[soundHandle: number]> + + ACTIVE_TALENT_GROUP_CHANGED: LuaMultiReturn<[curr: number, prev: number]> + + CONFIRM_TALENT_WIPE: LuaMultiReturn<[cost: number, respecType: number]> + + PET_SPECIALIZATION_CHANGED: undefined + + PLAYER_LEARN_PVP_TALENT_FAILED: undefined + + PLAYER_LEARN_TALENT_FAILED: undefined + + PLAYER_PVP_TALENT_UPDATE: undefined + + PLAYER_TALENT_UPDATE: undefined + + SPEC_INVOLUNTARILY_CHANGED: LuaMultiReturn<[isPet: boolean]> + + TALENTS_INVOLUNTARILY_RESET: LuaMultiReturn<[isPetTalents: boolean]> + + SPELL_ACTIVATION_OVERLAY_GLOW_HIDE: LuaMultiReturn<[spellID: number]> + + SPELL_ACTIVATION_OVERLAY_GLOW_SHOW: LuaMultiReturn<[spellID: number]> + + SPELL_ACTIVATION_OVERLAY_HIDE: LuaMultiReturn<[spellID: number | undefined]> + + SPELL_ACTIVATION_OVERLAY_SHOW: LuaMultiReturn< + [ + spellID: number, + overlayFileDataID: number, + locationName: string, + scale: number, + r: number, + g: number, + b: number + ] + > + + CURRENT_SPELL_CAST_CHANGED: LuaMultiReturn<[cancelledCast: boolean]> + + LEARNED_SPELL_IN_SKILL_LINE: LuaMultiReturn< + [spellID: number, skillLineIndex: number, isGuildPerkSpell: boolean] + > + + MAX_SPELL_START_RECOVERY_OFFSET_CHANGED: LuaMultiReturn< + [clampedNewQueueWindowMs: number] + > + + PLAYER_TOTEM_UPDATE: LuaMultiReturn<[totemSlot: number]> + + SPELL_FLYOUT_UPDATE: LuaMultiReturn< + [ + flyoutID: number | undefined, + spellID: number | undefined, + isLearned: boolean | undefined + ] + > + + SPELL_PUSHED_TO_ACTIONBAR: LuaMultiReturn< + [spellID: number, slot: number, page: number] + > + + SPELL_UPDATE_CHARGES: undefined + + SPELL_UPDATE_COOLDOWN: undefined + + SPELL_UPDATE_ICON: undefined + + SPELL_UPDATE_USABLE: undefined + + SPELLS_CHANGED: undefined + + START_AUTOREPEAT_SPELL: undefined + + STOP_AUTOREPEAT_SPELL: undefined + + UNIT_SPELLCAST_SENT: LuaMultiReturn< + [unit: string, target: string, castGUID: string, spellID: number] + > + + UPDATE_SHAPESHIFT_COOLDOWN: undefined + + UPDATE_SHAPESHIFT_FORM: undefined + + UPDATE_SHAPESHIFT_FORMS: undefined + + UPDATE_SHAPESHIFT_USABLE: undefined + + ENCHANT_SPELL_COMPLETED: LuaMultiReturn< + [successful: boolean, enchantedItem: ItemLocationMixin | undefined] + > + + ENCHANT_SPELL_SELECTED: undefined + + SPELL_DATA_LOAD_RESULT: LuaMultiReturn<[spellID: number, success: boolean]> + + SPELL_TEXT_UPDATE: LuaMultiReturn<[spellID: number]> + + UPDATE_SPELL_TARGET_ITEM_CONTEXT: undefined + + OPEN_SPLASH_SCREEN: LuaMultiReturn<[info: SplashScreenInfo | undefined]> + + PET_INFO_UPDATE: undefined + + PET_STABLE_CLOSED: undefined + + PET_STABLE_FAVORITES_UPDATED: undefined + + PET_STABLE_SHOW: undefined + + PET_STABLE_UPDATE: undefined + + SUPER_TRACKING_CHANGED: undefined + + CAPTUREFRAMES_FAILED: undefined + + CAPTUREFRAMES_SUCCEEDED: undefined + + DISABLE_TAXI_BENCHMARK: undefined + + ENABLE_TAXI_BENCHMARK: undefined + + FIRST_FRAME_RENDERED: undefined + + GENERIC_ERROR: LuaMultiReturn<[errorMessage: string]> + + GLOBAL_MOUSE_DOWN: LuaMultiReturn<[button: string]> + + GLOBAL_MOUSE_UP: LuaMultiReturn<[button: string]> + + INITIAL_HOTFIXES_APPLIED: undefined + + LOC_RESULT: LuaMultiReturn<[result: string]> + + LOGOUT_CANCEL: undefined + + PLAYER_CAMPING: undefined + + PLAYER_ENTERING_WORLD: LuaMultiReturn< + [isInitialLogin: boolean, isReloadingUi: boolean] + > + + PLAYER_LEAVING_WORLD: undefined + + PLAYER_LOGIN: undefined + + PLAYER_LOGOUT: undefined + + PLAYER_QUITING: undefined + + SEARCH_DB_LOADED: undefined + + STREAMING_ICON: LuaMultiReturn<[streamingStatus: number]> + + SYSMSG: LuaMultiReturn<[string: string, r: number, g: number, b: number]> + + TIME_PLAYED_MSG: LuaMultiReturn< + [totalTimePlayed: number, timePlayedThisLevel: number] + > + + UI_ERROR_MESSAGE: LuaMultiReturn<[errorType: number, message: string]> + + UI_ERROR_POPUP: LuaMultiReturn<[errorType: number, message: string]> + + UI_INFO_MESSAGE: LuaMultiReturn<[errorType: number, message: string]> + + VARIABLES_LOADED: undefined + + WOW_MOUSE_NOT_FOUND: undefined + + TALKINGHEAD_CLOSE: undefined + + TALKINGHEAD_REQUESTED: undefined + + TAXI_NODE_STATUS_CHANGED: undefined + + TAXIMAP_CLOSED: undefined + + TAXIMAP_OPENED: LuaMultiReturn<[system: number]> + + REMIX_END_OF_EVENT: undefined + + HIDE_HYPERLINK_TOOLTIP: undefined + + SHOW_HYPERLINK_TOOLTIP: LuaMultiReturn<[hyperlink: string]> + + TOOLTIP_DATA_UPDATE: LuaMultiReturn<[dataInstanceID: number | undefined]> + + NEW_TOY_ADDED: LuaMultiReturn<[itemID: number]> + + TOYS_UPDATED: LuaMultiReturn< + [ + itemID: number | undefined, + isNew: boolean | undefined, + hasFanfare: boolean | undefined + ] + > + + PLAYER_TRADE_CURRENCY: undefined + + PLAYER_TRADE_MONEY: undefined + + TRADE_ACCEPT_UPDATE: LuaMultiReturn<[playerAccepted: number, targetAccepted: number]> + + TRADE_CLOSED: undefined + + TRADE_CURRENCY_CHANGED: undefined + + TRADE_MONEY_CHANGED: undefined + + TRADE_PLAYER_ITEM_CHANGED: LuaMultiReturn<[tradeSlotIndex: number]> + + TRADE_POTENTIAL_BIND_ENCHANT: LuaMultiReturn<[canBecomeBoundForTrade: boolean]> + + TRADE_POTENTIAL_REMOVE_TRANSMOG: LuaMultiReturn< + [itemLink: string, tradeSlotIndex: number] + > + + TRADE_REQUEST: LuaMultiReturn<[name: string]> + + TRADE_REQUEST_CANCEL: undefined + + TRADE_SHOW: undefined + + TRADE_TARGET_ITEM_CHANGED: LuaMultiReturn<[tradeSlotIndex: number]> + + TRADE_UPDATE: undefined + + CRAFTING_DETAILS_UPDATE: undefined + + NEW_RECIPE_LEARNED: LuaMultiReturn< + [ + recipeID: number, + recipeLevel: number | undefined, + baseRecipeID: number | undefined + ] + > + + OBLITERUM_FORGE_PENDING_ITEM_CHANGED: undefined + + OPEN_RECIPE_RESPONSE: LuaMultiReturn< + [recipeID: number, skillLineID: number, expansionSkillLineID: number] + > + + TRACKED_RECIPE_UPDATE: LuaMultiReturn<[recipeID: number, tracked: boolean]> + + TRADE_SKILL_CLOSE: undefined + + TRADE_SKILL_CRAFT_BEGIN: LuaMultiReturn<[recipeSpellID: number]> + + TRADE_SKILL_CRAFTING_REAGENT_BONUS_TEXT_UPDATED: LuaMultiReturn<[itemID: number]> + + TRADE_SKILL_CURRENCY_REWARD_RESULT: LuaMultiReturn<[data: CraftingCurrencyResultData]> + + TRADE_SKILL_DATA_SOURCE_CHANGED: undefined + + TRADE_SKILL_DATA_SOURCE_CHANGING: undefined + + TRADE_SKILL_DETAILS_UPDATE: undefined + + TRADE_SKILL_FAVORITES_CHANGED: LuaMultiReturn< + [isFavorite: boolean, recipeSpellID: number] + > + + TRADE_SKILL_ITEM_CRAFTED_RESULT: LuaMultiReturn<[data: CraftingItemResultData]> + + TRADE_SKILL_ITEM_UPDATE: LuaMultiReturn<[itemGUID: string]> + + TRADE_SKILL_LIST_UPDATE: undefined + + TRADE_SKILL_NAME_UPDATE: undefined + + TRADE_SKILL_SHOW: undefined + + UPDATE_TRADESKILL_CAST_STOPPED: LuaMultiReturn<[isScrapping: boolean]> + + TRAINER_CLOSED: undefined + + TRAINER_DESCRIPTION_UPDATE: undefined + + TRAINER_SERVICE_INFO_NAME_UPDATE: undefined + + TRAINER_SHOW: undefined + + TRAINER_UPDATE: undefined + + TRANSMOG_COLLECTION_CAMERA_UPDATE: undefined + + TRANSMOG_COLLECTION_ITEM_FAVORITE_UPDATE: LuaMultiReturn< + [itemAppearanceID: number, isFavorite: boolean] + > + + TRANSMOG_COLLECTION_ITEM_UPDATE: undefined + + TRANSMOG_COLLECTION_SOURCE_ADDED: LuaMultiReturn<[itemModifiedAppearanceID: number]> + + TRANSMOG_COLLECTION_SOURCE_REMOVED: LuaMultiReturn<[itemModifiedAppearanceID: number]> + + TRANSMOG_COLLECTION_UPDATED: LuaMultiReturn< + [ + collectionIndex: number | undefined, + modID: number | undefined, + itemAppearanceID: number | undefined, + reason: string | undefined + ] + > + + TRANSMOG_COSMETIC_COLLECTION_SOURCE_ADDED: LuaMultiReturn< + [itemModifiedAppearanceID: number] + > + + TRANSMOG_SEARCH_UPDATED: LuaMultiReturn< + [searchType: TransmogSearchType, collectionType: TransmogCollectionType | undefined] + > + + TRANSMOG_SETS_UPDATE_FAVORITE: undefined + + TRANSMOG_SOURCE_COLLECTABILITY_UPDATE: LuaMultiReturn< + [itemModifiedAppearanceID: number, collectable: boolean] + > + + TRANSMOGRIFY_CLOSE: undefined + + TRANSMOGRIFY_ITEM_UPDATE: undefined + + TRANSMOGRIFY_OPEN: undefined + + TRANSMOGRIFY_SUCCESS: LuaMultiReturn<[transmogLocation: TransmogLocationMixin]> + + TRANSMOGRIFY_UPDATE: LuaMultiReturn< + [transmogLocation: TransmogLocationMixin | undefined, action: string | undefined] + > + + LEAVING_TUTORIAL_AREA: undefined + + NPE_TUTORIAL_UPDATE: undefined + + TUTORIAL_HIGHLIGHT_SPELL: LuaMultiReturn< + [spellID: number, tutorialGlobalStringTag: string] + > + + TUTORIAL_TRIGGER: LuaMultiReturn<[tutorialIndex: number, forceShow: boolean]> + + TUTORIAL_UNHIGHLIGHT_SPELL: undefined + + DISPLAY_EVENT_TOAST_LINK: LuaMultiReturn<[link: string]> + + DISPLAY_EVENT_TOASTS: undefined + + FRAME_MANAGER_UPDATE_ALL: undefined + + FRAME_MANAGER_UPDATE_FRAME: LuaMultiReturn<[type: UIFrameType, show: boolean]> + + GENERIC_WIDGET_DISPLAY_SHOW: LuaMultiReturn<[info: GenericWidgetDisplayFrameInfo]> + + UPDATE_MACROS: undefined + + NOTCHED_DISPLAY_MODE_CHANGED: undefined + + UI_SCALE_CHANGED: undefined + + UI_MODEL_SCENE_INFO_UPDATED: undefined + + SYSTEM_VISIBILITY_CHANGED: undefined + + UPDATE_ALL_UI_WIDGETS: undefined + + UPDATE_UI_WIDGET: LuaMultiReturn<[widgetInfo: UIWidgetInfo]> + + UNIT_AURA: LuaMultiReturn<[unitTarget: UnitToken, updateInfo: UnitAuraUpdateInfo]> + + ACTIVE_PLAYER_SPECIALIZATION_CHANGED: undefined + + ARENA_COOLDOWNS_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + ARENA_CROWD_CONTROL_SPELL_UPDATE: LuaMultiReturn< + [unitTarget: UnitToken, spellID: number] + > + + AUTOFOLLOW_BEGIN: LuaMultiReturn<[name: string]> + + AUTOFOLLOW_END: undefined + + CANCEL_SUMMON: undefined + + COMBO_TARGET_CHANGED: undefined + + CONFIRM_BINDER: LuaMultiReturn<[areaName: string]> + + CONFIRM_SUMMON: LuaMultiReturn< + [summonReason: number, skippingStartExperience: boolean] + > + + ECLIPSE_DIRECTION_CHANGE: LuaMultiReturn<[direction: string]> + + HEARTHSTONE_BOUND: undefined + + HONOR_XP_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + INCOMING_RESURRECT_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + INCOMING_SUMMON_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + KNOWN_TITLES_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + LOCALPLAYER_PET_RENAMED: undefined + + MIRROR_TIMER_PAUSE: LuaMultiReturn<[timerName: string, paused: number]> + + MIRROR_TIMER_START: LuaMultiReturn< + [ + timerName: string, + value: number, + maxValue: number, + scale: number, + paused: number, + timerLabel: string + ] + > + + MIRROR_TIMER_STOP: LuaMultiReturn<[timerName: string]> + + NEUTRAL_FACTION_SELECT_RESULT: LuaMultiReturn<[success: boolean]> + + OBJECT_ENTERED_AOI: LuaMultiReturn<[guid: string]> + + OBJECT_LEFT_AOI: LuaMultiReturn<[guid: string]> + + PET_BAR_UPDATE_USABLE: undefined + + PET_UI_UPDATE: undefined + + PLAYER_CAN_GLIDE_CHANGED: LuaMultiReturn<[canGlide: boolean]> + + PLAYER_DAMAGE_DONE_MODS: LuaMultiReturn<[unitTarget: UnitToken]> + + PLAYER_ENTER_COMBAT: undefined + + PLAYER_FARSIGHT_FOCUS_CHANGED: undefined + + PLAYER_FLAGS_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + PLAYER_FOCUS_CHANGED: undefined + + PLAYER_IMPULSE_APPLIED: undefined + + PLAYER_IS_GLIDING_CHANGED: LuaMultiReturn<[isGliding: boolean]> + + PLAYER_LEAVE_COMBAT: undefined + + PLAYER_LEVEL_CHANGED: LuaMultiReturn< + [oldLevel: number, newLevel: number, real: boolean] + > + + PLAYER_LEVEL_UP: LuaMultiReturn< + [ + level: number, + healthDelta: number, + powerDelta: number, + numNewTalents: number, + numNewPvpTalentSlots: number, + strengthDelta: number, + agilityDelta: number, + staminaDelta: number, + intellectDelta: number + ] + > + + PLAYER_MOUNT_DISPLAY_CHANGED: undefined + + PLAYER_PVP_KILLS_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + PLAYER_PVP_RANK_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + PLAYER_REGEN_DISABLED: undefined + + PLAYER_REGEN_ENABLED: undefined + + PLAYER_SOFT_ENEMY_CHANGED: undefined + + PLAYER_SOFT_FRIEND_CHANGED: undefined + + PLAYER_SOFT_INTERACT_CHANGED: LuaMultiReturn<[oldTarget: string, newTarget: string]> + + PLAYER_SOFT_TARGET_INTERACTION: undefined + + PLAYER_SPECIALIZATION_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + PLAYER_STARTED_LOOKING: undefined + + PLAYER_STARTED_MOVING: undefined + + PLAYER_STARTED_TURNING: undefined + + PLAYER_STOPPED_LOOKING: undefined + + PLAYER_STOPPED_MOVING: undefined + + PLAYER_STOPPED_TURNING: undefined + + PLAYER_TARGET_CHANGED: undefined + + PLAYER_TRIAL_XP_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + PLAYER_UPDATE_RESTING: undefined + + PLAYER_XP_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + PORTRAITS_UPDATED: undefined + + PROVING_GROUNDS_SCORE_UPDATE: LuaMultiReturn<[points: number]> + + PVP_TIMER_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + RUNE_POWER_UPDATE: LuaMultiReturn<[runeIndex: number, added: boolean | undefined]> + + RUNE_TYPE_UPDATE: LuaMultiReturn<[runeIndex: number]> + + SHOW_FACTION_SELECT_UI: undefined + + SPELL_CONFIRMATION_PROMPT: LuaMultiReturn< + [ + spellID: number, + effectValue: number, + message: string, + duration: number, + currencyTypesID: number, + currencyCost: number, + currentDifficulty: number + ] + > + + SPELL_CONFIRMATION_TIMEOUT: LuaMultiReturn<[spellID: number, effectValue: number]> + + UNIT_ABSORB_AMOUNT_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_AREA_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_ATTACK: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_ATTACK_POWER: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_ATTACK_SPEED: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_CHEAT_TOGGLE_EVENT: undefined + + UNIT_CLASSIFICATION_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_COMBAT: LuaMultiReturn< + [ + unitTarget: UnitToken, + event: string, + flagText: string, + amount: number, + schoolMask: number + ] + > + + UNIT_CONNECTION: LuaMultiReturn<[unitTarget: UnitToken, isConnected: boolean]> + + UNIT_CTR_OPTIONS: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_DAMAGE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_DEFENSE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_DISPLAYPOWER: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_DISTANCE_CHECK_UPDATE: LuaMultiReturn< + [unitTarget: UnitToken, isInDistance: boolean] + > + + UNIT_FACTION: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_FLAGS: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_FORM_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_HEAL_ABSORB_AMOUNT_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_HEAL_PREDICTION: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_HEALTH: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_IN_RANGE_UPDATE: LuaMultiReturn<[unitTarget: UnitToken, isInRange: boolean]> + + UNIT_INVENTORY_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_LEVEL: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_MANA: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_MAX_HEALTH_MODIFIERS_CHANGED: LuaMultiReturn< + [unitTarget: UnitToken, percentMaxHealthAdjusted: number] + > + + UNIT_MAXHEALTH: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_MAXPOWER: LuaMultiReturn<[unitTarget: UnitToken, powerType: string]> + + UNIT_MODEL_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_NAME_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_OTHER_PARTY_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_PET: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_PET_EXPERIENCE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_PHASE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_PORTRAIT_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_POWER_BAR_HIDE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_POWER_BAR_SHOW: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_POWER_BAR_TIMER_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_POWER_FREQUENT: LuaMultiReturn<[unitTarget: UnitToken, powerType: string]> + + UNIT_POWER_POINT_CHARGE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_POWER_UPDATE: LuaMultiReturn<[unitTarget: UnitToken, powerType: string]> + + UNIT_QUEST_LOG_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_RANGED_ATTACK_POWER: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_RANGEDDAMAGE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_RESISTANCES: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_SPELL_HASTE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_SPELLCAST_CHANNEL_START: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_CHANNEL_STOP: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_CHANNEL_UPDATE: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_DELAYED: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_EMPOWER_START: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_EMPOWER_STOP: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number, complete: boolean] + > + + UNIT_SPELLCAST_EMPOWER_UPDATE: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_FAILED: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_FAILED_QUIET: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_INTERRUPTED: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_INTERRUPTIBLE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_SPELLCAST_NOT_INTERRUPTIBLE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_SPELLCAST_RETICLE_CLEAR: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_RETICLE_TARGET: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_START: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_STOP: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_SPELLCAST_SUCCEEDED: LuaMultiReturn< + [unitTarget: UnitToken, castGUID: string, spellID: number] + > + + UNIT_STATS: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_TARGET: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_TARGETABLE_CHANGED: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_THREAT_LIST_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_THREAT_SITUATION_UPDATE: LuaMultiReturn<[unitTarget: UnitToken]> + + UPDATE_EXHAUSTION: undefined + + UPDATE_MOUSEOVER_UNIT: undefined + + UPDATE_STEALTH: undefined + + VEHICLE_ANGLE_UPDATE: LuaMultiReturn<[normalizedPitch: number, radians: number]> + + PLAYER_GAINS_VEHICLE_DATA: LuaMultiReturn< + [unitTarget: UnitToken, vehicleUIIndicatorID: number] + > + + PLAYER_LOSES_VEHICLE_DATA: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_ENTERED_VEHICLE: LuaMultiReturn< + [ + unitTarget: UnitToken, + showVehicleFrame: boolean, + isControlSeat: boolean, + vehicleUIIndicatorID: number, + vehicleGUID: string, + mayChooseExit: boolean, + hasPitch: boolean + ] + > + + UNIT_ENTERING_VEHICLE: LuaMultiReturn< + [ + unitTarget: UnitToken, + showVehicleFrame: boolean, + isControlSeat: boolean, + vehicleUIIndicatorID: number, + vehicleGUID: string, + mayChooseExit: boolean, + hasPitch: boolean + ] + > + + UNIT_EXITED_VEHICLE: LuaMultiReturn<[unitTarget: UnitToken]> + + UNIT_EXITING_VEHICLE: LuaMultiReturn<[unitTarget: UnitToken]> + + VEHICLE_ANGLE_SHOW: LuaMultiReturn<[shouldShow: number | undefined]> + + VEHICLE_PASSENGERS_CHANGED: undefined + + VEHICLE_POWER_SHOW: LuaMultiReturn<[shouldShow: number | undefined]> + + VEHICLE_UPDATE: undefined + + ADAPTER_LIST_CHANGED: undefined + + DISPLAY_SIZE_CHANGED: undefined + + GLUE_SCREENSHOT_FAILED: undefined + + GLUE_SCREENSHOT_STARTED: undefined + + GLUE_SCREENSHOT_SUCCEEDED: undefined + + GX_RESTARTED: undefined + + SCREENSHOT_FAILED: undefined + + SCREENSHOT_STARTED: undefined + + SCREENSHOT_SUCCEEDED: undefined + + VIGNETTE_MINIMAP_UPDATED: LuaMultiReturn<[vignetteGUID: string, onMinimap: boolean]> + + VIGNETTES_UPDATED: undefined + + VOICE_CHAT_ACTIVE_INPUT_DEVICE_UPDATED: undefined + + VOICE_CHAT_ACTIVE_OUTPUT_DEVICE_UPDATED: undefined + + VOICE_CHAT_AUDIO_CAPTURE_ENERGY: LuaMultiReturn<[isSpeaking: boolean, energy: number]> + + VOICE_CHAT_AUDIO_CAPTURE_STARTED: undefined + + VOICE_CHAT_AUDIO_CAPTURE_STOPPED: undefined + + VOICE_CHAT_CHANNEL_ACTIVATED: LuaMultiReturn<[channelID: number]> + + VOICE_CHAT_CHANNEL_DEACTIVATED: LuaMultiReturn<[channelID: number]> + + VOICE_CHAT_CHANNEL_DISPLAY_NAME_CHANGED: LuaMultiReturn< + [channelID: number, channelDisplayName: string] + > + + VOICE_CHAT_CHANNEL_JOINED: LuaMultiReturn< + [ + status: VoiceChatStatusCode, + channelID: number, + channelType: ChatChannelType, + clubId: string | undefined, + streamId: string | undefined + ] + > + + VOICE_CHAT_CHANNEL_MEMBER_ACTIVE_STATE_CHANGED: LuaMultiReturn< + [memberID: number, channelID: number, isActive: boolean] + > + + VOICE_CHAT_CHANNEL_MEMBER_ADDED: LuaMultiReturn<[memberID: number, channelID: number]> + + VOICE_CHAT_CHANNEL_MEMBER_ENERGY_CHANGED: LuaMultiReturn< + [memberID: number, channelID: number, speakingEnergy: number] + > + + VOICE_CHAT_CHANNEL_MEMBER_GUID_UPDATED: LuaMultiReturn< + [memberID: number, channelID: number] + > + + VOICE_CHAT_CHANNEL_MEMBER_MUTE_FOR_ALL_CHANGED: LuaMultiReturn< + [memberID: number, channelID: number, isMutedForAll: boolean] + > + + VOICE_CHAT_CHANNEL_MEMBER_MUTE_FOR_ME_CHANGED: LuaMultiReturn< + [memberID: number, channelID: number, isMutedForMe: boolean] + > + + VOICE_CHAT_CHANNEL_MEMBER_REMOVED: LuaMultiReturn< + [memberID: number, channelID: number] + > + + VOICE_CHAT_CHANNEL_MEMBER_SILENCED_CHANGED: LuaMultiReturn< + [memberID: number, channelID: number, isSilenced: boolean] + > + + VOICE_CHAT_CHANNEL_MEMBER_SPEAKING_STATE_CHANGED: LuaMultiReturn< + [memberID: number, channelID: number, isSpeaking: boolean] + > + + VOICE_CHAT_CHANNEL_MEMBER_STT_MESSAGE: LuaMultiReturn< + [memberID: number, channelID: number, message: string, language: string] + > + + VOICE_CHAT_CHANNEL_MEMBER_VOLUME_CHANGED: LuaMultiReturn< + [memberID: number, channelID: number, volume: number] + > + + VOICE_CHAT_CHANNEL_MUTE_STATE_CHANGED: LuaMultiReturn< + [channelID: number, isMuted: boolean] + > + + VOICE_CHAT_CHANNEL_PTT_CHANGED: LuaMultiReturn< + [channelID: number, pushToTalkSetting: string] + > + + VOICE_CHAT_CHANNEL_REMOVED: LuaMultiReturn<[channelID: number]> + + VOICE_CHAT_CHANNEL_TRANSCRIBING_CHANGED: LuaMultiReturn< + [channelID: number, isTranscribing: boolean] + > + + VOICE_CHAT_CHANNEL_TRANSMIT_CHANGED: LuaMultiReturn< + [channelID: number, isTransmitting: boolean] + > + + VOICE_CHAT_CHANNEL_VOLUME_CHANGED: LuaMultiReturn<[channelID: number, volume: number]> + + VOICE_CHAT_COMMUNICATION_MODE_CHANGED: LuaMultiReturn< + [communicationMode: CommunicationMode] + > + + VOICE_CHAT_CONNECTION_SUCCESS: undefined + + VOICE_CHAT_DEAFENED_CHANGED: LuaMultiReturn<[isDeafened: boolean]> + + VOICE_CHAT_ERROR: LuaMultiReturn< + [platformCode: number, statusCode: VoiceChatStatusCode] + > + + VOICE_CHAT_INPUT_DEVICES_UPDATED: undefined + + VOICE_CHAT_LOGIN: LuaMultiReturn<[status: VoiceChatStatusCode]> + + VOICE_CHAT_LOGOUT: LuaMultiReturn<[status: VoiceChatStatusCode]> + + VOICE_CHAT_MUTED_CHANGED: LuaMultiReturn<[isMuted: boolean]> + + VOICE_CHAT_OUTPUT_DEVICES_UPDATED: undefined + + VOICE_CHAT_PENDING_CHANNEL_JOIN_STATE: LuaMultiReturn< + [ + channelType: ChatChannelType, + clubId: string | undefined, + streamId: string | undefined, + pendingJoin: boolean + ] + > + + VOICE_CHAT_PTT_BUTTON_PRESSED_STATE_CHANGED: LuaMultiReturn<[isPressed: boolean]> + + VOICE_CHAT_SILENCED_CHANGED: LuaMultiReturn<[isSilenced: boolean]> + + VOICE_CHAT_SPEAK_FOR_ME_ACTIVE_STATUS_UPDATED: undefined + + VOICE_CHAT_SPEAK_FOR_ME_FEATURE_STATUS_UPDATED: undefined + + VOICE_CHAT_TTS_PLAYBACK_FAILED: LuaMultiReturn< + [status: VoiceTtsStatusCode, utteranceID: number, destination: VoiceTtsDestination] + > + + VOICE_CHAT_TTS_PLAYBACK_FINISHED: LuaMultiReturn< + [numConsumers: number, utteranceID: number, destination: VoiceTtsDestination] + > + + VOICE_CHAT_TTS_PLAYBACK_STARTED: LuaMultiReturn< + [ + numConsumers: number, + utteranceID: number, + durationMS: number, + destination: VoiceTtsDestination + ] + > + + VOICE_CHAT_TTS_SPEAK_TEXT_UPDATE: LuaMultiReturn< + [status: VoiceTtsStatusCode, utteranceID: number] + > + + VOICE_CHAT_TTS_VOICES_UPDATE: undefined + + VOICE_CHAT_VAD_SETTINGS_UPDATED: undefined + + VOID_DEPOSIT_WARNING: LuaMultiReturn<[slot: number, link: string]> + + VOID_STORAGE_CONTENTS_UPDATE: undefined + + VOID_STORAGE_DEPOSIT_UPDATE: LuaMultiReturn<[slot: number]> + + VOID_STORAGE_UPDATE: undefined + + VOID_TRANSFER_DONE: undefined + + VOID_TRANSFER_SUCCESS: undefined + + WEEKLY_REWARDS_ITEM_CHANGED: undefined + + WEEKLY_REWARDS_UPDATE: undefined + + WORLD_LOOT_OBJECT_INFO_UPDATED: LuaMultiReturn<[guid: string]> + + WORLD_LOOT_OBJECT_SWAP_INVENTORY_TYPE_UPDATED: undefined + + CANCEL_PLAYER_COUNTDOWN: LuaMultiReturn< + [initiatedBy: string, informChat: boolean, initiatedByName: string | undefined] + > + + START_PLAYER_COUNTDOWN: LuaMultiReturn< + [ + initiatedBy: string, + timeRemaining: number, + totalTime: number, + informChat: boolean, + initiatedByName: string | undefined + ] + > + + START_TIMER: LuaMultiReturn< + [timerType: StartTimerType, timeRemaining: number, totalTime: number] + > + + STOP_TIMER_OF_TYPE: LuaMultiReturn<[timerType: StartTimerType]> + + WORLD_STATE_TIMER_START: LuaMultiReturn<[timerID: number]> + + WORLD_STATE_TIMER_STOP: LuaMultiReturn<[timerID: number]> + + ENTITLEMENT_DELIVERED: LuaMultiReturn< + [ + entitlementType: WoWEntitlementType, + textureID: number, + name: string, + payloadID: number | undefined, + showFancyToast: boolean + ] + > + + RAF_ENTITLEMENT_DELIVERED: LuaMultiReturn< + [ + entitlementType: WoWEntitlementType, + textureID: number, + name: string, + payloadID: number | undefined, + showFancyToast: boolean, + rafVersion: RecruitAFriendRewardsVersion + ] + > + + TOKEN_AUCTION_SOLD: undefined + + TOKEN_BUY_CONFIRM_REQUIRED: undefined + + TOKEN_BUY_RESULT: LuaMultiReturn<[result: number]> + + TOKEN_CAN_VETERAN_BUY_UPDATE: LuaMultiReturn<[result: number]> + + TOKEN_DISTRIBUTIONS_UPDATED: LuaMultiReturn<[result: number]> + + TOKEN_MARKET_PRICE_UPDATED: LuaMultiReturn<[result: number]> + + TOKEN_REDEEM_BALANCE_UPDATED: undefined + + TOKEN_REDEEM_CONFIRM_REQUIRED: LuaMultiReturn<[choiceType: number]> + + TOKEN_REDEEM_FRAME_SHOW: undefined + + TOKEN_REDEEM_GAME_TIME_UPDATED: undefined + + TOKEN_REDEEM_RESULT: LuaMultiReturn<[result: number, choiceType: number]> + + TOKEN_SELL_CONFIRM_REQUIRED: undefined + + TOKEN_SELL_CONFIRMED: undefined + + TOKEN_SELL_RESULT: LuaMultiReturn<[result: number]> + + TOKEN_STATUS_CHANGED: undefined + } + + type WoWEventKey = keyof WowEventPayload +} + +export {} diff --git a/src/types/Wow/scripts.d.ts b/src/types/Wow/scripts.d.ts new file mode 100644 index 0000000..f06ed63 --- /dev/null +++ b/src/types/Wow/scripts.d.ts @@ -0,0 +1,2413 @@ +/* eslint-disable @typescript-eslint/no-duplicate-enum-values */ +/* eslint-disable @typescript-eslint/ban-types */ +/** @noSelfInFile **/ + +declare global { + interface Blob { + DrawAll(): void + + DrawBlob(questID: number, draw: boolean): void + + DrawNone(): void + + EnableMerging(enable: boolean): void + + EnableSmoothing(enable: boolean): void + + GetMapID(): number + + SetBorderAlpha(alpha: number): void + + SetBorderScalar(scalar: number): void + + SetBorderTexture(asset: string): void + + SetFillAlpha(alpha: number): void + + SetFillTexture(asset: string): void + + SetMapID(uiMapID: number): void + + SetMergeThreshold(threshold: number): void + + SetNumSplinePoints(numSplinePoints: number): void + } + + interface CharacterModelBase { + ApplySpellVisualKit(spellVisualKitID: number, oneShot: boolean): void + + CanSetUnit(unit: UnitToken): void + + FreezeAnimation(anim: number, variation: number, frame: number): void + + GetDisplayInfo(): number + + GetDoBlend(): boolean + + GetKeepModelOnHide(): boolean + + HasAnimation(anim: number): boolean + + PlayAnimKit(animKit: number, loop: boolean): void + + RefreshCamera(): void + + RefreshUnit(): void + + SetAnimation(anim: number, variation: number | undefined): void + + SetBarberShopAlternateForm(): void + + SetCamDistanceScale(scale: number): void + + SetCreature(creatureID: number, displayID: number): void + + SetDisplayInfo(displayID: number, mountDisplayID: number | undefined): void + + SetDoBlend(doBlend: boolean): void + + SetItem( + itemID: number, + appearanceModID: number | undefined, + itemVisualID: number | undefined + ): void + + SetItemAppearance( + itemAppearanceID: number, + itemVisualID: number | undefined, + itemSubclass: ItemWeaponSubclass | undefined + ): void + + SetKeepModelOnHide(keepModelOnHide: boolean): void + + SetPortraitZoom(zoom: number): void + + SetRotation(radians: number, animate: boolean): void + + SetUnit(unit: UnitToken, blend: boolean, useNativeForm: boolean | undefined): boolean + + StopAnimKit(): void + + ZeroCachedCenterXY(): void + } + + interface CinematicModel { + EquipItem(itemID: number): void + + InitializeCamera(scaleFactor: number): void + + InitializePanCamera(scaleFactor: number): void + + RefreshCamera(): void + + SetAnimOffset(offset: number): void + + SetCameraPosition(positionX: number, positionY: number, positionZ: number): void + + SetCameraTarget(positionX: number, positionY: number, positionZ: number): void + + SetCreatureData(creatureID: number): void + + SetFacingLeft(isFacingLeft: boolean): void + + SetFadeTimes(fadeInSeconds: number, fadeOutSeconds: number): void + + SetHeightFactor(factor: number): void + + SetJumpInfo(jumpLength: number, jumpHeight: number): void + + SetPanDistance(scale: number): void + + SetSpellVisualKit(visualKitID: number): void + + SetTargetDistance(scale: number): void + + StartPan( + panType: number, + durationSeconds: number, + doFade: boolean, + visKitID: number, + startPositionScale: number, + speedMultiplier: number + ): void + + StopPan(): void + + UnequipItems(): void + } + + interface Cooldown { + Clear(): void + + GetCooldownDisplayDuration(): number + + GetCooldownDuration(): number + + GetCooldownTimes(): LuaMultiReturn<[start: number, duration: number]> + + GetDrawBling(): boolean + + GetDrawEdge(): boolean + + GetDrawSwipe(): boolean + + GetEdgeScale(): number + + GetReverse(): boolean + + GetRotation(): number + + IsPaused(): boolean + + Pause(): void + + Resume(): void + + SetBlingTexture( + texture: string, + colorR: number, + colorG: number, + colorB: number, + colorA: number + ): void + + SetCooldown(start: number, duration: number, modRate: number): void + + SetCooldownDuration(duration: number, modRate: number): void + + SetCooldownUNIX(start: number, duration: number, modRate: number): void + + SetCountdownAbbrevThreshold(seconds: number): void + + SetCountdownFont(fontName: string): void + + SetDrawBling(drawBling: boolean): void + + SetDrawEdge(drawEdge: boolean): void + + SetDrawSwipe(drawSwipe: boolean): void + + SetEdgeScale(scale: number): void + + SetEdgeTexture( + texture: string, + colorR: number, + colorG: number, + colorB: number, + colorA: number + ): void + + SetHideCountdownNumbers(hideNumbers: boolean): void + + SetReverse(reverse: boolean): void + + SetRotation(rotationRadians: number): void + + SetSwipeColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetSwipeTexture( + texture: string, + colorR: number, + colorG: number, + colorB: number, + colorA: number + ): void + + SetTexCoordRange(low: Vector2DMixin, high: Vector2DMixin): void + + SetUseCircularEdge(useCircularEdge: boolean): void + } + + interface DressUpModel { + Dress(): void + + GetAutoDress(): boolean + + GetItemTransmogInfo(inventorySlot: number): ItemTransmogInfo + + GetItemTransmogInfoList(): ItemTransmogInfo[] + + GetObeyHideInTransmogFlag(): boolean + + GetSheathed(): boolean + + GetUseTransmogChoices(): boolean + + GetUseTransmogSkin(): boolean + + IsGeoReady(): boolean + + IsSlotAllowed(slot: number): boolean + + IsSlotVisible(slot: number): boolean + + SetAutoDress(enabled: boolean): void + + SetItemTransmogInfo( + itemTransmogInfo: ItemTransmogInfo, + inventorySlot: number | undefined, + ignoreChildItems: boolean + ): ItemTryOnReason + + SetObeyHideInTransmogFlag(enabled: boolean): void + + SetSheathed(sheathed: boolean, hideWeapons: boolean): void + + SetUseTransmogChoices(enabled: boolean): void + + SetUseTransmogSkin(enabled: boolean): void + + TryOn( + linkOrItemModifiedAppearanceID: string | number, + handSlotName: string | undefined, + spellEnchantID: number | undefined + ): ItemTryOnReason | undefined + + Undress(): void + + UndressSlot(inventorySlot: number): void + } + + interface FogOfWarFrame { + GetFogOfWarBackgroundAtlas(): string + + GetFogOfWarBackgroundTexture(): string | undefined + + GetFogOfWarMaskAtlas(): string + + GetFogOfWarMaskTexture(): string | undefined + + GetMaskScalar(): number + + GetUiMapID(): number + + SetFogOfWarBackgroundAtlas(atlas: string): void + + SetFogOfWarBackgroundTexture( + asset: string, + horizontalTile: boolean, + verticalTile: boolean + ): void + + SetFogOfWarMaskAtlas(atlas: string): void + + SetFogOfWarMaskTexture(asset: string): void + + SetMaskScalar(scalar: number): void + + SetUiMapID(uiMapID: number): void + } + + interface ModelSceneActorBase { + ClearModel(): void + + GetActiveBoundingBox(): LuaMultiReturn< + [boxBottom: Vector3DMixin, boxTop: Vector3DMixin] + > + + GetAlpha(): number + + GetAnimation(): number + + GetAnimationBlendOperation(): ModelBlendOperation + + GetAnimationVariation(): number + + GetDesaturation(): number + + GetMaxBoundingBox(): LuaMultiReturn<[boxBottom: Vector3DMixin, boxTop: Vector3DMixin]> + + GetModelFileID(): number + + GetModelPath(): string + + GetModelUnitGUID(): string + + GetParticleOverrideScale(): number | undefined + + GetPitch(): number + + GetPosition(): LuaMultiReturn< + [positionX: number, positionY: number, positionZ: number] + > + + GetRoll(): number + + GetScale(): number + + GetSpellVisualKit(): number + + GetYaw(): number + + Hide(): void + + IsLoaded(): boolean + + IsShown(): boolean + + IsUsingCenterForOrigin(): LuaMultiReturn<[x: boolean, y: boolean, z: boolean]> + + IsVisible(): boolean + + PlayAnimationKit(animationKit: number, isLooping: boolean): void + + SetAlpha(alpha: number): void + + SetAnimation( + animation: number, + variation: number | undefined, + animSpeed: number, + animOffsetSeconds: number + ): void + + SetAnimationBlendOperation(blendOp: ModelBlendOperation): void + + SetDesaturation(strength: number): void + + SetModelByCreatureDisplayID( + creatureDisplayID: number, + useActivePlayerCustomizations: boolean + ): boolean + + SetModelByFileID(asset: string, useMips: boolean): boolean + + SetModelByPath(asset: string, useMips: boolean): boolean + + SetModelByUnit( + unit: UnitToken, + sheatheWeapons: boolean, + autoDress: boolean, + hideWeapons: boolean, + usePlayerNativeForm: boolean, + holdBowString: boolean + ): boolean + + SetParticleOverrideScale(scale: number | undefined): void + + SetPitch(pitch: number): void + + SetPosition(positionX: number, positionY: number, positionZ: number): void + + SetRoll(roll: number): void + + SetScale(scale: number): void + + SetShown(show: boolean): void + + SetSpellVisualKit(spellVisualKitID: number, oneShot: boolean): void + + SetUseCenterForOrigin(x: boolean, y: boolean, z: boolean): void + + SetYaw(yaw: number): void + + Show(): void + + StopAnimationKit(): void + } + + interface ModelSceneActor { + AttachToMount( + rider: ModelSceneActor, + animation: number, + spellKitVisualID: number | undefined + ): boolean + + CalculateMountScale(rider: ModelSceneActor): number + + Dress(): void + + DressPlayerSlot(invSlot: number): void + + GetAutoDress(): boolean + + GetItemTransmogInfo(inventorySlots: number): ItemTransmogInfo | undefined + + GetItemTransmogInfoList(): ItemTransmogInfo[] + + GetObeyHideInTransmogFlag(): boolean + + GetPaused(): LuaMultiReturn<[paused: boolean, globalPaused: boolean]> + + GetSheathed(): boolean + + GetUseTransmogChoices(): boolean + + GetUseTransmogSkin(): boolean + + IsGeoReady(): boolean + + IsSlotAllowed(inventorySlots: number): boolean + + IsSlotVisible(inventorySlots: number): boolean + + ReleaseFrontEndCharacterDisplays(): boolean + + ResetNextHandSlot(): void + + SetAutoDress(autoDress: boolean): void + + SetFrontEndLobbyModelFromDefaultCharacterDisplay(characterIndex: number): boolean + + SetItemTransmogInfo( + transmogInfo: ItemTransmogInfo, + inventorySlots: number | undefined, + ignoreChildItems: boolean + ): ItemTryOnReason + + SetModelByHyperlink(link: string): boolean + + SetObeyHideInTransmogFlag(obey: boolean): void + + SetPaused(paused: boolean, affectsGlobalPause: boolean): void + + SetPlayerModelFromGlues( + characterIndex: number | undefined, + sheatheWeapons: boolean, + autoDress: boolean, + hideWeapons: boolean, + usePlayerNativeForm: boolean + ): boolean + + SetSheathed(sheathed: boolean, hidden: boolean): void + + SetUseTransmogChoices(use: boolean): void + + SetUseTransmogSkin(use: boolean): void + + TryOn( + itemLinkOrItemModifiedAppearanceID: string, + handSlotName: string | undefined, + spellEnchantmentID: number + ): ItemTryOnReason | undefined + + Undress(includeWeapons: boolean): void + + UndressSlot(inventorySlots: number): void + } + + interface ModelScene { + ClearFog(): void + + CreateActor(name: string, template: string): void + + GetActorAtIndex(index: number): void + + GetCameraFarClip(): number + + GetCameraFieldOfView(): number + + GetCameraForward(): LuaMultiReturn< + [forwardX: number, forwardY: number, forwardZ: number] + > + + GetCameraNearClip(): number + + GetCameraPosition(): LuaMultiReturn< + [positionX: number, positionY: number, positionZ: number] + > + + GetCameraRight(): LuaMultiReturn<[rightX: number, rightY: number, rightZ: number]> + + GetCameraUp(): LuaMultiReturn<[upX: number, upY: number, upZ: number]> + + GetDrawLayer(): LuaMultiReturn<[layer: DrawLayer, sublevel: number]> + + GetFogColor(): LuaMultiReturn<[colorR: number, colorG: number, colorB: number]> + + GetFogFar(): number + + GetFogNear(): number + + GetLightAmbientColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number] + > + + GetLightDiffuseColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number] + > + + GetLightDirection(): LuaMultiReturn< + [directionX: number, directionY: number, directionZ: number] + > + + GetLightPosition(): LuaMultiReturn< + [positionX: number, positionY: number, positionZ: number] + > + + GetLightType(): ModelLightType | undefined + + GetNumActors(): number + + GetViewInsets(): [number, number, number, number] + + GetViewTranslation(): LuaMultiReturn<[translationX: number, translationY: number]> + + IsLightVisible(): boolean + + Project3DPointTo2D( + pointX: number, + pointY: number, + pointZ: number + ): LuaMultiReturn<[point2DX: number, point2DY: number, depth: number]> + + SetCameraFarClip(farClip: number): void + + SetCameraFieldOfView(fov: number): void + + SetCameraNearClip(nearClip: number): void + + SetCameraOrientationByAxisVectors( + forwardX: number, + forwardY: number, + forwardZ: number, + rightX: number, + rightY: number, + rightZ: number, + upX: number, + upY: number, + upZ: number + ): void + + SetCameraOrientationByYawPitchRoll(yaw: number, pitch: number, roll: number): void + + SetCameraPosition(positionX: number, positionY: number, positionZ: number): void + + SetDesaturation(strength: number): void + + SetDrawLayer(layer: DrawLayer): void + + SetFogColor(colorR: number, colorG: number, colorB: number): void + + SetFogFar(far: number): void + + SetFogNear(near: number): void + + SetLightAmbientColor(colorR: number, colorG: number, colorB: number): void + + SetLightDiffuseColor(colorR: number, colorG: number, colorB: number): void + + SetLightDirection(directionX: number, directionY: number, directionZ: number): void + + SetLightPosition(positionX: number, positionY: number, positionZ: number): void + + SetLightType(lightType: ModelLightType): void + + SetLightVisible(visible: boolean): void + + SetPaused(paused: boolean, affectsGlobalPause: boolean): void + + SetViewInsets(insets: [number, number, number, number]): void + + SetViewTranslation(translationX: number, translationY: number): void + + TakeActor(): void + } + + interface QuestPOI { + GetNumTooltips(): number + + GetTooltipIndex(index: number): number + + UpdateMouseOverTooltip( + x: number, + y: number + ): LuaMultiReturn<[questID: number | undefined, numObjectives: number | undefined]> + } + + interface ScenarioPOI { + GetScenarioTooltipText(): string | undefined + + UpdateMouseOverTooltip(x: number, y: number): boolean + } + + interface Checkout { + CancelOpenCheckout(): void + + ClearFocus(): void + + CloseCheckout(): void + + CopyExternalLink(): void + + OpenCheckout(checkoutID: number): boolean + + OpenExternalLink(): void + + SetFocus(): void + + SetZoom(zoomLevel: number): void + } + + interface TabardModelBase { + CanSaveTabardNow(): boolean + + CycleVariation(variationIndex: number, delta: number): void + + GetLowerEmblemTexture(texture: Texture): void + + GetUpperEmblemTexture(texture: Texture): void + + InitializeTabardColors(): void + + IsGuildTabard(): boolean + + Save(): void + } + + interface TabardModel { + GetLowerBackgroundFileName(): number + + GetLowerEmblemFile(): number + + GetUpperBackgroundFileName(): number + + GetUpperEmblemFile(): number + } + + interface UnitPositionFrame { + AddUnit( + unitTokenString: string, + asset: string, + width: number | undefined, + height: number | undefined, + r: number | undefined, + g: number | undefined, + b: number | undefined, + a: number | undefined, + sublayer: number | undefined, + showFacing: boolean | undefined + ): void + + ClearUnits(): void + + FinalizeUnits(): void + + GetMouseOverUnits(): string + + GetPlayerPingScale(): number + + GetUiMapID(): number + + SetPlayerPingScale(scale: number): void + + SetPlayerPingTexture( + textureType: PingTextureType, + asset: string, + width: number, + height: number + ): void + + SetUiMapID(mapID: number): void + + SetUnitColor( + unit: string, + colorR: number, + colorG: number, + colorB: number, + colorA: number + ): void + + StartPlayerPing(duration: number, fadeDuration: number): void + + StopPlayerPing(): void + } + + interface Minimap { + GetPingPosition(): LuaMultiReturn<[positionX: number, positionY: number]> + + GetZoom(): number + + GetZoomLevels(): number + + PingLocation(locationX: number, locationY: number): void + + SetArchBlobInsideAlpha(alpha: number): void + + SetArchBlobInsideTexture(asset: string): void + + SetArchBlobOutsideAlpha(alpha: number): void + + SetArchBlobOutsideTexture(asset: string): void + + SetArchBlobRingAlpha(alpha: number): void + + SetArchBlobRingScalar(scalar: number): void + + SetArchBlobRingTexture(asset: string): void + + SetBlipTexture(asset: string): void + + SetCorpsePOIArrowTexture(asset: string): void + + SetIconTexture(asset: string): void + + SetMaskTexture(asset: string): void + + SetPOIArrowTexture(asset: string): void + + SetPlayerTexture(asset: string): void + + SetQuestBlobInsideAlpha(alpha: number): void + + SetQuestBlobInsideTexture(asset: string): void + + SetQuestBlobOutsideAlpha(alpha: number): void + + SetQuestBlobOutsideTexture(asset: string): void + + SetQuestBlobRingAlpha(alpha: number): void + + SetQuestBlobRingScalar(scalar: number): void + + SetQuestBlobRingTexture(asset: string): void + + SetStaticPOIArrowTexture(asset: string): void + + SetTaskBlobInsideAlpha(alpha: number): void + + SetTaskBlobInsideTexture(asset: string): void + + SetTaskBlobOutsideAlpha(alpha: number): void + + SetTaskBlobOutsideTexture(asset: string): void + + SetTaskBlobRingAlpha(alpha: number): void + + SetTaskBlobRingScalar(scalar: number): void + + SetTaskBlobRingTexture(asset: string): void + + SetZoom(zoomFactor: number): void + + UpdateBlips(): void + } + + interface Animation { + GetDuration(): number + + GetElapsed(): number + + GetEndDelay(): number + + GetOrder(): number + + GetProgress(): number + + GetRegionParent(): ScriptObject + + GetScript(scriptTypeName: string, bindingType: number | undefined): () => void + + GetSmoothProgress(): number + + GetSmoothing(): string + + GetStartDelay(): number + + GetTarget(): ScriptObject + + HasScript(scriptName: string): boolean + + HookScript( + scriptTypeName: string, + script: () => void, + bindingType: number | undefined + ): void + + IsDelaying(): boolean + + IsDone(): boolean + + IsPaused(): boolean + + IsPlaying(): boolean + + IsStopped(): boolean + + Pause(): void + + Play(): void + + Restart(): void + + SetChildKey(childKey: string): boolean + + SetDuration(durationSec: number, recomputeGroupDuration: boolean): void + + SetEndDelay(delaySec: number, recomputeGroupDuration: boolean): void + + SetOrder(newOrder: number): void + + SetParent(parent: AnimationGroup, order: number | undefined): void + + SetPlaying(play: boolean): void + + SetScript(scriptTypeName: string, script: (() => void) | undefined): void + + SetSmoothProgress(durationSec: number): void + + SetSmoothing(weights: string): void + + SetStartDelay(delaySec: number, recomputeGroupDuration: boolean): void + + SetTarget(target: ScriptObject): boolean + + SetTargetKey(key: string): boolean + + SetTargetName(name: string): boolean + + SetTargetParent(): boolean + + Stop(): void + } + + interface Alpha { + GetFromAlpha(): number + + GetToAlpha(): number + + SetFromAlpha(normalizedAlpha: number): void + + SetToAlpha(normalizedAlpha: number): void + } + + interface FlipBook { + GetFlipBookColumns(): number + + GetFlipBookFrameHeight(): number + + GetFlipBookFrameWidth(): number + + GetFlipBookFrames(): number + + GetFlipBookRows(): number + + SetFlipBookColumns(columns: number): void + + SetFlipBookFrameHeight(height: number): void + + SetFlipBookFrameWidth(width: number): void + + SetFlipBookFrames(frames: number): void + + SetFlipBookRows(rows: number): void + } + + interface AnimationGroup { + CreateAnimation( + animationType: string | undefined, + name: string | undefined, + templateName: string | undefined + ): Animation + + Finish(): void + + GetAnimationSpeedMultiplier(): number + + GetAnimations(): ScriptObject + + GetDuration(): number + + GetElapsed(): number + + GetLoopState(): string + + GetLooping(): LoopType + + GetProgress(): number + + GetScript(scriptTypeName: string, bindingType: number | undefined): () => void + + HasScript(scriptName: string): boolean + + HookScript( + scriptTypeName: string, + script: () => void, + bindingType: number | undefined + ): void + + IsDone(): boolean + + IsPaused(): boolean + + IsPendingFinish(): boolean + + IsPlaying(): boolean + + IsReverse(): boolean + + IsSetToFinalAlpha(): boolean + + Pause(): void + + Play(reverse: boolean, offset: number): void + + RemoveAnimations(): void + + Restart(reverse: boolean, offset: number): void + + SetAnimationSpeedMultiplier(animationSpeedMultiplier: number): void + + SetLooping(loopType: LoopType): void + + SetPlaying(play: boolean): void + + SetScript(scriptTypeName: string, script: (() => void) | undefined): void + + SetToFinalAlpha(setToFinalAlpha: boolean): void + + Stop(): void + } + + interface Path { + CreateControlPoint( + name: string | undefined, + templateName: string | undefined, + order: number | undefined + ): unknown + + GetControlPoints(): ScriptObject + + GetCurveType(): string + + GetMaxControlPointOrder(): number + + SetCurveType(curveType: string): void + } + + interface Rotation { + GetDegrees(): number + + GetOrigin(): LuaMultiReturn<[point: string, originX: number, originY: number]> + + GetRadians(): number + + SetDegrees(angle: number): void + + SetOrigin(point: string, originX: number, originY: number): void + + SetRadians(angle: number): void + } + + interface Scale { + GetOrigin(): LuaMultiReturn<[point: string, originX: number, originY: number]> + + GetScale(): LuaMultiReturn<[scaleX: number, scaleY: number]> + + GetScaleFrom(): LuaMultiReturn<[scaleX: number, scaleY: number]> + + GetScaleTo(): LuaMultiReturn<[scaleX: number, scaleY: number]> + + SetOrigin(point: string, originX: number, originY: number): void + + SetScale(scaleX: number, scaleY: number): void + + SetScaleFrom(scaleX: number, scaleY: number): void + + SetScaleTo(scaleX: number, scaleY: number): void + } + + interface TextureCoordTranslation { + GetOffset(): LuaMultiReturn<[offsetU: number, offsetV: number]> + + SetOffset(offsetU: number, offsetV: number): void + } + + interface Translation { + GetOffset(): LuaMultiReturn<[offsetX: number, offsetY: number]> + + SetOffset(offsetX: number, offsetY: number): void + } + + interface VertexColor { + GetEndColor(): ColorMixin + + GetStartColor(): ColorMixin + + SetEndColor(color: ColorMixin): void + + SetStartColor(color: ColorMixin): void + } + + interface AnimatableObject { + CreateAnimationGroup( + name: string | undefined, + templateName: string | undefined + ): AnimationGroup + + GetAnimationGroups(): ScriptObject + + StopAnimating(): void + } + + interface Browser { + ClearFocus(): void + + CopyExternalLink(): void + + DeleteCookies(): void + + NavigateBack(): void + + NavigateForward(): void + + NavigateHome(urlType: string): void + + NavigateReload(): void + + NavigateStop(): void + + NavigateTo(url: string): void + + OpenExternalLink(): void + + OpenTicket(index: number): void + + SetFocus(): void + + SetZoom(zoom: number): void + } + + interface Button { + ClearDisabledTexture(): void + + ClearHighlightTexture(): void + + ClearNormalTexture(): void + + ClearPushedTexture(): void + + Click(button: string, isDown: boolean): void + + Disable(): void + + Enable(): void + + GetButtonState(): SimpleButtonStateToken + + GetDisabledFontObject(): FontInfo + + GetDisabledTexture(): Texture + + GetFontString(): FontString + + GetHighlightFontObject(): FontInfo + + GetHighlightTexture(): Texture + + GetMotionScriptsWhileDisabled(): boolean + + GetNormalFontObject(): FontInfo + + GetNormalTexture(): Texture + + GetPushedTextOffset(): LuaMultiReturn<[offsetX: number, offsetY: number]> + + GetPushedTexture(): Texture + + GetText(): string + + GetTextHeight(): number + + GetTextWidth(): number + + IsEnabled(): boolean + + RegisterForClicks(unpackedPrimitiveType: number): void + + RegisterForMouse(unpackedPrimitiveType: number): void + + SetButtonState(buttonState: SimpleButtonStateToken, lock: boolean): void + + SetDisabledAtlas(atlas: string): void + + SetDisabledFontObject(font: FontInfo): void + + SetDisabledTexture(asset: string): void + + SetEnabled(enabled: boolean): void + + SetFontString(fontString: FontString): void + + SetFormattedText(text: string): void + + SetHighlightAtlas(atlas: string, blendMode: BlendMode | undefined): void + + SetHighlightFontObject(font: FontInfo): void + + SetHighlightTexture(asset: string, blendMode: BlendMode | undefined): void + + SetMotionScriptsWhileDisabled(motionScriptsWhileDisabled: boolean): void + + SetNormalAtlas(atlas: string): void + + SetNormalFontObject(font: FontInfo): void + + SetNormalTexture(asset: string): void + + SetPushedAtlas(atlas: string): void + + SetPushedTextOffset(offsetX: number, offsetY: number): void + + SetPushedTexture(asset: string): void + + SetText(text: string): void + } + + interface Checkbox { + GetChecked(): boolean + + GetCheckedTexture(): Texture + + GetDisabledCheckedTexture(): Texture + + SetChecked(checked: boolean): void + + SetCheckedTexture(asset: string): void + + SetDisabledCheckedTexture(asset: string): void + } + + interface ColorSelect { + ClearColorWheelTexture(): void + + GetColorAlpha(): number + + GetColorAlphaTexture(): Texture + + GetColorAlphaThumbTexture(): Texture + + GetColorHSV(): LuaMultiReturn<[hsvX: number, hsvY: number, hsvZ: number]> + + GetColorRGB(): LuaMultiReturn<[rgbR: number, rgbG: number, rgbB: number]> + + GetColorValueTexture(): Texture + + GetColorValueThumbTexture(): Texture + + GetColorWheelTexture(): Texture + + GetColorWheelThumbTexture(): Texture + + SetColorAlpha(alpha: number): void + + SetColorAlphaTexture(texture: Texture): void + + SetColorAlphaThumbTexture(texture: string): void + + SetColorHSV(hsvX: number, hsvY: number, hsvZ: number): void + + SetColorRGB(rgbR: number, rgbG: number, rgbB: number): void + + SetColorValueTexture(texture: Texture): void + + SetColorValueThumbTexture(texture: string): void + + SetColorWheelTexture(texture: Texture): void + + SetColorWheelThumbTexture(texture: string): void + } + + interface ControlPoint { + GetOffset(): LuaMultiReturn<[offsetX: number, offsetY: number]> + + GetOrder(): number + + SetOffset(offsetX: number, offsetY: number): void + + SetOrder(order: number): void + + SetParent(parent: ScriptObject, order: number | undefined): void + } + + interface EditBox { + AddHistoryLine(text: string): void + + ClearFocus(): void + + ClearHighlightText(): void + + ClearHistory(): void + + Disable(): void + + Enable(): void + + GetAltArrowKeyMode(): boolean + + GetBlinkSpeed(): number + + GetCursorPosition(): number + + GetDisplayText(): string + + GetFont(): LuaMultiReturn<[name: string, fontHeight: number, flags: FontFlags[]]> + + GetFontObject(): FontInfo + + GetHighlightColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number, colorA: number] + > + + GetHistoryLines(): number + + GetIndentedWordWrap(): boolean + + GetInputLanguage(): string + + GetJustifyH(): string + + GetJustifyV(): number + + GetMaxBytes(): number + + GetMaxLetters(): number + + GetNumLetters(): number + + GetNumber(): number | undefined + + GetShadowColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number, colorA: number] + > + + GetShadowOffset(): LuaMultiReturn<[offsetX: number, offsetY: number]> + + GetSpacing(): number + + GetText(): string + + GetTextColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number, colorA: number] + > + + GetTextInsets(): LuaMultiReturn< + [left: number, right: number, top: number, bottom: number] + > + + GetUTF8CursorPosition(): number + + GetVisibleTextByteLimit(): number + + HasFocus(): boolean + + HasText(): boolean + + HighlightText(start: number, stop: number): void + + Insert(text: string): void + + IsAlphabeticOnly(): boolean + + IsAutoFocus(): boolean + + IsCountInvisibleLetters(): boolean + + IsEnabled(): boolean + + IsInIMECompositionMode(): boolean + + IsMultiLine(): boolean + + IsNumeric(): boolean + + IsNumericFullRange(): boolean + + IsPassword(): boolean + + IsSecureText(): boolean + + ResetInputMode(): void + + SetAlphabeticOnly(enabled: boolean): void + + SetAltArrowKeyMode(altMode: boolean): void + + SetAutoFocus(autoFocus: boolean): void + + SetBlinkSpeed(cursorBlinkSpeedSec: number): void + + SetCountInvisibleLetters(countInvisibleLetters: boolean): void + + SetCursorPosition(cursorPosition: number): void + + SetEnabled(enabled: boolean): void + + SetFocus(): void + + SetFont(fontFile: string, height: number, flags: FontFlags[]): boolean + + SetFontObject(font: FontInfo): void + + SetHighlightColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetHistoryLines(numHistoryLines: number): void + + SetIndentedWordWrap(isIndented: boolean): void + + SetJustifyH(justifyH: string): void + + SetJustifyV(justifyV: number): void + + SetMaxBytes(maxBytes: number): void + + SetMaxLetters(maxLetters: number): void + + SetMultiLine(multiline: boolean): void + + SetNumber(number: number): void + + SetNumeric(isNumeric: boolean): void + + SetNumericFullRange(isNumeric: boolean): void + + SetPassword(isPassword: boolean): void + + SetSecureText(isSecure: boolean): void + + SetSecurityDisablePaste(): void + + SetSecurityDisableSetText(): void + + SetShadowColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetShadowOffset(offsetX: number, offsetY: number): void + + SetSpacing(fontHeight: number): void + + SetText(text: string): void + + SetTextColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetTextInsets(left: number, right: number, top: number, bottom: number): void + + SetVisibleTextByteLimit(maxVisibleBytes: number): void + + ToggleInputLanguage(): void + } + + interface Font { + CopyFontObject(sourceFont: FontInfo): void + + GetAlpha(): number + + GetFont(): LuaMultiReturn<[fontFile: string, height: number, flags: FontFlags[]]> + + GetFontObject(): FontInfo + + GetIndentedWordWrap(): boolean + + GetJustifyH(): string + + GetJustifyV(): number + + GetShadowColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number, colorA: number] + > + + GetShadowOffset(): LuaMultiReturn<[offsetX: number, offsetY: number]> + + GetSpacing(): number + + GetTextColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number, colorA: number] + > + + SetAlpha(alpha: number): void + + SetFont(fontFile: string, height: number, flags: FontFlags[]): void + + SetFontObject(font: FontInfo): void + + SetIndentedWordWrap(wordWrap: boolean): void + + SetJustifyH(justifyH: string): void + + SetJustifyV(justifyV: number): void + + SetShadowColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetShadowOffset(offsetX: number, offsetY: number): void + + SetSpacing(spacing: number): void + + SetTextColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + } + + interface FontString { + CalculateScreenAreaFromCharacterSpan( + leftIndex: number, + rightIndex: number + ): undefined[] | undefined + + CanNonSpaceWrap(): boolean + + CanWordWrap(): boolean + + FindCharacterIndexAtCoordinate( + x: number, + y: number + ): LuaMultiReturn<[characterIndex: number, inside: boolean]> + + GetFieldSize(): number + + GetFont(): LuaMultiReturn< + [fontFile: string | undefined, fontHeight: number, flags: FontFlags[]] + > + + GetFontObject(): FontInfo + + GetIndentedWordWrap(): boolean + + GetJustifyH(): string + + GetJustifyV(): number + + GetLineHeight(): number + + GetMaxLines(): number + + GetNumLines(): number + + GetRotation(): number + + GetShadowColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number, colorA: number] + > + + GetShadowOffset(): LuaMultiReturn<[offsetX: number, offsetY: number]> + + GetSpacing(): number + + GetStringHeight(): number + + GetStringWidth(): number + + GetText(): string + + GetTextColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number, colorA: number] + > + + GetTextScale(): number + + GetUnboundedStringWidth(): number + + GetWrappedWidth(): number + + IsTruncated(): boolean + + SetAlphaGradient(start: number, length: number): boolean + + SetFixedColor(fixedColor: boolean): void + + SetFont(fontFile: string, fontHeight: number, flags: FontFlags[]): void + + SetFontObject(font: FontInfo): void + + SetFormattedText(text: string): void + + SetIndentedWordWrap(wrap: boolean): void + + SetJustifyH(justifyH: string): void + + SetJustifyV(justifyV: number): void + + SetMaxLines(maxLines: number): void + + SetNonSpaceWrap(wrap: boolean): void + + SetRotation(radians: number): void + + SetShadowColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetShadowOffset(offsetX: number, offsetY: number): void + + SetSpacing(spacing: number): void + + SetText(text: string): void + + SetTextColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetTextHeight(height: number): void + + SetTextScale(textScale: number): void + + SetTextToFit(text: string): void + + SetWordWrap(wrap: boolean): void + } + + interface FrameScriptObject { + GetName(): string + + GetObjectType(): string + + IsForbidden(): boolean + + IsObjectType(objectType: string): boolean + + SetForbidden(): void + } + + interface HTML { + GetContentHeight(): number + + GetFont( + textType: unknown + ): LuaMultiReturn<[fontFile: string, height: number, flags: FontFlags[]]> + + GetFontObject(textType: unknown): FontInfo + + GetHyperlinkFormat(): string + + GetIndentedWordWrap(textType: unknown): boolean + + GetJustifyH(textType: unknown): string + + GetJustifyV(textType: unknown): number + + GetShadowColor( + textType: unknown + ): LuaMultiReturn<[colorR: number, colorG: number, colorB: number, colorA: number]> + + GetShadowOffset(textType: unknown): LuaMultiReturn<[offsetX: number, offsetY: number]> + + GetSpacing(textType: unknown): number + + GetTextColor( + textType: unknown + ): LuaMultiReturn<[colorR: number, colorG: number, colorB: number, colorA: number]> + + GetTextData(): undefined[] + + SetFont(textType: unknown, fontFile: string, height: number, flags: FontFlags[]): void + + SetFontObject(textType: unknown, font: FontInfo): void + + SetHyperlinkFormat(format: string): void + + SetIndentedWordWrap(textType: unknown, wordWrap: boolean): void + + SetJustifyH(textType: unknown, justifyH: string): void + + SetJustifyV(textType: unknown, justifyV: number): void + + SetShadowColor( + textType: unknown, + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetShadowOffset(textType: unknown, offsetX: number, offsetY: number): void + + SetSpacing(textType: unknown, spacing: number): void + + SetText(text: string, ignoreMarkup: boolean): void + + SetTextColor( + textType: unknown, + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + } + + interface Line { + ClearAllPoints(): void + + GetEndPoint(): LuaMultiReturn< + [relativePoint: string, relativeTo: unknown, offsetX: number, offsetY: number] + > + + GetHitRectThickness(): number + + GetStartPoint(): LuaMultiReturn< + [relativePoint: string, relativeTo: unknown, offsetX: number, offsetY: number] + > + + GetThickness(): number + + SetEndPoint( + relativePoint: string, + relativeTo: unknown, + offsetX: number, + offsetY: number + ): void + + SetHitRectThickness(thickness: number): void + + SetStartPoint( + relativePoint: string, + relativeTo: unknown, + offsetX: number, + offsetY: number + ): void + + SetThickness(thickness: number): void + } + + interface MapScene { + GetMaxCharacterSlotCount(): number + + GetModelDrawLayer(): LuaMultiReturn<[layer: DrawLayer, sublayer: number]> + + GetViewInsets(): LuaMultiReturn< + [left: number, right: number, top: number, bottom: number] + > + + SetModelDrawLayer(layer: DrawLayer): void + + SetViewInsets(left: number, right: number, top: number, bottom: number): void + } + + interface MessageFrame { + AddMessage( + text: string, + colorR: number, + colorG: number, + colorB: number, + a: number | undefined, + messageID: number | undefined + ): void + + Clear(): void + + GetFadeDuration(): number + + GetFadePower(): number + + GetFading(): boolean + + GetFont(): LuaMultiReturn<[fontFile: string, height: number, flags: FontFlags[]]> + + GetFontObject(): FontInfo + + GetFontStringByID(messageID: number): FontString + + GetIndentedWordWrap(): boolean + + GetInsertMode(): InsertMode + + GetJustifyH(): string + + GetJustifyV(): number + + GetShadowColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number, colorA: number] + > + + GetShadowOffset(): LuaMultiReturn<[offsetX: number, offsetY: number]> + + GetSpacing(): number + + GetTextColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number, colorA: number] + > + + GetTimeVisible(): number + + HasMessageByID(messageID: number): boolean + + ResetMessageFadeByID(messageID: number): void + + SetFadeDuration(fadeDurationSeconds: number): void + + SetFadePower(fadePower: number): void + + SetFading(fading: boolean): void + + SetFont(fontFile: string, height: number, flags: FontFlags[]): void + + SetFontObject(font: FontInfo): void + + SetIndentedWordWrap(wordWrap: boolean): void + + SetInsertMode(mode: InsertMode): void + + SetJustifyH(justifyH: string): void + + SetJustifyV(justifyV: number): void + + SetShadowColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetShadowOffset(offsetX: number, offsetY: number): void + + SetSpacing(spacing: number): void + + SetTextColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetTimeVisible(timeVisibleSeconds: number): void + } + + interface Model { + AdvanceTime(): void + + ClearFog(): void + + ClearModel(): void + + ClearTransform(): void + + GetCameraDistance(): number + + GetCameraFacing(): number + + GetCameraPosition(): LuaMultiReturn< + [positionX: number, positionY: number, positionZ: number] + > + + GetCameraRoll(): number + + GetCameraTarget(): LuaMultiReturn<[targetX: number, targetY: number, targetZ: number]> + + GetDesaturation(): number + + GetFacing(): number + + GetFogColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number, colorA: number] + > + + GetFogFar(): number + + GetFogNear(): number + + GetLight(): LuaMultiReturn<[enabled: boolean, light: ModelLight]> + + GetModelAlpha(): number + + GetModelDrawLayer(): LuaMultiReturn<[layer: DrawLayer, sublayer: number]> + + GetModelFileID(): number + + GetModelScale(): number + + GetPaused(): boolean + + GetPitch(): number + + GetPosition(): LuaMultiReturn< + [positionX: number, positionY: number, positionZ: number] + > + + GetRoll(): number + + GetShadowEffect(): number + + GetViewInsets(): LuaMultiReturn< + [left: number, right: number, top: number, bottom: number] + > + + GetViewTranslation(): LuaMultiReturn<[x: number, y: number]> + + GetWorldScale(): number + + HasAttachmentPoints(): boolean + + HasCustomCamera(): boolean + + IsUsingModelCenterToTransform(): boolean + + MakeCurrentCameraCustom(): void + + ReplaceIconTexture(asset: string): void + + SetCamera(cameraIndex: number): void + + SetCameraDistance(distance: number): void + + SetCameraFacing(radians: number): void + + SetCameraPosition(positionX: number, positionY: number, positionZ: number): void + + SetCameraRoll(radians: number): void + + SetCameraTarget(targetX: number, targetY: number, targetZ: number): void + + SetCustomCamera(cameraIndex: number): void + + SetDesaturation(strength: number): void + + SetFacing(facing: number): void + + SetFogColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetFogFar(fogFar: number): void + + SetFogNear(fogNear: number): void + + SetGlow(glow: number): void + + SetLight(enabled: boolean, light: ModelLight): void + + SetModel(asset: number, noMip: boolean): void + + SetModelAlpha(alpha: number): void + + SetModelDrawLayer(layer: DrawLayer): void + + SetModelScale(scale: number): void + + SetParticlesEnabled(enabled: boolean): void + + SetPaused(paused: boolean): void + + SetPitch(pitch: number): void + + SetPosition(positionX: number, positionY: number, positionZ: number): void + + SetRoll(roll: number): void + + SetSequence(sequence: number): void + + SetSequenceTime(sequence: number, timeOffset: number): void + + SetShadowEffect(strength: number): void + + SetTransform( + translation: Vector3DMixin | undefined, + rotation: Vector3DMixin | undefined, + scale: number | undefined + ): void + + SetViewInsets(left: number, right: number, top: number, bottom: number): void + + SetViewTranslation(x: number, y: number): void + + TransformCameraSpaceToModelSpace(cameraPosition: Vector3DMixin): Vector3DMixin + + UseModelCenterToTransform(useCenter: boolean): void + } + + interface ModelFFX { + AddCharacterLight(index: number | undefined, light: ModelLight): void + + AddLight(index: number | undefined, light: ModelLight): void + + AddPetLight(index: number | undefined, light: ModelLight): void + + ResetLights(): void + } + + interface Movie { + EnableSubtitles(enable: boolean): void + + StartMovie( + movieID: number, + looping: boolean + ): LuaMultiReturn<[success: boolean, returnCode: number]> + + StartMovieByName( + movieName: string, + looping: boolean, + resolution: number + ): LuaMultiReturn<[success: boolean, returnCode: number]> + + StopMovie(): void + } + + interface ScriptObject { + ClearParentKey(): void + + GetDebugName(preferParentKey: boolean): string + + GetParent(): ScriptObject + + GetParentKey(): string + + SetParentKey(parentKey: string, clearOtherKeys: boolean): void + } + + interface OffScreen { + ApplySnapshot(texture: Texture, snapshotID: number): boolean + + Flush(): void + + GetMaxSnapshots(): number + + IsSnapshotValid(snapshotID: number): boolean + + SetMaxSnapshots(maxSnapshots: number): void + + TakeSnapshot(): number | undefined + + TestPrintToFile(snapshotID: number, filename: string): boolean + + UsesNPOT(): boolean | undefined + } + + interface Region { + GetAlpha(): number + + GetDrawLayer(): LuaMultiReturn<[layer: DrawLayer, sublayer: number]> + + GetEffectiveScale(): number + + GetScale(): number + + GetVertexColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number, colorA: number] + > + + IsIgnoringParentAlpha(): boolean + + IsIgnoringParentScale(): boolean + + IsObjectLoaded(): boolean + + SetAlpha(alpha: number): void + + SetDrawLayer(layer: DrawLayer, sublevel: number): void + + SetIgnoreParentAlpha(ignore: boolean): void + + SetIgnoreParentScale(ignore: boolean): void + + SetScale(scale: number): void + + SetVertexColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + } + + interface ScriptRegion { + CanChangeProtectedState(): boolean + + CollapsesLayout(): boolean + + EnableMouse(enable: boolean): void + + EnableMouseMotion(enable: boolean): void + + EnableMouseWheel(enable: boolean): void + + GetBottom(): number + + GetCenter(): LuaMultiReturn<[x: number, y: number]> + + GetHeight(ignoreRect: boolean): number + + GetLeft(): number + + GetRect(): LuaMultiReturn< + [left: number, bottom: number, width: number, height: number] + > + + GetRight(): number + + GetScaledRect(): LuaMultiReturn< + [left: number, bottom: number, width: number, height: number] + > + + GetScript(scriptTypeName: string, bindingType: number | undefined): () => void + + GetSize(ignoreRect: boolean): LuaMultiReturn<[width: number, height: number]> + + GetSourceLocation(): string + + GetTop(): number + + GetWidth(ignoreRect: boolean): number + + HasScript(scriptName: string): boolean + + Hide(): void + + HookScript( + scriptTypeName: string, + script: () => void, + bindingType: number | undefined + ): void + + IsAnchoringRestricted(): boolean + + IsCollapsed(): boolean + + IsDragging(): boolean + + IsMouseClickEnabled(): boolean + + IsMouseEnabled(): boolean + + IsMouseMotionEnabled(): boolean + + IsMouseMotionFocus(): boolean + + IsMouseOver( + offsetTop: number, + offsetBottom: number, + offsetLeft: number, + offsetRight: number + ): boolean + + IsMouseWheelEnabled(): boolean + + IsProtected(): LuaMultiReturn<[isProtected: boolean, isProtectedExplicitly: boolean]> + + IsRectValid(): boolean + + IsShown(): boolean + + IsVisible(): boolean + + SetCollapsesLayout(collapsesLayout: boolean): void + + SetMouseClickEnabled(enabled: boolean): void + + SetMouseMotionEnabled(enabled: boolean): void + + SetParent(parent: unknown | undefined): void + + SetPassThroughButtons(unpackedPrimitiveType: number): void + + SetPropagateMouseClicks(propagate: boolean): void + + SetPropagateMouseMotion(propagate: boolean): void + + SetShown(show: boolean): void + + Show(): void + } + + interface ScriptRegionResizing { + AdjustPointsOffset(x: number, y: number): void + + ClearAllPoints(): void + + ClearPoint(point: string): void + + ClearPointsOffset(): void + + GetNumPoints(): number + + GetPoint( + anchorIndex: number, + resolveCollapsed: boolean + ): LuaMultiReturn< + [ + point: string, + relativeTo: unknown, + relativePoint: string, + offsetX: number, + offsetY: number + ] + > + + GetPointByName( + point: string, + resolveCollapsed: boolean + ): LuaMultiReturn< + [ + point: string, + relativeTo: unknown, + relativePoint: string, + offsetX: number, + offsetY: number + ] + > + + SetAllPoints(relativeTo: unknown, doResize: boolean): void + + SetHeight(height: number): void + + SetPoint( + point: string, + relativeTo: unknown, + relativePoint: string, + offsetX: number, + offsetY: number + ): void + + SetSize(x: number, y: number): void + + SetWidth(width: number): void + } + + interface ScrollFrame { + GetHorizontalScroll(): number + + GetHorizontalScrollRange(): number + + GetScrollChild(): unknown + + GetVerticalScroll(): number + + GetVerticalScrollRange(): number + + SetHorizontalScroll(offset: number): void + + SetScrollChild(scrollChild: unknown): void + + SetVerticalScroll(offset: number): void + + UpdateScrollChildRect(): void + } + + interface Slider { + Disable(): void + + Enable(): void + + GetMinMaxValues(): LuaMultiReturn<[minValue: number, maxValue: number]> + + GetObeyStepOnDrag(): boolean + + GetOrientation(): Orientation + + GetStepsPerPage(): number + + GetThumbTexture(): Texture + + GetValue(): number + + GetValueStep(): number + + IsDraggingThumb(): boolean + + IsEnabled(): boolean + + SetEnabled(enabled: boolean): void + + SetMinMaxValues(minValue: number, maxValue: number): void + + SetObeyStepOnDrag(obeyStepOnDrag: boolean): void + + SetOrientation(orientation: Orientation): void + + SetStepsPerPage(stepsPerPage: number): void + + SetThumbTexture(asset: string): void + + SetValue(value: number, treatAsMouseEvent: boolean): void + + SetValueStep(valueStep: number): void + } + + interface StatusBar { + GetFillStyle(): StatusBarFillStyle + + GetMinMaxValues(): LuaMultiReturn<[minValue: number, maxValue: number]> + + GetOrientation(): Orientation + + GetReverseFill(): boolean + + GetRotatesTexture(): boolean + + GetStatusBarColor(): LuaMultiReturn< + [colorR: number, colorG: number, colorB: number, colorA: number] + > + + GetStatusBarDesaturation(): number + + GetStatusBarTexture(): Texture + + GetValue(): number + + IsStatusBarDesaturated(): boolean + + SetColorFill( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetFillStyle(fillStyle: StatusBarFillStyle): void + + SetMinMaxValues(minValue: number, maxValue: number): void + + SetOrientation(orientation: Orientation): void + + SetReverseFill(isReverseFill: boolean): void + + SetRotatesTexture(rotatesTexture: boolean): void + + SetStatusBarColor( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetStatusBarDesaturated(desaturated: boolean): void + + SetStatusBarDesaturation(desaturation: number): void + + SetStatusBarTexture(asset: string): void + + SetValue(value: number): void + } + + interface Texture { + AddMaskTexture(mask: ScriptObject): void + + GetMaskTexture(index: number): ScriptObject + + GetNumMaskTextures(): number + + RemoveMaskTexture(mask: ScriptObject): void + } + + interface TextureBase { + ClearTextureSlice(): void + + GetAtlas(): string + + GetBlendMode(): BlendMode + + GetDesaturation(): number + + GetHorizTile(): boolean + + GetRotation(): LuaMultiReturn< + [radians: number, normalizedRotationPoint: Vector2DMixin] + > + + GetTexCoord(): LuaMultiReturn<[x: number, y: number]> + + GetTexelSnappingBias(): number + + GetTexture(): string | undefined + + GetTextureFileID(): number + + GetTextureFilePath(): string | undefined + + GetTextureSliceMargins(): LuaMultiReturn< + [left: number, top: number, right: number, bottom: number] + > + + GetTextureSliceMode(): UITextureSliceMode + + GetVertTile(): boolean + + GetVertexOffset( + vertexIndex: number + ): LuaMultiReturn<[offsetX: number, offsetY: number]> + + IsBlockingLoadRequested(): boolean + + IsDesaturated(): boolean + + IsSnappingToPixelGrid(): boolean + + SetAtlas( + atlas: string, + useAtlasSize: boolean, + filterMode: FilterMode | undefined, + resetTexCoords: boolean | undefined + ): void + + SetBlendMode(blendMode: BlendMode): void + + SetBlockingLoadsRequested(blocking: boolean): void + + SetColorTexture( + colorR: number, + colorG: number, + colorB: number, + a: number | undefined + ): void + + SetDesaturated(desaturated: boolean): void + + SetDesaturation(desaturation: number): void + + SetGradient( + orientation: Orientation, + minColor: ColorMixin, + maxColor: ColorMixin + ): void + + SetHorizTile(tiling: boolean): void + + SetMask(file: string): void + + SetRotation(radians: number, normalizedRotationPoint: Vector2DMixin | undefined): void + + SetSnapToPixelGrid(snap: boolean): void + + SetTexCoord(left: number, right: number, bottom: number, top: number): void + + SetTexelSnappingBias(bias: number): void + + SetTexture( + textureAsset: string | undefined, + wrapModeHorizontal: string | undefined, + wrapModeVertical: string | undefined, + filterMode: string | undefined + ): boolean + + SetTextureSliceMargins(left: number, top: number, right: number, bottom: number): void + + SetTextureSliceMode(sliceMode: UITextureSliceMode): void + + SetVertTile(tiling: boolean): void + + SetVertexOffset(vertexIndex: number, offsetX: number, offsetY: number): void + } +} + +export {} diff --git a/src/types/Wow/structs.d.ts b/src/types/Wow/structs.d.ts new file mode 100644 index 0000000..a0c8e9f --- /dev/null +++ b/src/types/Wow/structs.d.ts @@ -0,0 +1,5548 @@ +/* eslint-disable @typescript-eslint/no-duplicate-enum-values */ +/* eslint-disable @typescript-eslint/ban-types */ +/** @noSelfInFile **/ + +declare global { + interface ActionUsableState { + slot: number + usable: boolean + noMana: boolean + } + + interface AddOnInfo { + name: string + title: string + notes: string + loadable: boolean + reason: string + security: string + updateAvailable: boolean + } + + interface AddOnLoadableInfo { + loadable: boolean + reason: string + } + + interface AlliedRaceInfo { + raceID: number + maleModelID: number + femaleModelID: number + achievementIds: number[] + maleName: string + femaleName: string + description: string + raceFileString: string + crestAtlas: string + modelBackgroundAtlas: string + bannerColor: ColorMixin + } + + interface AlliedRaceRacialAbility { + description: string + name: string + icon: number + } + + interface AnimaDiversionCostInfo { + currencyID: number + quantity: number + } + + interface AnimaDiversionFrameInfo { + textureKit: string + title: string + mapID: number + } + + interface AnimaDiversionNodeInfo { + talentID: number + name: string + description: string + costs: undefined[] + currencyID: number + icon: number + normalizedPosition: Vector2DMixin + state: AnimaDiversionNodeState + } + + interface AppearanceSourceInfo { + visualID: number + sourceID: number + isCollected: boolean + itemID: number + itemModID: number + invType: number + categoryID: TransmogCollectionType + playerCanCollect: boolean + isValidSourceForPlayer: boolean + inventorySlot: number | undefined + sourceType: number | undefined + name: string | undefined + quality: number | undefined + useError: string | undefined + useErrorType: TransmogUseErrorType | undefined + meetsTransmogPlayerCondition: boolean | undefined + isHideVisual: boolean | undefined + } + + interface ArdenwealdGardenData { + active: number + ready: number + remainingSeconds: number + } + + interface AreaPOIInfo { + areaPoiID: number + position: Vector2DMixin + name: string + description: string | undefined + linkedUiMapID: number | undefined + textureIndex: number | undefined + tooltipWidgetSet: number | undefined + iconWidgetSet: number | undefined + atlasName: string | undefined + uiTextureKit: string | undefined + shouldGlow: boolean + factionID: number | undefined + isPrimaryMapForPOI: boolean + isAlwaysOnFlightmap: boolean + addPaddingAboveTooltipWidgets: boolean | undefined + highlightWorldQuestsOnHover: boolean + highlightVignettesOnHover: boolean + isCurrentEvent: boolean + } + + interface ArtifactAppearanceInfo { + artifactAppearanceID: number + appearanceName: string + displayIndex: number + unlocked: boolean + failureDescription: string | undefined + uiCameraID: number + altHandCameraID: number | undefined + swatchColor: ColorMixin + modelOpacity: number + modelSaturation: number + obtainable: boolean + } + + interface ArtifactAppearanceSetInfo { + artifactAppearanceSetID: number + appearanceSetName: string + appearanceSetDescription: string + numAppearances: number + } + + interface ArtifactArtInfo { + textureKit: string + titleName: string + titleColor: ColorMixin + barConnectedColor: ColorMixin + barDisconnectedColor: ColorMixin + uiModelSceneID: number + spellVisualKitID: number + } + + interface ArtifactInfo { + itemID: number + altItemID: number | undefined + name: string + icon: number + xp: number + pointsSpent: number + quality: number + artifactAppearanceID: number + appearanceModID: number + itemAppearanceID: number | undefined + altItemAppearanceID: number | undefined + altOnTop: boolean + tier: string + } + + interface ArtifactMetaPowerInfo { + spellID: number + powerCost: number + currentRank: number + } + + interface ArtifactPowerInfo { + spellID: number + cost: number + currentRank: number + maxRank: number + bonusRanks: number + numMaxRankBonusFromTier: number + prereqsMet: boolean + isStart: boolean + isGoldMedal: boolean + isFinal: boolean + tier: number + position: Vector2DMixin + offset: Vector2DMixin | undefined + linearIndex: number | undefined + } + + interface ArtifactRelicInfo { + name: string + icon: number + slotTypeName: string + link: string + } + + interface AuctionHouseBrowseQuery { + searchString: string + sorts: undefined[] + minLevel: number | undefined + maxLevel: number | undefined + filters: undefined[] | undefined + itemClassFilters: undefined[] | undefined + } + + interface AuctionHouseFilterGroup { + category: AuctionHouseFilterCategory + filters: undefined[] + } + + interface AuctionHouseItemClassFilter { + classID: number + subClassID: number | undefined + inventoryType: InventoryType | undefined + } + + interface AuctionHouseSortType { + sortOrder: AuctionHouseSortOrder + reverseSort: boolean + } + + interface AuctionInfo { + itemKey: ItemKey + itemLink: string | undefined + minBid: number | undefined + bidAmount: number | undefined + buyoutAmount: number | undefined + bidder: string | undefined + } + + interface BidInfo { + auctionID: number + itemKey: ItemKey + itemLink: string | undefined + timeLeft: AuctionHouseTimeLeftBand + minBid: number | undefined + bidAmount: number | undefined + buyoutAmount: number | undefined + bidder: string | undefined + } + + interface BrowseResultInfo { + itemKey: ItemKey + appearanceLink: string | undefined + totalQuantity: number + minPrice: number + containsOwnerItem: boolean + } + + interface CommoditySearchResultInfo { + itemID: number + quantity: number + unitPrice: number + auctionID: number + owners: string[] + totalNumberOfOwners: number + timeLeftSeconds: number | undefined + numOwnerItems: number + containsOwnerItem: boolean + containsAccountItem: boolean + } + + interface ItemKey { + itemID: number + itemLevel: number + itemSuffix: number + battlePetSpeciesID: number + } + + interface ItemKeyInfo { + itemID: number + battlePetSpeciesID: number + itemName: string + battlePetLink: string | undefined + appearanceLink: string | undefined + quality: ItemQuality + iconFileID: number + isPet: boolean + isCommodity: boolean + isEquipment: boolean + } + + interface ItemSearchResultInfo { + itemKey: ItemKey + owners: string[] + totalNumberOfOwners: number + timeLeft: AuctionHouseTimeLeftBand + auctionID: number + quantity: number + itemLink: string | undefined + containsOwnerItem: boolean + containsAccountItem: boolean + containsSocketedItem: boolean + bidder: string | undefined + minBid: number | undefined + bidAmount: number | undefined + buyoutAmount: number | undefined + timeLeftSeconds: number | undefined + } + + interface OwnedAuctionInfo { + auctionID: number + itemKey: ItemKey + itemLink: string | undefined + status: AuctionStatus + quantity: number + timeLeftSeconds: number | undefined + timeLeft: AuctionHouseTimeLeftBand | undefined + bidAmount: number | undefined + buyoutAmount: number | undefined + bidder: string | undefined + } + + interface ReplicateItemInfo { + name: string | undefined + texture: number | undefined + count: number + qualityID: number + usable: boolean | undefined + level: number + levelType: string | undefined + minBid: number + minIncrement: number + buyoutPrice: number + bidAmount: number + highBidder: string | undefined + bidderFullName: string | undefined + owner: string | undefined + ownerFullName: string | undefined + saleStatus: number + itemID: number + hasAllInfo: boolean | undefined + } + + interface AzeriteEmpoweredItemPowerInfo { + azeritePowerID: number + spellID: number + } + + interface AzeriteEmpoweredItemPowerText { + name: string + description: string + } + + interface AzeriteEmpoweredItemTierInfo { + azeritePowerIDs: number[] + unlockLevel: number + } + + interface AzeriteSpecInfo { + classID: number + specID: number + } + + interface AzeriteEssenceInfo { + ID: number + name: string + rank: number + unlocked: boolean + valid: boolean + icon: number + } + + interface AzeriteMilestoneInfo { + ID: number + requiredLevel: number + canUnlock: boolean + unlocked: boolean + rank: number | undefined + slot: AzeriteEssenceSlot | undefined + } + + interface UnlockedAzeriteEmpoweredItems { + unlockedItem: ItemLocationMixin + tierIndex: number + } + + interface BankTabData { + ID: number + bankType: BankType + name: string + icon: number + depositFlags: BagSlotFlags + } + + interface BNetAccountInfo { + bnetAccountID: number + accountName: string + battleTag: string + isFriend: boolean + isBattleTagFriend: boolean + lastOnlineTime: number + isAFK: boolean + isDND: boolean + isFavorite: boolean + appearOffline: boolean + customMessage: string + customMessageTime: number + note: string + rafLinkType: RafLinkType + gameAccountInfo: BNetGameAccountInfo + } + + interface BNetGameAccountInfo { + gameAccountID: number + clientProgram: string + isOnline: boolean + isGameBusy: boolean + isGameAFK: boolean + wowProjectID: number | undefined + characterName: string | undefined + realmName: string | undefined + realmDisplayName: string | undefined + realmID: number | undefined + factionName: string | undefined + raceName: string | undefined + className: string | undefined + areaName: string | undefined + characterLevel: number | undefined + richPresence: string | undefined + playerGuid: string | undefined + isWowMobile: boolean + canSummon: boolean + hasFocus: boolean + regionID: number + isInCurrentRegion: boolean + timerunningSeasonID: number | undefined + } + + interface BountyInfo { + questID: number + factionID: number + icon: number + numObjectives: number + turninRequirementText: string | undefined + } + + interface CVarInfo { + value: string + defaultValue: string + isStoredServerAccount: boolean + isStoredServerCharacter: boolean + isLockedFromUser: boolean + isSecure: boolean + isReadOnly: boolean + } + + interface CalendarDayEvent { + eventID: string + title: string + isCustomTitle: boolean + startTime: CalendarTime + endTime: CalendarTime + calendarType: string + sequenceType: string + eventType: CalendarEventType + iconTexture: number | undefined + modStatus: string + inviteStatus: CalendarStatus + invitedBy: string + difficulty: number + inviteType: CalendarInviteType + sequenceIndex: number + numSequenceDays: number + difficultyName: string + dontDisplayBanner: boolean + dontDisplayEnd: boolean + clubID: string + isLocked: boolean + } + + interface CalendarEventIndexInfo { + offsetMonths: number + monthDay: number + eventIndex: number + } + + interface CalendarEventInfo { + title: string + description: string + creator: string | undefined + eventType: CalendarEventType + repeatOption: CalendarEventRepeatOptions + maxSize: number + textureIndex: number | undefined + time: CalendarTime + lockoutTime: CalendarTime + isLocked: boolean + isAutoApprove: boolean + hasPendingInvite: boolean + inviteStatus: CalendarStatus | undefined + inviteType: CalendarInviteType | undefined + calendarType: string + communityName: string | undefined + } + + interface CalendarEventInviteInfo { + name: string | undefined + level: number + className: string | undefined + classFilename: string | undefined + inviteStatus: CalendarStatus | undefined + modStatus: string | undefined + inviteIsMine: boolean + type: CalendarInviteType + notes: string + classID: number | undefined + guid: string + } + + interface CalendarEventStatusOption { + status: CalendarStatus + statusString: string + } + + interface CalendarEventTextureInfo { + title: string + iconTexture: number + expansionLevel: number + difficultyId: number | undefined + mapId: number | undefined + isLfr: boolean | undefined + } + + interface CalendarEventTypeDisplayInfo { + displayString: string + eventType: CalendarEventType + } + + interface CalendarGuildEventInfo { + eventID: string + year: number + month: number + monthDay: number + weekday: number + hour: number + minute: number + eventType: CalendarEventType + title: string + calendarType: string + texture: number + inviteStatus: CalendarStatus + clubID: string + } + + interface CalendarGuildFilterInfo { + minLevel: number + maxLevel: number + rank: number + } + + interface CalendarHolidayInfo { + name: string + description: string + texture: number + startTime: CalendarTime | undefined + endTime: CalendarTime | undefined + } + + interface CalendarMonthInfo { + month: number + year: number + numDays: number + firstWeekday: number + } + + interface CalendarRaidInfo { + name: string + calendarType: string + raidID: number + time: CalendarTime + difficulty: number + difficultyName: string | undefined + } + + interface ChallengeModeCompletionMemberInfo { + memberGUID: string + name: string + } + + interface ChallengeModeGuildAttemptMember { + name: string + classFileName: string + } + + interface ChallengeModeGuildTopAttempt { + name: string + classFileName: string + keystoneLevel: number + mapChallengeModeID: number + isYou: boolean + members: undefined[] + } + + interface CharCustomizationCategory { + id: number + orderIndex: number + name: string + icon: string + selectedIcon: string + undressModel: boolean + subcategory: boolean + cameraZoomLevel: number + cameraDistanceOffset: number + spellShapeshiftFormID: number | undefined + chrModelID: number | undefined + options: undefined[] + hasNewChoices: boolean + needsNativeFormCategory: boolean + } + + interface CharCustomizationChoice { + id: number + name: string + ineligibleChoice: boolean + isNew: boolean + swatchColor1: ColorMixin | undefined + swatchColor2: ColorMixin | undefined + soundKit: number | undefined + isLocked: boolean + lockedText: string | undefined + } + + interface CharCustomizationOption { + id: number + name: string + orderIndex: number + optionType: ChrCustomizationOptionType + choices: undefined[] + currentChoiceIndex: number | undefined + hasNewChoices: boolean + isSound: boolean + } + + interface ChatChannelInfo { + name: string + shortcut: string + localID: number + instanceID: number + zoneChannelID: number + channelType: PermanentChatChannelType + } + + interface AddonMessageParams { + prefix: string + message: string + chatType: string | undefined + target: string | undefined + } + + interface ChromieTimeExpansionInfo { + id: number + name: string + description: string + mapAtlas: string + previewAtlas: string + completed: boolean + alreadyOn: boolean + recommended: boolean + sortPriority: number + } + + interface ImportLoadoutEntryInfo { + nodeID: number + ranksGranted: number + ranksPurchased: number + selectionEntryID: number + } + + interface ClickBindingInfo { + type: ClickBindingType + actionID: number + button: string + modifiers: number + } + + interface ClubInfo { + clubId: string + name: string + shortName: string | undefined + description: string + broadcast: string + clubType: ClubType + avatarId: number + memberCount: number | undefined + favoriteTimeStamp: number | undefined + joinTime: number | undefined + socialQueueingEnabled: boolean | undefined + crossFaction: boolean | undefined + } + + interface ClubInvitationCandidateInfo { + memberId: number + name: string + priority: number + status: ClubInvitationCandidateStatus + } + + interface ClubInvitationInfo { + invitationId: string + isMyInvitation: boolean + invitee: ClubMemberInfo + } + + interface ClubLimits { + maximumNumberOfStreams: number + } + + interface ClubMemberInfo { + isSelf: boolean + memberId: number + name: string | undefined + role: ClubRoleIdentifier | undefined + presence: ClubMemberPresence + clubType: ClubType | undefined + guid: string | undefined + bnetAccountId: number | undefined + memberNote: string | undefined + officerNote: string | undefined + classID: number | undefined + race: number | undefined + level: number | undefined + zone: string | undefined + achievementPoints: number | undefined + profession1ID: number | undefined + profession1Rank: number | undefined + profession1Name: string | undefined + profession2ID: number | undefined + profession2Rank: number | undefined + profession2Name: string | undefined + lastOnlineYear: number | undefined + lastOnlineMonth: number | undefined + lastOnlineDay: number | undefined + lastOnlineHour: number | undefined + guildRank: string | undefined + guildRankOrder: number | undefined + isRemoteChat: boolean | undefined + overallDungeonScore: number | undefined + faction: PvPFaction | undefined + timerunningSeasonID: number | undefined + } + + interface ClubMessageIdentifier { + epoch: number + position: number + } + + interface ClubMessageInfo { + messageId: ClubMessageIdentifier + content: string + author: ClubMemberInfo + destroyer: ClubMemberInfo | undefined + destroyed: boolean + edited: boolean + } + + interface ClubMessageRange { + oldestMessageId: ClubMessageIdentifier + newestMessageId: ClubMessageIdentifier + } + + interface ClubPrivilegeInfo { + canDestroy: boolean + canSetAttribute: boolean + canSetName: boolean + canSetDescription: boolean + canSetAvatar: boolean + canSetBroadcast: boolean + canSetPrivacyLevel: boolean + canSetOwnMemberAttribute: boolean + canSetOtherMemberAttribute: boolean + canSetOwnMemberNote: boolean + canSetOtherMemberNote: boolean + canSetOwnVoiceState: boolean + canSetOwnPresenceLevel: boolean + canUseVoice: boolean + canVoiceMuteMemberForAll: boolean + canGetInvitation: boolean + canSendInvitation: boolean + canSendGuestInvitation: boolean + canRevokeOwnInvitation: boolean + canRevokeOtherInvitation: boolean + canGetBan: boolean + canGetSuggestion: boolean + canSuggestMember: boolean + canGetTicket: boolean + canCreateTicket: boolean + canDestroyTicket: boolean + canAddBan: boolean + canRemoveBan: boolean + canCreateStream: boolean + canDestroyStream: boolean + canSetStreamPosition: boolean + canSetStreamAttribute: boolean + canSetStreamName: boolean + canSetStreamSubject: boolean + canSetStreamAccess: boolean + canSetStreamVoiceLevel: boolean + canCreateMessage: boolean + canDestroyOwnMessage: boolean + canDestroyOtherMessage: boolean + canEditOwnMessage: boolean + canPinMessage: boolean + kickableRoleIds: number[] + } + + interface ClubRoleInfo { + roleId: number + name: string + required: boolean + unique: boolean + } + + interface ClubSelfInvitationInfo { + invitationId: string + club: ClubInfo + inviter: ClubMemberInfo + leaders: undefined[] + } + + interface ClubStreamInfo { + streamId: string + name: string + subject: string + leadersAndModeratorsOnly: boolean + streamType: ClubStreamType + creationTime: number + } + + interface ClubStreamNotificationSetting { + streamId: string + filter: ClubStreamNotificationFilter + } + + interface ClubTicketInfo { + ticketId: string + allowedRedeemCount: number + currentRedeemCount: number + creationTime: number + expirationTime: number + defaultStreamId: string | undefined + creator: ClubMemberInfo + } + + interface ClubFinderApplicantInfo { + clubFinderGUID: string + playerGUID: string + closed: number + name: string + message: string + level: number + classID: number + ilvl: number + specIds: number[] + requestStatus: PlayerClubRequestStatus + lookupSuccess: boolean + lastUpdatedTime: number + faction: number + } + + interface ClubSettingsInfo { + playStyleDungeon: boolean + playStyleRaids: boolean + playStylePvp: boolean + playStyleRP: boolean + playStyleSocial: boolean + roleTank: boolean + roleHealer: boolean + roleDps: boolean + sizeSmall: boolean + sizeMedium: boolean + sizeLarge: boolean + maxLevelOnly: boolean + enableListing: boolean + sortRelevance: boolean + sortMembers: boolean + sortNewest: boolean + autoAccept: boolean + crossFaction: boolean + } + + interface RecruitingClubInfo { + clubFinderGUID: string + numActiveMembers: number + name: string + comment: string + guildLeader: string + isGuild: boolean + emblemInfo: number + tabardInfo: GuildTabardInfo | undefined + recruitingSpecIds: number[] + recruitmentFlags: number + localeSet: boolean + recruitmentLocale: number + minILvl: number + cached: number + cacheRequested: number + lastPosterGUID: string + clubId: string + lastUpdatedTime: number + isCrossFaction: boolean + realmName: string | undefined + } + + interface CommentatorHistory { + series: undefined[] + teamDirectory: undefined[] + overrideNameDirectory: undefined[] + } + + interface CommentatorOverrideNameEntry { + originalName: string + newName: string + } + + interface CommentatorPlayerData { + unitToken: string + name: string + faction: number + specialization: number + damageDone: number + damageTaken: number + healingDone: number + healingTaken: number + kills: number + deaths: number + soloShuffleRoundWins: number + soloShuffleRoundLosses: number + } + + interface CommentatorSeries { + teams: undefined[] + } + + interface CommentatorSeriesTeam { + name: string + score: number + } + + interface CommentatorTeamDirectoryEntry { + playerName: string + teamName: string + } + + interface CommentatorTrackedItemCooldown { + spellID: number + category: TrackedSpellCategory + } + + interface CommentatorUnitData { + healthMax: number + health: number + absorbTotal: number + isDeadOrGhost: boolean + isFeignDeath: boolean + powerTypeToken: string + power: number + powerMax: number + } + + interface NameOverrideEntry { + originalName: string + overrideName: string + } + + interface ConsoleCommandInfo { + command: string + help: string + category: ConsoleCategory + commandType: ConsoleCommandType + scriptContents: string + scriptParameters: string + } + + interface ConsoleScriptCollectionData { + ID: number + name: string + } + + interface ConsoleScriptCollectionElementData { + collectionID: number | undefined + consoleScriptID: number | undefined + } + + interface ConsoleScriptData { + ID: number + name: string + help: string + script: string + params: string + isLuaScript: boolean + } + + interface ConsoleScriptParameter { + name: string + description: string + } + + interface ContainerItemInfo { + iconFileID: number + stackCount: number + isLocked: boolean + quality: ItemQuality | undefined + isReadable: boolean + hasLoot: boolean + hyperlink: string + isFiltered: boolean + hasNoValue: boolean + itemID: number + isBound: boolean + itemName: string + } + + interface ItemPurchaseCurrency { + iconFileID: number | undefined + currencyCount: number + name: string + } + + interface ItemPurchaseInfo { + money: number + itemCount: number + refundSeconds: number + currencyCount: number + hasEnchants: boolean + } + + interface ItemPurchaseItem { + iconFileID: number | undefined + itemCount: number + hyperlink: string + } + + interface ItemQuestInfo { + isQuestItem: boolean + questID: number | undefined + isActive: boolean + } + + interface ContentTrackingMapInfo { + x: number + y: number + trackableType: ContentTrackingType + trackableID: number + targetType: ContentTrackingTargetType + targetID: number + waypointText: string + } + + interface EncounterTrackingInfo { + encounterName: string + journalEncounterID: number | undefined + journalInstanceID: number | undefined + instanceName: string + subText: string | undefined + difficultyID: number | undefined + lfgDungeonID: number | undefined + groupFinderActivityID: number | undefined + } + + interface VendorTrackingInfo { + creatureName: string + zoneName: string | undefined + currencyType: number | undefined + cost: number | undefined + } + + interface ContributionAppearance { + stateName: string + stateColor: ColorMixin + tooltipLine: string + tooltipUseTimeRemaining: boolean + statusBarAtlas: string + borderAtlas: string + bannerAtlas: string + } + + interface ContributionMapInfo { + areaPoiID: number + position: Vector2DMixin + name: string + atlasName: string + collectorCreatureID: number + } + + interface CovenantAbilityInfo { + spellID: number + type: CovenantAbilityType + } + + interface CovenantFeatureInfo { + name: string + description: string + texture: number + } + + interface CovenantPreviewInfo { + textureKit: string + transmogSetID: number + mountID: number + covenantName: string + covenantZone: string + description: string + covenantCrest: string + covenantAbilities: undefined[] + fromPlayerChoice: boolean + covenantSoulbinds: undefined[] + featureInfo: CovenantFeatureInfo + } + + interface CovenantSoulbindInfo { + spellID: number + uiTextureKit: string + name: string + description: string + sortOrder: number + } + + interface CovenantSanctumFeatureInfo { + garrTalentTreeID: number + featureType: number + uiOrder: number + } + + interface CovenantSanctumRenownLevelInfo { + level: number + locked: boolean + isMilestone: boolean + isCapstone: boolean + } + + interface CovenantSanctumRenownRewardInfo { + uiOrder: number + itemID: number | undefined + spellID: number | undefined + mountID: number | undefined + transmogID: number | undefined + transmogSetID: number | undefined + titleMaskID: number | undefined + garrFollowerID: number | undefined + transmogIllusionSourceID: number | undefined + icon: number | undefined + name: string | undefined + description: string | undefined + toastDescription: string | undefined + } + + interface CovenantData { + ID: number + textureKit: string + celebrationSoundKit: number + animaChannelSelectSoundKit: number + animaChannelActiveSoundKit: number + animaGemsFullSoundKit: number + animaNewGemSoundKit: number + animaReinforceSelectSoundKit: number + upgradeTabSelectSoundKitID: number + reservoirFullSoundKitID: number + beginResearchSoundKitID: number + renownFanfareSoundKitID: number + name: string + soulbindIDs: number[] + } + + interface CraftingOrderRequestInfo { + orderType: CraftingOrderType + selectedSkillLineAbility: number | undefined + searchFavorites: boolean + initialNonPublicSearch: boolean + primarySort: CraftingOrderSortInfo + secondarySort: CraftingOrderSortInfo + forCrafter: boolean + offset: number + callback: CraftingOrderRequestCallback + profession: Profession | undefined + } + + interface CraftingOrderRequestMyOrdersInfo { + primarySort: CraftingOrderSortInfo + secondarySort: CraftingOrderSortInfo + offset: number + callback: CraftingOrderRequestMyOrdersCallback + } + + interface CraftingOrderBucketInfo { + itemID: number + spellID: number + skillLineAbilityID: number + tipAmountAvg: number + tipAmountMax: number + numAvailable: number + } + + interface CraftingOrderClaimsRemainingInfo { + claimsRemaining: number + secondsToRecharge: number | undefined + } + + interface CraftingOrderCustomerCategory { + categoryName: string + categoryID: number + uiSortOrder: number + primaryCategorySortOrder: number | undefined + secondaryCategorySortOrder: number | undefined + type: CraftingOrderCustomerCategoryType + } + + interface CraftingOrderCustomerCategoryFilters { + primaryCategoryID: number | undefined + secondaryCategoryID: number | undefined + tertiaryCategoryID: number | undefined + } + + interface CraftingOrderCustomerOptionInfo { + skillLineAbilityID: number + professionID: number + skillUpSkillLineID: number + spellID: number + itemID: number + itemName: string + primaryCategoryID: number + iLvlMin: number + iLvlMax: number | undefined + canUse: boolean + bindOnPickup: boolean + qualityIlvlBonuses: number[] | undefined + craftingQualityIDs: number[] | undefined + quality: ItemQuality | undefined + slots: number | undefined + level: number | undefined + skill: number | undefined + secondaryCategoryID: number | undefined + tertiaryCategoryID: number | undefined + expansionID: number | undefined + } + + interface CraftingOrderCustomerSearchParams { + categoryFilters: CraftingOrderCustomerCategoryFilters + searchText: string | undefined + minLevel: number + maxLevel: number + uncollectedOnly: boolean + usableOnly: boolean + upgradesOnly: boolean + currentExpansionOnly: boolean + includePoor: boolean + includeCommon: boolean + includeUncommon: boolean + includeRare: boolean + includeEpic: boolean + includeLegendary: boolean + includeArtifact: boolean + isFavoritesSearch: boolean + } + + interface CraftingOrderCustomerSearchResults { + options: undefined[] + extraColumnType: AuctionHouseExtraColumn | undefined + } + + interface CraftingOrderInfo { + orderID: number + itemID: number + spellID: number + skillLineAbilityID: number + orderType: CraftingOrderType + orderState: CraftingOrderState + expirationTime: number + claimEndTime: number + minQuality: number + tipAmount: number + consortiumCut: number + isRecraft: boolean + isFulfillable: boolean + reagentState: CraftingOrderReagentsType + customerGuid: string | undefined + customerName: string | undefined + crafterGuid: string | undefined + crafterName: string | undefined + npcCustomerCreatureID: number | undefined + customerNotes: string + reagents: undefined[] + outputItemHyperlink: string | undefined + outputItemGUID: string | undefined + recraftItemHyperlink: string | undefined + npcOrderRewards: undefined[] + npcCraftingOrderSetID: number + npcTreasureID: number + } + + interface CraftingOrderMailInfo { + reason: RcoCloseReason + recipeName: string + commissionPaid: number | undefined + crafterNote: string | undefined + crafterGUID: string | undefined + crafterName: string | undefined + customerGUID: string | undefined + customerName: string | undefined + } + + interface CraftingOrderPersonalOrdersInfo { + profession: Profession + numPersonalOrders: number + professionName: string + } + + interface CraftingOrderReagentInfo { + reagent: CraftingReagentInfo + slotIndex: number + source: CraftingOrderReagentSource + isBasicReagent: boolean + } + + interface CraftingOrderRewardInfo { + itemLink: string | undefined + currencyType: number | undefined + count: number + } + + interface CraftingOrderSortInfo { + sortType: CraftingOrderSortType + reversed: boolean + } + + interface NewCraftingOrderInfo { + skillLineAbilityID: number + orderType: CraftingOrderType + orderDuration: CraftingOrderDuration + tipAmount: number + customerNotes: string + reagentItems: undefined[] + craftingReagentItems: undefined[] + minCraftingQualityID: number | undefined + orderTarget: string | undefined + recraftItem: string | undefined + } + + interface ClassInfo { + className: string + classFile: string + classID: number + } + + interface FactionInfo { + name: string + groupTag: string + } + + interface RaceInfo { + raceName: string + clientFileString: string + raceID: number + } + + interface BackpackCurrencyInfo { + name: string + quantity: number + iconFileID: number + currencyTypesID: number + } + + interface CharacterCurrencyData { + characterGUID: string + characterName: string + currencyID: number + quantity: number + } + + interface CurrencyDisplayInfo { + name: string + description: string + icon: number + quality: number + displayAmount: number + actualAmount: number + } + + interface CurrencyInfo { + name: string + description: string + currencyID: number + isHeader: boolean + isHeaderExpanded: boolean + currencyListDepth: number + isTypeUnused: boolean + isShowInBackpack: boolean + quantity: number + trackedQuantity: number + iconFileID: number + maxQuantity: number + canEarnPerWeek: boolean + quantityEarnedThisWeek: number + isTradeable: boolean + quality: ItemQuality + maxWeeklyQuantity: number + totalEarned: number + discovered: boolean + useTotalEarnedForMaxQty: boolean + isAccountWide: boolean + isAccountTransferable: boolean + transferPercentage: number | undefined + rechargingCycleDurationMS: number + rechargingAmountPerCycle: number + } + + interface CurrencyTransferTransaction { + sourceCharacterGUID: string + sourceCharacterName: string + destinationCharacterGUID: string + destinationCharacterName: string + currencyType: number + quantityTransferred: number + totalQuantityConsumed: number + timestamp: number + } + + interface GraveyardMapInfo { + areaPoiID: number + position: Vector2DMixin + name: string + textureIndex: number + graveyardID: number + isGraveyardSelectable: boolean + } + + interface SelfResurrectOption { + name: string + optionType: SelfResurrectOptionType + id: number + canUse: boolean + isLimited: boolean + priority: number + } + + interface EditModeAnchorInfo { + point: string + relativeTo: string + relativePoint: string + offsetX: number + offsetY: number + } + + interface EditModeLayoutInfo { + layoutName: string + layoutType: EditModeLayoutType + systems: undefined[] + } + + interface EditModeLayouts { + layouts: undefined[] + activeLayout: number + } + + interface EditModeSettingInfo { + setting: number + value: number + } + + interface EditModeSystemInfo { + system: EditModeSystem + systemIndex: number | undefined + anchorInfo: EditModeAnchorInfo + anchorInfo2: EditModeAnchorInfo | undefined + settings: undefined[] + isInDefaultPosition: boolean + } + + interface DungeonEntranceMapInfo { + areaPoiID: number + position: Vector2DMixin + name: string + description: string + atlasName: string + journalInstanceID: number + } + + interface EncounterJournalItemInfo { + itemID: number + encounterID: number | undefined + name: string | undefined + itemQuality: string | undefined + filterType: ItemSlotFilterType | undefined + icon: number | undefined + slot: string | undefined + armorType: string | undefined + link: string | undefined + handError: boolean | undefined + weaponTypeError: boolean | undefined + displayAsPerPlayerLoot: boolean | undefined + displayAsVeryRare: boolean | undefined + displayAsExtremelyRare: boolean | undefined + displaySeasonID: number | undefined + } + + interface EncounterJournalMapEncounterInfo { + encounterID: number + mapX: number + mapY: number + } + + interface EncounterJournalSectionInfo { + spellID: number + title: string + description: string | undefined + headerType: number + abilityIcon: number + creatureDisplayID: number + uiModelSceneID: number + siblingSectionID: number | undefined + firstChildSectionID: number | undefined + filteredByDifficulty: boolean + link: string + startsOpen: boolean + } + + interface ExpansionDisplayInfo { + logo: number + banner: string + features: undefined[] + highResBackgroundID: number + lowResBackgroundID: number + } + + interface ExpansionDisplayInfoFeature { + icon: number + text: string + } + + interface FogOfWarInfo { + fogOfWarID: number + backgroundAtlas: string + maskAtlas: string + maskScalar: number + } + + interface FontScriptInfo { + color: ColorMixin + height: number + outline: string + shadow: FontScriptShadowInfo | undefined + } + + interface FontScriptShadowInfo { + color: ColorMixin + x: number + y: number + } + + interface FriendInfo { + connected: boolean + name: string + className: string | undefined + area: string | undefined + notes: string | undefined + guid: string + level: number + dnd: boolean + afk: boolean + rafLinkType: RafLinkType + mobile: boolean + } + + interface WhoInfo { + fullName: string + fullGuildName: string + level: number + raceStr: string + classStr: string + area: string + filename: string | undefined + gender: number + timerunningSeasonID: number | undefined + } + + interface GamePadAxisConfig { + axis: string + shift: number | undefined + scale: number | undefined + deadzone: number | undefined + buttonThreshold: number | undefined + buttonPos: string | undefined + buttonNeg: string | undefined + comment: string | undefined + } + + interface GamePadConfig { + comment: string | undefined + name: string | undefined + configID: GamePadConfigID + labelStyle: string | undefined + rawButtonMappings: undefined[] + rawAxisMappings: undefined[] + axisConfigs: undefined[] + stickConfigs: undefined[] + } + + interface GamePadConfigID { + vendorID: number | undefined + productID: number | undefined + } + + interface GamePadMappedState { + name: string + labelStyle: string + buttonCount: number + axisCount: number + stickCount: number + buttons: boolean[] + axes: number[] + sticks: undefined[] + } + + interface GamePadRawAxisMapping { + rawIndex: number + axis: string | undefined + comment: string | undefined + } + + interface GamePadRawButtonMapping { + rawIndex: number + button: string | undefined + axis: string | undefined + axisValue: number | undefined + comment: string | undefined + } + + interface GamePadRawState { + name: string + vendorID: number + productID: number + rawButtonCount: number + rawAxisCount: number + rawButtons: boolean[] + rawAxes: number[] + } + + interface GamePadStick { + x: number + y: number + len: number + } + + interface GamePadStickConfig { + stick: string + axisX: string | undefined + axisY: string | undefined + deadzone: number | undefined + deadzoneX: number | undefined + deadzoneY: number | undefined + comment: string | undefined + } + + interface AutoCombatDamageClassString { + damageClassValue: number + locString: string + } + + interface AutoCombatResult { + winner: boolean + combatLog: undefined[] + } + + interface AutoCombatSpellInfo { + autoCombatSpellID: number + name: string + description: string + cooldown: number + duration: number + schoolMask: number + previewMask: number + icon: number + spellTutorialFlag: number + hasThornsEffect: boolean + } + + interface AutoCombatTroopInfo { + name: string + followerID: number + garrFollowerID: number + followerTypeID: number + displayIDs: undefined[] + level: number + quality: number + levelXP: number + maxXP: number + height: number + scale: number + displayScale: number | undefined + displayHeight: number | undefined + classSpec: number | undefined + className: string | undefined + flavorText: string | undefined + classAtlas: string + portraitIconID: number + textureKit: string + isTroop: boolean + raceID: number + health: number + maxHealth: number + role: number + isAutoTroop: boolean + isSoulbind: boolean + isCollected: boolean + autoCombatStats: FollowerAutoCombatStatsInfo + } + + interface AutoMissionCombatEventInfo { + boardIndex: number + oldHealth: number + newHealth: number + maxHealth: number + points: number | undefined + } + + interface AutoMissionEnvironmentEffect { + name: string + autoCombatSpellInfo: AutoCombatSpellInfo + } + + interface AutoMissionEvent { + type: number + spellID: number + schoolMask: number + effectIndex: number + casterBoardIndex: number + auraType: number + targetInfo: undefined[] + } + + interface AutoMissionRound { + events: undefined[] + } + + interface AutoMissionTargetingInfo { + targetIndex: number + previewType: number + spellID: number + effectIndex: number + } + + interface FollowerAutoCombatStatsInfo { + currentHealth: number + maxHealth: number + attack: number + healingTimestamp: number + healCost: number + minutesHealingRemaining: number + } + + interface FollowerDisplayID { + id: number + followerPageScale: number + showWeapon: boolean + } + + interface FollowerMissionCompleteInfo { + name: string + displayIDs: undefined[] + level: number + quality: number + currentXP: number + maxXP: number + height: number + scale: number + movementType: number | undefined + impactDelay: number | undefined + castID: number | undefined + castSoundID: number | undefined + impactID: number | undefined + impactSoundID: number | undefined + targetImpactID: number | undefined + targetImpactSoundID: number | undefined + className: string | undefined + classAtlas: string + portraitIconID: number + textureKit: string + isTroop: boolean + boardIndex: number + health: number + maxHealth: number + role: number + } + + interface GarrisonAbilityCounterInfo { + id: number + icon: number + name: string + factor: number + description: string + } + + interface GarrisonAbilityInfo { + id: number + name: string + description: string + icon: number + isTrait: boolean + isSpecialization: boolean + temporary: boolean + category: string | undefined + counters: undefined[] + isEmptySlot: boolean + } + + interface GarrisonEnemyEncounterInfo { + name: string + displayID: number + portraitFileDataID: number + textureKit: string + scale: number + height: number + mechanics: undefined[] + autoCombatSpells: undefined[] + autoCombatAutoAttack: AutoCombatSpellInfo | undefined + role: number + health: number + maxHealth: number + attack: number + boardIndex: number + isElite: boolean + } + + interface GarrisonFollowerDeathInfo { + followerID: number + state: number + } + + interface GarrisonMechanicInfo { + mechanicTypeID: number + icon: number + name: string + factor: number + description: string + ability: GarrisonAbilityInfo | undefined + } + + interface GarrisonPlotInstanceMapInfo { + buildingPlotInstanceID: number + position: Vector2DMixin + name: string + atlasName: string + } + + interface MissionDeploymentInfo { + location: string + xp: number + environment: string | undefined + environmentDesc: string | undefined + environmentTexture: number + locTextureKit: string + isExhausting: boolean + enemies: undefined[] + } + + interface MissionEncounterIconInfo { + portraitFileDataID: number + missionScalar: number + isElite: boolean + isRare: boolean + } + + interface GarrisonAbilityEffect { + name: string + description: string + icon: number + factor: number + } + + interface GarrisonFollowerAbilityInfo { + id: number + name: string + description: string + icon: number + isTrait: boolean + isSpecialization: boolean + temporary: boolean + category: string | undefined + counters: undefined[] + isEmptySlot: boolean + } + + interface GarrisonTalentCurrencyCostInfo { + currencyType: number + currencyQuantity: number + } + + interface GarrisonTalentInfo { + id: number + ability: GarrisonFollowerAbilityInfo + name: string + icon: number + tier: number + uiOrder: number + type: number + prerequisiteTalentID: number | undefined + selected: boolean + researched: boolean + ignoreTalent: boolean + researchDuration: number + startTime: number + timeRemaining: number + researchGoldCost: number + researchCurrencyCosts: undefined[] + talentAvailability: GarrisonTalentAvailability + talentRank: number + talentMaxRank: number + isBeingResearched: boolean + description: string + perkSpellID: number + researchDescription: string | undefined + playerConditionReason: string | undefined + socketInfo: GarrisonTalentSocketInfo + treeID: number + } + + interface GarrisonTalentSocketInfo { + socketType: number + socketSubtype: number + misc0: number + misc1: number + } + + interface GarrisonTalentTreeInfo { + treeID: number + title: string + textureKit: string + talents: undefined[] + isClassAgnostic: boolean + isThemed: boolean + featureType: number + featureSubtype: number + } + + interface FriendshipReputationInfo { + friendshipFactionID: number + standing: number + maxRep: number + name: string | undefined + text: string + texture: number + reaction: string + reactionThreshold: number + nextThreshold: number | undefined + reversedColor: boolean + overrideColor: number | undefined + } + + interface FriendshipReputationRankInfo { + currentLevel: number + maxLevel: number + } + + interface GossipOptionRewardInfo { + id: number + quantity: number + rewardType: GossipOptionRewardType + } + + interface GossipOptionUIInfo { + gossipOptionID: number | undefined + name: string + icon: number + rewards: undefined[] + status: GossipOptionStatus + spellID: number | undefined + flags: number + overrideIconID: number | undefined + selectOptionWhenOnlyOption: boolean + orderIndex: number + failureDescription: string | undefined + } + + interface GossipOptionUIWidgetSetAndType { + widgetType: number + uiWidgetSetID: number + } + + interface GossipPoiInfo { + name: string + textureIndex: number + position: Vector2DMixin + inBattleMap: boolean + } + + interface GossipQuestUIInfo { + title: string + questLevel: number + isTrivial: boolean + frequency: number | undefined + repeatable: boolean | undefined + isComplete: boolean | undefined + isLegendary: boolean + isIgnored: boolean + questID: number + isImportant: boolean + isMeta: boolean + } + + interface GuildNewsInfo { + isSticky: boolean + isHeader: boolean + newsType: number + whoText: string | undefined + whatText: string | undefined + newsDataID: number + data: number[] + weekday: number + day: number + month: number + year: number + guildMembersPresent: number + } + + interface GuildTabardInfo { + backgroundColor: ColorMixin + borderColor: ColorMixin + emblemColor: ColorMixin + emblemFileID: number + emblemStyle: number + } + + interface DifficultyInfo { + name: string + instanceType: string + isHeroic: boolean + isChallengeMode: boolean + displayHeroic: boolean + displayMythic: boolean + toggleDifficultyID: number | undefined + isLFR: boolean + minPlayers: number | undefined + maxPlayers: number | undefined + } + + interface DungeonEncounterInfo { + encounterName: string + texture: string + isKilled: boolean + ineligible: boolean + } + + interface InstanceInfo { + name: string + instanceType: string + difficultyID: number + difficultyName: string + maxPlayers: number + dynamicDifficulty: number + isDynamic: boolean | undefined + instanceID: number + instanceGroupSize: number + lfgDungeonID: number | undefined + } + + interface InvasionMapInfo { + invasionID: number + name: string + position: Vector2DMixin + atlasName: string + rewardQuestID: number | undefined + } + + interface IslandsQueueDifficultyInfo { + difficultyId: number + previewRewardQuestId: number + } + + interface ItemInfoResult { + itemName: string + itemLink: string + itemQuality: ItemQuality + itemLevel: number + itemMinLevel: number + itemType: string + itemSubType: string + itemStackCount: number + itemEquipLoc: string + itemTexture: number + sellPrice: number + classID: number + subclassID: number + bindType: number + expansionID: number + setID: number | undefined + isCraftingReagent: boolean + } + + interface ConversionCurrencyCost { + currencyID: number + amount: number + } + + interface ItemInteractionChargeInfo { + newChargeAmount: number + rechargeRate: number + timeToNextCharge: number + } + + interface ItemInteractionFrameInfo { + textureKit: string + openSoundKitID: number + closeSoundKitID: number + titleText: string + tutorialText: string + buttonText: string + interactionType: UIItemInteractionType + flags: number + description: string | undefined + buttonTooltip: string | undefined + confirmationDescription: string | undefined + slotTooltip: string | undefined + cost: number | undefined + currencyTypeId: number | undefined + dropInSlotSoundKitId: number | undefined + } + + interface ItemUpgradeCostDiscountInfo { + isDiscounted: boolean + discountHighWatermark: number + isPartialTwoHandDiscount: boolean + isAccountWideDiscount: boolean + doesCurrentCharacterMeetHighWatermark: boolean + } + + interface ItemUpgradeCurrencyCost { + cost: number + currencyID: number + discountInfo: ItemUpgradeCostDiscountInfo + } + + interface ItemUpgradeItemCost { + cost: number + itemID: number + discountInfo: ItemUpgradeCostDiscountInfo + } + + interface ItemUpgradeItemInfo { + iconID: number + name: string + itemUpgradeable: boolean + displayQuality: number + highWatermarkSlot: number + currUpgrade: number + maxUpgrade: number + minItemLevel: number + maxItemLevel: number + upgradeLevelInfos: undefined[] + customUpgradeString: string | undefined + upgradeCostTypesForSeason: undefined[] + } + + interface ItemUpgradeLevelInfo { + upgradeLevel: number + displayQuality: number + itemLevelIncrement: number + levelStats: undefined[] + currencyCostsToUpgrade: undefined[] + itemCostsToUpgrade: undefined[] + failureMessage: string | undefined + } + + interface ItemUpgradeSeasonalCostType { + itemID: number | undefined + currencyID: number | undefined + orderIndex: number + sourceString: string | undefined + } + + interface ItemUpgradeStat { + displayString: string + statValue: number + active: boolean + } + + interface LFGDungeonInfo { + name: string + iconID: number + link: string | undefined + } + + interface LFGLockInfo { + lfgID: number + reason: number + hideEntry: boolean + } + + interface AdvancedFilterOptions { + needsTank: boolean + needsHealer: boolean + needsDamage: boolean + needsMyClass: boolean + hasTank: boolean + hasHealer: boolean + activities: number[] + minimumRating: number + difficultyNormal: boolean + difficultyHeroic: boolean + difficultyMythic: boolean + difficultyMythicPlus: boolean + } + + interface BestDungeonScoreMapInfo { + mapScore: number + mapName: string + bestRunLevel: number + finishedSuccess: boolean + bestRunDurationMs: number + bestLevelIncrement: number + } + + interface GroupFinderActivityInfo { + fullName: string + shortName: string + categoryID: number + groupFinderActivityGroupID: number + ilvlSuggestion: number + filters: number + minLevel: number + maxNumPlayers: number + displayType: LFGListDisplayType + orderIndex: number + useHonorLevel: boolean + showQuickJoinToast: boolean + isMythicPlusActivity: boolean + isRatedPvpActivity: boolean + isCurrentRaidActivity: boolean + isPvpActivity: boolean + isMythicActivity: boolean + allowCrossFaction: boolean + isHeroicActivity: boolean + isNormalActivity: boolean + useDungeonRoleExpectations: boolean + } + + interface LfgApplicantData { + applicantID: number + applicationStatus: string + pendingApplicationStatus: string | undefined + numMembers: number + isNew: boolean + comment: string + displayOrderID: number + } + + interface LfgCategoryData { + name: string + searchPromptOverride: string | undefined + separateRecommended: boolean + autoChooseActivity: boolean + preferCurrentArea: boolean + showPlaystyleDropdown: boolean + allowCrossFaction: boolean + } + + interface LfgEntryData { + activityID: number + requiredItemLevel: number + requiredHonorLevel: number + name: string + comment: string + voiceChat: string + duration: number + autoAccept: boolean + privateGroup: boolean + questID: number | undefined + requiredDungeonScore: number | undefined + requiredPvpRating: number | undefined + playstyle: LFGEntryPlaystyle | undefined + isCrossFactionListing: boolean + } + + interface LfgSearchResultData { + searchResultID: number + activityID: number + leaderName: string | undefined + name: string + comment: string + voiceChat: string + requiredItemLevel: number + requiredHonorLevel: number + hasSelf: boolean + numMembers: number + numBNetFriends: number + numCharFriends: number + numGuildMates: number + isDelisted: boolean + autoAccept: boolean + isWarMode: boolean + age: number + questID: number | undefined + leaderOverallDungeonScore: number | undefined + leaderDungeonScoreInfo: BestDungeonScoreMapInfo | undefined + leaderBestDungeonScoreInfo: BestDungeonScoreMapInfo | undefined + leaderPvpRatingInfo: PvpRatingInfo | undefined + requiredDungeonScore: number | undefined + requiredPvpRating: number | undefined + playstyle: LFGEntryPlaystyle | undefined + crossFactionListing: boolean | undefined + leaderFactionGroup: number + partyGUID: string + } + + interface PvpRatingInfo { + bracket: number + rating: number + activityName: string + tier: number + } + + interface WowLocale { + enUS: boolean + koKR: boolean + frFR: boolean + deDE: boolean + zhCN: boolean + zhTW: boolean + esES: boolean + esMX: boolean + ruRU: boolean + ptBR: boolean + itIT: boolean + } + + interface CurrencyCost { + currencyID: number + amount: number + } + + interface RuneforgeItemPreviewInfo { + itemGUID: string + itemLevel: number + itemName: string + } + + interface RuneforgeLegendaryComponentInfo { + powerID: number + modifiers: number[] + } + + interface RuneforgeLegendaryCraftDescription { + baseItem: ItemLocationMixin + runeforgePowerID: number + modifiers: number[] + } + + interface RuneforgePower { + runeforgePowerID: number + state: RuneforgePowerState + name: string + descriptionSpellID: number + description: string + source: string | undefined + iconFileID: number + specName: string | undefined + matchesSpec: boolean + matchesCovenant: boolean + covenantID: number | undefined + slots: string[] + } + + interface LocaleInfo { + localeId: number + localeName: string + } + + interface EncounterLootDropInfo { + lootListID: number + itemHyperlink: string + playerRollState: EncounterLootDropRollState + currentLeader: EncounterLootDropRollInfo | undefined + isTied: boolean + winner: EncounterLootDropRollInfo | undefined + allPassed: boolean + rollInfos: undefined[] + startTime: number + duration: number + } + + interface EncounterLootDropRollInfo { + playerName: string + playerGUID: string + playerClass: string + isSelf: boolean + state: EncounterLootDropRollState + isWinner: boolean + roll: number | undefined + } + + interface EncounterLootDrops { + encounterID: number + drops: undefined[] + } + + interface EncounterLootInfo { + encounterName: string + encounterID: number + startTime: number + duration: number + } + + interface LootJournalItemInfo { + itemID: number + icon: number + invType: number + } + + interface LootJournalItemSetInfo { + setID: number + itemLevel: number + name: string + } + + interface LoreTextEntry { + text: string + isHeader: boolean + } + + interface LossOfControlData { + locType: string + spellID: number + displayText: string + iconTexture: number + startTime: number | undefined + timeRemaining: number | undefined + duration: number | undefined + lockoutSchool: number + priority: number + displayType: number + auraInstanceID: number | undefined + } + + interface MajorFactionData { + name: string + factionID: number + expansionID: number + bountySetID: number + isUnlocked: boolean + unlockDescription: string | undefined + uiPriority: number + renownLevel: number + renownReputationEarned: number + renownLevelThreshold: number + textureKit: string + celebrationSoundKit: number + renownFanfareSoundKitID: number + } + + interface MajorFactionRenownInfo { + renownLevel: number + renownReputationEarned: number + renownLevelThreshold: number + } + + interface MajorFactionRenownLevelInfo { + factionID: number + level: number + locked: boolean + isMilestone: boolean + isCapstone: boolean + } + + interface MajorFactionRenownRewardInfo { + renownRewardID: number + uiOrder: number + isAccountUnlock: boolean + itemID: number | undefined + spellID: number | undefined + mountID: number | undefined + transmogID: number | undefined + transmogSetID: number | undefined + titleMaskID: number | undefined + transmogIllusionSourceID: number | undefined + icon: number | undefined + name: string | undefined + description: string | undefined + toastDescription: string | undefined + } + + interface MapBannerInfo { + areaPoiID: number + name: string + atlasName: string + uiTextureKit: string | undefined + } + + interface MapLinkInfo { + areaPoiID: number + position: Vector2DMixin + name: string + atlasName: string + linkedUiMapID: number + } + + interface UiMapDetails { + mapID: number + name: string + mapType: UIMapType + parentMapID: number + flags: UIMapFlag + } + + interface UiMapGroupMemberInfo { + mapID: number + relativeHeightIndex: number + name: string + } + + interface UiMapHighlightInfo { + fileDataID: number + atlasID: string + texturePercentageX: number + texturePercentageY: number + textureX: number + textureY: number + scrollChildX: number + scrollChildY: number + } + + interface UiMapLayerInfo { + layerWidth: number + layerHeight: number + tileWidth: number + tileHeight: number + minScale: number + maxScale: number + additionalZoomSteps: number + } + + interface UiMapExplorationHitRect { + top: number + bottom: number + left: number + right: number + } + + interface UiMapExplorationInfo { + textureWidth: number + textureHeight: number + offsetX: number + offsetY: number + isShownByMouseOver: boolean + isDrawOnTopLayer: boolean + fileDataIDs: number[] + hitRect: UiMapExplorationHitRect + } + + interface MinimapScriptTrackingFilter { + spellID: number | undefined + filterID: MinimapTrackingFilter | undefined + } + + interface MinimapScriptTrackingInfo { + name: string + texture: number + active: boolean + type: string + subType: number + spellID: number | undefined + } + + interface MirrorTimerInfo { + name: string + startValue: number + maxValue: number + scale: number + paused: number + label: string + spellID: number + } + + interface MountCreatureDisplayInfo { + creatureDisplayID: number + isVisible: boolean + } + + interface MountInfo { + name: string + spellID: number + icon: number + isActive: boolean + isUsable: boolean + sourceType: number + isFavorite: boolean + isFactionSpecific: boolean + faction: number | undefined + shouldHideOnChar: boolean + isCollected: boolean + mountID: number + isSteadyFlight: boolean + } + + interface MountInfoExtra { + creatureDisplayInfoID: number | undefined + description: string + source: string + isSelfMount: boolean + mountTypeID: number + uiModelSceneID: number + animID: number + spellVisualKitID: number + disablePlayerMountPreview: boolean + } + + interface MapSeasonBestInfo { + durationSec: number + level: number + completionDate: MythicPlusDate + affixIDs: number[] + members: undefined[] + dungeonScore: number + } + + interface MythicPlusDate { + year: number + month: number + day: number + hour: number + minute: number + } + + interface MythicPlusKeystoneAffix { + id: number + seasonID: number + } + + interface MythicPlusMember { + name: string | undefined + specID: number + classID: number + } + + interface MythicPlusRunInfo { + mapChallengeModeID: number + level: number + thisWeek: boolean + completed: boolean + runScore: number + } + + interface MythicPlusAffixScoreInfo { + name: string + score: number + level: number + durationSec: number + overTime: boolean + } + + interface MythicPlusRatingLinkInfo { + mapChallengeModeID: number + level: number + completedInTime: number + dungeonScore: number + name: string + } + + interface InspectGuildInfo { + achievementPoints: number + numMembers: number + guildName: string + realmName: string + } + + interface InspectPVPData { + rating: number + gamesWon: number + gamesPlayed: number + roundsWon: number + roundsPlayed: number + } + + interface PartyPoseInfo { + partyPoseID: number + mapID: number + widgetSetID: number | undefined + victoryModelSceneID: number + defeatModelSceneID: number + victorySoundKitID: number + defeatSoundKitID: number + uiTextureKit: string | undefined + titleText: string | undefined + extraButtonText: string | undefined + flags: PartyPoseFlags + } + + interface PerksActivitiesInfo { + activePerksMonth: number + displayMonthName: string + secondsRemaining: number + activities: undefined[] + thresholds: undefined[] + } + + interface PerksActivitiesPending { + pendingIDs: number[] + } + + interface PerksActivitiesTracked { + trackedIDs: number[] + } + + interface PerksActivityCondition { + isMet: boolean + text: string + uiPriority: number + } + + interface PerksActivityCriteria { + criteriaID: number + requiredValue: number + } + + interface PerksActivityInfo { + ID: number + activityName: string + description: string + thresholdContributionAmount: number + completed: boolean + inProgress: boolean + tracked: boolean + supersedes: number + uiPriority: number + areAllConditionsMet: boolean + conditions: undefined[] + eventName: string | undefined + eventStartTime: number | undefined + eventEndTime: number | undefined + requirementsList: undefined[] + criteriaList: undefined[] + tagNames: string[] + } + + interface PerksActivityRequirement { + completed: boolean + requirementText: string + } + + interface PerksActivityTags { + tagName: string[] + } + + interface PerksActivityThresholdInfo { + thresholdOrderIndex: number + currencyAwardAmount: number + requiredContributionAmount: number + pendingReward: boolean + itemReward: number | undefined + } + + interface ModelSceneActorData { + actorID: number | undefined + scriptTag: string | undefined + posX: number | undefined + posY: number | undefined + posZ: number | undefined + yaw: number | undefined + pitch: number | undefined + roll: number | undefined + normalizedScale: number | undefined + } + + interface ModelSceneCameraData { + cameraID: number | undefined + scriptTag: string | undefined + targetX: number | undefined + targetY: number | undefined + targetZ: number | undefined + yaw: number | undefined + pitch: number | undefined + roll: number | undefined + defaultZoom: number | undefined + zoomMin: number | undefined + zoomMax: number | undefined + } + + interface PerksProgramItemDisplayInfo { + overrideModelSceneID: number | undefined + creatureDisplayInfoID: number | undefined + mainHandItemModifiedAppearanceID: number | undefined + offHandItemModifiedAppearanceID: number | undefined + } + + interface PerksProgramPendingChestRewards { + rewardTypeID: number + perksVendorItemID: number | undefined + rewardAmount: number + monthRewarded: string | undefined + activityMonthID: number + thresholdOrderIndex: number + } + + interface PerksVendorCategoryInfo { + ID: number + displayName: string + defaultUIModelSceneID: number + } + + interface PerksVendorItemInfo { + name: string + perksVendorCategoryID: number + description: string + timeRemaining: number + purchased: boolean + refundable: boolean + subItemsLoaded: boolean + isPurchasePending: boolean + doesNotExpire: boolean + price: number + perksVendorItemID: number + itemID: number + iconTexture: string + mountID: number + mountTypeName: string + speciesID: number + transmogSetID: number + itemModifiedAppearanceID: number + subItems: undefined[] + uiGroupInfo: PerksVendorItemUIGroupInfo | undefined + } + + interface PerksVendorItemUIGroupInfo { + ID: number + name: string + priority: number + } + + interface PerksVendorSubItemInfo { + name: string + itemID: number + itemAppearanceID: number + invType: string + quality: ItemQuality + } + + interface PetTamerMapInfo { + areaPoiID: number + position: Vector2DMixin + name: string + atlasName: string | undefined + textureIndex: number | undefined + } + + interface PetAbilityLevelInfo { + abilityID: number + level: number + } + + interface PetJournalPetInfo { + speciesID: number + customName: string | undefined + petLevel: number + xp: number + maxXP: number + displayID: number + isFavorite: boolean + icon: number + petType: number + creatureID: number + name: string | undefined + sourceText: string + description: string + isWild: boolean + canBattle: boolean + tradable: boolean + unique: boolean + obtainable: boolean + } + + interface ContextualWorldPingResult { + contextualPingType: PingSubjectType | undefined + result: PingResult + } + + interface PingCooldownInfo { + startTimeMs: number + endTimeMs: number + } + + interface PingTypeInfo { + orderIndex: number + type: PingSubjectType + uiTextureKitID: string + } + + interface PlayerChoiceInfo { + objectGUID: string + choiceID: number + questionText: string + pendingChoiceText: string + uiTextureKit: string + hideWarboardHeader: boolean + keepOpenAfterChoice: boolean + options: undefined[] + soundKitID: number | undefined + closeUISoundKitID: number | undefined + } + + interface PlayerChoiceOptionButtonInfo { + id: number + text: string + disabled: boolean + confirmation: string | undefined + tooltip: string | undefined + rewardQuestID: number | undefined + soundKitID: number | undefined + } + + interface PlayerChoiceOptionInfo { + id: number + description: string + header: string + choiceArtID: number + desaturatedArt: boolean + disabledOption: boolean + hasRewards: boolean + rewardInfo: PlayerChoiceOptionRewardInfo + uiTextureKit: string + maxStacks: number + buttons: undefined[] + widgetSetID: number | undefined + spellID: number | undefined + rarity: PlayerChoiceRarity | undefined + rarityColor: ColorMixin | undefined + typeArtID: number | undefined + headerIconAtlasElement: string | undefined + subHeader: string | undefined + consolidateWidgets: boolean + } + + interface PlayerChoiceOptionRewardInfo { + currencyRewards: undefined[] + itemRewards: undefined[] + repRewards: undefined[] + } + + interface PlayerChoiceRewardCurrencyInfo { + currencyId: number + name: string + currencyTexture: number + quantity: number + isCurrencyContainer: boolean + } + + interface PlayerChoiceRewardItemInfo { + itemId: number + name: string + quantity: number + } + + interface PlayerChoiceRewardReputationInfo { + factionId: number + quantity: number + } + + interface MythicPlusRatingMapSummary { + challengeModeID: number + mapScore: number + bestRunLevel: number + bestRunDurationMS: number + finishedSuccess: boolean + } + + interface MythicPlusRatingSummary { + currentSeasonScore: number + runs: undefined[] + } + + interface CharacterAlternateFormData { + raceID: number + name: string + fileName: string + createScreenIconAtlas: string + } + + interface PlayerInfoCharacterData { + name: string + fileName: string + alternateFormRaceData: CharacterAlternateFormData | undefined + createScreenIconAtlas: string + sex: number + } + + interface ProfTabHighlight { + description: string + } + + interface ProfTabInfo { + rootNodeID: number + name: string + description: string + rootIconID: number + highlights: undefined[] + } + + interface SpecPerkInfo { + perkID: number + isMajorPerk: boolean + } + + interface SpecializationCurrencyInfo { + numAvailable: number + currencyName: string + } + + interface SpecializationTabInfo { + enabled: boolean + errorReason: string + } + + interface BattlefieldCurrencyReward { + id: number + quantity: number + } + + interface BattlefieldItemReward { + id: number + name: string + texture: number + quantity: number + } + + interface BattlefieldRewards { + honor: number + experience: number + itemRewards: undefined[] | undefined + currencyRewards: undefined[] | undefined + roleShortageBonus: RoleShortageReward | undefined + } + + interface BattlefieldVehicleInfo { + x: number + y: number + name: string + isOccupied: boolean + atlas: string + textureWidth: number + textureHeight: number + facing: number + isPlayer: boolean + isAlive: boolean + shouldDrawBelowPlayerBlips: boolean + } + + interface BattlemasterListInfo { + name: string + instanceType: number + minPlayers: number + maxPlayers: number + icon: number + longDescription: string + shortDescription: string + } + + interface HonorRewardInfo { + honorLevelName: string + badgeFileDataID: number + achievementRewardedID: number + } + + interface LevelUpBattlegroundInfo { + id: number + icon: number + name: string + isEpic: boolean + } + + interface MatchPVPStatColumn { + pvpStatID: number + columnHeaderID: number + orderIndex: number + name: string + tooltipTitle: string + tooltip: string + } + + interface PvpBrawlInfo { + brawlID: number + name: string + shortDescription: string + longDescription: string + canQueue: boolean + minLevel: number + maxLevel: number + groupsAllowed: boolean + timeLeftUntilNextChange: number | undefined + brawlType: BrawlType + mapNames: string[] + includesAllArenas: boolean + minItemLevel: number + } + + interface PVPPersonalRatedInfo { + personalRating: number + bestSeasonRating: number + bestWeeklyRating: number + seasonPlayed: number + seasonWon: number + weeklyPlayed: number + weeklyWon: number + lastWeeksBestRating: number + hasWonBracketToday: boolean + tier: number + ranking: number | undefined + roundsSeasonPlayed: number + roundsSeasonWon: number + roundsWeeklyPlayed: number + roundsWeeklyWon: number + } + + interface PVPPostMatchCurrencyReward { + currencyType: number + quantityChanged: number + } + + interface PVPPostMatchItemReward { + type: string + link: string + quantity: number + specID: number + sex: number + isUpgraded: boolean + } + + interface PvpReadyCheckInfo { + roles: undefined[] + numPlayersAccepted: number + numPlayersDeclined: number + totalNumPlayers: number + } + + interface PvpRoleQueueInfo { + role: string + totalRole: number + totalAccepted: number + totalDeclined: number + } + + interface PvpScalingData { + scalingDataID: number + specializationID: number + name: string + value: number + } + + interface PVPScoreInfo { + name: string + guid: string + killingBlows: number + honorableKills: number + deaths: number + honorGained: number + faction: number + raceName: string + className: string + classToken: string + damageDone: number + healingDone: number + rating: number + ratingChange: number + prematchMMR: number + mmrChange: number + postmatchMMR: number + talentSpec: string + honorLevel: number + roleAssigned: number + stats: undefined[] + } + + interface PVPStatInfo { + pvpStatID: number + pvpStatValue: number + orderIndex: number + name: string + tooltip: string + iconName: string + } + + interface PVPTeamInfo { + name: string + size: number + rating: number + ratingNew: number + ratingMMR: number + } + + interface PvpTierInfo { + name: string + descendRating: number + ascendRating: number + descendTier: number + ascendTier: number + pvpTierEnum: number + tierIconID: number + } + + interface RandomBGInfo { + canQueue: boolean + bgID: number + hasRandomWinToday: boolean + minLevel: number + maxLevel: number + } + + interface RatedBGBlitzSpecStats { + weeklyMostPlayedSpecID: number + weeklyMostPlayedSpecGames: number + seasonMostPlayedSpecID: number + seasonMostPlayedSpecGames: number + } + + interface RatedMatchDeserterPenalty { + personalRatingChange: number + queuePenaltySpellID: number + queuePenaltyDuration: number + } + + interface RatedSoloShuffleSpecStats { + weeklyMostPlayedSpecID: number + weeklyMostPlayedSpecRounds: number + seasonMostPlayedSpecID: number + seasonMostPlayedSpecRounds: number + } + + interface RoleShortageReward { + validRoles: string[] + rewardSpellID: number + rewardItemID: number + } + + interface QuestLineInfo { + questLineName: string + questName: string + questLineID: number + questID: number + x: number + y: number + isHidden: boolean + isLegendary: boolean + isLocalStory: boolean + isDaily: boolean + isCampaign: boolean + isImportant: boolean + isAccountCompleted: boolean + isCombatAllyQuest: boolean + isMeta: boolean + inProgress: boolean + isQuestStart: boolean + floorLocation: QuestLineFloorLocation + } + + interface QuestInfo { + title: string + questLogIndex: number + questID: number + campaignID: number | undefined + level: number + difficultyLevel: number + suggestedGroup: number + frequency: QuestFrequency | undefined + isHeader: boolean + useMinimalHeader: boolean + sortAsNormalQuest: boolean + isCollapsed: boolean + startEvent: boolean + isTask: boolean + isBounty: boolean + isStory: boolean + isScaling: boolean + isOnMap: boolean + hasLocalPOI: boolean + isHidden: boolean + isAutoComplete: boolean + overridesSortOrder: boolean + readyForTranslation: boolean + isInternalOnly: boolean + isAbandonOnDisable: boolean + headerSortKey: number | undefined + questClassification: QuestClassification + } + + interface QuestObjectiveInfo { + text: string + type: string + finished: boolean + numFulfilled: number + numRequired: number + } + + interface QuestOnMapInfo { + questID: number + x: number + y: number + type: number + isMapIndicatorQuest: boolean + } + + interface QuestTagInfo { + tagName: string + tagID: number + worldQuestType: number | undefined + quality: WorldQuestQuality | undefined + tradeskillLineID: number | undefined + isElite: boolean | undefined + displayExpiration: boolean | undefined + } + + interface QuestTheme { + background: string + seal: string + signature: string + poiIcon: string + } + + interface QuestRequiredCurrencyInfo { + texture: number + name: string + currencyID: number + quality: number + requiredAmount: number + } + + interface QuestRewardCurrencyInfo { + texture: number + name: string + currencyID: number + quality: number + baseRewardAmount: number + bonusRewardAmount: number + totalRewardAmount: number + questRewardContextFlags: QuestRewardContextFlags | undefined + } + + interface QuestRewardReputationInfo { + factionID: number + rewardAmount: number + } + + interface QuestRewardSpellInfo { + texture: number + name: string + garrFollowerID: number | undefined + isTradeskill: boolean + isSpellLearned: boolean + hideSpellLearnText: boolean + isBoostSpell: boolean + genericUnlock: boolean + type: QuestCompleteSpellType + } + + interface QuestSessionPlayerDetails { + name: string + guid: string + } + + interface TaskPOIData { + questId: number + x: number + y: number + inProgress: boolean + numObjectives: number + mapID: number + isQuestStart: boolean + isDaily: boolean + isCombatAllyQuest: boolean + isMeta: boolean + childDepth: number | undefined + } + + interface QueueSpecificInfo { + queueType: string + lfgIDs: number[] | undefined + lfgListID: number | undefined + activityID: number | undefined + battlefieldType: string | undefined + listID: number | undefined + mapName: string | undefined + rated: boolean | undefined + isBrawl: boolean | undefined + teamSize: number | undefined + } + + interface RafAppearanceInfo { + appearanceID: number + } + + interface RafAppearanceSetInfo { + setID: number + setName: string + appearanceIDs: number[] + } + + interface RafIllusionInfo { + spellItemEnchantmentID: number + } + + interface RafInfo { + versions: undefined[] + recruitmentInfo: RafRecruitmentinfo | undefined + recruits: undefined[] + claimInProgress: boolean + } + + interface RafMonthCount { + lifetimeMonths: number + spentMonths: number + availableMonths: number + } + + interface RafMountInfo { + spellID: number + mountID: number + } + + interface RafPetInfo { + creatureID: number + speciesID: number + displayID: number + speciesName: string + description: string + } + + interface RafRecruit { + bnetAccountID: number + wowAccountGUID: string + battleTag: string + monthsRemaining: number + subStatus: RafRecruitSubStatus + acceptanceID: string + versionRecruited: RecruitAFriendRewardsVersion + activities: undefined[] + } + + interface RafRecruitActivity { + activityID: number + rewardQuestID: number + state: RafRecruitActivityState + } + + interface RafRecruitmentinfo { + recruitmentCode: string + recruitmentURL: string + expireTime: number + remainingTimeSeconds: number + totalUses: number + remainingUses: number + sourceRealm: string + sourceFaction: string + } + + interface RafReward { + rewardID: number + rafVersion: RecruitAFriendRewardsVersion + itemID: number + rewardType: RafRewardType + petInfo: RafPetInfo | undefined + mountInfo: RafMountInfo | undefined + appearanceInfo: RafAppearanceInfo | undefined + titleInfo: RafTitleInfo | undefined + appearanceSetInfo: RafAppearanceSetInfo | undefined + illusionInfo: RafIllusionInfo | undefined + canClaim: boolean + claimed: boolean + canAfford: boolean + repeatable: boolean + repeatableClaimCount: number + monthsRequired: number + monthCost: number + availableInMonths: number + iconID: number + } + + interface RafSystemInfo { + maxRecruits: number + maxRecruitMonths: number + maxRecruitmentUses: number + daysInCycle: number + } + + interface RafTitleInfo { + titleMaskID: number + } + + interface RafVersionInfo { + rafVersion: RecruitAFriendRewardsVersion + monthCount: RafMonthCount + rewards: undefined[] + nextReward: RafReward | undefined + numAffordableRewards: number + numRecruits: number + } + + interface FactionData { + factionID: number + name: string + description: string + reaction: number + currentReactionThreshold: number + nextReactionThreshold: number + currentStanding: number + atWarWith: boolean + canToggleAtWar: boolean + isChild: boolean + isHeader: boolean + isHeaderWithRep: boolean + isCollapsed: boolean + isWatched: boolean + hasBonusRepGain: boolean + canSetInactive: boolean + isAccountWide: boolean + } + + interface DigSiteMapInfo { + researchSiteID: number + position: Vector2DMixin + name: string + poiBlobID: number + textureIndex: number + } + + interface ScenarioCriteriaInfo { + description: string + criteriaType: number + completed: boolean + quantity: number + totalQuantity: number + flags: number + assetID: number + criteriaID: number + duration: number + elapsed: number + failed: boolean + isWeightedProgress: boolean + isFormatted: boolean + } + + interface ScenarioInformation { + name: string + currentStage: number + numStages: number + flags: number + isComplete: boolean + xp: number + money: number + type: number + area: string + uiTextureKit: string + scenarioID: number + } + + interface ScenarioStepInfo { + title: string + description: string + numCriteria: number + stepFailed: boolean + isBonusStep: boolean + isForCurrentStepOnly: boolean + shouldShowBonusObjective: boolean + spells: undefined[] + weightedProgress: number | undefined + rewardQuestID: number + widgetSetID: number | undefined + stepID: number + } + + interface ScenarioStepSpellInfo { + spellID: number + name: string + icon: number + } + + interface ScriptedAnimationEffect { + id: number + visual: number + visualScale: number + duration: number + trajectory: ScriptedAnimationTrajectory + yawRadians: number + pitchRadians: number + rollRadians: number + offsetX: number + offsetY: number + offsetZ: number + animation: number + animationSpeed: number + alpha: number + useTargetAsSource: boolean + startBehavior: ScriptedAnimationBehavior | undefined + startSoundKitID: number | undefined + finishEffectID: number | undefined + finishBehavior: ScriptedAnimationBehavior | undefined + finishSoundKitID: number | undefined + startAlphaFade: number | undefined + startAlphaFadeDuration: number | undefined + endAlphaFade: number | undefined + endAlphaFadeDuration: number | undefined + animationStartOffset: number | undefined + loopingSoundKitID: number | undefined + particleOverrideScale: number | undefined + } + + interface ModelLight { + omnidirectional: boolean + point: Vector3DMixin + ambientIntensity: number + ambientColor: ColorMixin | undefined + diffuseIntensity: number + diffuseColor: ColorMixin | undefined + } + + interface TraitCondInfo { + condID: number + ranksGranted: number | undefined + isAlwaysMet: boolean + isMet: boolean + isGate: boolean + questID: number | undefined + achievementID: number | undefined + specSetID: number | undefined + playerLevel: number | undefined + traitCurrencyID: number | undefined + spentAmountRequired: number | undefined + tooltipFormat: string | undefined + traitCondAccountElementID: number | undefined + } + + interface TraitConfigInfo { + ID: number + type: TraitConfigType + name: string + treeIDs: number[] + usesSharedActionBars: boolean + } + + interface TraitCurrencyCost { + ID: number + amount: number + } + + interface TraitDefinitionInfo { + spellID: number | undefined + overrideName: string | undefined + overrideSubtext: string | undefined + overrideDescription: string | undefined + overrideIcon: number | undefined + overriddenSpellID: number | undefined + subType: TraitDefinitionSubType | undefined + } + + interface TraitEntryInfo { + definitionID: number | undefined + subTreeID: number | undefined + type: TraitNodeEntryType + maxRanks: number + isAvailable: boolean + conditionIDs: number[] + } + + interface TraitEntryRankInfo { + entryID: number + rank: number + } + + interface TraitGateInfo { + topLeftNodeID: number + conditionID: number + } + + interface TraitNodeInfo { + ID: number + posX: number + posY: number + flags: number + entryIDs: number[] + entryIDsWithCommittedRanks: number[] + canPurchaseRank: boolean + canRefundRank: boolean + isAvailable: boolean + isVisible: boolean + isDisplayError: boolean + ranksPurchased: number + activeRank: number + currentRank: number + activeEntry: TraitEntryRankInfo | undefined + nextEntry: TraitEntryRankInfo | undefined + maxRanks: number + type: TraitNodeType + visibleEdges: undefined[] + meetsEdgeRequirements: boolean + groupIDs: number[] + conditionIDs: number[] + isCascadeRepurchasable: boolean + cascadeRepurchaseEntryID: number | undefined + subTreeID: number | undefined + subTreeActive: boolean | undefined + } + + interface TraitNodeInfoPartial { + canPurchaseRank: boolean | undefined + canRefundRank: boolean | undefined + isAvailable: boolean | undefined + isVisible: boolean | undefined + ranksPurchased: number | undefined + activeRank: number | undefined + currentRank: number | undefined + meetsEdgeRequirements: boolean | undefined + isCascadeRepurchasable: boolean | undefined + activeEntryID: number | undefined + subTreeActive: boolean | undefined + } + + interface TraitOutEdgeInfo { + targetNode: number + type: number + visualStyle: number + isActive: boolean + } + + interface TraitSubTreeInfo { + ID: number + name: string | undefined + description: string | undefined + iconElementID: string | undefined + traitCurrencyID: number | undefined + isActive: boolean + subTreeSelectionNodeIDs: number[] + posX: number + posY: number + } + + interface TraitTreeInfo { + ID: number + gates: undefined[] + hideSingleRankNumbers: boolean + } + + interface TreeCurrencyInfo { + traitCurrencyID: number + quantity: number + maxQuantity: number | undefined + spent: number + } + + interface HTMLContentNode { + text: string + type: unknown + align: string + } + + interface SocialQueueConfig { + TOASTS_DISABLED: boolean + TOAST_DURATION: number + DELAY_DURATION: number + QUEUE_MULTIPLIER: number + PLAYER_MULTIPLIER: number + PLAYER_FRIEND_VALUE: number + PLAYER_GUILD_VALUE: number + THROTTLE_INITIAL_THRESHOLD: number + THROTTLE_DECAY_TIME: number + THROTTLE_PRIORITY_SPIKE: number + THROTTLE_MIN_THRESHOLD: number + THROTTLE_PVP_PRIORITY_NORMAL: number + THROTTLE_PVP_PRIORITY_LOW: number + THROTTLE_PVP_HONOR_THRESHOLD: number + THROTTLE_LFGLIST_PRIORITY_DEFAULT: number + THROTTLE_LFGLIST_PRIORITY_ABOVE: number + THROTTLE_LFGLIST_PRIORITY_BELOW: number + THROTTLE_LFGLIST_ILVL_SCALING_ABOVE: number + THROTTLE_LFGLIST_ILVL_SCALING_BELOW: number + THROTTLE_RF_PRIORITY_ABOVE: number + THROTTLE_RF_ILVL_SCALING_ABOVE: number + THROTTLE_DF_MAX_ITEM_LEVEL: number + THROTTLE_DF_BEST_PRIORITY: number + } + + interface SocialQueueGroupInfo { + canJoin: boolean + numQueues: number + needTank: boolean + needHealer: boolean + needDamage: boolean + isSoloQueueParty: boolean + questSessionActive: boolean + leaderGUID: string + } + + interface SocialQueueGroupQueueInfo { + clientID: number + eligible: boolean + needTank: boolean + needHealer: boolean + needDamage: boolean + isAutoAccept: boolean + queueData: QueueSpecificInfo + } + + interface SocialQueuePlayerInfo { + guid: string + clubId: string | undefined + } + + interface ConduitCollectionData { + conduitID: number + conduitRank: number + conduitItemLevel: number + conduitType: SoulbindConduitType + conduitSpecSetID: number + conduitSpecIDs: number[] + conduitSpecName: string | undefined + covenantID: number | undefined + conduitItemID: number + } + + interface SoulbindConduitData { + conduitID: number + conduitRank: number + } + + interface SoulbindData { + ID: number + covenantID: number + name: string + description: string + textureKit: string + unlocked: boolean + cvarIndex: number + tree: SoulbindTree + modelSceneData: SoulbindModelSceneData + activationSoundKitID: number + playerConditionReason: string | undefined + } + + interface SoulbindModelSceneData { + creatureDisplayInfoID: number + modelSceneActorID: number + } + + interface SoulbindNode { + ID: number + row: number + column: number + icon: number + spellID: number + playerConditionReason: string | undefined + conduitID: number + conduitRank: number + state: SoulbindNodeState + conduitType: SoulbindConduitType | undefined + parentNodeIDs: number[] + failureRenownRequirement: number | undefined + socketEnhanced: boolean | undefined + } + + interface SoulbindTree { + editable: boolean + nodes: undefined[] + } + + interface PvpTalentInfo { + talentID: number + name: string + icon: number + selected: boolean + available: boolean + spellID: number + unlocked: boolean + known: boolean + grantedByAura: boolean + dependenciesUnmet: boolean + dependenciesUnmetReason: string | undefined + } + + interface PvpTalentSlotInfo { + enabled: boolean + level: number + selectedTalentID: number | undefined + availableTalentIDs: number[] + } + + interface SpecializationInfoResult { + id: number + name: string + description: string + icon: number + role: string + recommended: boolean + allowedForBoost: boolean + masterySpell1: number | undefined + masterySpell2: number | undefined + } + + interface SpellBookItemInfo { + actionID: number + spellID: number | undefined + itemType: SpellBookItemType + name: string + subName: string + iconID: number + isPassive: boolean + isOffSpec: boolean + skillLineIndex: number | undefined + } + + interface SpellBookSkillLineInfo { + name: string + iconID: number + itemIndexOffset: number + numSpellBookItems: number + isGuild: boolean + shouldHide: boolean + specID: number | undefined + offSpecID: number | undefined + } + + interface DeadlyDebuffInfo { + criticalTimeRemainingMs: number | undefined + criticalStacks: number | undefined + priority: number + warningText: string + soundKitID: number | undefined + } + + interface SpellInfo { + name: string + iconID: number + originalIconID: number + castTime: number + minRange: number + maxRange: number + spellID: number + } + + interface SpellChargeInfo { + currentCharges: number + maxCharges: number + cooldownStartTime: number + cooldownDuration: number + chargeModRate: number + } + + interface SpellCooldownInfo { + startTime: number + duration: number + isEnabled: boolean + modRate: number + } + + interface SpellPowerCostInfo { + type: PowerType + name: string + cost: number + minCost: number + costPercent: number + costPerSec: number + requiredAuraID: number + hasRequiredAura: boolean + } + + interface SplashScreenInfo { + textureKit: string + minDisplayCharLevel: number + minQuestDisplayLevel: number + soundKitID: number + allianceQuestID: number | undefined + hordeQuestID: number | undefined + header: string + topLeftFeatureTitle: string + topLeftFeatureDesc: string + bottomLeftFeatureTitle: string + bottomLeftFeatureDesc: string + rightFeatureTitle: string + rightFeatureDesc: string + shouldShowQuest: boolean + screenType: SplashScreenType + gameMenuRequest: boolean + } + + interface PetInfo { + slotID: number + icon: number + name: string + level: number + familyName: string + specialization: string + type: string + abilities: number[] + displayID: number + isFavorite: boolean + isExotic: boolean + uiModelSceneID: number + petNumber: number + creatureID: number + } + + interface MapTaxiNodeInfo { + nodeID: number + position: Vector2DMixin + name: string + atlasName: string + faction: FlightPathFaction + textureKit: string + isUndiscovered: boolean + } + + interface TaxiNodeInfo { + nodeID: number + position: Vector2DMixin + name: string + state: FlightPathState + slotIndex: number + textureKit: string + useSpecialIcon: boolean + specialIconCostString: string | undefined + isMapLayerTransition: boolean + } + + interface AtlasInfo { + width: number + height: number + rawSize: Vector2DMixin + leftTexCoord: number + rightTexCoord: number + topTexCoord: number + bottomTexCoord: number + tilesHorizontally: boolean + tilesVertically: boolean + file: number | undefined + filename: string | undefined + sliceData: UITextureSliceData | undefined + } + + interface CalendarTime { + monthDay: number + month: number + weekday: number + year: number + hour: number + minute: number + } + + interface TooltipItemComparisonInfo { + method: TooltipComparisonMethod + item: TooltipComparisonItem + additionalItems: TooltipComparisonItem[] + } + + interface TooltipComparisonLine { + text: string + color: ColorMixin + } + + interface TooltipDataArg { + field: string + stringVal: string | undefined + intVal: number | undefined + floatVal: number | undefined + boolVal: boolean | undefined + colorVal: ColorMixin | undefined + guidVal: string | undefined + } + + interface TotemInfoScript { + haveTotem: boolean + totemName: string + startTime: number + duration: number + icon: number + } + + interface CraftingCurrencyResultData { + currencyID: number + quantity: number + operationID: number + firstCraftReward: boolean + showCurrencyText: boolean + } + + interface CraftingItemResultData { + resourcesReturned: undefined[] | undefined + craftingQuality: number | undefined + qualityProgress: number + itemID: number + itemGUID: string + quantity: number + hyperlink: string + isCrit: boolean + critBonusSkill: number + recraftable: boolean + bonusCraft: boolean + multicraft: number + operationID: number + firstCraftReward: boolean + isEnchant: boolean + hasIngenuityProc: boolean + concentrationCurrencyID: number + concentrationSpent: number + ingenuityRefund: number + } + + interface CraftingItemSlotModification { + dataSlotIndex: number + itemID: number + } + + interface CraftingOperationBonusStatInfo { + bonusStatName: string + bonusStatValue: number + ratingDescription: string + ratingPct: number + bonusRatingPct: number + } + + interface CraftingOperationInfo { + recipeID: number + baseDifficulty: number + bonusDifficulty: number + baseSkill: number + bonusSkill: number + isQualityCraft: boolean + quality: number + craftingQuality: number + craftingQualityID: number + craftingDataID: number + lowerSkillThreshold: number + upperSkillTreshold: number + guaranteedCraftingQualityID: number + bonusStats: undefined[] + concentrationCurrencyID: number + concentrationCost: number + ingenuityRefund: number + } + + interface CraftingReagent { + itemID: number | undefined + currencyID: number | undefined + } + + interface CraftingReagentInfo { + itemID: number + dataSlotIndex: number + quantity: number + } + + interface CraftingReagentSlotInfo { + mcrSlotID: number + requiredSkillRank: number + slotText: string | undefined + } + + interface CraftingReagentSlotSchematic { + reagents: undefined[] + reagentType: CraftingReagentType + quantityRequired: number + slotInfo: CraftingReagentSlotInfo | undefined + dataSlotType: TradeskillSlotDataType + dataSlotIndex: number + slotIndex: number + orderSource: CraftingOrderReagentSource | undefined + required: boolean + } + + interface CraftingRecipeOutputInfo { + icon: number + hyperlink: string | undefined + itemID: number | undefined + } + + interface CraftingRecipeRequirement { + name: string + met: boolean + type: RecipeRequirementType + } + + interface CraftingRecipeSchematic { + recipeID: number + icon: number + quantityMin: number + quantityMax: number + name: string + recipeType: TradeskillRecipeType + productQuality: number | undefined + outputItemID: number | undefined + reagentSlotSchematics: undefined[] + isRecraft: boolean + hasCraftingOperationInfo: boolean + } + + interface CraftingRecipeSkillLineInfo { + professionSkillLineID: number + expansionSkillLineID: number + } + + interface CraftingResourceReturnInfo { + itemID: number + quantity: number + } + + interface CraftingTargetItem { + itemID: number + itemGUID: string + hyperlink: string | undefined + quantity: number + } + + interface GatheringOperationBonusStatInfo { + bonusStatName: string + bonusStatValue: number + ratingDescription: string + ratingPct: number + bonusRatingPct: number + } + + interface GatheringOperationInfo { + spellID: number + maxDifficulty: number + baseSkill: number + bonusSkill: number + bonusStats: undefined[] + } + + interface ProfessionInfo { + profession: Profession | undefined + professionID: number + sourceCounter: number + professionName: string + expansionName: string + skillLevel: number + maxSkillLevel: number + skillModifier: number + isPrimaryProfession: boolean + parentProfessionID: number | undefined + parentProfessionName: string | undefined + } + + interface RegularReagentInfo { + itemID: number + quantity: number + } + + interface TradeSkillRecipeInfo { + categoryID: number + name: string + relativeDifficulty: TradeskillRelativeDifficulty | undefined + maxTrivialLevel: number + itemLevel: number + alternateVerb: string | undefined + numSkillUps: number + canSkillUp: boolean + firstCraft: boolean + sourceType: number | undefined + learned: boolean + disabled: boolean + favorite: boolean + supportsQualities: boolean + craftable: boolean + disabledReason: string | undefined + recipeID: number + skillLineAbilityID: number + previousRecipeID: number | undefined + nextRecipeID: number | undefined + icon: number | undefined + hyperlink: string | undefined + currentRecipeExperience: number | undefined + nextLevelRecipeExperience: number | undefined + unlockedRecipeLevel: number | undefined + earnedExperience: number | undefined + supportsCraftingStats: boolean + hasSingleItemOutput: boolean + qualityItemIDs: number[] | undefined + qualityIlvlBonuses: number[] | undefined + alwaysUsesLowestQuality: boolean + maxQuality: number | undefined + qualityIDs: number[] | undefined + canCreateMultiple: boolean + abilityVerb: string | undefined + abilityAllVerb: string | undefined + isRecraft: boolean + isDummyRecipe: boolean + isGatheringRecipe: boolean + isEnchantingRecipe: boolean + isSalvageRecipe: boolean + } + + interface TransmogApplyWarningInfo { + itemLink: string + text: string + } + + interface TransmogSetItemInfo { + itemID: number + itemModifiedAppearanceID: number + invSlot: number + invType: string + } + + interface TransmogSlotInfo { + isTransmogrified: boolean + hasPending: boolean + isPendingCollected: boolean + canTransmogrify: boolean + cannotTransmogrifyReason: number + hasUndo: boolean + isHideVisual: boolean + texture: number | undefined + } + + interface TransmogSlotVisualInfo { + baseSourceID: number + baseVisualID: number + appliedSourceID: number + appliedVisualID: number + pendingSourceID: number + pendingVisualID: number + hasUndo: boolean + isHideVisual: boolean + itemSubclass: number + } + + interface TransmogAppearanceInfoBySourceData { + appearanceID: number + appearanceIsCollected: boolean + sourceIsCollected: boolean + sourceIsCollectedPermanent: boolean + sourceIsCollectedConditional: boolean + meetsTransmogPlayerCondition: boolean + appearanceHasAnyNonLevelRequirements: boolean + appearanceMeetsNonLevelRequirements: boolean + appearanceIsUsable: boolean + appearanceNumSources: number + sourceIsKnown: boolean + canDisplayOnPlayer: boolean + isAnySourceValidForPlayer: boolean + } + + interface TransmogAppearanceJournalEncounterInfo { + instance: string + instanceType: number + tiers: string[] + encounter: string + difficulties: string[] + } + + interface TransmogAppearanceSourceInfoData { + category: TransmogCollectionType + itemAppearanceID: number + canHaveIllusion: boolean + icon: number + isCollected: boolean + itemLink: string + transmoglink: string + sourceType: number | undefined + itemSubClass: number + } + + interface TransmogCategoryAppearanceInfo { + visualID: number + isCollected: boolean + isFavorite: boolean + isHideVisual: boolean + canDisplayOnPlayer: boolean + uiOrder: number + exclusions: number + restrictedSlotID: number | undefined + isUsable: boolean + hasRequiredHoliday: boolean + hasActiveRequiredHoliday: boolean + alwaysShowItem: boolean | undefined + } + + interface TransmogCategoryInfo { + name: string + isWeapon: boolean + canHaveIllusions: boolean + canMainHand: boolean + canOffHand: boolean + } + + interface TransmogIllusionInfo { + visualID: number + sourceID: number + icon: number + isCollected: boolean + isUsable: boolean + isHideVisual: boolean + } + + interface TransmogOutfitInfo { + name: string + icon: number + } + + interface TransmogSetInfo { + setID: number + name: string + baseSetID: number | undefined + description: string | undefined + label: string | undefined + expansionID: number + patchID: number + uiOrder: number + classMask: number + hiddenUntilCollected: boolean + requiredFaction: string | undefined + collected: boolean + favorite: boolean + limitedTimeSet: boolean + validForCharacter: boolean + } + + interface TransmogSetPrimaryAppearanceInfo { + appearanceID: number + collected: boolean + } + + interface DBColorExport { + baseTag: string + color: ColorMixin + } + + interface EventToastInfo { + eventToastID: number + title: string + subtitle: string + instructionText: string + iconFileID: number + subIcon: string | undefined + link: string + qualityString: string | undefined + quality: number | undefined + eventType: EventToastEventType + displayType: EventToastDisplayType + uiTextureKit: string + sortOrder: number + time: number | undefined + uiWidgetSetID: number | undefined + extraUiWidgetSetID: number | undefined + titleTooltip: string | undefined + subtitleTooltip: string | undefined + titleTooltipUiWidgetSetID: number | undefined + subtitleTooltipUiWidgetSetID: number | undefined + hideDefaultAtlas: boolean | undefined + showSoundKitID: number | undefined + hideSoundKitID: number | undefined + colorTint: ColorMixin | undefined + flags: number + } + + interface GenericWidgetDisplayFrameInfo { + uiWidgetSetID: number | undefined + uiTextureKit: string | undefined + title: string | undefined + frameWidth: number + frameHeight: number + extraButtonText: string | undefined + closeButtonText: string | undefined + } + + interface UIModelSceneActorDisplayInfo { + animation: number + animationVariation: number + animSpeed: number + animationKitID: number | undefined + spellVisualKitID: number | undefined + alpha: number + scale: number + } + + interface UIModelSceneActorInfo { + modelActorID: number + scriptTag: string + position: Vector3DMixin + yaw: number + pitch: number + roll: number + normalizeScaleAggressiveness: number | undefined + useCenterForOriginX: boolean + useCenterForOriginY: boolean + useCenterForOriginZ: boolean + modelActorDisplayID: number | undefined + } + + interface UIModelSceneCameraInfo { + modelSceneCameraID: number + scriptTag: string + cameraType: string + target: Vector3DMixin + yaw: number + pitch: number + roll: number + zoomDistance: number + minZoomDistance: number + maxZoomDistance: number + zoomedTargetOffset: Vector3DMixin + zoomedYawOffset: number + zoomedPitchOffset: number + zoomedRollOffset: number + flags: ModelSceneSetting + } + + interface ModifiedInstanceInfo { + lfrItemLevel: number | undefined + normalItemLevel: number | undefined + heroicItemLevel: number | undefined + mythicItemLevel: number | undefined + uiTextureKit: string + description: string + } + + interface AnchorBinding { + point: string + relativeTo: unknown + relativePoint: string + offsetX: number + offsetY: number + } + + interface uiBoundsRect { + left: number + bottom: number + width: number + height: number + } + + interface UITextureSliceData { + marginLeft: number + marginTop: number + marginRight: number + marginBottom: number + sliceMode: UITextureSliceMode + } + + interface BulletTextListWidgetVisualizationInfo { + shownState: WidgetShownState + enabledState: WidgetEnabledState + lines: string[] + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface CaptureBarWidgetVisualizationInfo { + shownState: WidgetShownState + barValue: number + barMinValue: number + barMaxValue: number + neutralZoneSize: number + neutralZoneCenter: number + tooltip: string + glowAnimType: WidgetGlowAnimType + fillDirectionType: CaptureBarWidgetFillDirectionType + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface CaptureZoneVisualizationInfo { + shownState: WidgetShownState + mode: ZoneControlMode + leadingEdgeType: ZoneControlLeadingEdgeType + dangerFlashType: ZoneControlDangerFlashType + zoneInfo: ZoneEntry + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface DiscreteProgressStepsVisualizationInfo { + shownState: WidgetShownState + tooltip: string + progressMin: number + progressMax: number + progressVal: number + numSteps: number + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface DoubleIconAndTextWidgetVisualizationInfo { + shownState: WidgetShownState + label: string + leftText: string + leftTooltip: string + rightText: string + rightTooltip: string + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface DoubleStateIconRowVisualizationInfo { + shownState: WidgetShownState + leftIcons: undefined[] + rightIcons: undefined[] + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface DoubleStatusBarWidgetVisualizationInfo { + shownState: WidgetShownState + leftBarMin: number + leftBarMax: number + leftBarValue: number + leftBarTooltip: string + rightBarMin: number + rightBarMax: number + rightBarValue: number + rightBarTooltip: string + barValueTextType: StatusBarValueTextType + text: string + leftBarTooltipLoc: UIWidgetTooltipLocation + rightBarTooltipLoc: UIWidgetTooltipLocation + fillMotionType: UIWidgetMotionType + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface FillUpFramesWidgetVisualizationInfo { + shownState: WidgetShownState + fillMin: number + fillMax: number + fillValue: number + numTotalFrames: number + numFullFrames: number + pulseFillingFrame: boolean + tooltip: string + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface HorizontalCurrenciesWidgetVisualizationInfo { + shownState: WidgetShownState + currencies: undefined[] + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface IconAndTextWidgetVisualizationInfo { + state: IconAndTextWidgetState + text: string + tooltip: string + dynamicTooltip: string + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface IconTextAndBackgroundWidgetVisualizationInfo { + shownState: WidgetShownState + text: string + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface IconTextAndCurrenciesWidgetVisualizationInfo { + shownState: WidgetShownState + enabledState: WidgetEnabledState + descriptionShownState: WidgetShownState + descriptionEnabledState: WidgetEnabledState + text: string + description: string + currencies: undefined[] + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface ItemDisplayVisualizationInfo { + shownState: WidgetShownState + tooltipLoc: UIWidgetTooltipLocation + itemInfo: UIWidgetItemInfo + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface MapPinAnimationWidgetVisualizationInfo { + shownState: WidgetShownState + animType: MapPinAnimationType + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface ScenarioHeaderCurrenciesAndBackgroundWidgetVisualizationInfo { + shownState: WidgetShownState + currencies: undefined[] + headerText: string + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface ScenarioHeaderDelvesWidgetVisualizationInfo { + shownState: WidgetShownState + headerText: string + tooltip: string + tooltipLoc: UIWidgetTooltipLocation + tierText: string + tierTooltipSpellID: number | undefined + currencies: undefined[] + spells: undefined[] + rewardInfo: UIWidgetRewardInfo + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface ScenarioHeaderTimerWidgetVisualizationInfo { + shownState: WidgetShownState + timerMin: number + timerMax: number + timerValue: number + headerText: string + timerTooltip: string + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface SpacerVisualizationInfo { + shownState: WidgetShownState + widgetWidth: number + widgetHeight: number + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface SpellDisplayVisualizationInfo { + spellInfo: UIWidgetSpellInfo + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface StackedResourceTrackerWidgetVisualizationInfo { + shownState: WidgetShownState + resources: undefined[] + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface StatusBarWidgetVisualizationInfo { + shownState: WidgetShownState + barMin: number + barMax: number + barValue: number + text: string + tooltip: string + barValueTextType: StatusBarValueTextType + overrideBarText: string + overrideBarTextShownType: StatusBarOverrideBarTextShownType + colorTint: StatusBarColorTintValue + partitionValues: number[] + tooltipLoc: UIWidgetTooltipLocation + fillMotionType: UIWidgetMotionType + barTextEnabledState: WidgetEnabledState + barTextFontType: UIWidgetFontType + barTextSizeType: UIWidgetTextSizeType + textEnabledState: WidgetEnabledState + textFontType: UIWidgetFontType + textSizeType: UIWidgetTextSizeType + glowAnimType: WidgetGlowAnimType + showGlowState: WidgetShowGlowState + fillMinOpacity: WidgetOpacityType + fillMaxOpacity: WidgetOpacityType + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface TextColumnRowEntryInfo { + text: string + enabledState: WidgetEnabledState + hAlign: WidgetTextHorizontalAlignmentType + columnWidth: number + } + + interface TextColumnRowVisualizationInfo { + shownState: WidgetShownState + entries: undefined[] + textSizeType: UIWidgetTextSizeType + fontType: UIWidgetFontType + tooltip: string + tooltipLoc: UIWidgetTooltipLocation + bottomPadding: number + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface TextWithStateWidgetVisualizationInfo { + shownState: WidgetShownState + enabledState: WidgetEnabledState + text: string + tooltip: string + textSizeType: UIWidgetTextSizeType + fontType: UIWidgetFontType + bottomPadding: number + tooltipLoc: UIWidgetTooltipLocation + hAlign: WidgetTextHorizontalAlignmentType + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface TextWithSubtextWidgetVisualizationInfo { + shownState: WidgetShownState + enabledState: WidgetEnabledState + text: string + widgetWidth: number + tooltip: string + textSizeType: UIWidgetTextSizeType + fontType: UIWidgetFontType + tooltipLoc: UIWidgetTooltipLocation + hAlign: WidgetTextHorizontalAlignmentType + subText: string + subTextSizeType: UIWidgetTextSizeType + subTextFontType: UIWidgetFontType + subTextHAlign: WidgetTextHorizontalAlignmentType + subTextEnabledState: WidgetEnabledState + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + spacing: number + } + + interface TextureAndTextEntryInfo { + text: string + tooltip: string + } + + interface TextureAndTextRowVisualizationInfo { + shownState: WidgetShownState + entries: undefined[] + textSizeType: UIWidgetTextureAndTextSizeType + groupAlignment: UIWidgetHorizontalDirection + fixedWidth: number | undefined + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface TextureAndTextVisualizationInfo { + shownState: WidgetShownState + text: string + tooltip: string + tooltipLoc: UIWidgetTooltipLocation + textSizeType: UIWidgetTextureAndTextSizeType + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface TextureWithAnimationVisualizationInfo { + shownState: WidgetShownState + tooltip: string + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface TugOfWarWidgetVisualizationInfo { + shownState: WidgetShownState + minValue: number + maxValue: number + currentValue: number + neutralZoneCenter: number + neutralZoneSize: number + leftIconInfo: UIWidgetIconInfo + rightIconInfo: UIWidgetIconInfo + glowAnimType: WidgetGlowAnimType + tooltip: string + tooltipLoc: UIWidgetTooltipLocation + neutralFillStyle: TugOfWarStyleValue + markerArrowShownState: TugOfWarMarkerArrowShownState + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface UIWidgetCurrencyInfo { + iconFileID: number + leadingText: string + text: string + tooltip: string + isCurrencyMaxed: boolean + textFontType: UIWidgetFontType + textSizeType: UIWidgetTextSizeType + textEnabledState: WidgetEnabledState + iconSizeType: WidgetIconSizeType + updateAnimType: UIWidgetUpdateAnimType + } + + interface UIWidgetIconInfo { + sourceType: WidgetIconSourceType + sourceID: number + sizeType: WidgetIconSizeType + tooltip: string + tooltipLoc: UIWidgetTooltipLocation + } + + interface UIWidgetInfo { + widgetID: number + widgetSetID: number + widgetType: UIWidgetVisualizationType + unitToken: string | undefined + } + + interface UIWidgetItemInfo { + itemID: number + stackCount: number | undefined + overrideItemName: string | undefined + infoText: string | undefined + overrideTooltip: string | undefined + textDisplayStyle: ItemDisplayTextDisplayStyle + tooltipEnabled: boolean + iconSizeType: WidgetIconSizeType + infoTextEnabledState: WidgetEnabledState + showAsEarned: boolean + itemNameTextFontType: UIWidgetFontType + itemNameTextSizeType: UIWidgetTextSizeType + infoTextFontType: UIWidgetFontType + infoTextSizeType: UIWidgetTextSizeType + itemNameCustomColor: WidgetEnabledState + itemNameCustomColorOverrideState: UIWidgetOverrideState + } + + interface UIWidgetRewardInfo { + shownState: UIWidgetRewardShownState + earnedTooltip: string + unearnedTooltip: string + } + + interface UIWidgetSetInfo { + layoutDirection: UIWidgetSetLayoutDirection + verticalPadding: number + } + + interface UIWidgetSpellInfo { + spellID: number + shownState: WidgetShownState + enabledState: WidgetEnabledState + tooltip: string + text: string + stackDisplay: number + iconSizeType: WidgetIconSizeType + iconDisplayType: SpellDisplayIconDisplayType + textShownState: SpellDisplayTextShownStateType + borderColor: SpellDisplayBorderColor + textFontType: UIWidgetFontType + textSizeType: UIWidgetTextSizeType + hAlignType: WidgetTextHorizontalAlignmentType + tint: SpellDisplayTint + showGlowState: WidgetShowGlowState + } + + interface UIWidgetStateIconInfo { + iconState: IconState + state1Tooltip: string + state2Tooltip: string + } + + interface UIWidgetTextTooltipPair { + text: string + tooltip: string + } + + interface UnitPowerBarWidgetVisualizationInfo { + shownState: WidgetShownState + barMin: number + barMax: number + barValue: number + tooltip: string + barValueTextType: StatusBarValueTextType + overrideBarText: string + overrideBarTextShownType: StatusBarOverrideBarTextShownType + tooltipLoc: UIWidgetTooltipLocation + fillMotionType: UIWidgetMotionType + flashBlendModeType: UIWidgetBlendModeType + sparkBlendModeType: UIWidgetBlendModeType + flashMomentType: WidgetUnitPowerBarFlashMomentType + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface ZoneControlVisualizationInfo { + shownState: WidgetShownState + mode: ZoneControlMode + leadingEdgeType: ZoneControlLeadingEdgeType + dangerFlashType: ZoneControlDangerFlashType + zoneEntries: undefined[] + tooltipLoc: UIWidgetTooltipLocation + widgetSizeSetting: number + textureKit: string + frameTextureKit: string + hasTimer: boolean + orderIndex: number + widgetTag: string + inAnimType: WidgetAnimationType + outAnimType: WidgetAnimationType + widgetScale: UIWidgetScale + layoutDirection: UIWidgetLayoutDirection + modelSceneLayer: UIWidgetModelSceneLayer + scriptedAnimationEffectID: number + } + + interface ZoneEntry { + state: ZoneControlState + activeState: ZoneControlActiveState + fillType: ZoneControlFillType + min: number + max: number + current: number + capturePoint: number + tooltip: string + } + + interface AddPrivateAuraAnchorArgs { + unitToken: string + auraIndex: number + parent: unknown + showCountdownFrame: boolean + showCountdownNumbers: boolean + iconInfo: PrivateAuraIconInfo | undefined + durationAnchor: AnchorBinding | undefined + } + + interface PrivateAuraIconInfo { + iconAnchor: AnchorBinding + iconWidth: number + iconHeight: number + } + + interface UnitAuraUpdateInfo { + isFullUpdate: boolean + removedAuraInstanceIDs: number[] | undefined + addedAuras: AuraData[] | undefined + updatedAuraInstanceIDs: number[] | undefined + } + + interface UnitPrivateAuraAnchorInfo { + anchorID: number + unitToken: string + auraIndex: number + showCountdownFrame: boolean + showCountdownNumbers: boolean + iconWidth: number | undefined + iconHeight: number | undefined + } + + interface UnitPrivateAuraAppliedSoundInfo { + unitToken: string + spellID: number + soundFileName: string | undefined + soundFileID: number | undefined + outputChannel: string | undefined + } + + interface CorruptionEffectInfo { + name: string + description: string + minCorruption: number + } + + interface UnitCastingInfoResult { + name: string + displayName: string + textureID: number + startTimeMs: number + endTimeMs: number + isTradeskill: boolean + castID: string + notInterruptible: boolean + castingSpellID: number + } + + interface UnitChannelInfoResult { + name: string + displayName: string + textureID: number + startTimeMs: number + endTimeMs: number + isTradeskill: boolean + notInterruptible: boolean + spellID: number + isEmpowered: boolean + numEmpowerStages: number + } + + interface UnitPowerBarInfo { + ID: number + barType: number + minPower: number + startInset: number + endInset: number + smooth: boolean + hideFromOthers: boolean + showOnRaid: boolean + opaqueSpark: boolean + opaqueFlash: boolean + anchorTop: boolean + forcePercentage: boolean + sparkUnderFrame: boolean + flashAtMinPower: boolean + fractionalCounter: boolean + animateNumbers: boolean + } + + interface GxAdapterInfoDetails { + name: string + isLowPower: boolean + isExternal: boolean + } + + interface VignetteInfo { + vignetteGUID: string + objectGUID: string + name: string + isDead: boolean + onWorldMap: boolean + zoneInfiniteAOI: boolean + onMinimap: boolean + isUnique: boolean + inFogOfWar: boolean + atlasName: string + hasTooltip: boolean + vignetteID: number + type: VignetteType + rewardQuestID: number + tooltipWidgetSet: number | undefined + iconWidgetSet: number | undefined + addPaddingAboveTooltipWidgets: boolean | undefined + } + + interface VoiceAudioDevice { + deviceID: string + displayName: string + isActive: boolean + isSystemDefault: boolean + isCommsDefault: boolean + } + + interface VoiceChatChannel { + name: string + channelID: number + channelType: ChatChannelType + clubId: string + streamId: string + volume: number + isActive: boolean + isMuted: boolean + isTransmitting: boolean + isTranscribing: boolean + members: undefined[] + } + + interface VoiceChatMember { + energy: number + memberID: number + isActive: boolean + isSpeaking: boolean + isMutedForAll: boolean + isSilenced: boolean + } + + interface VoiceChatProcess { + name: string + channels: undefined[] + } + + interface VoiceTtsVoiceType { + voiceID: number + name: string + } + + interface CampaignChapterInfo { + name: string + description: string + rewardQuestID: number + } + + interface CampaignFailureReason { + text: string + questID: number | undefined + mapID: number | undefined + } + + interface CampaignInfo { + name: string + description: string + uiTextureKit: string + isWarCampaign: boolean + usesNormalQuestIcons: boolean + isContainerCampaign: boolean + sortAsNormalQuest: boolean + } + + interface ConquestWeeklyProgress { + progress: number + maxProgress: number + displayType: ConquestProgressBarDisplayType + unlocksCompleted: number + maxUnlocks: number + sampleItemHyperlink: string + } + + interface WeeklyRewardActivityEncounterInfo { + encounterID: number + bestDifficulty: number + uiOrder: number + instanceID: number + } + + interface WeeklyRewardActivityInfo { + type: WeeklyRewardChestThresholdType + index: number + threshold: number + progress: number + id: number + activityTierID: number + level: number + claimID: number | undefined + raidString: string | undefined + rewards: undefined[] + } + + interface WeeklyRewardActivityRewardInfo { + type: CachedRewardType + id: number + quantity: number + itemDBID: string | undefined + } + + interface WorldLootObjectInfo { + inventoryType: InventoryType + atMaxQuality: boolean + isUpgrade: boolean + } + + interface XMLTemplateInfo { + type: string + width: number + height: number + keyValues: undefined[] + inherits: string | undefined + sourceLocation: string + } + + interface XMLTemplateKeyValue { + key: string + keyType: string + type: string + value: string + } + + interface XMLTemplateListInfo { + name: string + type: string + } + + interface ZoneAbilityInfo { + zoneAbilityID: number + uiPriority: number + spellID: number + textureKit: string + tutorialText: string | undefined + } +} + +export {} diff --git a/src/types/Wow/systems.d.ts b/src/types/Wow/systems.d.ts new file mode 100644 index 0000000..1168755 --- /dev/null +++ b/src/types/Wow/systems.d.ts @@ -0,0 +1,10532 @@ +/* eslint-disable @typescript-eslint/no-duplicate-enum-values */ +/* eslint-disable @typescript-eslint/ban-types */ +/** @noSelfInFile **/ + +declare global { + function CanInspect(token: UnitToken, showError?: boolean): boolean + function GetSpecializationRoleByID( + specId: number + ): 'DAMAGER' | 'TANK' | 'HEALER' | undefined + function IsPlayerSpell(spellId: number): boolean + function GetSpellCooldown( + spellId: number + ): LuaMultiReturn<[number, number, number, number]> + function GetShapeshiftFormID(): number + function UnitHasIncomingResurrection(token: string): boolean + function CreateFrame( + type: T, + name?: string, + parent?: FrameGeneric, + template?: string, + id?: number + ): FrameGeneric + + namespace C_AccountInfo { + function GetIDFromBattleNetAccountGUID(battleNetAccountGUID: string): number + + function IsGUIDBattleNetAccountType(guid: string): boolean + + function IsGUIDRelatedToLocalAccount(guid: string): boolean + } + + namespace C_AchievementInfo { + function AreGuildAchievementsEnabled(): boolean + + function GetRewardItemID(achievementID: number): number | undefined + + function GetSupercedingAchievements(achievementID: number): number[] + + function IsGuildAchievement(achievementId: number): boolean + + function IsValidAchievement(achievementId: number): boolean + + function SetPortraitTexture(textureObject: Texture): void + } + + namespace C_ActionBar { + function EnableActionRangeCheck(actionID: number, enable: boolean): void + + function FindFlyoutActionButtons(flyoutID: number): number[] + + function FindPetActionButtons(petActionID: number): number[] + + function FindSpellActionButtons(spellID: number): number[] + + function GetBonusBarIndexForSlot(slotID: number): number | undefined + + function GetItemActionOnEquipSpellID(actionID: number): number | undefined + + function GetPetActionPetBarIndices(petActionID: number): number[] + + function GetProfessionQuality(actionID: number): number | undefined + + function GetSpell(actionID: number): number + + function HasFlyoutActionButtons(flyoutID: number): boolean + + function HasPetActionButtons(petActionID: number): boolean + + function HasPetActionPetBarIndices(petActionID: number): boolean + + function HasSpellActionButtons(spellID: number): boolean + + function IsAutoCastPetAction(slotID: number): boolean + + function IsEnabledAutoCastPetAction(slotID: number): boolean + + function IsHarmfulAction(actionID: number, useNeutral: boolean): boolean + + function IsHelpfulAction(actionID: number, useNeutral: boolean): boolean + + function IsOnBarOrSpecialBar(spellID: number): boolean + + function PutActionInSlot(slotID: number): void + + function ShouldOverrideBarShowHealthBar(): boolean + + function ShouldOverrideBarShowManaBar(): boolean + + function ToggleAutoCastPetAction(slotID: number): void + } + + namespace C_AddOns { + function DisableAddOn(name: string | number, character: string): void + + function DisableAllAddOns(character: string | undefined): void + + function DoesAddOnExist(name: string | number): boolean + + function EnableAddOn(name: string | number, character: string): void + + function EnableAllAddOns(character: string | undefined): void + + function GetAddOnDependencies(name: string | number): string + + function GetAddOnEnableState( + name: string | number, + character: string + ): AddOnEnableState + + function GetAddOnInfo( + name: string | number + ): LuaMultiReturn< + [ + name: string, + title: string, + notes: string, + loadable: boolean, + reason: string, + security: string, + updateAvailable: boolean + ] + > + + function GetAddOnMetadata(name: string | number, variable: string): string + + function GetAddOnOptionalDependencies(name: string | number): string + + function GetNumAddOns(): number + + function GetScriptsDisallowedForBeta(): boolean + + function IsAddOnLoadOnDemand(name: string | number): boolean + + function IsAddOnLoadable( + name: string | number, + character: string, + demandLoaded: boolean + ): LuaMultiReturn<[loadable: boolean, reason: string]> + + function IsAddOnLoaded( + name: string | number + ): LuaMultiReturn<[loadedOrLoading: boolean, loaded: boolean]> + + function IsAddonVersionCheckEnabled(): boolean + + function LoadAddOn( + name: string | number + ): LuaMultiReturn<[loaded: boolean | undefined, value: string | undefined]> + + function ResetAddOns(): void + + function ResetDisabledAddOns(): void + + function SaveAddOns(): void + + function SetAddonVersionCheck(enabled: boolean): void + } + + namespace C_AdventureMap { + function GetAdventureMapTextureKit(): string + } + + namespace C_AlliedRaces { + function GetAllRacialAbilitiesFromID(raceID: number): undefined[] + + function GetRaceInfoByID(raceID: number): AlliedRaceInfo + } + + namespace C_AnimaDiversion { + function CloseUI(): void + + function GetAnimaDiversionNodes(): undefined[] + + function GetOriginPosition(): Vector2DMixin | undefined + + function GetReinforceProgress(): number + + function GetTextureKit(): string + + function OpenAnimaDiversionUI(): void + + function SelectAnimaNode(talentID: number, temporary: boolean): void + } + + namespace C_ArdenwealdGardening { + function GetGardenData(): ArdenwealdGardenData + + function IsGardenAccessible(): boolean + } + + namespace C_AreaPoiInfo { + function GetAreaPOIForMap(uiMapID: number): number[] + + function GetAreaPOIInfo(uiMapID: number, areaPoiID: number): AreaPOIInfo + + function GetAreaPOISecondsLeft(areaPoiID: number): number + + function GetDelvesForMap(uiMapID: number): number[] + + function GetDragonridingRacesForMap(uiMapID: number): number[] + + function GetEventsForMap(uiMapID: number): number[] + + function GetQuestHubsForMap(uiMapID: number): number[] + + function IsAreaPOITimed( + areaPoiID: number + ): LuaMultiReturn<[isTimed: boolean, hideTimerInTooltip: boolean | undefined]> + } + + function AcceptArenaTeam(): void + + function ArenaTeamDisband(index: number): void + + function ArenaTeamInviteByName(index: number, target: string): void + + function ArenaTeamLeave(index: number): void + + function ArenaTeamSetLeaderByName(index: number, target: string): void + + function ArenaTeamUninviteByName(index: number, target: string): void + + function DeclineArenaTeam(): void + + namespace C_ArtifactUI { + function AddPower(powerID: number): boolean + + function ApplyCursorRelicToSlot(relicSlotIndex: number): void + + function CanApplyArtifactRelic(relicItemID: number, onlyUnlocked: boolean): boolean + + function CanApplyCursorRelicToSlot(relicSlotIndex: number): boolean + + function CanApplyRelicItemIDToEquippedArtifactSlot( + relicItemID: number, + relicSlotIndex: number + ): boolean + + function CanApplyRelicItemIDToSlot( + relicItemID: number, + relicSlotIndex: number + ): boolean + + function CheckRespecNPC(): boolean + + function Clear(): void + + function ClearForgeCamera(): void + + function ConfirmRespec(): void + + function DoesEquippedArtifactHaveAnyRelicsSlotted(): boolean + + function GetAppearanceInfo( + appearanceSetIndex: number, + appearanceIndex: number + ): LuaMultiReturn< + [ + artifactAppearanceID: number, + appearanceName: string, + displayIndex: number, + unlocked: boolean, + failureDescription: string | undefined, + uiCameraID: number, + altHandCameraID: number | undefined, + swatchColorR: number, + swatchColorG: number, + swatchColorB: number, + modelOpacity: number, + modelSaturation: number, + obtainable: boolean + ] + > + + function GetAppearanceInfoByID( + artifactAppearanceID: number + ): LuaMultiReturn< + [ + artifactAppearanceSetID: number, + artifactAppearanceID: number, + appearanceName: string, + displayIndex: number, + unlocked: boolean, + failureDescription: string | undefined, + uiCameraID: number, + altHandCameraID: number | undefined, + swatchColorR: number, + swatchColorG: number, + swatchColorB: number, + modelOpacity: number, + modelSaturation: number, + obtainable: boolean + ] + > + + function GetAppearanceSetInfo( + appearanceSetIndex: number + ): LuaMultiReturn< + [ + artifactAppearanceSetID: number, + appearanceSetName: string, + appearanceSetDescription: string, + numAppearances: number + ] + > + + function GetArtifactArtInfo(): ArtifactArtInfo + + function GetArtifactInfo(): LuaMultiReturn< + [ + itemID: number, + altItemID: number | undefined, + name: string, + icon: number, + xp: number, + pointsSpent: number, + quality: number, + artifactAppearanceID: number, + appearanceModID: number, + itemAppearanceID: number | undefined, + altItemAppearanceID: number | undefined, + altOnTop: boolean, + tier: string + ] + > + + function GetArtifactItemID(): number + + function GetArtifactTier(): string | undefined + + function GetArtifactXPRewardTargetInfo( + artifactCategoryID: number + ): LuaMultiReturn<[name: string, icon: number]> + + function GetCostForPointAtRank(rank: number, tier: string): number + + function GetEquippedArtifactArtInfo(): ArtifactArtInfo + + function GetEquippedArtifactInfo(): LuaMultiReturn< + [ + itemID: number, + altItemID: number | undefined, + name: string, + icon: number, + xp: number, + pointsSpent: number, + quality: number, + artifactAppearanceID: number, + appearanceModID: number, + itemAppearanceID: number | undefined, + altItemAppearanceID: number | undefined, + altOnTop: boolean, + tier: string + ] + > + + function GetEquippedArtifactItemID(): number + + function GetEquippedArtifactNumRelicSlots(onlyUnlocked: boolean): number + + function GetEquippedArtifactRelicInfo( + relicSlotIndex: number + ): LuaMultiReturn<[name: string, icon: number, slotTypeName: string, link: string]> + + function GetEquippedRelicLockedReason(relicSlotIndex: number): string | undefined + + function GetForgeRotation(): LuaMultiReturn< + [forgeRotationX: number, forgeRotationY: number, forgeRotationZ: number] + > + + function GetItemLevelIncreaseProvidedByRelic(itemLinkOrID: string | number): number + + function GetMetaPowerInfo(): LuaMultiReturn< + [spellID: number, powerCost: number, currentRank: number] + > + + function GetNumAppearanceSets(): number + + function GetNumObtainedArtifacts(): number + + function GetNumRelicSlots(onlyUnlocked: boolean): number + + function GetPointsRemaining(): number + + function GetPowerHyperlink(powerID: number): string + + function GetPowerInfo(powerID: number): ArtifactPowerInfo + + function GetPowerLinks(powerID: number): number[] + + function GetPowers(): number[] + + function GetPowersAffectedByRelic(relicSlotIndex: number): number + + function GetPowersAffectedByRelicItemLink(relicItemInfo: string | number): number + + function GetPreviewAppearance(): number | undefined + + function GetRelicInfo( + relicSlotIndex: number + ): LuaMultiReturn<[name: string, icon: number, slotTypeName: string, link: string]> + + function GetRelicInfoByItemID( + itemID: number + ): LuaMultiReturn<[name: string, icon: number, slotTypeName: string, link: string]> + + function GetRelicLockedReason(relicSlotIndex: number): string | undefined + + function GetRelicSlotType(relicSlotIndex: number): string + + function GetRespecArtifactArtInfo(): ArtifactArtInfo + + function GetRespecArtifactInfo(): LuaMultiReturn< + [ + itemID: number, + altItemID: number | undefined, + name: string, + icon: number, + xp: number, + pointsSpent: number, + quality: number, + artifactAppearanceID: number, + appearanceModID: number, + itemAppearanceID: number | undefined, + altItemAppearanceID: number | undefined, + altOnTop: boolean, + tier: string + ] + > + + function GetRespecCost(): number + + function GetTotalPowerCost( + startingTrait: number, + numTraits: number, + artifactTier: string + ): number + + function GetTotalPurchasedRanks(): number + + function IsArtifactDisabled(): boolean + + function IsArtifactItem(itemLocation: ItemLocationMixin): boolean + + function IsAtForge(): boolean + + function IsEquippedArtifactDisabled(): boolean + + function IsEquippedArtifactMaxed(): boolean + + function IsMaxedByRulesOrEffect(): boolean + + function IsPowerKnown(powerID: number): boolean + + function IsViewedArtifactEquipped(): boolean + + function SetAppearance(artifactAppearanceID: number): void + + function SetForgeCamera(): void + + function SetForgeRotation( + forgeRotationX: number, + forgeRotationY: number, + forgeRotationZ: number + ): void + + function SetPreviewAppearance(artifactAppearanceID: number): void + + function ShouldSuppressForgeRotation(): boolean + } + + namespace C_AuctionHouse { + function CalculateCommodityDeposit( + itemID: number, + duration: number, + quantity: number + ): number | undefined + + function CalculateItemDeposit( + item: ItemLocationMixin, + duration: number, + quantity: number + ): number | undefined + + function CanCancelAuction(ownedAuctionID: number): boolean + + function CancelAuction(ownedAuctionID: number): void + + function CancelCommoditiesPurchase(): void + + function CancelSell(): void + + function CloseAuctionHouse(): void + + function ConfirmCommoditiesPurchase(itemID: number, quantity: number): void + + function ConfirmPostCommodity( + item: ItemLocationMixin, + duration: number, + quantity: number, + unitPrice: number + ): void + + function ConfirmPostItem( + item: ItemLocationMixin, + duration: number, + quantity: number, + bid: number | undefined, + buyout: number | undefined + ): void + + function FavoritesAreAvailable(): boolean + + function GetAuctionInfoByID(auctionID: number): AuctionInfo | undefined + + function GetAuctionItemSubClasses(classID: number): number[] + + function GetAvailablePostCount(item: ItemLocationMixin): number + + function GetBidInfo(bidIndex: number): BidInfo | undefined + + function GetBidType(bidTypeIndex: number): ItemKey | undefined + + function GetBids(): undefined[] + + function GetBrowseResults(): undefined[] + + function GetCancelCost(ownedAuctionID: number): number + + function GetCommoditySearchResultInfo( + itemID: number, + commoditySearchResultIndex: number + ): CommoditySearchResultInfo | undefined + + function GetCommoditySearchResultsQuantity(itemID: number): number + + function GetExtraBrowseInfo(itemKey: ItemKey): number + + function GetFilterGroups(): undefined[] + + function GetItemCommodityStatus(item: ItemLocationMixin): ItemCommodityStatus + + function GetItemKeyFromItem(item: ItemLocationMixin): ItemKey + + function GetItemKeyInfo( + itemKey: ItemKey, + restrictQualityToFilter: boolean + ): ItemKeyInfo | undefined + + function GetItemKeyRequiredLevel(itemKey: ItemKey): number + + function GetItemSearchResultInfo( + itemKey: ItemKey, + itemSearchResultIndex: number + ): ItemSearchResultInfo | undefined + + function GetItemSearchResultsQuantity(itemKey: ItemKey): number + + function GetMaxBidItemBid(): number | undefined + + function GetMaxBidItemBuyout(): number | undefined + + function GetMaxCommoditySearchResultPrice(itemID: number): number | undefined + + function GetMaxItemSearchResultBid(itemKey: ItemKey): number | undefined + + function GetMaxItemSearchResultBuyout(itemKey: ItemKey): number | undefined + + function GetMaxOwnedAuctionBid(): number | undefined + + function GetMaxOwnedAuctionBuyout(): number | undefined + + function GetNumBidTypes(): number + + function GetNumBids(): number + + function GetNumCommoditySearchResults(itemID: number): number + + function GetNumItemSearchResults(itemKey: ItemKey): number + + function GetNumOwnedAuctionTypes(): number + + function GetNumOwnedAuctions(): number + + function GetNumReplicateItems(): number + + function GetOwnedAuctionInfo(ownedAuctionIndex: number): OwnedAuctionInfo | undefined + + function GetOwnedAuctionType(ownedAuctionTypeIndex: number): ItemKey | undefined + + function GetOwnedAuctions(): undefined[] + + function GetQuoteDurationRemaining(): number + + function GetReplicateItemBattlePetInfo( + index: number + ): LuaMultiReturn<[creatureID: number, displayID: number]> + + function GetReplicateItemInfo( + index: number + ): LuaMultiReturn< + [ + name: string | undefined, + texture: number | undefined, + count: number, + qualityID: number, + usable: boolean | undefined, + level: number, + levelType: string | undefined, + minBid: number, + minIncrement: number, + buyoutPrice: number, + bidAmount: number, + highBidder: string | undefined, + bidderFullName: string | undefined, + owner: string | undefined, + ownerFullName: string | undefined, + saleStatus: number, + itemID: number, + hasAllInfo: boolean | undefined + ] + > + + function GetReplicateItemLink(index: number): string | undefined + + function GetReplicateItemTimeLeft(index: number): number + + function GetTimeLeftBandInfo( + timeLeftBand: AuctionHouseTimeLeftBand + ): LuaMultiReturn<[timeLeftMinSeconds: number, timeLeftMaxSeconds: number]> + + function HasFavorites(): boolean + + function HasFullBidResults(): boolean + + function HasFullBrowseResults(): boolean + + function HasFullCommoditySearchResults(itemID: number): boolean + + function HasFullItemSearchResults(itemKey: ItemKey): boolean + + function HasFullOwnedAuctionResults(): boolean + + function HasMaxFavorites(): boolean + + function HasSearchResults(itemKey: ItemKey): boolean + + function IsFavoriteItem(itemKey: ItemKey): boolean + + function IsSellItemValid(item: ItemLocationMixin, displayError: boolean): boolean + + function IsThrottledMessageSystemReady(): boolean + + function MakeItemKey( + itemID: number, + itemLevel: number, + itemSuffix: number, + battlePetSpeciesID: number + ): ItemKey + + function PlaceBid(auctionID: number, bidAmount: number): void + + function PostCommodity( + item: ItemLocationMixin, + duration: number, + quantity: number, + unitPrice: number + ): boolean + + function PostItem( + item: ItemLocationMixin, + duration: number, + quantity: number, + bid: number | undefined, + buyout: number | undefined + ): boolean + + function QueryBids(sorts: undefined[], auctionIDs: number[]): void + + function QueryOwnedAuctions(sorts: undefined[]): void + + function RefreshCommoditySearchResults(itemID: number): void + + function RefreshItemSearchResults( + itemKey: ItemKey, + minLevelFilter: number | undefined, + maxLevelFilter: number | undefined + ): void + + function ReplicateItems(): void + + function RequestFavorites(): void + + function RequestMoreBrowseResults(): void + + function RequestMoreCommoditySearchResults(itemID: number): boolean + + function RequestMoreItemSearchResults(itemKey: ItemKey): boolean + + function RequestOwnedAuctionBidderInfo(auctionID: number): string + + function SearchForFavorites(sorts: undefined[]): void + + function SearchForItemKeys(itemKeys: undefined[], sorts: undefined[]): void + + function SendBrowseQuery(query: AuctionHouseBrowseQuery): void + + function SendSearchQuery( + itemKey: ItemKey, + sorts: undefined[], + separateOwnerItems: boolean, + minLevelFilter: number, + maxLevelFilter: number + ): void + + function SendSellSearchQuery( + itemKey: ItemKey, + sorts: undefined[], + separateOwnerItems: boolean + ): void + + function SetFavoriteItem(itemKey: ItemKey, setFavorite: boolean): void + + function StartCommoditiesPurchase(itemID: number, quantity: number): void + } + + namespace C_AzeriteEmpoweredItem { + function CanSelectPower( + azeriteEmpoweredItemLocation: ItemLocationMixin, + powerID: number + ): boolean + + function ConfirmAzeriteEmpoweredItemRespec( + azeriteEmpoweredItemLocation: ItemLocationMixin + ): void + + function GetAllTierInfo(azeriteEmpoweredItemLocation: ItemLocationMixin): undefined[] + + function GetAllTierInfoByItemID( + itemInfo: string | number, + classID: number | undefined + ): undefined[] + + function GetAzeriteEmpoweredItemRespecCost(): number + + function GetPowerInfo(powerID: number): AzeriteEmpoweredItemPowerInfo + + function GetPowerText( + azeriteEmpoweredItemLocation: ItemLocationMixin, + powerID: number, + level: AzeritePowerLevel + ): AzeriteEmpoweredItemPowerText + + function GetSpecsForPower(powerID: number): undefined[] + + function HasAnyUnselectedPowers( + azeriteEmpoweredItemLocation: ItemLocationMixin + ): boolean + + function HasBeenViewed(azeriteEmpoweredItemLocation: ItemLocationMixin): boolean + + function IsAzeriteEmpoweredItem(itemLocation: ItemLocationMixin): boolean + + function IsAzeriteEmpoweredItemByID(itemInfo: string | number): boolean + + function IsAzeritePreviewSourceDisplayable( + itemInfo: string | number, + classID: number | undefined + ): boolean + + function IsHeartOfAzerothEquipped(): boolean + + function IsPowerAvailableForSpec(powerID: number, specID: number): boolean + + function IsPowerSelected( + azeriteEmpoweredItemLocation: ItemLocationMixin, + powerID: number + ): boolean + + function SelectPower( + azeriteEmpoweredItemLocation: ItemLocationMixin, + powerID: number + ): boolean + + function SetHasBeenViewed(azeriteEmpoweredItemLocation: ItemLocationMixin): void + } + + namespace C_AzeriteEssence { + function ActivateEssence(essenceID: number, milestoneID: number): void + + function CanActivateEssence(essenceID: number, milestoneID: number): boolean + + function CanDeactivateEssence(milestoneID: number): boolean + + function CanOpenUI(): boolean + + function ClearPendingActivationEssence(): void + + function CloseForge(): void + + function GetEssenceHyperlink(essenceID: number, rank: number): string + + function GetEssenceInfo(essenceID: number): AzeriteEssenceInfo + + function GetEssences(): undefined[] + + function GetMilestoneEssence(milestoneID: number): number + + function GetMilestoneInfo(milestoneID: number): AzeriteMilestoneInfo + + function GetMilestoneSpell(milestoneID: number): number + + function GetMilestones(): undefined[] + + function GetNumUnlockedEssences(): number + + function GetNumUsableEssences(): number + + function GetPendingActivationEssence(): number + + function HasNeverActivatedAnyEssences(): boolean + + function HasPendingActivationEssence(): boolean + + function IsAtForge(): boolean + + function SetPendingActivationEssence(essenceID: number): void + + function UnlockMilestone(milestoneID: number): void + } + + namespace C_AzeriteItem { + function FindActiveAzeriteItem(): ItemLocationMixin + + function GetAzeriteItemXPInfo( + azeriteItemLocation: ItemLocationMixin + ): LuaMultiReturn<[xp: number, totalLevelXP: number]> + + function GetPowerLevel(azeriteItemLocation: ItemLocationMixin): number + + function GetUnlimitedPowerLevel(azeriteItemLocation: ItemLocationMixin): number + + function HasActiveAzeriteItem(): boolean + + function IsAzeriteItem(itemLocation: ItemLocationMixin): boolean + + function IsAzeriteItemAtMaxLevel(): boolean + + function IsAzeriteItemByID(itemInfo: string | number): boolean + + function IsAzeriteItemEnabled(azeriteItemLocation: ItemLocationMixin): boolean + + function IsUnlimitedLevelingUnlocked(): boolean + } + + namespace C_Bank { + function AutoDepositItemsIntoBank(bankType: BankType): void + + function CanDepositMoney(bankType: BankType): boolean + + function CanPurchaseBankTab(bankType: BankType): boolean + + function CanUseBank(bankType: BankType): boolean + + function CanViewBank(bankType: BankType): boolean + + function CanWithdrawMoney(bankType: BankType): boolean + + function CloseBankFrame(): void + + function DepositMoney(bankType: BankType, amount: number): void + + function FetchDepositedMoney(bankType: BankType): number + + function FetchNextPurchasableBankTabCost(bankType: BankType): number | undefined + + function FetchNumPurchasedBankTabs(bankType: BankType): number + + function FetchPurchasedBankTabData(bankType: BankType): undefined[] + + function FetchPurchasedBankTabIDs(bankType: BankType): undefined[] + + function HasMaxBankTabs(bankType: BankType): boolean + + function IsItemAllowedInBankType( + bankType: BankType, + itemLocation: ItemLocationMixin + ): boolean + + function PurchaseBankTab(bankType: BankType): void + + function UpdateBankTabSettings( + bankType: BankType, + tabID: BagIndex, + tabName: string, + tabIcon: string, + depositFlags: BagSlotFlags + ): void + + function WithdrawMoney(bankType: BankType, amount: number): void + } + + namespace C_BarberShop { + function ApplyCustomizationChoices(): boolean + + function Cancel(): void + + function ClearPreviewChoices(clearSavedChoices: boolean): void + + function GetAvailableCustomizations(): undefined[] + + function GetCurrentCameraZoom(): number + + function GetCurrentCharacterData(): PlayerInfoCharacterData + + function GetCurrentCost(): number + + function GetCustomizationScope(): number + + function GetViewingChrModel(): number | undefined + + function HasAnyChanges(): boolean + + function IsViewingAlteredForm(): boolean + + function MarkCustomizationChoiceAsSeen(choiceID: number): void + + function MarkCustomizationOptionAsSeen(optionID: number): void + + function PreviewCustomizationChoice(optionID: number, choiceID: number): void + + function RandomizeCustomizationChoices(): void + + function ResetCameraRotation(): void + + function ResetCustomizationChoices(): void + + function RotateCamera(diffDegrees: number): void + + function SaveSeenChoices(): void + + function SetCameraDistanceOffset(offset: number): void + + function SetCameraZoomLevel( + zoomLevel: number, + keepCustomZoom: boolean | undefined + ): void + + function SetCustomizationChoice(optionID: number, choiceID: number): void + + function SetModelDressState(dressedState: boolean): void + + function SetSelectedSex(sex: number): void + + function SetViewingAlteredForm(isViewingAlteredForm: boolean): void + + function SetViewingChrModel(chrModelID: number | undefined): void + + function SetViewingShapeshiftForm(shapeshiftFormID: number | undefined): void + + function ZoomCamera(zoomAmount: number): void + } + + namespace C_BarberShopInternal { + function SetQAMode(qaModeEnabled: boolean): void + } + + namespace C_BattleNet { + function GetAccountInfoByGUID(guid: string): BNetAccountInfo | undefined + + function GetAccountInfoByID( + id: number, + wowAccountGUID: string | undefined + ): BNetAccountInfo | undefined + + function GetFriendAccountInfo( + friendIndex: number, + wowAccountGUID: string | undefined + ): BNetAccountInfo | undefined + + function GetFriendGameAccountInfo( + friendIndex: number, + accountIndex: number + ): BNetGameAccountInfo | undefined + + function GetFriendNumGameAccounts(friendIndex: number): number + + function GetGameAccountInfoByGUID(guid: string): BNetGameAccountInfo | undefined + + function GetGameAccountInfoByID(id: number): BNetGameAccountInfo | undefined + } + + namespace C_BehavioralMessaging { + function SendNotificationReceipt( + dbId: string, + openTimeSeconds: number, + readTimeSeconds: number + ): void + } + + function GetBuildInfo(): LuaMultiReturn< + [ + buildVersion: string, + buildNumber: string, + buildDate: string, + interfaceVersion: number, + localizedVersion: string, + buildInfo: string + ] + > + + function Is64BitClient(): boolean + + function IsBetaBuild(): boolean + + function IsDebugBuild(): boolean + + function IsLinuxClient(): boolean + + function IsMacClient(): boolean + + function IsPublicBuild(): boolean + + function IsTestBuild(): boolean + + function IsWindowsClient(): boolean + + function SupportsClipCursor(): boolean + + namespace C_CVar { + function GetCVar(name: string): string | undefined + + function GetCVarBitfield(name: string, index: number): boolean | undefined + + function GetCVarBool(name: string): boolean | undefined + + function GetCVarDefault(name: string): string | undefined + + function GetCVarInfo( + name: string + ): LuaMultiReturn< + [ + value: string, + defaultValue: string, + isStoredServerAccount: boolean, + isStoredServerCharacter: boolean, + isLockedFromUser: boolean, + isSecure: boolean, + isReadOnly: boolean + ] + > + + function RegisterCVar(name: string, value: string | undefined): void + + function ResetTestCVars(): void + + function SetCVar(name: string, value: string | undefined): boolean + + function SetCVarBitfield(name: string, index: number, value: boolean): boolean + } + + namespace C_Calendar { + function AddEvent(): void + + function AreNamesReady(): boolean + + function CanAddEvent(): boolean + + function CanSendInvite(): boolean + + function CloseEvent(): void + + function ContextMenuEventCanComplain( + offsetMonths: number, + monthDay: number, + eventIndex: number + ): boolean + + function ContextMenuEventCanEdit( + offsetMonths: number, + monthDay: number, + eventIndex: number + ): boolean + + function ContextMenuEventCanRemove( + offsetMonths: number, + monthDay: number, + eventIndex: number + ): boolean + + function ContextMenuEventClipboard(): boolean + + function ContextMenuEventCopy(): void + + function ContextMenuEventGetCalendarType(): string | undefined + + function ContextMenuEventPaste(offsetMonths: number, monthDay: number): void + + function ContextMenuEventRemove(): void + + function ContextMenuEventSignUp(): void + + function ContextMenuGetEventIndex(): CalendarEventIndexInfo + + function ContextMenuInviteAvailable(): void + + function ContextMenuInviteDecline(): void + + function ContextMenuInviteRemove(): void + + function ContextMenuInviteTentative(): void + + function ContextMenuSelectEvent( + offsetMonths: number, + monthDay: number, + eventIndex: number + ): void + + function CreateCommunitySignUpEvent(): void + + function CreateGuildAnnouncementEvent(): void + + function CreateGuildSignUpEvent(): void + + function CreatePlayerEvent(): void + + function EventAvailable(): void + + function EventCanEdit(): boolean + + function EventClearAutoApprove(): void + + function EventClearLocked(): void + + function EventClearModerator(inviteIndex: number): void + + function EventDecline(): void + + function EventGetCalendarType(): string | undefined + + function EventGetClubId(): string | undefined + + function EventGetInvite(eventIndex: number): CalendarEventInviteInfo + + function EventGetInviteResponseTime(eventIndex: number): CalendarTime + + function EventGetInviteSortCriterion(): LuaMultiReturn< + [criterion: string, reverse: boolean] + > + + function EventGetSelectedInvite(): number | undefined + + function EventGetStatusOptions(eventIndex: number): undefined[] + + function EventGetTextures(eventType: CalendarEventType): undefined[] + + function EventGetTypes(): string[] + + function EventGetTypesDisplayOrdered(): undefined[] + + function EventHasPendingInvite(): boolean + + function EventHaveSettingsChanged(): boolean + + function EventInvite(name: string): void + + function EventRemoveInvite(inviteIndex: number): void + + function EventRemoveInviteByGuid(guid: string): void + + function EventSelectInvite(inviteIndex: number): void + + function EventSetAutoApprove(): void + + function EventSetClubId(clubId: string | undefined): void + + function EventSetDate(month: number, monthDay: number, year: number): void + + function EventSetDescription(description: string): void + + function EventSetInviteStatus(eventIndex: number, status: CalendarStatus): void + + function EventSetLocked(): void + + function EventSetModerator(inviteIndex: number): void + + function EventSetTextureID(textureIndex: number): void + + function EventSetTime(hour: number, minute: number): void + + function EventSetTitle(title: string): void + + function EventSetType(typeIndex: CalendarEventType): void + + function EventSignUp(): void + + function EventSortInvites(criterion: string, reverse: boolean): void + + function EventTentative(): void + + function GetClubCalendarEvents( + clubId: string, + startTime: CalendarTime, + endTime: CalendarTime + ): undefined[] + + function GetDayEvent( + monthOffset: number, + monthDay: number, + index: number + ): CalendarDayEvent + + function GetDefaultGuildFilter(): CalendarGuildFilterInfo + + function GetEventIndex(): CalendarEventIndexInfo + + function GetEventIndexInfo( + eventID: string, + monthOffset: number | undefined, + monthDay: number | undefined + ): CalendarEventIndexInfo | undefined + + function GetEventInfo(): CalendarEventInfo + + function GetFirstPendingInvite( + offsetMonths: number, + monthDay: number + ): number | undefined + + function GetGuildEventInfo(index: number): CalendarGuildEventInfo + + function GetGuildEventSelectionInfo(index: number): CalendarEventIndexInfo + + function GetHolidayInfo( + monthOffset: number, + monthDay: number, + index: number + ): CalendarHolidayInfo + + function GetMaxCreateDate(): CalendarTime + + function GetMinDate(): CalendarTime + + function GetMonthInfo(offsetMonths: number): CalendarMonthInfo + + function GetNextClubId(): string | undefined + + function GetNumDayEvents(offsetMonths: number, monthDay: number): number + + function GetNumGuildEvents(): number + + function GetNumInvites(): number + + function GetNumPendingInvites(): number + + function GetRaidInfo( + offsetMonths: number, + monthDay: number, + eventIndex: number + ): CalendarRaidInfo + + function IsActionPending(): boolean + + function IsEventOpen(): boolean + + function MassInviteCommunity( + clubId: string, + minLevel: number, + maxLevel: number, + maxRankOrder: number | undefined + ): void + + function MassInviteGuild( + minLevel: number, + maxLevel: number, + maxRankOrder: number + ): void + + function OpenCalendar(): void + + function OpenEvent(offsetMonths: number, monthDay: number, index: number): boolean + + function RemoveEvent(): void + + function SetAbsMonth(month: number, year: number): void + + function SetMonth(offsetMonths: number): void + + function SetNextClubId(clubId: string | undefined): void + + function UpdateEvent(): void + } + + function GetCameraFOVDefaults(): LuaMultiReturn< + [ + fieldOfViewDegreesDefault: number, + fieldOfViewDegreesPlayerMin: number, + fieldOfViewDegreesPlayerMax: number + ] + > + + function GetUICameraInfo( + uiCameraID: number + ): LuaMultiReturn< + [ + posX: number, + posY: number, + posZ: number, + lookAtX: number, + lookAtY: number, + lookAtZ: number, + animID: number, + animVariation: number, + animFrame: number, + useModelCenter: boolean + ] + > + + namespace C_ChallengeMode { + function CanUseKeystoneInCurrentMap(itemLocation: ItemLocationMixin): boolean + + function ClearKeystone(): void + + function CloseKeystoneFrame(): void + + function GetActiveChallengeMapID(): number | undefined + + function GetActiveKeystoneInfo(): LuaMultiReturn< + [ + activeKeystoneLevel: number, + activeAffixIDs: number[], + wasActiveKeystoneCharged: boolean + ] + > + + function GetAffixInfo( + affixID: number + ): LuaMultiReturn<[name: string, description: string, filedataid: number]> + + function GetCompletionInfo(): LuaMultiReturn< + [ + mapChallengeModeID: number, + level: number, + time: number, + onTime: boolean, + keystoneUpgradeLevels: number, + practiceRun: boolean, + oldOverallDungeonScore: number | undefined, + newOverallDungeonScore: number | undefined, + IsMapRecord: boolean, + IsAffixRecord: boolean, + PrimaryAffix: number, + isEligibleForScore: boolean, + members: undefined[] + ] + > + + function GetDeathCount(): LuaMultiReturn<[numDeaths: number, timeLost: number]> + + function GetDungeonScoreRarityColor(dungeonScore: number): ColorMixin + + function GetGuildLeaders(): undefined[] + + function GetKeystoneLevelRarityColor(level: number): ColorMixin + + function GetMapScoreInfo(): undefined[] + + function GetMapTable(): number[] + + function GetMapUIInfo( + mapChallengeModeID: number + ): LuaMultiReturn< + [ + name: string, + id: number, + timeLimit: number, + texture: number | undefined, + backgroundTexture: number + ] + > + + function GetOverallDungeonScore(): number + + function GetPowerLevelDamageHealthMod( + powerLevel: number + ): LuaMultiReturn<[damageMod: number, healthMod: number]> + + function GetSlottedKeystoneInfo(): LuaMultiReturn< + [mapChallengeModeID: number, affixIDs: number[], keystoneLevel: number] + > + + function GetSpecificDungeonOverallScoreRarityColor( + specificDungeonOverallScore: number + ): ColorMixin + + function GetSpecificDungeonScoreRarityColor(specificDungeonScore: number): ColorMixin + + function HasSlottedKeystone(): boolean + + function IsChallengeModeActive(): boolean + + function RemoveKeystone(): boolean + + function RequestLeaders(mapChallengeModeID: number): void + + function Reset(): void + + function SlotKeystone(): void + + function StartChallengeMode(): boolean + } + + namespace C_ChatBubbles { + function GetAllChatBubbles(includeForbidden: boolean): undefined[] + } + + namespace C_ChatInfo { + function CanPlayerSpeakLanguage(languageId: number): boolean + + function GetChannelInfoFromIdentifier( + channelIdentifier: string + ): ChatChannelInfo | undefined + + function GetChannelRosterInfo( + channelIndex: number, + rosterIndex: number + ): LuaMultiReturn<[name: string, owner: boolean, moderator: boolean, guid: string]> + + function GetChannelRuleset(channelIndex: number): ChatChannelRuleset + + function GetChannelRulesetForChannelID(channelID: number): ChatChannelRuleset + + function GetChannelShortcut(channelIndex: number): string + + function GetChannelShortcutForChannelID(channelID: number): string + + function GetChatLineSenderGUID(chatLine: number): string + + function GetChatLineSenderName(chatLine: number): string + + function GetChatLineText(chatLine: number): string + + function GetChatTypeName(typeID: number): string | undefined + + function GetClubStreamIDs(clubID: string): string[] + + function GetColorForChatType(chatType: string): ColorMixin | undefined + + function GetGeneralChannelID(): number + + function GetGeneralChannelLocalID(): number | undefined + + function GetMentorChannelID(): number + + function GetNumActiveChannels(): number + + function GetNumReservedChatWindows(): number + + function GetRegisteredAddonMessagePrefixes(): string[] + + function IsAddonMessagePrefixRegistered(prefix: string): boolean + + function IsChannelRegional(channelIndex: number): boolean + + function IsChannelRegionalForChannelID(channelID: number): boolean + + function IsChatLineCensored(chatLine: number): boolean + + function IsPartyChannelType(channelType: ChatChannelType): boolean + + function IsRegionalServiceAvailable(): boolean + + function IsTimerunningPlayer(playerGUID: string): boolean + + function IsValidChatLine(chatLine: number | undefined): boolean + + function IsValidCombatFilterName(name: string): boolean + + function RegisterAddonMessagePrefix(prefix: string): RegisterAddonMessagePrefixResult + + function ReplaceIconAndGroupExpressions( + input: string, + noIconReplacement: boolean | undefined, + noGroupReplacement: boolean | undefined + ): string + + function RequestCanLocalWhisperTarget(whisperTarget: string): void + + function ResetDefaultZoneChannels(): void + + function SendAddonMessage( + prefix: string, + message: string, + chatType: string | undefined, + target: string | undefined + ): SendAddonMessageResult + + function SendAddonMessageLogged( + prefix: string, + message: string, + chatType: string | undefined, + target: string | undefined + ): SendAddonMessageResult | undefined + + function SwapChatChannelsByChannelIndex( + firstChannelIndex: number, + secondChannelIndex: number + ): void + + function UncensorChatLine(chatLine: number): void + } + + namespace C_ChromieTime { + function CloseUI(): void + + function GetChromieTimeExpansionOption( + expansionRecID: number + ): ChromieTimeExpansionInfo | undefined + + function GetChromieTimeExpansionOptions(): undefined[] + + function SelectChromieTimeOption(chromieTimeExpansionInfoId: number): void + } + + function CinematicFinished( + movieType: CinematicType, + userCanceled: boolean, + didError: boolean + ): void + + function CinematicStarted( + movieType: CinematicType, + movieID: number, + canCancel: boolean + ): void + + function InCinematic(): boolean + + function MouseOverrideCinematicDisable(doOverride: boolean): void + + function OpeningCinematic(): void + + function StopCinematic(): void + + namespace C_ClassColor { + function GetClassColor(className: string): ColorMixin + } + + namespace C_ClassTalents { + function CanChangeTalents(): LuaMultiReturn< + [canChange: boolean, canAdd: boolean, changeError: string | undefined] + > + + function CanCreateNewConfig(): boolean + + function CanEditTalents(): LuaMultiReturn<[canEdit: boolean, changeError: string]> + + function CommitConfig(savedConfigID: number | undefined): boolean + + function DeleteConfig(configID: number): boolean + + function GetActiveConfigID(): number | undefined + + function GetActiveHeroTalentSpec(): number | undefined + + function GetConfigIDsBySpecID(specID: number | undefined): number[] + + function GetHasStarterBuild(): boolean + + function GetHeroTalentSpecsForClassSpec( + configID: number | undefined, + classSpecID: number | undefined + ): LuaMultiReturn< + [subTreeIDs: number[] | undefined, requiredPlayerLevel: number | undefined] + > + + function GetLastSelectedSavedConfigID(specID: number): number | undefined + + function GetNextStarterBuildPurchase(): LuaMultiReturn< + [nodeID: number | undefined, entryID: number | undefined] + > + + function GetStarterBuildActive(): boolean + + function GetTraitTreeForSpec(specID: number): number | undefined + + function HasUnspentHeroTalentPoints(): LuaMultiReturn< + [hasUnspentPoints: boolean, numHeroPoints: number] + > + + function HasUnspentTalentPoints(): LuaMultiReturn< + [hasUnspentPoints: boolean, numClassPoints: number, numSpecPoints: number] + > + + function ImportLoadout( + configID: number, + entries: undefined[], + name: string + ): LuaMultiReturn<[success: boolean, importError: string]> + + function InitializeViewLoadout(specID: number, level: number): void + + function IsConfigPopulated(configID: number): boolean + + function LoadConfig( + configID: number, + autoApply: boolean + ): LuaMultiReturn< + [ + result: LoadConfigResult, + changeError: string | undefined, + newLearnedNodeIDs: number[] + ] + > + + function RenameConfig(configID: number, name: string): boolean + + function RequestNewConfig(name: string): boolean + + function SaveConfig(configID: number): boolean + + function SetStarterBuildActive(active: boolean): LoadConfigResult + + function SetUsesSharedActionBars(configID: number, usesShared: boolean): void + + function UpdateLastSelectedSavedConfigID( + specID: number, + configID: number | undefined + ): void + + function ViewLoadout(entries: undefined[]): boolean + } + + namespace C_ClickBindings { + function CanSpellBeClickBound(spellID: number): boolean + + function ExecuteBinding(targetToken: string, button: string, modifiers: number): void + + function GetBindingType(button: string, modifiers: number): ClickBindingType + + function GetEffectiveInteractionButton(button: string, modifiers: number): string + + function GetProfileInfo(): undefined[] + + function GetStringFromModifiers(modifiers: number): string + + function GetTutorialShown(): boolean + + function MakeModifiers(): number + + function ResetCurrentProfile(): void + + function SetProfileByInfo(infoVec: undefined[]): void + + function SetTutorialShown(): void + } + + function FlashClientIcon(): void + + function GetBillingTimeRested(): number + + function GetFileIDFromPath(filePath: string): number + + function GetFramerate(): number + + function ReportBug(description: string): void + + function ReportSuggestion(description: string): void + + function RestartGx(): void + + function Screenshot(): void + + function UpdateWindow(): void + + namespace C_Club { + function AcceptInvitation(clubId: string): void + + function AddClubStreamChatChannel(clubId: string, streamId: string): void + + function AdvanceStreamViewMarker(clubId: string, streamId: string): void + + function AssignMemberRole( + clubId: string, + memberId: number, + roleId: ClubRoleIdentifier + ): void + + function CanResolvePlayerLocationFromClubMessageData( + clubId: string, + streamId: string, + epoch: number, + position: number + ): boolean + + function ClearAutoAdvanceStreamViewMarker(): void + + function ClearClubPresenceSubscription(): void + + function CompareBattleNetDisplayName( + clubId: string, + lhsMemberId: number, + rhsMemberId: number + ): number + + function CreateClub( + name: string, + shortName: string | undefined, + description: string, + clubType: ClubType, + avatarId: number, + isCrossFaction: boolean | undefined + ): void + + function CreateStream( + clubId: string, + name: string, + subject: string, + leadersAndModeratorsOnly: boolean + ): void + + function CreateTicket( + clubId: string, + allowedRedeemCount: number | undefined, + duration: number | undefined, + defaultStreamId: string | undefined, + isCrossFaction: boolean | undefined + ): void + + function DeclineInvitation(clubId: string): void + + function DestroyClub(clubId: string): void + + function DestroyMessage( + clubId: string, + streamId: string, + messageId: ClubMessageIdentifier + ): void + + function DestroyStream(clubId: string, streamId: string): void + + function DestroyTicket(clubId: string, ticketId: string): void + + function DoesAnyCommunityHaveUnreadMessages(): boolean + + function DoesCommunityHaveMembersOfTheOppositeFaction(clubId: string): boolean + + function EditClub( + clubId: string, + name: string | undefined, + shortName: string | undefined, + description: string | undefined, + avatarId: number | undefined, + broadcast: string | undefined, + crossFaction: boolean | undefined + ): void + + function EditMessage( + clubId: string, + streamId: string, + messageId: ClubMessageIdentifier, + message: string + ): void + + function EditStream( + clubId: string, + streamId: string, + name: string | undefined, + subject: string | undefined, + leadersAndModeratorsOnly: boolean | undefined + ): void + + function Flush(): void + + function FocusCommunityStreams(): void + + function FocusStream(clubId: string, streamId: string): boolean + + function GetAssignableRoles(clubId: string, memberId: number): undefined[] + + function GetAvatarIdList(clubType: ClubType): number[] | undefined + + function GetClubCapacity(): number + + function GetClubInfo(clubId: string): ClubInfo | undefined + + function GetClubLimits(clubType: ClubType): ClubLimits + + function GetClubMembers(clubId: string, streamId: string | undefined): number[] + + function GetClubPrivileges(clubId: string): ClubPrivilegeInfo + + function GetClubStreamNotificationSettings(clubId: string): undefined[] + + function GetCommunityNameResultText(result: ValidateNameResult): string | undefined + + function GetGuildClubId(): string | undefined + + function GetInfoFromLastCommunityChatLine(): LuaMultiReturn< + [messageInfo: ClubMessageInfo, clubId: string, streamId: string, clubType: ClubType] + > + + function GetInvitationCandidates( + filter: string | undefined, + maxResults: number | undefined, + cursorPosition: number | undefined, + allowFullMatch: boolean | undefined, + clubId: string + ): undefined[] + + function GetInvitationInfo(clubId: string): ClubSelfInvitationInfo | undefined + + function GetInvitationsForClub(clubId: string): undefined[] + + function GetInvitationsForSelf(): undefined[] + + function GetLastTicketResponse( + ticket: string + ): LuaMultiReturn< + [error: ClubErrorType, info: ClubInfo | undefined, showError: boolean] + > + + function GetMemberInfo(clubId: string, memberId: number): ClubMemberInfo | undefined + + function GetMemberInfoForSelf(clubId: string): ClubMemberInfo | undefined + + function GetMessageInfo( + clubId: string, + streamId: string, + messageId: ClubMessageIdentifier + ): ClubMessageInfo | undefined + + function GetMessageRanges(clubId: string, streamId: string): undefined[] + + function GetMessagesBefore( + clubId: string, + streamId: string, + newest: ClubMessageIdentifier, + count: number + ): undefined[] + + function GetMessagesInRange( + clubId: string, + streamId: string, + oldest: ClubMessageIdentifier, + newest: ClubMessageIdentifier + ): undefined[] + + function GetStreamInfo(clubId: string, streamId: string): ClubStreamInfo | undefined + + function GetStreamViewMarker(clubId: string, streamId: string): number | undefined + + function GetStreams(clubId: string): undefined[] + + function GetSubscribedClubs(): undefined[] + + function GetTickets(clubId: string): undefined[] + + function IsAccountMuted(clubId: string): boolean + + function IsBeginningOfStream( + clubId: string, + streamId: string, + messageId: ClubMessageIdentifier + ): boolean + + function IsEnabled(): boolean + + function IsRestricted(): ClubRestrictionReason + + function IsSubscribedToStream(clubId: string, streamId: string): boolean + + function KickMember(clubId: string, memberId: number): void + + function LeaveClub(clubId: string): void + + function RedeemTicket(ticketId: string): void + + function RequestInvitationsForClub(clubId: string): void + + function RequestMoreMessagesBefore( + clubId: string, + streamId: string, + messageId: ClubMessageIdentifier | undefined, + count: number | undefined + ): boolean + + function RequestTicket(ticketId: string): void + + function RequestTickets(clubId: string): void + + function RevokeInvitation(clubId: string, memberId: number): void + + function SendBattleTagFriendRequest(guildClubId: string, memberId: number): void + + function SendCharacterInvitation(clubId: string, character: string): void + + function SendInvitation(clubId: string, memberId: number): void + + function SendMessage(clubId: string, streamId: string, message: string): void + + function SetAutoAdvanceStreamViewMarker(clubId: string, streamId: string): void + + function SetAvatarTexture( + texture: Texture, + avatarId: number, + clubType: ClubType + ): void + + function SetClubMemberNote(clubId: string, memberId: number, note: string): void + + function SetClubPresenceSubscription(clubId: string): void + + function SetClubStreamNotificationSettings( + clubId: string, + settings: undefined[] + ): void + + function SetCommunityID(communityID: number): void + + function SetFavorite(clubId: string, isFavorite: boolean): void + + function SetSocialQueueingEnabled(clubId: string, enabled: boolean): void + + function ShouldAllowClubType(clubType: ClubType): boolean + + function UnfocusAllStreams(unsubscribe: boolean): void + + function UnfocusStream(clubId: string, streamId: string): void + + function ValidateText( + clubType: ClubType, + text: string, + clubFieldType: ClubFieldType + ): ValidateNameResult + } + + namespace C_ClubFinder { + function ApplicantAcceptClubInvite(clubFinderGUID: string): void + + function ApplicantDeclineClubInvite(clubFinderGUID: string): void + + function CancelMembershipRequest(clubFinderGUID: string): void + + function CheckAllPlayerApplicantSettings(): void + + function ClearAllFinderCache(): void + + function ClearClubApplicantsCache(): void + + function ClearClubFinderPostingsCache(): void + + function DoesPlayerBelongToClubFromClubGUID(clubFinderGUID: string): boolean + + function GetClubFinderDisableReason(): ClubFinderDisableReason | undefined + + function GetClubRecruitmentSettings(): ClubSettingsInfo + + function GetClubTypeFromFinderGUID(clubFinderGUID: string): ClubFinderRequestType + + function GetFocusIndexFromFlag(flags: number): number + + function GetPlayerApplicantLocaleFlags(): number + + function GetPlayerApplicantSettings(): ClubSettingsInfo + + function GetPlayerClubApplicationStatus( + clubFinderGUID: string + ): PlayerClubRequestStatus + + function GetPlayerSettingsFocusFlagsSelectedCount(): number + + function GetPostingIDFromClubFinderGUID(clubFinderGUID: string): number | undefined + + function GetRecruitingClubInfoFromClubID( + clubId: string + ): RecruitingClubInfo | undefined + + function GetRecruitingClubInfoFromFinderGUID( + clubFinderGUID: string + ): RecruitingClubInfo + + function GetStatusOfPostingFromClubId(postingID: string): undefined[] + + function GetTotalMatchingCommunityListSize(): number + + function GetTotalMatchingGuildListSize(): number + + function HasAlreadyAppliedToLinkedPosting(clubFinderGUID: string): boolean + + function HasPostingBeenDelisted(postingID: string): boolean + + function IsCommunityFinderEnabled(): boolean + + function IsEnabled(): boolean + + function IsListingEnabledFromFlags(flags: number): boolean + + function IsPostingBanned(postingID: string): boolean + + function LookupClubPostingFromClubFinderGUID( + clubFinderGUID: string, + isLinkedPosting: boolean + ): void + + function PlayerGetClubInvitationList(): undefined[] + + function PlayerRequestPendingClubsList(type: ClubFinderRequestType): void + + function PlayerReturnPendingCommunitiesList(): undefined[] + + function PlayerReturnPendingGuildsList(): undefined[] + + function PostClub( + clubId: string, + itemLevelRequirement: number, + name: string, + description: string, + avatarId: number, + specs: number[], + type: ClubFinderRequestType, + crossFaction: boolean + ): boolean + + function RequestApplicantList(type: ClubFinderRequestType): void + + function RequestClubsList( + guildListRequested: boolean, + searchString: string, + specIDs: number[] + ): void + + function RequestMembershipToClub( + clubFinderGUID: string, + comment: string, + specIDs: number[] + ): void + + function RequestNextCommunityPage(startingIndex: number, pageSize: number): void + + function RequestNextGuildPage(startingIndex: number, pageSize: number): void + + function RequestPostingInformationFromClubId(clubId: string): boolean + + function RequestSubscribedClubPostingIDs(): void + + function ResetClubPostingMapCache(): void + + function RespondToApplicant( + clubFinderGUID: string, + playerGUID: string, + shouldAccept: boolean, + requestType: ClubFinderRequestType, + playerName: string, + forceAccept: boolean, + reported: boolean | undefined + ): void + + function ReturnClubApplicantList(clubId: string): undefined[] + + function ReturnMatchingCommunityList(): undefined[] + + function ReturnMatchingGuildList(): undefined[] + + function ReturnPendingClubApplicantList(clubId: string): undefined[] + + function SendChatWhisper( + clubFinderGUID: string, + playerGUID: string, + applicantType: ClubFinderRequestType, + name: string + ): void + + function SetAllRecruitmentSettings(value: number): void + + function SetPlayerApplicantLocaleFlags(localeFlags: number): void + + function SetPlayerApplicantSettings(index: number, checked: boolean): void + + function SetRecruitmentLocale(locale: number): void + + function SetRecruitmentSettings(index: number, checked: boolean): void + + function ShouldShowClubFinder(): boolean + } + + namespace C_Commentator { + function AddPlayerOverrideName(playerName: string, overrideName: string): void + + function AddTrackedDefensiveAuras(spellIDs: number[]): void + + function AddTrackedOffensiveAuras(spellIDs: number[]): void + + function AreTeamsSwapped(): boolean + + function AssignPlayerToTeam(playerName: string, teamName: string): void + + function AssignPlayersToTeam(playerName: string[], teamName: string): void + + function AssignPlayersToTeamInCurrentInstance( + teamIndex: number, + teamName: string + ): void + + function CanUseCommentatorCheats(): boolean + + function ClearCameraTarget(): void + + function ClearFollowTarget(): void + + function ClearLookAtTarget(lookAtIndex: number | undefined): void + + function EnterInstance(): void + + function ExitInstance(): void + + function FindSpectatedUnit( + unitToken: UnitToken + ): LuaMultiReturn<[playerIndex: number, teamIndex: number, isPet: boolean]> + + function FindTeamNameInCurrentInstance(teamIndex: number): string | undefined + + function FindTeamNameInDirectory(playerNames: string[]): string | undefined + + function FlushCommentatorHistory(): void + + function FollowPlayer( + factionIndex: number, + playerIndex: number, + forceInstantTransition: boolean | undefined + ): void + + function FollowUnit(token: string): void + + function ForceFollowTransition(): void + + function GetAdditionalCameraWeight(): LuaMultiReturn< + [teamIndex: number, playerIndex: number] + > + + function GetAdditionalCameraWeightByToken(unitToken: UnitToken): number + + function GetAllPlayerOverrideNames(): undefined[] + + function GetCamera(): LuaMultiReturn< + [ + xPos: number, + yPos: number, + zPos: number, + yaw: number, + pitch: number, + roll: number, + fov: number + ] + > + + function GetCameraCollision(): boolean + + function GetCameraPosition(): LuaMultiReturn< + [xPos: number, yPos: number, zPos: number] + > + + function GetCommentatorHistory(): CommentatorHistory + + function GetCurrentMapID(): number | undefined + + function GetDampeningPercent(): number + + function GetDistanceBeforeForcedHorizontalConvergence(): number + + function GetDurationToForceHorizontalConvergence(): number + + function GetExcludeDistance(): number + + function GetHardlockWeight(): number + + function GetHorizontalAngleThresholdToSmooth(): number + + function GetIndirectSpellID(trackedSpellID: number): number + + function GetInstanceInfo( + mapIndex: number, + instanceIndex: number + ): LuaMultiReturn< + [ + mapID: number, + mapName: string | undefined, + status: number, + instanceIDLow: number, + instanceIDHigh: number + ] + > + + function GetLookAtLerpAmount(): number + + function GetMapInfo( + mapIndex: number + ): LuaMultiReturn< + [teamSize: number, minLevel: number, maxLevel: number, numInstances: number] + > + + function GetMatchDuration(): number + + function GetMaxNumPlayersPerTeam(): number + + function GetMaxNumTeams(): number + + function GetMode(): number + + function GetMsToHoldForHorizontalMovement(): number + + function GetMsToHoldForVerticalMovement(): number + + function GetMsToSmoothHorizontalChange(): number + + function GetMsToSmoothVerticalChange(): number + + function GetNumMaps(): number + + function GetNumPlayers(factionIndex: number): number + + function GetOrCreateSeries(teamName1: string, teamName2: string): CommentatorSeries + + function GetPlayerAuraInfo( + teamIndex: number, + playerIndex: number, + spellID: number + ): LuaMultiReturn<[startTime: number, duration: number, enable: boolean]> + + function GetPlayerAuraInfoByUnit( + token: UnitToken, + spellID: number + ): LuaMultiReturn<[startTime: number, duration: number, enable: boolean]> + + function GetPlayerCooldownInfo( + teamIndex: number, + playerIndex: number, + spellID: number + ): LuaMultiReturn<[startTime: number, duration: number, enable: boolean]> + + function GetPlayerCooldownInfoByUnit( + unitToken: UnitToken, + spellID: number + ): LuaMultiReturn<[startTime: number, duration: number, enable: boolean]> + + function GetPlayerCrowdControlInfo( + teamIndex: number, + playerIndex: number + ): LuaMultiReturn<[spellID: number, expiration: number, duration: number]> + + function GetPlayerCrowdControlInfoByUnit( + token: UnitToken + ): LuaMultiReturn<[spellID: number, expiration: number, duration: number]> + + function GetPlayerData( + teamIndex: number, + playerIndex: number + ): CommentatorPlayerData | undefined + + function GetPlayerFlagInfo(teamIndex: number, playerIndex: number): boolean + + function GetPlayerFlagInfoByUnit(unitToken: UnitToken): boolean + + function GetPlayerItemCooldownInfo( + teamIndex: number, + playerIndex: number, + itemID: number + ): LuaMultiReturn<[startTime: number, duration: number, enable: boolean]> + + function GetPlayerItemCooldownInfoByUnit( + unitToken: UnitToken, + itemID: number + ): LuaMultiReturn<[startTime: number, duration: number, enable: boolean]> + + function GetPlayerOverrideName(originalName: string): string + + function GetPlayerSpellCharges( + teamIndex: number, + playerIndex: number, + spellID: number + ): LuaMultiReturn< + [charges: number, maxCharges: number, startTime: number, duration: number] + > + + function GetPlayerSpellChargesByUnit( + unitToken: UnitToken, + spellID: number + ): LuaMultiReturn< + [charges: number, maxCharges: number, startTime: number, duration: number] + > + + function GetPositionLerpAmount(): number + + function GetSmoothFollowTransitioning(): boolean + + function GetSoftlockWeight(): number + + function GetSpeedFactor(): number + + function GetStartLocation(mapID: number): Vector3DMixin + + function GetTeamColor(teamIndex: number): ColorMixin + + function GetTeamColorByUnit(unitToken: UnitToken): ColorMixin + + function GetTimeLeftInMatch(): number | undefined + + function GetTrackedSpellID(indirectSpellID: number): number + + function GetTrackedSpells( + teamIndex: number, + playerIndex: number, + category: TrackedSpellCategory + ): number[] | undefined + + function GetTrackedSpellsByUnit( + unitToken: UnitToken, + category: TrackedSpellCategory + ): number[] | undefined + + function GetUnitData(unitToken: UnitToken): CommentatorUnitData + + function GetWargameInfo( + listID: number + ): LuaMultiReturn< + [name: string, minPlayers: number, maxPlayers: number, isArena: boolean] + > + + function HasTrackedAuras( + token: UnitToken + ): LuaMultiReturn<[hasOffensiveAura: boolean, hasDefensiveAura: boolean]> + + function IsSmartCameraLocked(): boolean + + function IsSpectating(): boolean + + function IsTrackedDefensiveAura(spellID: number): boolean + + function IsTrackedOffensiveAura(spellID: number): boolean + + function IsTrackedSpell( + teamIndex: number, + playerIndex: number, + spellID: number, + category: TrackedSpellCategory + ): boolean + + function IsTrackedSpellByUnit( + unitToken: UnitToken, + spellID: number, + category: TrackedSpellCategory + ): boolean + + function IsUsingSmartCamera(): boolean + + function LookAtPlayer( + factionIndex: number, + playerIndex: number, + lookAtIndex: number | undefined + ): void + + function RemoveAllOverrideNames(): void + + function RemovePlayerOverrideName(originalPlayerName: string): void + + function RequestPlayerCooldownInfo(teamIndex: number, playerIndex: number): void + + function ResetFoVTarget(): void + + function ResetSeriesScores(teamName1: string, teamName2: string): void + + function ResetSettings(): void + + function ResetTrackedAuras(): void + + function SetAdditionalCameraWeight( + teamIndex: number, + playerIndex: number, + weight: number + ): void + + function SetAdditionalCameraWeightByToken(unitToken: UnitToken, weight: number): void + + function SetBlocklistedAuras(spellIDs: number[]): void + + function SetBlocklistedCooldowns(specID: number, spellIDs: number[]): void + + function SetBlocklistedItemCooldowns(itemIDs: number[]): void + + function SetCamera( + xPos: number, + yPos: number, + zPos: number, + yaw: number, + pitch: number, + roll: number, + fov: number + ): void + + function SetCameraCollision(collide: boolean): void + + function SetCameraPosition( + xPos: number, + yPos: number, + zPos: number, + snapToLocation: boolean + ): void + + function SetCheatsEnabled(enableCheats: boolean): void + + function SetCommentatorHistory(history: CommentatorHistory): void + + function SetDistanceBeforeForcedHorizontalConvergence(distance: number): void + + function SetDurationToForceHorizontalConvergence(ms: number): void + + function SetExcludeDistance(excludeDistance: number): void + + function SetFollowCameraSpeeds(elasticSpeed: number, minSpeed: number): void + + function SetHardlockWeight(weight: number): void + + function SetHorizontalAngleThresholdToSmooth(angle: number): void + + function SetLookAtLerpAmount(amount: number): void + + function SetMapAndInstanceIndex(mapIndex: number, instanceIndex: number): void + + function SetMouseDisabled(disabled: boolean): void + + function SetMoveSpeed(newSpeed: number): void + + function SetMsToHoldForHorizontalMovement(ms: number): void + + function SetMsToHoldForVerticalMovement(ms: number): void + + function SetMsToSmoothHorizontalChange(ms: number): void + + function SetMsToSmoothVerticalChange(ms: number): void + + function SetPositionLerpAmount(amount: number): void + + function SetRequestedDebuffCooldowns(specID: number, spellIDs: number[]): void + + function SetRequestedDefensiveCooldowns(specID: number, spellIDs: number[]): void + + function SetRequestedItemCooldowns(itemIDs: number[]): void + + function SetRequestedOffensiveCooldowns(specID: number, spellIDs: number[]): void + + function SetSeriesScore( + teamName1: string, + teamName2: string, + scoringTeamName: string, + score: number + ): void + + function SetSeriesScores( + teamName1: string, + teamName2: string, + score1: number, + score2: number + ): void + + function SetSmartCameraLocked(locked: boolean): void + + function SetSmoothFollowTransitioning(enabled: boolean): void + + function SetSoftlockWeight(weight: number): void + + function SetSpeedFactor(factor: number): void + + function SetTargetHeightOffset(offset: number): void + + function SetUseSmartCamera(useSmartCamera: boolean): void + + function SnapCameraLookAtPoint(): void + + function StartWargame( + listID: number, + teamSize: number, + tournamentRules: boolean, + teamOneCaptain: string, + teamTwoCaptain: string + ): void + + function SwapTeamSides(): void + + function ToggleCheats(): void + + function UpdateMapInfo(targetPlayer: string | undefined): void + + function UpdatePlayerInfo(): void + + function ZoomIn(): void + + function ZoomIn_Position(zoomAmount: number | undefined): void + + function ZoomOut(): void + + function ZoomOut_Position(zoomAmount: number | undefined): void + } + + namespace C_ConfigurationWarnings { + function GetConfigurationWarningSeen( + configurationWarning: ConfigurationWarning + ): boolean + + function GetConfigurationWarningString( + configurationWarning: ConfigurationWarning + ): string + + function GetConfigurationWarnings(includeSeenWarnings: boolean): undefined[] + + function SetConfigurationWarningSeen(configurationWarning: ConfigurationWarning): void + } + + function CancelLogout(): void + + function ForceLogout(): void + + function ForceQuit(): void + + function GetNetIpTypes(): string + + function GetNetStats(): LuaMultiReturn< + [inValue: number, out: number, latencyList: number] + > + + function GetRealmID(): number + + function GetRealmName(): string + + function IsOnTournamentRealm(): boolean + + function Logout(): void + + function Quit(): void + + function SelectedRealmName(): string + + function CalculateStringEditDistance(firstString: string, secondString: string): number + + function ConsoleAddMessage(message: string): void + + function ConsoleExec(command: string, addToHistory: boolean): boolean + + function ConsoleGetAllCommands(): undefined[] + + function ConsoleGetColorFromType(colorType: ConsoleColorType): ColorMixin + + function ConsoleGetFontHeight(): number + + function ConsoleIsActive(): boolean + + function ConsolePrintAllMatchingCommands(partialCommandText: string): void + + function ConsoleSetFontHeight(fontHeightInPixels: number): void + + function SetConsoleKey(keystring: string): void + + namespace C_ConsoleScriptCollection { + function GetCollectionDataByID( + collectionID: number + ): ConsoleScriptCollectionData | undefined + + function GetCollectionDataByTag( + collectionTag: string + ): ConsoleScriptCollectionData | undefined + + function GetElements(collectionID: number): undefined[] + + function GetScriptData(consoleScriptID: number): ConsoleScriptData + } + + namespace C_Container { + function ContainerIDToInventoryID(containerID: BagIndex): number + + function ContainerRefundItemPurchase( + containerIndex: BagIndex, + slotIndex: number, + isEquipped: boolean + ): void + + function GetBackpackAutosortDisabled(): boolean + + function GetBackpackSellJunkDisabled(): boolean + + function GetBagName(bagIndex: BagIndex): string + + function GetBagSlotFlag(bagIndex: BagIndex, flag: BagSlotFlags): boolean + + function GetBankAutosortDisabled(): boolean + + function GetContainerFreeSlots(containerIndex: BagIndex): number[] + + function GetContainerItemCooldown( + containerIndex: BagIndex, + slotIndex: number + ): LuaMultiReturn<[startTime: number, duration: number, enable: number]> + + function GetContainerItemDurability( + containerIndex: BagIndex, + slotIndex: number + ): LuaMultiReturn<[durability: number, maxDurability: number]> + + function GetContainerItemEquipmentSetInfo( + containerIndex: BagIndex, + slotIndex: number + ): LuaMultiReturn<[inSet: boolean, setList: string]> + + function GetContainerItemID(containerIndex: BagIndex, slotIndex: number): number + + function GetContainerItemInfo( + containerIndex: BagIndex, + slotIndex: number + ): ContainerItemInfo + + function GetContainerItemLink(containerIndex: BagIndex, slotIndex: number): string + + function GetContainerItemPurchaseCurrency( + containerIndex: BagIndex, + slotIndex: number, + itemIndex: number, + isEquipped: boolean + ): ItemPurchaseCurrency + + function GetContainerItemPurchaseInfo( + containerIndex: BagIndex, + slotIndex: number, + isEquipped: boolean + ): ItemPurchaseInfo + + function GetContainerItemPurchaseItem( + containerIndex: BagIndex, + slotIndex: number, + itemIndex: number, + isEquipped: boolean + ): ItemPurchaseItem + + function GetContainerItemQuestInfo( + containerIndex: BagIndex, + slotIndex: number + ): ItemQuestInfo + + function GetContainerNumFreeSlots( + bagIndex: BagIndex + ): LuaMultiReturn<[numFreeSlots: number, bagFamily: number | undefined]> + + function GetContainerNumSlots(containerIndex: BagIndex): number + + function GetInsertItemsLeftToRight(): boolean + + function GetItemCooldown( + itemID: number + ): LuaMultiReturn<[startTime: number, duration: number, enable: number]> + + function GetMaxArenaCurrency(): number + + function GetSortBagsRightToLeft(): boolean + + function IsBattlePayItem(containerIndex: BagIndex, slotIndex: number): boolean + + function IsContainerFiltered(containerIndex: BagIndex): boolean + + function PickupContainerItem(containerIndex: BagIndex, slotIndex: number): void + + function PlayerHasHearthstone(): number | undefined + + function SetBackpackAutosortDisabled(disable: boolean): void + + function SetBackpackSellJunkDisabled(disable: boolean): void + + function SetBagPortraitTexture(texture: Texture, bagIndex: BagIndex): void + + function SetBagSlotFlag(bagIndex: BagIndex, flag: BagSlotFlags, isSet: boolean): void + + function SetBankAutosortDisabled(disable: boolean): void + + function SetInsertItemsLeftToRight(enable: boolean): void + + function SetItemSearch(searchString: string): void + + function SetSortBagsRightToLeft(enable: boolean): void + + function ShowContainerSellCursor(containerIndex: BagIndex, slotIndex: number): void + + function SocketContainerItem(containerIndex: BagIndex, slotIndex: number): boolean + + function SortAccountBankBags(): void + + function SortBags(): void + + function SortBankBags(): void + + function SortReagentBankBags(): void + + function SplitContainerItem( + containerIndex: BagIndex, + slotIndex: number, + amount: number + ): void + + function UseContainerItem( + containerIndex: BagIndex, + slotIndex: number, + unitToken: UnitToken | undefined, + bankType: BankType | undefined, + reagentBankOpen: boolean + ): void + + function UseHearthstone(): boolean + } + + namespace C_ContentTracking { + function GetBestMapForTrackable( + trackableType: ContentTrackingType, + trackableID: number, + ignoreWaypoint: boolean + ): LuaMultiReturn<[result: ContentTrackingResult, mapID: number | undefined]> + + function GetCollectableSourceTrackingEnabled(): boolean + + function GetCollectableSourceTypes(): undefined[] + + function GetCurrentTrackingTarget( + type: ContentTrackingType, + id: number + ): LuaMultiReturn<[targetType: ContentTrackingTargetType, targetID: number]> + + function GetEncounterTrackingInfo(journalEncounterID: number): EncounterTrackingInfo + + function GetNextWaypointForTrackable( + trackableType: ContentTrackingType, + trackableID: number, + uiMapID: number + ): LuaMultiReturn< + [result: ContentTrackingResult, mapInfo: ContentTrackingMapInfo | undefined] + > + + function GetObjectiveText( + targetType: ContentTrackingTargetType, + targetID: number, + includeHyperlinks: boolean + ): string + + function GetTitle(trackableType: ContentTrackingType, trackableID: number): string + + function GetTrackablesOnMap( + trackableType: ContentTrackingType, + uiMapID: number + ): LuaMultiReturn<[result: ContentTrackingResult, trackableMapInfos: undefined[]]> + + function GetTrackedIDs(trackableType: ContentTrackingType): number[] + + function GetVendorTrackingInfo(collectableEntryID: number): VendorTrackingInfo + + function GetWaypointText( + trackableType: ContentTrackingType, + trackableID: number + ): string + + function IsNavigable( + trackableType: ContentTrackingType, + trackableID: number + ): LuaMultiReturn<[result: ContentTrackingResult, isNavigable: boolean]> + + function IsTrackable(type: ContentTrackingType, id: number): boolean + + function IsTracking(type: ContentTrackingType, id: number): boolean + + function StartTracking( + type: ContentTrackingType, + id: number + ): ContentTrackingError | undefined + + function StopTracking( + type: ContentTrackingType, + id: number, + stopType: ContentTrackingStopType + ): void + + function ToggleTracking( + type: ContentTrackingType, + id: number, + stopType: ContentTrackingStopType + ): ContentTrackingError | undefined + } + + namespace C_ContributionCollector { + function Close(): void + + function Contribute(contributionID: number): void + + function GetActive(): number + + function GetAtlases(contributionID: number): string[] + + function GetBuffs(contributionID: number): number + + function GetContributionAppearance( + contributionID: number, + contributionState: ContributionState + ): ContributionAppearance | undefined + + function GetContributionCollectorsForMap(uiMapID: number): undefined[] + + function GetContributionResult(contributionID: number): ContributionResult + + function GetDescription(contributionID: number): string + + function GetManagedContributionsForCreatureID(creatureID: number): number + + function GetName(contributionID: number): string + + function GetOrderIndex(contributionID: number): number + + function GetRequiredContributionCurrency( + contributionID: number + ): LuaMultiReturn<[currencyID: number, currencyAmount: number]> + + function GetRequiredContributionItem( + contributionID: number + ): LuaMultiReturn<[itemID: number, itemCount: number]> + + function GetRewardQuestID(contributionID: number): number + + function GetState( + contributionID: number + ): LuaMultiReturn< + [ + contributionState: ContributionState, + contributionPercentageComplete: number, + timeOfNextStateChange: number | undefined, + startTime: number + ] + > + + function HasPendingContribution(contributionID: number): boolean + + function IsAwaitingRewardQuestData(contributionID: number): boolean + } + + namespace C_CovenantCallings { + function AreCallingsUnlocked(): boolean + + function RequestCallings(): void + } + + namespace C_CovenantPreview { + function CloseFromUI(): void + + function GetCovenantInfoForPlayerChoiceResponseID( + playerChoiceResponseID: number + ): CovenantPreviewInfo + } + + namespace C_CovenantSanctumUI { + function CanAccessReservoir(): boolean + + function CanDepositAnima(): boolean + + function DepositAnima(): void + + function EndInteraction(): void + + function GetAnimaInfo(): LuaMultiReturn< + [currencyID: number, maxDisplayableValue: number] + > + + function GetCurrentTalentTreeID(): number | undefined + + function GetFeatures(): undefined[] + + function GetRenownLevel(): number + + function GetRenownLevels(covenantID: number): undefined[] + + function GetRenownRewardsForLevel( + covenantID: number, + renownLevel: number + ): undefined[] + + function GetSanctumType(): GarrTalentFeatureSubtype | undefined + + function GetSoulCurrencies(): number[] + + function HasMaximumRenown(): boolean + + function IsPlayerInRenownCatchUpMode(): boolean + + function IsWeeklyRenownCapped(): boolean + + function RequestCatchUpState(): void + } + + namespace C_Covenants { + function GetActiveCovenantID(): number + + function GetCovenantData(covenantID: number): CovenantData | undefined + + function GetCovenantIDs(): number[] + } + + namespace C_CraftingOrders { + function AreOrderNotesDisabled(): boolean + + function CalculateCraftingOrderPostingFee( + skillLineAbilityID: number, + orderType: CraftingOrderType, + orderDuration: CraftingOrderDuration + ): number + + function CanOrderSkillAbility(skillLineAbilityID: number): boolean + + function CancelOrder(orderID: number): void + + function ClaimOrder(orderID: number, profession: Profession): void + + function CloseCrafterCraftingOrders(): void + + function CloseCustomerCraftingOrders(): void + + function FulfillOrder( + orderID: number, + crafterNote: string, + profession: Profession + ): void + + function GetClaimedOrder(): CraftingOrderInfo | undefined + + function GetCrafterBuckets(): undefined[] + + function GetCrafterOrders(): undefined[] + + function GetCraftingOrderTime(): number + + function GetCustomerCategories(): undefined[] + + function GetCustomerOptions( + params: CraftingOrderCustomerSearchParams + ): CraftingOrderCustomerSearchResults + + function GetCustomerOrders(): undefined[] + + function GetDefaultOrdersSkillLine(): number | undefined + + function GetMyOrders(): undefined[] + + function GetNumFavoriteCustomerOptions(): number + + function GetOrderClaimInfo(profession: Profession): CraftingOrderClaimsRemainingInfo + + function GetPersonalOrdersInfo(): undefined[] + + function HasFavoriteCustomerOptions(): boolean + + function IsCustomerOptionFavorited(recipeID: number): boolean + + function ListMyOrders(request: CraftingOrderRequestMyOrdersInfo): void + + function OpenCrafterCraftingOrders(): void + + function OpenCustomerCraftingOrders(): void + + function OrderCanBeRecrafted(orderID: number): boolean + + function ParseCustomerOptions(): void + + function PlaceNewOrder(orderInfo: NewCraftingOrderInfo): void + + function RejectOrder( + orderID: number, + crafterNote: string, + profession: Profession + ): void + + function ReleaseOrder(orderID: number, profession: Profession): void + + function RequestCrafterOrders(request: CraftingOrderRequestInfo): void + + function RequestCustomerOrders(request: CraftingOrderRequestInfo): void + + function SetCustomerOptionFavorited(recipeID: number, favorited: boolean): void + + function ShouldShowCraftingOrderTab(): boolean + + function SkillLineHasOrders(skillLineID: number): boolean + + function UpdateIgnoreList(): void + } + + namespace C_CreatureInfo { + function GetClassInfo(classID: number): ClassInfo | undefined + + function GetFactionInfo(raceID: number): FactionInfo | undefined + + function GetRaceInfo(raceID: number): RaceInfo | undefined + } + + namespace C_CurrencyInfo { + function CanTransferCurrency( + currencyID: number + ): LuaMultiReturn< + [ + canTransferCurrency: boolean, + failureReason: AccountCurrencyTransferResult | undefined + ] + > + + function DoesWarModeBonusApply( + currencyID: number + ): LuaMultiReturn< + [warModeApplies: boolean | undefined, limitOncePerTooltip: boolean | undefined] + > + + function ExpandCurrencyList(index: number, expand: boolean): void + + function FetchCurrencyDataFromAccountCharacters(currencyID: number): undefined[] + + function FetchCurrencyTransferTransactions(): undefined[] + + function GetAzeriteCurrencyID(): number + + function GetBackpackCurrencyInfo(index: number): BackpackCurrencyInfo + + function GetBasicCurrencyInfo( + currencyType: number, + quantity: number | undefined + ): CurrencyDisplayInfo + + function GetCoinIcon(amount: number): number + + function GetCoinText(amount: number, separator: string): string + + function GetCoinTextureString(amount: number, fontHeight: number): string + + function GetCostToTransferCurrency( + currencyID: number, + quantity: number + ): number | undefined + + function GetCurrencyContainerInfo( + currencyType: number, + quantity: number + ): CurrencyDisplayInfo + + function GetCurrencyDescription(type: number): string + + function GetCurrencyIDFromLink(currencyLink: string): number + + function GetCurrencyInfo(type: number): CurrencyInfo + + function GetCurrencyInfoFromLink(link: string): CurrencyInfo + + function GetCurrencyLink(type: number, amount: number | undefined): string + + function GetCurrencyListInfo(index: number): CurrencyInfo + + function GetCurrencyListLink(index: number): string + + function GetCurrencyListSize(): number + + function GetDragonIslesSuppliesCurrencyID(): number + + function GetFactionGrantedByCurrency(currencyID: number): number | undefined + + function GetMaxTransferableAmountFromQuantity( + currencyID: number, + requestedQuantity: number + ): number | undefined + + function GetWarResourcesCurrencyID(): number + + function IsAccountCharacterCurrencyDataReady(): boolean + + function IsAccountTransferableCurrency(currencyID: number): boolean + + function IsAccountWideCurrency(currencyID: number): boolean + + function IsCurrencyContainer(currencyID: number, quantity: number): boolean + + function IsCurrencyTransferTransactionDataReady(): boolean + + function PickupCurrency(type: number): void + + function PlayerHasMaxQuantity(currencyID: number): boolean + + function PlayerHasMaxWeeklyQuantity(currencyID: number): boolean + + function RequestCurrencyDataForAccountCharacters(): void + + function RequestCurrencyFromAccountCharacter( + sourceCharacterGUID: string, + currencyID: number, + quantity: number + ): void + + function SetCurrencyBackpack(index: number, backpack: boolean): void + + function SetCurrencyUnused(index: number, unused: boolean): void + } + + namespace C_Cursor { + function GetCursorItem(): ItemLocationMixin + } + + namespace C_DateAndTime { + function AdjustTimeByDays(date: CalendarTime, days: number): CalendarTime + + function AdjustTimeByMinutes(date: CalendarTime, minutes: number): CalendarTime + + function AdjustTimeByMonths(date: CalendarTime, months: number): CalendarTime + + function CompareCalendarTime( + lhsCalendarTime: CalendarTime, + rhsCalendarTime: CalendarTime + ): number + + function GetCalendarTimeFromEpoch(epoch: number): CalendarTime + + function GetCurrentCalendarTime(): CalendarTime + + function GetSecondsUntilDailyReset(): number + + function GetSecondsUntilWeeklyReset(): number + + function GetServerTimeLocal(): number + + function GetWeeklyResetStartTime(): number + } + + namespace C_DeathInfo { + function GetCorpseMapPosition(uiMapID: number): Vector2DMixin | undefined + + function GetDeathReleasePosition(uiMapID: number): Vector2DMixin | undefined + + function GetGraveyardsForMap(uiMapID: number): undefined[] + + function GetSelfResurrectOptions(): undefined[] + + function UseSelfResurrectOption(optionType: SelfResurrectOptionType, id: number): void + } + + function GetDebugAnimationStats( + unitGUID: UnitToken | undefined + ): LuaMultiReturn< + [ + upperBodyAnim: string, + lowerBodyAnim: string, + mountAnim: string, + upperBodyPrimaryAnim: string, + upperBodyPrimaryAnimVariation: number, + upperBodySecondaryAnim: string, + upperBodySecondaryAnimVariation: number, + lowerBodyPrimaryAnim: string, + lowerBodyPrimaryAnimVariation: number, + lowerBodySecondaryAnim: string, + lowerBodySecondaryAnimVariation: number, + animKitID: number | undefined, + mountAnimKitID: number | undefined + ] + > + + function GetDebugPerf(): string + + function GetDebugSpellEffects(): string + + function GetDebugStats(): string + + function GetDebugTargetCustomizationInfo(): string + + function GetDebugUnitInfo(unitGUID: string): void + + function ToggleAnimKitDisplay(): void + + function ToggleCollision(): void + + function ToggleCollisionDisplay(): void + + function ToggleDebugAIDisplay(): void + + function ToggleGravity(): void + + function TogglePlayerBounds(): void + + function TogglePortals(): void + + function ToggleTris(): void + + namespace C_DelvesUI { + function GetCreatureDisplayInfoForCompanion(companionID: number | undefined): number + + function GetCurioNodeForCompanion( + companionID: number | undefined, + curioType: CurioType + ): number + + function GetCurioRarityByTraitCondAccountElementID( + traitCondAccountElementID: number + ): CurioRarity + + function GetCurrentDelvesSeasonNumber(): number + + function GetDelvesAffixSpellsForSeason(): number[] + + function GetDelvesFactionForSeason(): number + + function GetDelvesMinRequiredLevel(): number | undefined + + function GetFactionForCompanion(companionID: number | undefined): number + + function GetModelSceneForCompanion(companionID: number | undefined): number + + function GetRoleNodeForCompanion(companionID: number | undefined): number + + function GetRoleSubtreeForCompanion( + companionID: number | undefined, + roleType: CompanionRoleType + ): number + + function GetTraitTreeForCompanion(companionID: number | undefined): number + + function GetUnseenCuriosBySlotType( + slotType: CompanionConfigSlotTypes, + ownedCurioNodeIDs: number[] + ): number[] + + function HasActiveDelve(mapID: number | undefined): boolean + + function IsEligibleForActiveDelveRewards(unit: UnitToken): boolean + + function SaveSeenCuriosBySlotType( + slotType: CompanionConfigSlotTypes, + ownedCurioNodeIDs: number[] + ): void + } + + namespace C_EditMode { + function ConvertLayoutInfoToString(layoutInfo: EditModeLayoutInfo): string + + function ConvertStringToLayoutInfo(layoutInfoAsString: string): EditModeLayoutInfo + + function GetAccountSettings(): undefined[] + + function GetLayouts(): EditModeLayouts + + function OnEditModeExit(): void + + function OnLayoutAdded( + addedLayoutIndex: number, + activateNewLayout: boolean, + isLayoutImported: boolean + ): void + + function OnLayoutDeleted(deletedLayoutIndex: number): void + + function SaveLayouts(saveInfo: EditModeLayouts): void + + function SetAccountSetting(setting: EditModeAccountSetting, value: number): void + + function SetActiveLayout(activeLayout: number): void + } + + namespace C_EncounterJournal { + function GetDungeonEntrancesForMap(uiMapID: number): undefined[] + + function GetEncounterJournalLink( + linkType: JournalLinkTypes, + ID: number, + displayText: string, + difficultyID: number + ): string + + function GetEncountersOnMap(uiMapID: number): undefined[] + + function GetInstanceForGameMap(mapID: number): number | undefined + + function GetLootInfo(id: number): EncounterJournalItemInfo + + function GetLootInfoByIndex( + index: number, + encounterIndex: number | undefined + ): EncounterJournalItemInfo + + function GetSectionIconFlags(sectionID: number): number[] | undefined + + function GetSectionInfo(sectionID: number): EncounterJournalSectionInfo + + function GetSlotFilter(): ItemSlotFilterType + + function InitalizeSelectedTier(): void + + function InstanceHasLoot(instanceID: number | undefined): boolean + + function IsEncounterComplete(journalEncounterID: number): boolean + + function OnClose(): void + + function OnOpen(): void + + function ResetSlotFilter(): void + + function SetPreviewMythicPlusLevel(level: number): void + + function SetPreviewPvpTier(tier: number): void + + function SetSlotFilter(filterSlot: ItemSlotFilterType): void + + function SetTab(tabIdx: number): void + } + + namespace C_EquipmentSet { + function AssignSpecToEquipmentSet(equipmentSetID: number, specIndex: number): void + + function CanUseEquipmentSets(): boolean + + function ClearIgnoredSlotsForSave(): void + + function CreateEquipmentSet(equipmentSetName: string, icon: string | undefined): void + + function DeleteEquipmentSet(equipmentSetID: number): void + + function EquipmentSetContainsLockedItems(equipmentSetID: number): boolean + + function GetEquipmentSetAssignedSpec(equipmentSetID: number): number + + function GetEquipmentSetForSpec(specIndex: number): number + + function GetEquipmentSetID(equipmentSetName: string): number + + function GetEquipmentSetIDs(): number[] + + function GetEquipmentSetInfo( + equipmentSetID: number + ): LuaMultiReturn< + [ + name: string, + iconFileID: number, + setID: number, + isEquipped: boolean, + numItems: number, + numEquipped: number, + numInInventory: number, + numLost: number, + numIgnored: number + ] + > + + function GetIgnoredSlots(equipmentSetID: number): boolean[] + + function GetItemIDs(equipmentSetID: number): number[] + + function GetItemLocations(equipmentSetID: number): number[] + + function GetNumEquipmentSets(): number + + function IgnoreSlotForSave(slot: number): void + + function IsSlotIgnoredForSave(slot: number): boolean + + function ModifyEquipmentSet( + equipmentSetID: number, + newName: string, + newIcon: string | undefined + ): void + + function PickupEquipmentSet(equipmentSetID: number): void + + function SaveEquipmentSet(equipmentSetID: number, icon: string | undefined): void + + function UnassignEquipmentSetSpec(equipmentSetID: number): void + + function UnignoreSlotForSave(slot: number): void + + function UseEquipmentSet(equipmentSetID: number): boolean + } + + namespace C_EventUtils { + function IsEventValid(eventName: string): boolean + + function NotifySettingsLoaded(): void + } + + function CanUpgradeExpansion(): boolean + + function DoesCurrentLocaleSellExpansionLevels(): boolean + + function GetAccountExpansionLevel(): number + + function GetClientDisplayExpansionLevel(): number + + function GetCurrentRegionName(): string + + function GetExpansionDisplayInfo( + expansionLevel: number + ): ExpansionDisplayInfo | undefined + + function GetExpansionForLevel(playerLevel: number): number + + function GetExpansionLevel(): number + + function GetExpansionTrialInfo(): LuaMultiReturn< + [isExpansionTrialAccount: boolean, expansionTrialRemainingSeconds: number | undefined] + > + + function GetMaxLevelForExpansionLevel(expansionLevel: number): number + + function GetMaxLevelForLatestExpansion(): number + + function GetMaxLevelForPlayerExpansion(): number + + function GetMaximumExpansionLevel(): number + + function GetMinimumExpansionLevel(): number + + function GetNumExpansions(): number + + function GetServerExpansionLevel(): number + + function IsDemonHunterAvailable(): boolean + + function IsExpansionTrial(): boolean + + function IsTrialAccount(): boolean + + function IsVeteranTrialAccount(): boolean + + function SendSubscriptionInterstitialResponse( + response: SubscriptionInterstitialResponseType + ): void + + function ClassicExpansionAtLeast(expansionLevel: number): boolean + + function GetClassicExpansionLevel(): number + + namespace C_ExpansionTrial { + function OnTrialLevelUpDialogClicked(): void + + function OnTrialLevelUpDialogShown(): void + } + + namespace C_FogOfWar { + function GetFogOfWarForMap(uiMapID: number): number | undefined + + function GetFogOfWarInfo(fogOfWarID: number): FogOfWarInfo | undefined + } + + function GetFontInfo(fontObject: FontInfo): FontScriptInfo | undefined + + function GetFonts(): string[] + + function CreateWindow(popupStyle: boolean): unknown | undefined + + function GetCallstackHeight(): number + + function GetCurrentEventID(): number | undefined + + function GetErrorCallstackHeight(): number | undefined + + function GetEventTime( + eventProfileIndex: number + ): LuaMultiReturn< + [ + totalElapsedTime: number, + numExecutedHandlers: number, + slowestHandlerName: string, + slowestHandlerTime: number + ] + > + + function RunScript(text: string): void + + function SetErrorCallstackHeight(height: number | undefined): void + + namespace C_FriendList { + function AddFriend(name: string, notes: string | undefined): void + + function AddIgnore(name: string): boolean + + function AddOrDelIgnore(name: string): void + + function AddOrRemoveFriend(name: string, notes: string): void + + function DelIgnore(name: string): boolean + + function DelIgnoreByIndex(index: number): void + + function GetFriendInfo(name: string): FriendInfo + + function GetFriendInfoByIndex(index: number): FriendInfo + + function GetIgnoreName(index: number): string | undefined + + function GetNumFriends(): number + + function GetNumIgnores(): number + + function GetNumOnlineFriends(): number + + function GetNumWhoResults(): LuaMultiReturn<[numWhos: number, totalNumWhos: number]> + + function GetSelectedFriend(): number | undefined + + function GetSelectedIgnore(): number | undefined + + function GetWhoInfo(index: number): WhoInfo + + function IsFriend(guid: string): boolean + + function IsIgnored(token: string): boolean + + function IsIgnoredByGuid(guid: string): boolean + + function IsOnIgnoredList(token: string): boolean + + function RemoveFriend(name: string): boolean + + function RemoveFriendByIndex(index: number): void + + function SendWho(filter: string, origin: number | undefined): void + + function SetFriendNotes(name: string, notes: string): boolean + + function SetFriendNotesByIndex(index: number, notes: string): void + + function SetSelectedFriend(index: number): void + + function SetSelectedIgnore(index: number): void + + function SetWhoToUi(whoToUi: boolean): void + + function ShowFriends(): void + + function SortWho(sorting: string): void + } + + function ClearCursor(): void + + function ClearCursorHoveredItem(): void + + function CursorHasItem(): boolean + + function CursorHasMacro(): boolean + + function CursorHasMoney(): boolean + + function CursorHasSpell(): boolean + + function DeleteCursorItem(): void + + function DropCursorMoney(): void + + function EquipCursorItem(slot: number): void + + function GetCursorInfo(): void + + function GetCursorMoney(): number + + function PickupPlayerMoney(amount: number): void + + function ResetCursor(): void + + function SellCursorItem(): void + + function SetCursor(name: string | undefined): boolean + + function SetCursorHoveredItem(item: ItemLocationMixin): void + + function SetCursorHoveredItemTradeItem(enabled: boolean): void + + function SetCursorVirtualItem(itemInfo: string | number, cursorType: UICursorType): void + + namespace C_GameEnvironmentManager { + function GetCurrentEventRealmQueues(): EventRealmQueues + + function GetCurrentGameEnvironment(): GameEnvironment + + function RequestGameEnvironment(gameEnvironment: GameEnvironment): void + } + + function GetGameMessageInfo( + gameErrorIndex: number + ): LuaMultiReturn< + [errorName: string, soundKitID: number | undefined, voiceID: number | undefined] + > + + function NotWhileDeadError(): void + + namespace C_GameModeManager { + function GetCurrentGameMode(): string + } + + namespace C_GamePad { + function AddSDLMapping(platform: ClientPlatformType, mapping: string): boolean + + function ApplyConfigs(): void + + function AxisIndexToConfigName(axisIndex: number): string | undefined + + function ButtonBindingToIndex(bindingName: string): number | undefined + + function ButtonIndexToBinding(buttonIndex: number): string | undefined + + function ButtonIndexToConfigName(buttonIndex: number): string | undefined + + function ClearLedColor(): void + + function DeleteConfig(configID: GamePadConfigID): void + + function GetActiveDeviceID(): number + + function GetAllConfigIDs(): undefined[] + + function GetAllDeviceIDs(): number[] + + function GetCombinedDeviceID(): number + + function GetConfig(configID: GamePadConfigID): GamePadConfig | undefined + + function GetDeviceMappedState( + deviceID: number | undefined + ): GamePadMappedState | undefined + + function GetDeviceRawState(deviceID: number): GamePadRawState | undefined + + function GetLedColor(): ColorMixin + + function GetPowerLevel(deviceID: number | undefined): GamePadPowerLevel + + function IsEnabled(): boolean + + function SetConfig(config: GamePadConfig): void + + function SetLedColor(color: ColorMixin): void + + function SetVibration(vibrationType: string, intensity: number): void + + function StickIndexToConfigName(stickIndex: number): string | undefined + + function StopVibration(): void + } + + namespace C_GameRules { + function GetGameRuleAsFloat(gameRule: number, decimalPlaces: number): number + + function IsGameRuleActive(gameRule: number): boolean + } + + function SetInWorldUIVisibility(visible: boolean): void + + function SetUIVisibility(visible: boolean): void + + namespace C_Garrison { + function AddFollowerToMission( + missionID: number, + followerID: number, + boardIndex: number | undefined + ): boolean + + function GetAutoCombatDamageClassValues(): undefined[] + + function GetAutoMissionBoardState(missionID: number): undefined[] + + function GetAutoMissionEnvironmentEffect( + missionID: number + ): AutoMissionEnvironmentEffect | undefined + + function GetAutoMissionTargetingInfo( + missionID: number, + followerID: number, + casterBoardIndex: number + ): undefined[] + + function GetAutoMissionTargetingInfoForSpell( + missionID: number, + autoCombatSpellID: number, + casterBoardIndex: number + ): undefined[] + + function GetAutoTroops(followerType: number): undefined[] + + function GetCombatLogSpellInfo( + autoCombatSpellID: number + ): AutoCombatSpellInfo | undefined + + function GetCurrentCypherEquipmentLevel(): number + + function GetCurrentGarrTalentTreeFriendshipFactionID(): number | undefined + + function GetCurrentGarrTalentTreeID(): number | undefined + + function GetCyphersToNextEquipmentLevel(): number | undefined + + function GetFollowerAutoCombatSpells( + garrFollowerID: number, + followerLevel: number + ): LuaMultiReturn< + [ + autoCombatSpells: undefined[], + autoCombatAutoAttack: AutoCombatSpellInfo | undefined + ] + > + + function GetFollowerAutoCombatStats( + garrFollowerID: number + ): FollowerAutoCombatStatsInfo | undefined + + function GetFollowerMissionCompleteInfo( + followerID: number + ): FollowerMissionCompleteInfo + + function GetGarrisonPlotsInstancesForMap(uiMapID: number): undefined[] + + function GetGarrisonTalentTreeCurrencyTypes( + garrTalentTreeID: number + ): number | undefined + + function GetGarrisonTalentTreeType(garrTalentTreeID: number): number + + function GetMaxCypherEquipmentLevel(): number + + function GetMissionCompleteEncounters(missionID: number): undefined[] + + function GetMissionDeploymentInfo(missionID: number): MissionDeploymentInfo + + function GetMissionEncounterIconInfo(missionID: number): MissionEncounterIconInfo + + function GetTalentInfo(talentID: number): GarrisonTalentInfo + + function GetTalentPointsSpentInTalentTree(garrTalentTreeID: number): number + + function GetTalentTreeIDsByClassID(garrType: number, classID: number): number[] + + function GetTalentTreeInfo(treeID: number): GarrisonTalentTreeInfo + + function GetTalentTreeResetInfo( + garrTalentTreeID: number + ): LuaMultiReturn<[goldCost: number, currencyCosts: undefined[]]> + + function GetTalentTreeTalentPointResearchInfo( + garrTalentID: number, + researchRank: number, + garrTalentTreeID: number, + talentPointIndex: number, + isRespec: number + ): LuaMultiReturn< + [goldCost: number, currencyCosts: undefined[], durationSecs: number] + > + + function GetTalentUnlockWorldQuest(talentID: number): number + + function HasAdventures(): boolean + + function IsAtGarrisonMissionNPC(): boolean + + function IsEnvironmentCountered(missionID: number): boolean + + function IsFollowerOnCompletedMission(followerID: number): boolean + + function IsTalentConditionMet( + talentID: number + ): LuaMultiReturn<[isMet: boolean, failureString: string | undefined]> + + function RegenerateCombatLog(missionID: number): boolean + + function RemoveFollowerFromMission( + missionID: number, + followerID: number, + boardIndex: number | undefined + ): void + + function RushHealAllFollowers(followerType: number): void + + function RushHealFollower(garrFollowerID: number): void + + function SetAutoCombatSpellFastForward(state: boolean): void + } + + function IsOnGlueScreen(): boolean + + namespace C_GossipInfo { + function CloseGossip(): void + + function ForceGossip(): boolean + + function GetActiveDelveGossip(): GossipOptionUIInfo + + function GetActiveQuests(): undefined[] + + function GetAvailableQuests(): undefined[] + + function GetCompletedOptionDescriptionString(): string | undefined + + function GetCustomGossipDescriptionString(): string | undefined + + function GetFriendshipReputation( + friendshipFactionID: number + ): FriendshipReputationInfo + + function GetFriendshipReputationRanks( + friendshipFactionID: number + ): FriendshipReputationRankInfo + + function GetGossipDelveMapID(): number + + function GetNumActiveQuests(): number + + function GetNumAvailableQuests(): number + + function GetOptionUIWidgetSetsAndTypesByOptionID( + gossipOptionID: number + ): undefined[] | undefined + + function GetOptions(): undefined[] + + function GetPoiForUiMapID(uiMapID: number): number | undefined + + function GetPoiInfo(uiMapID: number, gossipPoiID: number): GossipPoiInfo | undefined + + function GetText(): string + + function RefreshOptions(): void + + function SelectActiveQuest(optionID: number): void + + function SelectAvailableQuest(optionID: number): void + + function SelectOption( + optionID: number, + text: string | undefined, + confirmed: boolean | undefined + ): void + + function SelectOptionByIndex( + optionID: number, + text: string | undefined, + confirmed: boolean | undefined + ): void + } + + namespace C_GuildBank { + function IsGuildBankEnabled(): boolean + } + + namespace C_GuildInfo { + function AreGuildEventsEnabled(): boolean + + function CanEditOfficerNote(): boolean + + function CanSpeakInGuildChat(): boolean + + function CanViewOfficerNote(): boolean + + function Demote(name: string): void + + function Disband(): void + + function GetGuildNewsInfo(index: number): GuildNewsInfo + + function GetGuildRankOrder(guid: string): number + + function GetGuildTabardInfo(unit: UnitToken | undefined): GuildTabardInfo | undefined + + function GuildControlGetRankFlags(rankOrder: number): boolean[] + + function GuildRoster(): void + + function Invite(name: string): void + + function IsEncounterGuildNewsEnabled(): boolean + + function IsGuildOfficer(): boolean + + function IsGuildRankAssignmentAllowed(guid: string, rankOrder: number): boolean + + function IsGuildReputationEnabled(): boolean + + function Leave(): void + + function MemberExistsByName(name: string): boolean + + function Promote(name: string): void + + function QueryGuildMemberRecipes(guildMemberGUID: string, skillLineID: number): void + + function QueryGuildMembersForRecipe( + skillLineID: number, + recipeSpellID: number, + recipeLevel: number | undefined + ): number + + function RemoveFromGuild(guid: string): void + + function SetGuildRankOrder(guid: string, rankOrder: number): void + + function SetLeader(name: string): void + + function SetMOTD(motd: string): void + + function SetNote(guid: string, note: string, isPublic: boolean): void + + function Uninvite(name: string): void + } + + namespace C_HeirloomInfo { + function AreAllCollectionFiltersChecked(): boolean + + function AreAllSourceFiltersChecked(): boolean + + function IsHeirloomSourceValid(source: number): boolean + + function IsUsingDefaultFilters(): boolean + + function SetAllCollectionFilters(checked: boolean): void + + function SetAllSourceFilters(checked: boolean): void + + function SetDefaultFilters(): void + } + + namespace C_ImmersiveInteraction { + function HasImmersiveInteraction(): boolean + } + + namespace C_Navigation { + function GetDistance(): number + + function GetFrame(): unknown | undefined + + function GetNearestPartyMemberToken(): string + + function GetTargetState(): NavigationState + + function HasValidScreenPosition(): boolean + + function WasClampedToScreen(): boolean + } + + namespace C_IncomingSummon { + function HasIncomingSummon(unit: UnitToken): boolean + + function IncomingSummonStatus(unit: UnitToken): SummonStatus + } + + function GetCursorDelta(): LuaMultiReturn<[deltaX: number, deltaY: number]> + + function GetCursorPosition(): LuaMultiReturn<[posX: number, posY: number]> + + function GetMouseButtonClicked(): string + + function GetMouseButtonName(button: unknown): string + + function GetMouseFoci(): unknown[] + + function IsAltKeyDown(): boolean + + function IsControlKeyDown(): boolean + + function IsKeyDown( + keyOrMouseName: string, + excludeBindingState: boolean + ): boolean | undefined + + function IsLeftAltKeyDown(): boolean + + function IsLeftControlKeyDown(): boolean + + function IsLeftMetaKeyDown(): boolean + + function IsLeftShiftKeyDown(): boolean + + function IsMetaKeyDown(): boolean + + function IsModifierKeyDown(): boolean + + function IsMouseButtonDown(button: unknown | undefined): boolean + + function IsRightAltKeyDown(): boolean + + function IsRightControlKeyDown(): boolean + + function IsRightMetaKeyDown(): boolean + + function IsRightShiftKeyDown(): boolean + + function IsShiftKeyDown(): boolean + + function IsUsingGamepad(): boolean + + function IsUsingMouse(): boolean + + function CanChangePlayerDifficulty(): LuaMultiReturn< + [canChange: boolean, notOnCooldown: boolean] + > + + function CanMapChangeDifficulty(mapID: number | undefined): boolean + + function CanShowResetInstances(): boolean + + function GetDifficultyInfo( + difficultyID: number + ): LuaMultiReturn< + [ + name: string, + instanceType: string, + isHeroic: boolean, + isChallengeMode: boolean, + displayHeroic: boolean, + displayMythic: boolean, + toggleDifficultyID: number | undefined, + isLFR: boolean, + minPlayers: number | undefined, + maxPlayers: number | undefined + ] + > + + function GetDungeonDifficultyID(): number + + function GetInstanceBootTimeRemaining(): number + + function GetInstanceInfo(): LuaMultiReturn< + [ + name: string, + instanceType: string, + difficultyID: number, + difficultyName: string, + maxPlayers: number, + dynamicDifficulty: number, + isDynamic: boolean | undefined, + instanceID: number, + instanceGroupSize: number, + lfgDungeonID: number | undefined + ] + > + + function GetInstanceLockTimeRemaining(): LuaMultiReturn< + [ + timeLeft: number, + extending: boolean, + encountersTotal: number, + encountersCompleted: number + ] + > + + function GetInstanceLockTimeRemainingEncounter( + encounterIndex: number + ): LuaMultiReturn< + [encounterName: string, texture: string, isKilled: boolean, ineligible: boolean] + > + + function GetLegacyRaidDifficultyID(): number | undefined + + function GetRaidDifficultyID(): number | undefined + + function IsInInstance(): LuaMultiReturn<[isInInstance: boolean, instanceType: string]> + + function IsLegacyDifficulty(difficultyID: number): boolean | undefined + + function ResetInstances(): void + + function SetDungeonDifficultyID(difficultyID: number): void + + function SetLegacyRaidDifficultyID(difficultyID: number, force: boolean): void + + function SetRaidDifficultyID(difficultyID: number, force: boolean): void + + namespace C_InterfaceFileManifest { + function GetInterfaceArtFiles(): string[] + } + + namespace C_InvasionInfo { + function AreInvasionsAvailable(): boolean + + function GetInvasionForUiMapID(uiMapID: number): number | undefined + + function GetInvasionInfo(invasionID: number): InvasionMapInfo + + function GetInvasionTimeLeft(invasionID: number): number | undefined + } + + namespace C_IslandsQueue { + function CloseIslandsQueueScreen(): void + + function GetIslandDifficultyInfo(): undefined[] + + function GetIslandsMaxGroupSize(): number + + function GetIslandsWeeklyQuestID(): number | undefined + + function QueueForIsland(difficultyID: number): void + + function RequestPreloadRewardData(questId: number): void + } + + namespace C_Item { + function ActionBindsItem(): void + + function BindEnchant(): void + + function CanItemTransmogAppearance( + itemLoc: ItemLocationMixin + ): LuaMultiReturn<[canTransmog: boolean, errorCode: number]> + + function CanScrapItem(itemLoc: ItemLocationMixin): boolean + + function CanViewItemPowers(itemLoc: ItemLocationMixin): boolean + + function ConfirmBindOnUse(): void + + function ConfirmNoRefundOnUse(): void + + function ConfirmOnUse(): void + + function DoesItemContainSpec( + itemInfo: string | number, + classID: number, + specID: number + ): boolean + + function DoesItemExist(emptiableItemLocation: ItemLocationMixin): boolean + + function DoesItemExistByID(itemInfo: string | number): boolean + + function DoesItemMatchBonusTreeReplacement(itemLoc: ItemLocationMixin): boolean + + function DoesItemMatchTargetEnchantingSpell(itemLoc: ItemLocationMixin): boolean + + function DoesItemMatchTrackJump(itemLoc: ItemLocationMixin): boolean + + function DropItemOnUnit(unitGUID: UnitToken): void + + function EndBoundTradeable(type: string): void + + function EndRefund(type: number): void + + function EquipItemByName(itemInfo: string | number, dstSlot: number | undefined): void + + function GetAppliedItemTransmogInfo( + itemLoc: ItemLocationMixin + ): ItemTransmogInfo | undefined + + function GetBaseItemTransmogInfo( + itemLoc: ItemLocationMixin + ): ItemTransmogInfo | undefined + + function GetCurrentItemLevel(itemLocation: ItemLocationMixin): number | undefined + + function GetCurrentItemTransmogInfo( + itemLoc: ItemLocationMixin + ): ItemTransmogInfo | undefined + + function GetDelvePreviewItemLink(itemID: number, context: number): string | undefined + + function GetDetailedItemLevelInfo( + itemInfo: string | number + ): LuaMultiReturn< + [actualItemLevel: number, previewLevel: boolean, sparseItemLevel: number] + > + + function GetFirstTriggeredSpellForItem( + itemID: number, + itemQuality: number + ): number | undefined + + function GetItemChildInfo( + itemInfo: string | number, + slotID: number | undefined + ): number[] + + function GetItemClassInfo(itemClassID: number): string + + function GetItemConversionOutputIcon(itemLoc: ItemLocationMixin): number | undefined + + function GetItemCooldown( + itemInfo: string | number + ): LuaMultiReturn< + [startTimeSeconds: number, durationSeconds: number, enableCooldownTimer: boolean] + > + + function GetItemCount( + itemInfo: string | number, + includeBank: boolean, + includeUses: boolean, + includeReagentBank: boolean + ): number + + function GetItemCreationContext( + itemInfo: string | number + ): LuaMultiReturn<[itemID: number, creationContext: string]> + + function GetItemFamily(itemInfo: string | number): number | undefined + + function GetItemGUID(itemLocation: ItemLocationMixin): string + + function GetItemGem( + hyperlink: string, + index: number + ): LuaMultiReturn<[gemName: string, gemLink: string]> + + function GetItemGemID(itemInfo: string | number, index: number): number + + function GetItemID(itemLocation: ItemLocationMixin): number + + function GetItemIDByGUID(itemGUID: string): number | undefined + + function GetItemIDForItemInfo(itemInfo: string | number): number + + function GetItemIcon(itemLocation: ItemLocationMixin): number | undefined + + function GetItemIconByID(itemInfo: string | number): number | undefined + + function GetItemInfo( + itemInfo: string | number + ): LuaMultiReturn< + [ + itemName: string, + itemLink: string, + itemQuality: ItemQuality, + itemLevel: number, + itemMinLevel: number, + itemType: string, + itemSubType: string, + itemStackCount: number, + itemEquipLoc: string, + itemTexture: number, + sellPrice: number, + classID: number, + subclassID: number, + bindType: number, + expansionID: number, + setID: number | undefined, + isCraftingReagent: boolean + ] + > + + function GetItemInfoInstant( + itemInfo: string | number + ): LuaMultiReturn< + [ + itemID: number, + itemType: string, + itemSubType: string, + itemEquipLoc: string, + icon: number, + classID: number, + subClassID: number + ] + > + + function GetItemInventorySlotInfo(inventorySlot: InventoryType): string + + function GetItemInventorySlotKey(inventorySlot: InventoryType): string + + function GetItemInventoryType( + itemLocation: ItemLocationMixin + ): InventoryType | undefined + + function GetItemInventoryTypeByID( + itemInfo: string | number + ): InventoryType | undefined + + function GetItemLearnTransmogSet(itemInfo: string | number): number | undefined + + function GetItemLink(itemLocation: ItemLocationMixin): string | undefined + + function GetItemLinkByGUID(itemGUID: string): string | undefined + + function GetItemLocation(itemGUID: string): ItemLocationMixin | undefined + + function GetItemMaxStackSize(itemLocation: ItemLocationMixin): number | undefined + + function GetItemMaxStackSizeByID(itemInfo: string | number): number | undefined + + function GetItemName(itemLocation: ItemLocationMixin): string | undefined + + function GetItemNameByID(itemInfo: string | number): string | undefined + + function GetItemNumAddedSockets(itemInfo: string | number): number + + function GetItemNumSockets(itemInfo: string | number): number + + function GetItemQuality(itemLocation: ItemLocationMixin): ItemQuality | undefined + + function GetItemQualityByID(itemInfo: string | number): ItemQuality | undefined + + function GetItemQualityColor( + quality: number + ): LuaMultiReturn< + [colorRGBR: number, colorRGBG: number, colorRGBB: number, qualityString: string] + > + + function GetItemSetInfo(setID: number): string + + function GetItemSpecInfo(itemInfo: string | number): number[] + + function GetItemSpell( + itemInfo: string | number + ): LuaMultiReturn<[spellName: string, spellID: number]> + + function GetItemStatDelta(itemLink1: string, itemLink2: string): {} + + function GetItemStats(itemLink: string): {} + + function GetItemSubClassInfo( + itemClassID: number, + itemSubClassID: number + ): LuaMultiReturn<[subClassName: string, subClassUsesInvType: boolean]> + + function GetItemUniqueness( + itemInfo: string | number + ): LuaMultiReturn<[limitCategory: number, limitMax: number]> + + function GetItemUniquenessByID( + itemInfo: string | number + ): LuaMultiReturn< + [ + isUnique: boolean, + limitCategoryName: string | undefined, + limitCategoryCount: number | undefined, + limitCategoryID: number | undefined + ] + > + + function GetLimitedCurrencyItemInfo( + itemInfo: string | number + ): LuaMultiReturn< + [ + name: string, + icon: number, + quantity: number, + maxQuantity: number, + totalEarned: number + ] + > + + function GetSetBonusesForSpecializationByItemID( + specID: number, + itemID: number + ): number[] + + function GetStackCount(itemLocation: ItemLocationMixin): number + + function IsAnimaItemByID(itemInfo: string | number): boolean + + function IsArtifactPowerItem(itemInfo: string | number): boolean + + function IsBound(itemLocation: ItemLocationMixin): boolean + + function IsBoundToAccountUntilEquip(itemLocation: ItemLocationMixin): boolean + + function IsConsumableItem(itemInfo: string | number): boolean + + function IsCorruptedItem(itemInfo: string | number): boolean | undefined + + function IsCosmeticItem(itemInfo: string | number): boolean | undefined + + function IsCurioItem(itemInfo: string | number): boolean | undefined + + function IsCurrentItem(itemInfo: string | number): boolean + + function IsDressableItemByID(itemInfo: string | number): boolean + + function IsEquippableItem(itemInfo: string | number): boolean + + function IsEquippedItem(itemInfo: string | number): boolean + + function IsEquippedItemType(type: string): boolean + + function IsHarmfulItem(itemInfo: string | number): boolean + + function IsHelpfulItem(itemInfo: string | number): boolean + + function IsItemConduit(itemLoc: ItemLocationMixin): boolean + + function IsItemConvertibleAndValidForPlayer(itemLoc: ItemLocationMixin): boolean + + function IsItemCorrupted(itemLoc: ItemLocationMixin): boolean + + function IsItemCorruptionRelated(itemLoc: ItemLocationMixin): boolean + + function IsItemCorruptionResistant(itemLoc: ItemLocationMixin): boolean + + function IsItemDataCached(itemLocation: ItemLocationMixin): boolean + + function IsItemDataCachedByID(itemInfo: string | number): boolean + + function IsItemGUIDInInventory(itemGUID: string): boolean + + function IsItemInRange( + itemInfo: string | number, + targetToken: string + ): boolean | undefined + + function IsItemKeystoneByID(itemInfo: string | number): boolean + + function IsItemSpecificToPlayerClass(itemInfo: string | number): boolean + + function IsLocked(itemLocation: ItemLocationMixin): boolean + + function IsUsableItem( + itemInfo: string | number + ): LuaMultiReturn<[usable: boolean, noMana: boolean]> + + function ItemHasRange(itemInfo: string | number): boolean + + function LockItem(itemLocation: ItemLocationMixin): void + + function LockItemByGUID(itemGUID: string): void + + function PickupItem(itemInfo: string | number): void + + function ReplaceEnchant(): void + + function ReplaceTradeEnchant(): void + + function ReplaceTradeskillEnchant(): void + + function RequestLoadItemData(itemLocation: ItemLocationMixin): void + + function RequestLoadItemDataByID(itemInfo: string | number): void + + function UnlockItem(itemLocation: ItemLocationMixin): void + + function UnlockItemByGUID(itemGUID: string): void + + function UseItemByName(itemInfo: string | number, target: string | undefined): void + } + + namespace C_ItemInteraction { + function ClearPendingItem(): void + + function CloseUI(): void + + function GetChargeInfo(): ItemInteractionChargeInfo + + function GetItemConversionCurrencyCost( + item: ItemLocationMixin + ): ConversionCurrencyCost + + function GetItemInteractionInfo(): ItemInteractionFrameInfo | undefined + + function GetItemInteractionSpellId(): number + + function InitializeFrame(): void + + function PerformItemInteraction(): void + + function Reset(): void + + function SetPendingItem(item: ItemLocationMixin | undefined): boolean + } + + namespace C_ItemSocketInfo { + function CompleteSocketing(): void + } + + namespace C_ItemUpgrade { + function CanUpgradeItem(baseItem: ItemLocationMixin): boolean + + function ClearItemUpgrade(): void + + function CloseItemUpgrade(): void + + function GetHighWatermarkForItem( + itemInfo: string | number + ): LuaMultiReturn<[characterHighWatermark: number, accountHighWatermark: number]> + + function GetHighWatermarkForSlot( + itemRedundancySlot: number + ): LuaMultiReturn<[characterHighWatermark: number, accountHighWatermark: number]> + + function GetHighWatermarkSlotForItem(itemInfo: string | number): number + + function GetItemHyperlink(): string + + function GetItemUpgradeCurrentLevel(): LuaMultiReturn< + [itemLevel: number, isPvpItemLevel: boolean] + > + + function GetItemUpgradeEffect( + effectIndex: number, + numUpgradeLevels: number | undefined + ): LuaMultiReturn<[outBaseEffect: string, outUpgradedEffect: string]> + + function GetItemUpgradeItemInfo(): ItemUpgradeItemInfo + + function GetItemUpgradePvpItemLevelDeltaValues( + numUpgradeLevels: number + ): LuaMultiReturn<[currentPvPItemLevel: number, upgradedPvPItemLevel: number]> + + function GetNumItemUpgradeEffects(): number + + function IsItemBound(): boolean + + function SetItemUpgradeFromCursorItem(): void + + function SetItemUpgradeFromLocation(itemToSet: ItemLocationMixin): void + + function UpgradeItem(numUpgrades: number): void + } + + namespace C_KeyBindings { + function GetBindingIndex(action: string): number | undefined + + function GetCustomBindingType(bindingIndex: number): CustomBindingType | undefined + } + + namespace C_LFGInfo { + function CanPlayerUseGroupFinder(): LuaMultiReturn< + [canUse: boolean, failureReason: string] + > + + function CanPlayerUseLFD(): LuaMultiReturn<[canUse: boolean, failureReason: string]> + + function CanPlayerUseLFR(): LuaMultiReturn<[canUse: boolean, failureReason: string]> + + function CanPlayerUsePVP(): LuaMultiReturn<[canUse: boolean, failureReason: string]> + + function CanPlayerUsePremadeGroup(): LuaMultiReturn< + [canUse: boolean, failureReason: string] + > + + function CanPlayerUseScenarioFinder(): LuaMultiReturn< + [canUse: boolean, failureReason: string] + > + + function ConfirmLfgExpandSearch(): void + + function GetAllEntriesForCategory(category: number): number[] + + function GetDungeonInfo(lfgDungeonID: number): LFGDungeonInfo + + function GetLFDLockStates(): undefined[] + + function GetRoleCheckDifficultyDetails(): LuaMultiReturn< + [maxLevel: number | undefined, isLevelReduced: boolean] + > + + function HideNameFromUI(dungeonID: number): boolean + + function IsGroupFinderEnabled(): boolean + + function IsInLFGFollowerDungeon(): boolean + + function IsLFDEnabled(): boolean + + function IsLFGFollowerDungeon(dungeonID: number): boolean + + function IsLFREnabled(): boolean + + function IsPremadeGroupEnabled(): boolean + } + + namespace C_LFGList { + function CanActiveEntryUseAutoAccept(): boolean + + function CanCreateQuestGroup(questID: number): boolean + + function CanCreateScenarioGroup(scenarioID: number): boolean + + function ClearApplicationTextFields(): void + + function ClearCreationTextFields(): void + + function ClearSearchTextFields(): void + + function CopyActiveEntryInfoToCreationFields(): void + + function CreateScenarioListing( + activityID: number, + itemLevel: number, + autoAccept: boolean, + privateGroup: boolean, + scenarioID: number + ): boolean + + function DoesEntryTitleMatchPrebuiltTitle( + activityID: number, + groupID: number, + playstyle: LFGEntryPlaystyle | undefined + ): boolean + + function GetActiveEntryInfo(): LfgEntryData + + function GetActivityFullName( + activityID: number, + questID: number | undefined, + showWarmode: boolean | undefined + ): string + + function GetActivityGroupInfo( + groupID: number + ): LuaMultiReturn<[name: string, orderIndex: number]> + + function GetActivityInfoTable( + activityID: number, + questID: number | undefined, + showWarmode: boolean | undefined + ): GroupFinderActivityInfo + + function GetAdvancedFilter(): AdvancedFilterOptions + + function GetApplicantBestDungeonScore( + localID: number, + applicantIndex: number + ): BestDungeonScoreMapInfo + + function GetApplicantDungeonScoreForListing( + localID: number, + applicantIndex: number, + activityID: number + ): BestDungeonScoreMapInfo + + function GetApplicantInfo(applicantID: number): LfgApplicantData + + function GetApplicantPvpRatingInfoForListing( + localID: number, + applicantIndex: number, + activityID: number + ): PvpRatingInfo + + function GetFilteredSearchResults(): LuaMultiReturn< + [totalResultsFound: number, filteredResults: number[]] + > + + function GetKeystoneForActivity(activityID: number): number + + function GetLfgCategoryInfo(categoryID: number): LfgCategoryData + + function GetOwnedKeystoneActivityAndGroupAndLevel( + getTimewalking: boolean + ): LuaMultiReturn<[activityID: number, groupID: number, keystoneLevel: number]> + + function GetPlaystyleString( + playstyle: LFGEntryPlaystyle, + activityInfo: GroupFinderActivityInfo + ): string + + function GetSearchResultInfo(searchResultID: number): LfgSearchResultData + + function GetSearchResults(): LuaMultiReturn< + [totalResultsFound: number, results: number[]] + > + + function HasActiveEntryInfo(): boolean + + function HasSearchResultInfo(searchResultID: number): boolean + + function IsPlayerAuthenticatedForLFG(activityID: number | undefined): boolean + + function SaveAdvancedFilter(options: AdvancedFilterOptions): void + + function Search( + categoryID: number, + filter: number, + preferredFilters: number, + languageFilter: WowLocale | undefined, + searchCrossFactionListings: boolean | undefined, + advancedFilter: AdvancedFilterOptions | undefined + ): void + + function SetEntryTitle( + activityID: number, + groupID: number, + playstyle: LFGEntryPlaystyle | undefined + ): void + + function SetSearchToActivity(activityID: number): void + + function SetSearchToQuestID(questID: number): void + + function SetSearchToScenarioID(scenarioID: number): void + + function ValidateRequiredDungeonScore(dungeonScore: number): boolean + + function ValidateRequiredPvpRatingForActivity( + activityID: number, + rating: number + ): boolean + } + + namespace C_LegendaryCrafting { + function CloseRuneforgeInteraction(): void + + function CraftRuneforgeLegendary( + description: RuneforgeLegendaryCraftDescription + ): void + + function GetRuneforgeItemPreviewInfo( + baseItem: ItemLocationMixin, + runeforgePowerID: number | undefined, + modifiers: number[] | undefined + ): RuneforgeItemPreviewInfo | undefined + + function GetRuneforgeLegendaryComponentInfo( + runeforgeLegendary: ItemLocationMixin + ): RuneforgeLegendaryComponentInfo + + function GetRuneforgeLegendaryCost(baseItem: ItemLocationMixin): undefined[] + + function GetRuneforgeLegendaryCraftSpellID(): number + + function GetRuneforgeLegendaryCurrencies(): number[] + + function GetRuneforgeLegendaryUpgradeCost( + runeforgeLegendary: ItemLocationMixin, + upgradeItem: ItemLocationMixin + ): undefined[] + + function GetRuneforgeModifierInfo( + baseItem: ItemLocationMixin, + powerID: number | undefined, + addedModifierIndex: number, + modifiers: number[] + ): LuaMultiReturn<[name: string, description: string[]]> + + function GetRuneforgeModifiers(): number[] + + function GetRuneforgePowerInfo(runeforgePowerID: number): RuneforgePower + + function GetRuneforgePowerSlots(runeforgePowerID: number): string[] + + function GetRuneforgePowers( + baseItem: ItemLocationMixin | undefined, + filter: RuneforgePowerFilter | undefined + ): LuaMultiReturn< + [primaryRuneforgePowerIDs: number[], otherRuneforgePowerIDs: number[]] + > + + function GetRuneforgePowersByClassSpecAndCovenant( + classID: number | undefined, + specID: number | undefined, + covenantID: number | undefined, + filter: RuneforgePowerFilter | undefined + ): number[] + + function IsRuneforgeLegendary(item: ItemLocationMixin): boolean + + function IsRuneforgeLegendaryMaxLevel(runeforgeLegendary: ItemLocationMixin): boolean + + function IsUpgradeItemValidForRuneforgeLegendary( + runeforgeLegendary: ItemLocationMixin, + upgradeItem: ItemLocationMixin + ): boolean + + function IsValidRuneforgeBaseItem(baseItem: ItemLocationMixin): boolean + + function MakeRuneforgeCraftDescription( + baseItem: ItemLocationMixin, + runeforgePowerID: number, + modifiers: number[] + ): RuneforgeLegendaryCraftDescription + + function UpgradeRuneforgeLegendary( + runeforgeLegendary: ItemLocationMixin, + upgradeItem: ItemLocationMixin + ): void + } + + namespace C_LevelLink { + function IsActionLocked(actionID: number): boolean + + function IsSpellLocked(spellID: number): boolean + } + + namespace C_LevelSquish { + function ConvertFollowerLevel(level: number, maxFollowerLevel: number): number + + function ConvertPlayerLevel(level: number): number + } + + namespace C_LiveEvent { + function OnLiveEventBannerClicked(timerunningSeasonID: number): void + + function OnLiveEventPopupClicked(timerunningSeasonID: number): void + } + + function GetAvailableLocaleInfo(ignoreLocaleRestrictions: boolean): undefined[] + + function GetAvailableLocales(ignoreLocaleRestrictions: boolean): string + + function GetCurrentRegion(): number + + function GetLocale(): string + + function GetOSLocale(): string + + function BreakUpLargeNumbers(largeNumber: number, natural: boolean): string + + function CaseAccentInsensitiveParse(name: string): string + + function DeclineName( + name: string, + gender: number | undefined, + declensionSet: number + ): string + + function GetNumDeclensionSets(name: string, gender: number | undefined): number + + function IsEuropeanNumbers(): boolean + + function LocalizedClassList(isFemale: boolean): {} + + function SetEuropeanNumbers(enabled: boolean): void + + namespace C_Loot { + function GetLootRollDuration(rollID: number): number | undefined + + function IsLegacyLootModeEnabled(): boolean + } + + namespace C_LootHistory { + function GetAllEncounterInfos(): undefined[] + + function GetInfoForEncounter(encounterID: number): EncounterLootInfo | undefined + + function GetLootHistoryTime(): number + + function GetSortedDropsForEncounter(encounterID: number): undefined[] | undefined + + function GetSortedInfoForDrop( + encounterID: number, + lootListID: number + ): EncounterLootDropInfo | undefined + } + + namespace C_LootJournal { + function GetItemSetItems(setID: number): undefined[] + + function GetItemSets( + classID: number | undefined, + specID: number | undefined + ): undefined[] + } + + namespace C_LoreText { + function RequestLoreTextForCampaignID(campaignID: number): void + } + + namespace C_LossOfControl { + function GetActiveLossOfControlData(index: number): LossOfControlData | undefined + + function GetActiveLossOfControlDataByUnit( + unitToken: UnitToken, + index: number + ): LossOfControlData | undefined + + function GetActiveLossOfControlDataCount(): number + + function GetActiveLossOfControlDataCountByUnit(unitToken: UnitToken): number + } + + namespace C_MacOptions { + function AreOSShortcutsDisabled(): LuaMultiReturn< + [osShortcutsDisabledCVar: boolean | undefined, osShortcutsDisabled: boolean] + > + + function GetGameBundleName(): string + + function HasNewStyleInputMonitoring(): boolean + + function IsInputMonitoringEnabled(): boolean + + function IsMicrophoneEnabled(): boolean + + function IsUniversalAccessEnabled(): boolean + + function OpenInputMonitoring(): void + + function OpenMicrophoneRequestDialogue(): void + + function OpenUniversalAccess(): void + + function SetOSShortcutsDisabled(disable: boolean): void + } + + namespace C_Mail { + function CanCheckInbox(): LuaMultiReturn< + [canCheckInbox: boolean, secondsUntilAllowed: number] + > + + function GetCraftingOrderMailInfo( + inboxIndex: number + ): CraftingOrderMailInfo | undefined + + function HasInboxMoney(inboxIndex: number): boolean + + function IsCommandPending(): boolean + + function SetOpeningAll(openingAll: boolean): void + } + + namespace C_MajorFactions { + function GetCovenantIDForMajorFaction(majorFactionID: number): number + + function GetCurrentRenownLevel(majorFactionID: number): number + + function GetMajorFactionData(majorFactionID: number): MajorFactionData | undefined + + function GetMajorFactionIDs(expansionID: number | undefined): number[] + + function GetMajorFactionRenownInfo( + majorFactionID: number + ): MajorFactionRenownInfo | undefined + + function GetRenownLevels(majorFactionID: number): undefined[] + + function GetRenownNPCFactionID(): number + + function GetRenownRewardsForLevel( + majorFactionID: number, + renownLevel: number + ): undefined[] + + function HasMaximumRenown(majorFactionID: number): boolean + + function IsWeeklyRenownCapped(majorFactionID: number): boolean + } + + namespace C_Map { + function CanSetUserWaypointOnMap(uiMapID: number): boolean + + function ClearUserWaypoint(): void + + function CloseWorldMapInteraction(): void + + function GetAreaInfo(areaID: number): string + + function GetBestMapForUnit(unitToken: UnitToken): number | undefined + + function GetBountySetMaps(bountySetID: number): number[] + + function GetFallbackWorldMapID(): number + + function GetMapArtBackgroundAtlas(uiMapID: number): string + + function GetMapArtHelpTextPosition(uiMapID: number): MapCanvasPosition + + function GetMapArtID(uiMapID: number): number + + function GetMapArtLayerTextures(uiMapID: number, layerIndex: number): number[] + + function GetMapArtLayers(uiMapID: number): undefined[] + + function GetMapBannersForMap(uiMapID: number): undefined[] + + function GetMapChildrenInfo( + uiMapID: number, + mapType: UIMapType | undefined, + allDescendants: boolean | undefined + ): undefined[] + + function GetMapDisplayInfo(uiMapID: number): boolean + + function GetMapGroupID(uiMapID: number): number + + function GetMapGroupMembersInfo(uiMapGroupID: number): undefined[] + + function GetMapHighlightInfoAtPosition( + uiMapID: number, + x: number, + y: number + ): LuaMultiReturn< + [ + fileDataID: number, + atlasID: string, + texturePercentageX: number, + texturePercentageY: number, + textureX: number, + textureY: number, + scrollChildX: number, + scrollChildY: number + ] + > + + function GetMapHighlightPulseInfo( + uiMapID: number + ): LuaMultiReturn< + [ + fileDataID: number, + atlasID: string, + texturePercentageX: number, + texturePercentageY: number, + textureX: number, + textureY: number, + scrollChildX: number, + scrollChildY: number + ] + > + + function GetMapInfo(uiMapID: number): UiMapDetails + + function GetMapInfoAtPosition( + uiMapID: number, + x: number, + y: number, + ignoreZoneMapPositionData: boolean | undefined + ): UiMapDetails + + function GetMapLevels( + uiMapID: number + ): LuaMultiReturn< + [ + playerMinLevel: number, + playerMaxLevel: number, + petMinLevel: number, + petMaxLevel: number + ] + > + + function GetMapLinksForMap(uiMapID: number): undefined[] + + function GetMapPosFromWorldPos( + continentID: number, + worldPosition: Vector2DMixin, + overrideUiMapID: number | undefined + ): LuaMultiReturn<[uiMapID: number, mapPosition: Vector2DMixin]> + + function GetMapRectOnMap( + uiMapID: number, + topUiMapID: number + ): LuaMultiReturn<[minX: number, maxX: number, minY: number, maxY: number]> + + function GetMapWorldSize( + uiMapID: number + ): LuaMultiReturn<[width: number, height: number]> + + function GetPlayerMapPosition( + uiMapID: number, + unitToken: UnitToken + ): Vector2DMixin | undefined + + function GetUserWaypoint(): UiMapPoint + + function GetUserWaypointFromHyperlink(hyperlink: string): UiMapPoint + + function GetUserWaypointHyperlink(): string + + function GetUserWaypointPositionForMap(uiMapID: number): Vector2DMixin + + function GetWorldPosFromMapPos( + uiMapID: number, + mapPosition: Vector2DMixin + ): LuaMultiReturn<[continentID: number, worldPosition: Vector2DMixin]> + + function HasUserWaypoint(): boolean + + function IsCityMap(uiMapID: number): boolean + + function IsMapValidForNavBarDropdown(uiMapID: number): boolean + + function MapHasArt(uiMapID: number): boolean + + function RequestPreloadMap(uiMapID: number): void + + function SetUserWaypoint(point: UiMapPoint): void + } + + namespace C_MapExplorationInfo { + function GetExploredAreaIDsAtPosition( + uiMapID: number, + normalizedPosition: Vector2DMixin + ): number[] | undefined + + function GetExploredMapTextures(uiMapID: number): undefined[] + } + + namespace C_MerchantFrame { + function GetBuybackItemID(buybackSlotIndex: number): number + + function GetNumJunkItems(): number + + function IsMerchantItemRefundable(index: number): boolean + + function IsSellAllJunkEnabled(): boolean + + function SellAllJunkItems(): void + } + + namespace C_Minimap { + function CanTrackBattlePets(): boolean + + function ClearAllTracking(): void + + function GetDefaultTrackingValue(filterType: MinimapTrackingFilter): boolean + + function GetDrawGroundTextures(): boolean + + function GetNumQuestPOIWorldEffects(): number + + function GetNumTrackingTypes(): number + + function GetObjectIconTextureCoords( + index: number | undefined + ): LuaMultiReturn< + [ + textureCoordsX: number, + textureCoordsY: number, + textureCoordsZ: number, + textureCoordsW: number + ] + > + + function GetPOITextureCoords( + index: number | undefined + ): LuaMultiReturn< + [ + textureCoordsX: number, + textureCoordsY: number, + textureCoordsZ: number, + textureCoordsW: number + ] + > + + function GetTrackingFilter(spellIndex: number): MinimapScriptTrackingFilter + + function GetTrackingInfo(spellIndex: number): MinimapScriptTrackingInfo | undefined + + function GetUiMapID(): number | undefined + + function GetViewRadius(): number + + function IsFilteredOut(filterType: MinimapTrackingFilter): boolean + + function IsRotateMinimapIgnored(): boolean + + function IsTrackingAccountCompletedQuests(): boolean + + function IsTrackingBattlePets(): boolean + + function IsTrackingHiddenQuests(): boolean + + function SetDrawGroundTextures(draw: boolean): void + + function SetIgnoreRotateMinimap(ignore: boolean): void + + function SetTracking(index: number, on: boolean): void + + function ShouldUseHybridMinimap(): boolean + } + + function GetMirrorTimerInfo( + timerIndex: number + ): LuaMultiReturn< + [ + name: string, + startValue: number, + maxValue: number, + scale: number, + paused: number, + label: string, + spellID: number + ] + > + + function GetMirrorTimerProgress(timerName: string): number | undefined + + namespace C_MountJournal { + function ApplyMountEquipment(itemLocation: ItemLocationMixin): boolean + + function AreMountEquipmentEffectsSuppressed(): boolean + + function ClearFanfare(mountID: number): void + + function ClearRecentFanfares(): void + + function Dismiss(): void + + function GetAllCreatureDisplayIDsForMountID(mountID: number): number[] + + function GetAppliedMountEquipmentID(): number | undefined + + function GetCollectedDragonridingMounts(): number[] + + function GetCollectedFilterSetting(filterIndex: number): boolean + + function GetDisplayedMountAllCreatureDisplayInfo(mountIndex: number): undefined[] + + function GetDisplayedMountID(displayIndex: number): number + + function GetDisplayedMountInfo( + displayIndex: number + ): LuaMultiReturn< + [ + name: string, + spellID: number, + icon: number, + isActive: boolean, + isUsable: boolean, + sourceType: number, + isFavorite: boolean, + isFactionSpecific: boolean, + faction: number | undefined, + shouldHideOnChar: boolean, + isCollected: boolean, + mountID: number, + isSteadyFlight: boolean + ] + > + + function GetDisplayedMountInfoExtra( + mountIndex: number + ): LuaMultiReturn< + [ + creatureDisplayInfoID: number | undefined, + description: string, + source: string, + isSelfMount: boolean, + mountTypeID: number, + uiModelSceneID: number, + animID: number, + spellVisualKitID: number, + disablePlayerMountPreview: boolean + ] + > + + function GetDynamicFlightModeSpellID(): number + + function GetIsFavorite( + mountIndex: number + ): LuaMultiReturn<[isFavorite: boolean, canSetFavorite: boolean]> + + function GetMountAllCreatureDisplayInfoByID(mountID: number): undefined[] + + function GetMountEquipmentUnlockLevel(): number + + function GetMountFromItem(itemID: number): number | undefined + + function GetMountFromSpell(spellID: number): number | undefined + + function GetMountIDs(): number[] + + function GetMountInfoByID( + mountID: number + ): LuaMultiReturn< + [ + name: string, + spellID: number, + icon: number, + isActive: boolean, + isUsable: boolean, + sourceType: number, + isFavorite: boolean, + isFactionSpecific: boolean, + faction: number | undefined, + shouldHideOnChar: boolean, + isCollected: boolean, + mountID: number, + isSteadyFlight: boolean + ] + > + + function GetMountInfoExtraByID( + mountID: number + ): LuaMultiReturn< + [ + creatureDisplayInfoID: number | undefined, + description: string, + source: string, + isSelfMount: boolean, + mountTypeID: number, + uiModelSceneID: number, + animID: number, + spellVisualKitID: number, + disablePlayerMountPreview: boolean + ] + > + + function GetMountLink(spellID: number): string | undefined + + function GetMountUsabilityByID( + mountID: number, + checkIndoors: boolean + ): LuaMultiReturn<[isUsable: boolean, useError: string | undefined]> + + function GetNumDisplayedMounts(): number + + function GetNumMounts(): number + + function GetNumMountsNeedingFanfare(): number + + function IsDragonridingUnlocked(): boolean + + function IsItemMountEquipment(itemLocation: ItemLocationMixin): boolean + + function IsMountEquipmentApplied(): boolean + + function IsSourceChecked(filterIndex: number): boolean + + function IsTypeChecked(filterIndex: number): boolean + + function IsUsingDefaultFilters(): boolean + + function IsValidSourceFilter(filterIndex: number): boolean + + function IsValidTypeFilter(filterIndex: number): boolean + + function NeedsFanfare(mountID: number): boolean + + function Pickup(displayIndex: number): void + + function PickupDynamicFlightMode(): void + + function SetAllSourceFilters(isChecked: boolean): void + + function SetAllTypeFilters(isChecked: boolean): void + + function SetCollectedFilterSetting(filterIndex: number, isChecked: boolean): void + + function SetDefaultFilters(): void + + function SetIsFavorite(mountIndex: number, isFavorite: boolean): void + + function SetSearch(searchValue: string): void + + function SetSourceFilter(filterIndex: number, isChecked: boolean): void + + function SetTypeFilter(filterIndex: number, isChecked: boolean): void + + function SummonByID(mountID: number): void + + function SwapDynamicFlightMode(): void + } + + function CancelPreloadingMovie(movieId: number): void + + function GetMovieDownloadProgress( + movieId: number + ): LuaMultiReturn<[inProgress: boolean, downloaded: number, total: number]> + + function IsMovieLocal(movieId: number): boolean + + function IsMoviePlayable(movieId: number): boolean + + function IsMovieReadable(movieId: number): boolean + + function PreloadMovie(movieId: number): void + + namespace C_MythicPlus { + function GetCurrentAffixes(): undefined[] + + function GetCurrentSeason(): number + + function GetCurrentSeasonValues(): LuaMultiReturn< + [displaySeasonID: number, milestoneSeasonID: number, rewardSeasonID: number] + > + + function GetCurrentUIDisplaySeason(): number | undefined + + function GetEndOfRunGearSequenceLevel(keystoneLevel: number): number | undefined + + function GetLastWeeklyBestInformation(): LuaMultiReturn< + [challengeMapId: number, level: number] + > + + function GetOwnedKeystoneChallengeMapID(): number + + function GetOwnedKeystoneLevel(): number + + function GetOwnedKeystoneMapID(): number + + function GetRewardLevelForDifficultyLevel( + difficultyLevel: number + ): LuaMultiReturn<[weeklyRewardLevel: number, endOfRunRewardLevel: number]> + + function GetRewardLevelFromKeystoneLevel(keystoneLevel: number): number | undefined + + function GetRunHistory( + includePreviousWeeks: boolean, + includeIncompleteRuns: boolean + ): undefined[] + + function GetSeasonBestAffixScoreInfoForMap( + mapChallengeModeID: number + ): LuaMultiReturn<[affixScores: undefined[], bestOverAllScore: number]> + + function GetSeasonBestForMap( + mapChallengeModeID: number + ): LuaMultiReturn< + [ + intimeInfo: MapSeasonBestInfo | undefined, + overtimeInfo: MapSeasonBestInfo | undefined + ] + > + + function GetSeasonBestMythicRatingFromThisExpansion(): LuaMultiReturn< + [bestSeasonScore: number, bestSeason: number] + > + + function GetWeeklyBestForMap( + mapChallengeModeID: number + ): LuaMultiReturn< + [ + durationSec: number, + level: number, + completionDate: MythicPlusDate, + affixIDs: number[], + members: undefined[], + dungeonScore: number + ] + > + + function GetWeeklyChestRewardLevel(): LuaMultiReturn< + [ + currentWeekBestLevel: number, + weeklyRewardLevel: number, + nextDifficultyWeeklyRewardLevel: number, + nextBestLevel: number + ] + > + + function IsMythicPlusActive(): boolean + + function IsWeeklyRewardAvailable(): boolean + + function RequestCurrentAffixes(): void + + function RequestMapInfo(): void + + function RequestRewards(): void + } + + namespace C_NewItems { + function ClearAll(): void + + function IsNewItem(containerIndex: BagIndex, slotIndex: number): boolean + + function RemoveNewItem(containerIndex: BagIndex, slotIndex: number): void + } + + function CopyToClipboard(text: string, removeMarkup: boolean): number + + function GetTimePreciseSec(): number + + namespace C_PaperDollInfo { + function CanAutoEquipCursorItem(): boolean + + function CanCursorCanGoInSlot(slotIndex: number): boolean + + function GetArmorEffectiveness(armor: number, attackerLevel: number): number + + function GetArmorEffectivenessAgainstTarget(armor: number): number | undefined + + function GetInspectAzeriteItemEmpoweredChoices( + unit: UnitToken, + equipmentSlotIndex: number + ): number[] + + function GetInspectGuildInfo( + unitString: string + ): LuaMultiReturn< + [ + achievementPoints: number, + numMembers: number, + guildName: string, + realmName: string + ] + > + + function GetInspectItemLevel(unit: UnitToken): number + + function GetInspectRatedBGBlitzData(): InspectPVPData + + function GetInspectRatedSoloShuffleData(): InspectPVPData + + function GetMinItemLevel(): number | undefined + + function GetStaggerPercentage( + unit: UnitToken + ): LuaMultiReturn<[stagger: number, staggerAgainstTarget: number | undefined]> + + function OffhandHasShield(): boolean + + function OffhandHasWeapon(): boolean + } + + function GetSecondsUntilParentalControlsKick(): number | undefined + + namespace C_PartyInfo { + function AllowedToDoPartyConversion(toRaid: boolean): boolean + + function CanFormCrossFactionParties(): boolean + + function CanInvite(): boolean + + function ConfirmConvertToRaid(): void + + function ConfirmInviteTravelPass(targetName: string, targetGUID: string): void + + function ConfirmInviteUnit(targetName: string): void + + function ConfirmLeaveParty(category: number | undefined): void + + function ConfirmRequestInviteFromUnit( + targetName: string, + tank: boolean | undefined, + healer: boolean | undefined, + dps: boolean | undefined + ): void + + function ConvertToParty(): void + + function ConvertToRaid(): void + + function DelveTeleportOut(): void + + function DoCountdown(seconds: number): boolean + + function GetActiveCategories(): number[] + + function GetInviteConfirmationInvalidQueues(inviteGUID: string): undefined[] + + function GetInviteReferralInfo( + inviteGUID: string + ): LuaMultiReturn< + [ + outReferredByGuid: string, + outReferredByName: string, + outRelationType: PartyRequestJoinRelation, + outIsQuickJoin: boolean, + outClubId: string + ] + > + + function GetMinItemLevel( + avgItemLevelCategory: AvgItemLevelCategories + ): LuaMultiReturn<[minItemLevel: number, playerNameWithLowestItemLevel: string]> + + function GetMinLevel(category: number | undefined): number + + function GetRestrictPings(): RestrictPingsTo + + function InviteUnit(targetName: string): void + + function IsCrossFactionParty(category: number | undefined): boolean + + function IsDelveComplete(): boolean + + function IsDelveInProgress(): boolean + + function IsPartyFull(category: number | undefined): boolean + + function IsPartyInJailersTower(): boolean + + function IsPartyWalkIn(): boolean + + function LeaveParty(category: number | undefined): void + + function RequestInviteFromUnit( + targetName: string, + tank: boolean | undefined, + healer: boolean | undefined, + dps: boolean | undefined + ): void + + function SetRestrictPings(restrictTo: RestrictPingsTo): void + } + + namespace C_PartyPose { + function ExtraAction(partyPoseID: number): void + + function GetPartyPoseInfoByID(mapID: number): PartyPoseInfo + + function GetPartyPoseInfoByMapID(mapID: number): PartyPoseInfo + + function HasExtraAction(partyPoseID: number): boolean + } + + function GetAddOnCPUUsage(name: string | number): number + + function GetAddOnMemoryUsage(name: string | number): number + + function GetFrameCPUUsage( + frame: unknown, + includeChildren: boolean + ): LuaMultiReturn<[call_time: number, call_count: number]> + + function ResetCPUUsage(): void + + function UpdateAddOnCPUUsage(): void + + function UpdateAddOnMemoryUsage(): void + + namespace C_PerksActivities { + function AddTrackedPerksActivity(perksActivityID: number): void + + function ClearPerksActivitiesPendingCompletion(): void + + function GetAllPerksActivityTags(): PerksActivityTags + + function GetPerksActivitiesInfo(): PerksActivitiesInfo + + function GetPerksActivitiesPendingCompletion(): PerksActivitiesPending + + function GetPerksActivityChatLink(perksActivityID: number): string + + function GetPerksActivityInfo(perksActivityID: number): PerksActivityInfo | undefined + + function GetPerksUIThemePrefix(): string + + function GetTrackedPerksActivities(): PerksActivitiesTracked + + function RemoveTrackedPerksActivity(perksActivityID: number): void + } + + namespace C_PerksProgram { + function ClearFrozenPerksVendorItem(): void + + function CloseInteraction(): void + + function GetAvailableCategoryIDs(): number[] + + function GetAvailableVendorItemIDs(): number[] + + function GetCategoryInfo(categoryID: number): PerksVendorCategoryInfo + + function GetCurrencyAmount(): number + + function GetDraggedPerksVendorItem(): number + + function GetFrozenPerksVendorItemInfo(): PerksVendorItemInfo + + function GetPendingChestRewards(): undefined[] + + function GetPerksProgramItemDisplayInfo(id: number): PerksProgramItemDisplayInfo + + function GetTimeRemaining(vendorItemID: number): number + + function GetVendorItemInfo(vendorItemID: number): PerksVendorItemInfo + + function GetVendorItemInfoRefundTimeLeft(vendorItemID: number): number + + function IsAttackAnimToggleEnabled(): boolean + + function IsFrozenPerksVendorItem(perksVendorItemID: number): boolean + + function IsMountSpecialAnimToggleEnabled(): boolean + + function ItemSelectedTelemetry(perksVendorItemID: number): void + + function PickupPerksVendorItem(perksVendorItemID: number): void + + function RequestPendingChestRewards(): void + + function RequestPurchase(perksVendorItemID: number): void + + function RequestRefund(perksVendorItemID: number): void + + function ResetHeldItemDragAndDrop(): void + + function SetFrozenPerksVendorItem(): void + } + + namespace C_PetBattles { + function GetBreedQuality( + petOwner: BattlePetOwner, + slot: number + ): BattlePetBreedQuality + + function GetIcon(petOwner: BattlePetOwner, slot: number): number + + function GetName( + petOwner: BattlePetOwner, + slot: number + ): LuaMultiReturn<[customName: string, speciesName: string]> + + function IsPlayerNPC(): boolean + + function IsWildBattle(): boolean + } + + namespace C_PetInfo { + function GetPetTamersForMap(uiMapID: number): undefined[] + + function GetSpellForPetAction(actionID: number): number | undefined + + function IsPetActionPassive(actionID: number): boolean + + function PetAbandon(petNumber: number | undefined): void + + function PetRename( + name: string, + petNumber: number | undefined, + declensions: string[] | undefined + ): void + } + + namespace C_PetJournal { + function ClearHoveredBattlePet(): void + + function GetDisplayIDByIndex(speciesID: number, index: number): number | undefined + + function GetDisplayProbabilityByIndex( + speciesID: number, + index: number + ): number | undefined + + function GetNumDisplays(speciesID: number): number | undefined + + function GetNumPetsInJournal( + creatureID: number + ): LuaMultiReturn<[maxAllowed: number, numPets: number]> + + function GetPetAbilityInfo( + abilityID: number + ): LuaMultiReturn<[name: string, icon: number, petType: number]> + + function GetPetAbilityListTable(speciesID: number): undefined[] + + function GetPetInfoTableByPetID(petID: string): PetJournalPetInfo + + function GetPetLoadOutInfo( + slot: number + ): LuaMultiReturn< + [ + petID: string | undefined, + ability1ID: number, + ability2ID: number, + ability3ID: number, + locked: boolean + ] + > + + function GetPetSummonInfo( + battlePetGUID: string + ): LuaMultiReturn<[isSummonable: boolean, error: PetJournalError, errorText: string]> + + function HasFavoritePets(): boolean + + function IsUsingDefaultFilters(): boolean + + function PetIsSummonable(battlePetGUID: string): boolean + + function PetUsesRandomDisplay(speciesID: number): boolean | undefined + + function SetDefaultFilters(): void + + function SetHoveredBattlePet(battlePetGUID: string): void + + function SpellTargetBattlePet(battlePetGUID: string): void + } + + namespace C_Ping { + function GetContextualPingTypeForUnit(targetUnit: string | undefined): PingSubjectType + + function GetCooldownInfo(): PingCooldownInfo + + function GetDefaultPingOptions(): undefined[] + + function GetTextureKitForType(type: PingSubjectType): string + + function SendMacroPing( + type: PingSubjectType | undefined, + targetToken: string | undefined + ): void + + function TogglePingListener(down: boolean): void + } + + namespace C_PingSecure { + function ClearPendingPingInfo(): void + + function CreateFrame(): void + + function DisplayError(error: string): void + + function GetTargetPingReceiver(mousePosX: number, mousePosY: number): unknown + + function GetTargetWorldPing(mousePosX: number, mousePosY: number): boolean + + function GetTargetWorldPingAndSend(): ContextualWorldPingResult + + function SendPing(type: PingSubjectType, target: string | undefined): PingResult + + function SetPendingPingOffScreenCallback(cb: () => void): void + + function SetPingCooldownStartedCallback(cb: PingCooldownStartedCallback): void + + function SetPingPinFrameAddedCallback(cb: PingPinFrameAddedCallback): void + + function SetPingPinFrameRemovedCallback(cb: PingPinFrameRemovedCallback): void + + function SetPingPinFrameScreenClampStateUpdatedCallback( + cb: PingPinFrameScreenClampStateUpdatedCallback + ): void + + function SetPingRadialWheelCreatedCallback(cb: PingRadialWheelCreatedCallback): void + + function SetSendMacroPingCallback(cb: SendMacroPingCallback): void + + function SetTogglePingListenerCallback(cb: TogglePingListenerCallback): void + } + + namespace C_PlayerChoice { + function GetCurrentPlayerChoiceInfo(): PlayerChoiceInfo + + function GetNumRerolls(): number + + function GetRemainingTime(): number | undefined + + function IsWaitingForPlayerChoiceResponse(): boolean + + function OnUIClosed(): void + + function RequestRerollPlayerChoice(): void + + function SendPlayerChoiceResponse(responseID: number): void + } + + namespace C_PlayerInfo { + function CanPlayerEnterChromieTime(): boolean + + function CanPlayerUseAreaLoot(): boolean + + function CanPlayerUseMountEquipment(): LuaMultiReturn< + [canUseMountEquipment: boolean, failureReason: string] + > + + function CanUseItem(itemID: number): boolean + + function GetAlternateFormInfo(): LuaMultiReturn< + [hasAlternateForm: boolean, inAlternateForm: boolean] + > + + function GetContentDifficultyCreatureForPlayer( + unitToken: UnitToken + ): RelativeContentDifficulty + + function GetContentDifficultyQuestForPlayer( + questID: number + ): RelativeContentDifficulty + + function GetDisplayID(): number + + function GetGlidingInfo(): LuaMultiReturn< + [isGliding: boolean, canGlide: boolean, forwardSpeed: number] + > + + function GetInstancesUnlockedAtLevel(level: number, isRaid: boolean): number[] + + function GetNativeDisplayID(): number + + function GetPetStableCreatureDisplayInfoID(index: number): number + + function GetPlayerCharacterData(): PlayerInfoCharacterData + + function GetPlayerMythicPlusRatingSummary( + playerToken: UnitToken + ): MythicPlusRatingSummary + + function HasAccountInventoryLock(): boolean + + function HasVisibleInvSlot(slot: number): boolean + + function IsDisplayRaceNative(): boolean + + function IsExpansionLandingPageUnlockedForPlayer(expansionID: number): boolean + + function IsMirrorImage(): boolean + + function IsPlayerEligibleForNPE(): LuaMultiReturn< + [isEligible: boolean, failureReason: string] + > + + function IsPlayerEligibleForNPEv2(): LuaMultiReturn< + [isEligible: boolean, failureReason: string] + > + + function IsPlayerInChromieTime(): boolean + + function IsPlayerNPERestricted(): boolean + + function IsSelfFoundActive(): boolean + + function IsTradingPostAvailable(): boolean + + function IsTravelersLogAvailable(): boolean + } + + namespace C_PlayerInteractionManager { + function ClearInteraction(type: PlayerInteractionType | undefined): void + + function ConfirmationInteraction(type: PlayerInteractionType | undefined): void + + function InteractUnit( + unit: string, + exactMatch: boolean, + looseTargeting: boolean + ): boolean + + function IsInteractingWithNpcOfType(type: PlayerInteractionType): boolean + + function IsReplacingUnit(): boolean + + function IsValidNPCInteraction(type: PlayerInteractionType): boolean + + function ReopenInteraction(): void + } + + namespace C_PlayerInfo { + function GUIDIsPlayer(guid: string): boolean + + function GetClass( + playerLocation: PlayerLocationMixin + ): LuaMultiReturn< + [ + className: string | undefined, + classFilename: string | undefined, + classID: number | undefined + ] + > + + function GetName(playerLocation: PlayerLocationMixin): string | undefined + + function GetRace(playerLocation: PlayerLocationMixin): number | undefined + + function GetSex(playerLocation: PlayerLocationMixin): number | undefined + + function IsConnected( + playerLocation: PlayerLocationMixin | undefined + ): boolean | undefined + + function UnitIsSameServer(playerLocation: PlayerLocationMixin): boolean + } + + namespace C_PlayerMentorship { + function GetMentorLevelRequirement(): number | undefined + + function GetMentorRequirements(): LuaMultiReturn< + [ + achievementIDs: number[], + optionalAchievementIDs: number[], + optionalCompleteAtLeastCount: number + ] + > + + function GetMentorshipStatus( + playerLocation: PlayerLocationMixin + ): PlayerMentorshipStatus + + function IsActivePlayerConsideredNewcomer(): boolean + + function IsMentorRestricted(): boolean + } + + function AcceptAreaSpiritHeal(): void + + function AcceptGuild(): void + + function AcceptResurrect(): void + + function Ambiguate(fullName: string, context: string): string + + function AreAccountAchievementsHidden(): boolean + + function AutoEquipCursorItem(): void + + function BeginTrade(): void + + function CanDualWield(): boolean + + function CanInspect(targetGUID: UnitToken): boolean + + function CanLootUnit( + targetUnit: string + ): LuaMultiReturn<[hasLoot: boolean, canLoot: boolean]> + + function CancelAreaSpiritHeal(): void + + function CancelPendingEquip(index: number): void + + function CancelTrade(): void + + function CheckInteractDistance(unitGUID: UnitToken, distIndex: number): boolean + + function CheckTalentMasterDist(): boolean + + function ClearPendingBindConversionItem(): void + + function ConfirmTalentWipe(): void + + function ConvertItemToBindToAccount(): void + + function DeclineGuild(): void + + function DeclineResurrect(): void + + function Dismount(): void + + function EquipPendingItem(index: number): void + + function FollowUnit(name: string, exactMatch: boolean): void + + function GetAllowLowLevelRaid(): boolean + + function GetAreaSpiritHealerTime(): number + + function GetAttackPowerForStat(stat: number, value: number): number + + function GetAutoDeclineGuildInvites(): boolean + + function GetAvoidance(): number + + function GetBindLocation(): string + + function GetBlockChance(): number + + function GetCemeteryPreference(): number + + function GetCombatRating(ratingIndex: number): number | undefined + + function GetCombatRatingBonus(ratingIndex: number): number | undefined + + function GetCombatRatingBonusForCombatRatingValue( + ratingIndex: number, + value: number + ): number | undefined + + function GetCorpseRecoveryDelay(): number + + function GetCorruption(): number + + function GetCorruptionResistance(): number + + function GetCritChance(): number + + function GetCritChanceProvidesParryEffect(): boolean + + function GetDodgeChance(): number + + function GetDodgeChanceFromAttribute(): number + + function GetExpertise(): LuaMultiReturn< + [mainhandExpertise: number, offhandExpertise: number, rangedExpertise: number] + > + + function GetHaste(): number + + function GetHitModifier(): number + + function GetJailersTowerLevel(): number + + function GetLifesteal(): number + + function GetLootSpecialization(): number + + function GetManaRegen(): LuaMultiReturn< + [baseManaRegen: number, castingManaRegen: number] + > + + function GetMastery(): number + + function GetMasteryEffect(): LuaMultiReturn< + [masteryEffect: number, bonusCoefficient: number] + > + + function GetMaxCombatRatingBonus(ratingIndex: number): number | undefined + + function GetMaxPlayerLevel(): number + + function GetMeleeHaste(): number + + function GetModResilienceDamageReduction(): number + + function GetMoney(): number + + function GetNormalizedRealmName(): string + + function GetOverrideAPBySpellPower(): number + + function GetOverrideSpellPowerByAP(): number + + function GetPVPDesired(): boolean + + function GetPVPGearStatRules(): boolean + + function GetPVPLifetimeStats(): LuaMultiReturn< + [lifetimeHonorableKills: number, lifetimeMaxPVPRank: number] + > + + function GetPVPSessionStats(): LuaMultiReturn< + [honorableKills: number, dishonorableKills: number] + > + + function GetPVPTimer(): number + + function GetPVPYesterdayStats(): LuaMultiReturn< + [honorableKills: number, dishonorableKills: number] + > + + function GetParryChance(): number + + function GetParryChanceFromAttribute(): number + + function GetPetMeleeHaste(): number + + function GetPetSpellBonusDamage(): number + + function GetPlayerFacing(): number | undefined + + function GetPlayerInfoByGUID( + guid: string + ): LuaMultiReturn< + [ + localizedClass: string, + englishClass: string, + localizedRace: string, + englishRace: string, + sex: number, + name: string, + realmName: string + ] + > + + function GetPowerRegen(): LuaMultiReturn< + [basePowerRegen: number, castingPowerRegen: number] + > + + function GetPowerRegenForPowerType( + powerType: number + ): LuaMultiReturn<[basePowerRegen: number, castingPowerRegen: number]> + + function GetPvpPowerDamage(): number + + function GetPvpPowerHealing(): number + + function GetRangedCritChance(): number + + function GetRangedHaste(): number + + function GetReleaseTimeRemaining(): number + + function GetResSicknessDuration(): string | undefined + + function GetRestState(): LuaMultiReturn< + [exhaustionID: number, name: string, factor: number] + > + + function GetRestrictedAccountData(): LuaMultiReturn< + [maxLevel: number, maxMoney: number, professionCap: number] + > + + function GetRuneCooldown( + runeIndex: number + ): LuaMultiReturn<[startTime: number, duration: number, isRuneReady: boolean]> + + function GetRuneCount(runeIndex: number): number + + function GetSheathState(): number | undefined + + function GetShieldBlock(): number + + function GetSpeed(): number + + function GetSpellBonusDamage(school: number): number | undefined + + function GetSpellBonusHealing(): number + + function GetSpellCritChance(): number + + function GetSpellHitModifier(): number + + function GetSpellPenetration(): number + + function GetSturdiness(): number + + function GetTaxiBenchmarkMode(): boolean + + function GetVersatilityBonus(combatRating: number): number + + function GetXPExhaustion(): number | undefined + + function HasAPEffectsSpellPower(): boolean + + function HasDualWieldPenalty(): boolean + + function HasFullControl(): boolean + + function HasIgnoreDualWieldWeapon(): boolean + + function HasKey(): boolean + + function HasNoReleaseAura(): LuaMultiReturn< + [ + hasCannotReleaseEffect: boolean, + longestDuration: number, + hasUntilCancelledDuration: boolean + ] + > + + function HasSPEffectsAttackPower(): boolean + + function InitiateTrade(guid: UnitToken): void + + function IsAccountSecured(): boolean + + function IsAdvancedFlyableArea(): boolean + + function IsCemeterySelectionAvailable(): boolean + + function IsCharacterNewlyBoosted(): boolean + + function IsDualWielding(): boolean + + function IsFlyableArea(): boolean + + function IsGuildLeader(): boolean + + function IsInGuild(): boolean + + function IsInJailersTower(): boolean + + function IsIndoors(): boolean + + function IsInsane(): boolean + + function IsItemPreferredArmorType(itemLocation: ItemLocationMixin): boolean + + function IsJailersTowerLayerTimeLocked(layerLevel: number): string + + function IsLoggedIn(): boolean + + function IsMounted(): boolean + + function IsOnGroundFloorInJailersTower(): boolean + + function IsOutOfBounds(): boolean + + function IsOutdoors(): boolean + + function IsPVPTimerRunning(): boolean + + function IsPlayerInWorld(): boolean + + function IsPlayerMoving(): boolean + + function IsRangedWeapon(): boolean + + function IsResting(): boolean + + function IsRestrictedAccount(): boolean + + function IsStealthed(): boolean + + function IsXPUserDisabled(): boolean + + function NoPlayTime(): boolean | undefined + + function NotifyInspect(targetGUID: UnitToken): void + + function PartialPlayTime(): boolean | undefined + + function PlayerCanTeleport(): boolean + + function PlayerEffectiveAttackPower(): LuaMultiReturn< + [mainHandAttackPower: number, offHandAttackPower: number, rangedAttackPower: number] + > + + function PlayerGetTimerunningSeasonID(): number | undefined + + function PortGraveyard(): void + + function RandomRoll(min: number, max: number): void + + function RepopMe(): void + + function RequestTimePlayed(): void + + function RespondInstanceLock(acceptLock: boolean): void + + function ResurrectGetOfferer(): string + + function ResurrectHasSickness(): boolean + + function ResurrectHasTimer(): boolean + + function RetrieveCorpse(): void + + function SetAllowLowLevelRaid(allow: boolean): void + + function SetAutoDeclineGuildInvites(allow: boolean): void + + function SetCemeteryPreference(cemetaryID: number): void + + function SetLootSpecialization(specializationID: number): void + + function SetTaxiBenchmarkMode(enable: boolean): void + + function ShouldShowIslandsWeeklyPOI(): boolean + + function ShouldShowSpecialSplashScreen(): boolean + + function ShowAccountAchievements(hide: boolean): void + + function ShowCloak(show: boolean): void + + function ShowHelm(show: boolean): void + + function ShowingCloak(): boolean + + function ShowingHelm(): boolean + + function SitStandOrDescendStart(): void + + function SplashFrameCanBeShown(): boolean + + function StartAttack(name: string, exactMatch: boolean): void + + function StopAttack(): void + + function Stuck(): void + + function TimeoutResurrect(): void + + function ToggleSelfHighlight(): boolean + + function ToggleSheath(): void + + function SetPortraitToTexture(texture: Texture, asset: string): void + + namespace C_ProfSpecs { + function CanRefundPath(pathID: number, configID: number): boolean + + function CanUnlockTab(tabTreeID: number, configID: number): boolean + + function GetChildrenForPath(pathID: number): number[] + + function GetConfigIDForSkillLine(skillLineID: number): number + + function GetCurrencyInfoForSkillLine(skillLineID: number): SpecializationCurrencyInfo + + function GetDefaultSpecSkillLine(): number | undefined + + function GetDescriptionForPath(pathID: number): string + + function GetDescriptionForPerk(perkID: number): string + + function GetEntryIDForPerk(perkID: number): number + + function GetNewSpecReminderProfName(): string | undefined + + function GetPerksForPath(pathID: number): undefined[] + + function GetRootPathForTab(tabTreeID: number): number | undefined + + function GetSourceTextForPath(pathID: number, configID: number): string + + function GetSpecTabIDsForSkillLine(skillLineID: number): number[] + + function GetSpecTabInfo(): SpecializationTabInfo + + function GetSpendCurrencyForPath(pathID: number): number | undefined + + function GetSpendEntryForPath(pathID: number): number + + function GetStateForPath(pathID: number, configID: number): ProfessionsSpecPathState + + function GetStateForPerk(perkID: number, configID: number): ProfessionsSpecPerkState + + function GetStateForTab(tabTreeID: number, configID: number): ProfessionsSpecTabState + + function GetTabInfo(tabTreeID: number): ProfTabInfo | undefined + + function GetUnlockEntryForPath(pathID: number): number + + function GetUnlockRankForPerk(perkID: number): number | undefined + + function ShouldShowPointsReminder(): boolean + + function ShouldShowPointsReminderForSkillLine(skillLineID: number): boolean + + function ShouldShowSpecTab(): boolean + + function SkillLineHasSpecialization(skillLineID: number): boolean + } + + namespace C_PvP { + function ArePvpTalentsUnlocked(): boolean + + function CanDisplayDamage(): boolean + + function CanDisplayDeaths(): boolean + + function CanDisplayHealing(): boolean + + function CanDisplayHonorableKills(): boolean + + function CanDisplayKillingBlows(): boolean + + function CanPlayerUseRatedPVPUI(): LuaMultiReturn< + [canUse: boolean, failureReason: string] + > + + function CanToggleWarMode(toggle: boolean): boolean + + function CanToggleWarModeInArea(): boolean + + function DoesMatchOutcomeAffectRating(): boolean + + function GetActiveBrawlInfo(): PvpBrawlInfo | undefined + + function GetActiveMatchBracket(): number + + function GetActiveMatchDuration(): number + + function GetActiveMatchState(): PvPMatchState + + function GetActiveMatchWinner(): number + + function GetArenaCrowdControlInfo( + playerToken: UnitToken + ): LuaMultiReturn<[spellID: number, startTime: number, duration: number]> + + function GetArenaRewards( + teamSize: number + ): LuaMultiReturn< + [ + honor: number, + experience: number, + itemRewards: undefined[] | undefined, + currencyRewards: undefined[] | undefined, + roleShortageBonus: RoleShortageReward | undefined + ] + > + + function GetArenaSkirmishRewards(): LuaMultiReturn< + [ + honor: number, + experience: number, + itemRewards: undefined[] | undefined, + currencyRewards: undefined[] | undefined, + roleShortageBonus: RoleShortageReward | undefined + ] + > + + function GetAssignedSpecForBattlefieldQueue(queueID: number): number | undefined + + function GetAvailableBrawlInfo(): PvpBrawlInfo | undefined + + function GetBattlefieldFlagPosition( + flagIndex: number, + uiMapId: number + ): LuaMultiReturn< + [uiPosx: number | undefined, uiPosy: number | undefined, flagTexture: number] + > + + function GetBattlefieldVehicleInfo( + vehicleIndex: number, + uiMapID: number + ): BattlefieldVehicleInfo + + function GetBattlefieldVehicles(uiMapID: number): undefined[] + + function GetBrawlRewards( + brawlType: BrawlType + ): LuaMultiReturn< + [ + honor: number, + experience: number, + itemRewards: undefined[] | undefined, + currencyRewards: undefined[] | undefined, + roleShortageBonus: RoleShortageReward | undefined, + hasWon: boolean + ] + > + + function GetBrawlSoloRBGMinItemLevel(): number + + function GetCustomVictoryStatID(): number + + function GetGlobalPvpScalingInfoForSpecID(specializationID: number): undefined[] + + function GetHonorRewardInfo(honorLevel: number): HonorRewardInfo | undefined + + function GetLevelUpBattlegrounds(level: number): undefined[] + + function GetMatchPVPStatColumn(pvpStatID: number): MatchPVPStatColumn | undefined + + function GetMatchPVPStatColumns(): undefined[] + + function GetNextHonorLevelForReward(honorLevel: number): number | undefined + + function GetOutdoorPvPWaitTime(uiMapID: number): number + + function GetPVPActiveMatchPersonalRatedInfo(): PVPPersonalRatedInfo | undefined + + function GetPVPActiveRatedMatchDeserterPenalty(): + | RatedMatchDeserterPenalty + | undefined + + function GetPVPSeasonRewardAchievementID(): number + + function GetPersonalRatedBGBlitzSpecStats(): RatedBGBlitzSpecStats | undefined + + function GetPersonalRatedSoloShuffleSpecStats(): RatedSoloShuffleSpecStats | undefined + + function GetPostMatchCurrencyRewards(): undefined[] + + function GetPostMatchItemRewards(): undefined[] + + function GetPvpTalentsUnlockedLevel(): number + + function GetPvpTierID(tierEnum: number, bracketEnum: number): number | undefined + + function GetPvpTierInfo(tierID: number): PvpTierInfo | undefined + + function GetRandomBGInfo(): RandomBGInfo + + function GetRandomBGRewards(): LuaMultiReturn< + [ + honor: number, + experience: number, + itemRewards: undefined[] | undefined, + currencyRewards: undefined[] | undefined, + roleShortageBonus: RoleShortageReward | undefined + ] + > + + function GetRandomEpicBGInfo(): RandomBGInfo + + function GetRandomEpicBGRewards(): LuaMultiReturn< + [ + honor: number, + experience: number, + itemRewards: undefined[] | undefined, + currencyRewards: undefined[] | undefined, + roleShortageBonus: RoleShortageReward | undefined + ] + > + + function GetRatedBGRewards(): LuaMultiReturn< + [ + honor: number, + experience: number, + itemRewards: undefined[] | undefined, + currencyRewards: undefined[] | undefined, + roleShortageBonus: RoleShortageReward | undefined + ] + > + + function GetRatedSoloRBGMinItemLevel(): number + + function GetRatedSoloRBGRewards(): LuaMultiReturn< + [ + honor: number, + experience: number, + itemRewards: undefined[] | undefined, + currencyRewards: undefined[] | undefined, + roleShortageBonus: RoleShortageReward | undefined + ] + > + + function GetRatedSoloShuffleMinItemLevel(): number + + function GetRatedSoloShuffleRewards(): LuaMultiReturn< + [ + honor: number, + experience: number, + itemRewards: undefined[] | undefined, + currencyRewards: undefined[] | undefined, + roleShortageBonus: RoleShortageReward | undefined + ] + > + + function GetRewardItemLevelsByTierEnum( + pvpTierEnum: number + ): LuaMultiReturn<[activityItemLevel: number, weeklyItemLevel: number]> + + function GetScoreInfo(offsetIndex: number): PVPScoreInfo | undefined + + function GetScoreInfoByPlayerGuid(guid: string): PVPScoreInfo | undefined + + function GetSeasonBestInfo(): LuaMultiReturn< + [tierID: number, nextTierID: number | undefined] + > + + function GetSkirmishInfo(pvpBracket: number): BattlemasterListInfo + + function GetSpecialEventBrawlInfo(): PvpBrawlInfo | undefined + + function GetTeamInfo(factionIndex: number): PVPTeamInfo | undefined + + function GetUIDisplaySeason(): number + + function GetWarModeRewardBonus(): number + + function GetWarModeRewardBonusDefault(): number + + function GetWeeklyChestInfo(): LuaMultiReturn< + [ + rewardAchieved: boolean, + lastWeekRewardAchieved: boolean, + lastWeekRewardClaimed: boolean, + pvpTierMaxFromWins: number + ] + > + + function GetZonePVPInfo(): LuaMultiReturn< + [pvpType: string, isSubZonePvP: boolean, factionName: string | undefined] + > + + function HasArenaSkirmishWinToday(): boolean + + function IsActiveBattlefield(): boolean + + function IsActiveMatchRegistered(): boolean + + function IsArena(): boolean + + function IsBattleground(): boolean + + function IsBattlegroundEnlistmentBonusActive(): LuaMultiReturn< + [battlegroundActive: boolean, brawlActive: boolean] + > + + function IsBrawlSoloRBG(): boolean + + function IsBrawlSoloShuffle(): boolean + + function IsInBrawl(): boolean + + function IsInRatedMatchWithDeserterPenalty(): boolean + + function IsMatchActive(): boolean + + function IsMatchComplete(): boolean + + function IsMatchConsideredArena(): boolean + + function IsMatchFactional(): boolean + + function IsPVPMap(): boolean + + function IsRatedArena(): boolean + + function IsRatedBattleground(): boolean + + function IsRatedMap(): boolean + + function IsRatedSoloRBG(): boolean + + function IsRatedSoloShuffle(): boolean + + function IsSoloRBG(): boolean + + function IsSoloShuffle(): boolean + + function IsSubZonePVPPOI(): boolean + + function IsWarModeActive(): boolean + + function IsWarModeDesired(): boolean + + function IsWarModeFeatureEnabled(): boolean + + function JoinBrawl(isSpecialBrawl: boolean): void + + function JoinRatedBGBlitz(): void + + function RequestCrowdControlSpell(playerToken: UnitToken): void + + function SetPVP(enablePVP: boolean): void + + function SetWarModeDesired(warModeDesired: boolean): void + + function StartSoloRBGWarGameByName(args: string): number + + function StartSpectatorSoloRBGWarGame( + opaqueID1: number, + opaqueID2: number, + specifiedMap: string, + tournamentRules: boolean + ): number + + function TogglePVP(): void + + function ToggleWarMode(): void + } + + namespace C_QuestHub { + function IsQuestCurrentlyRelatedToHub(questID: number, areaPoiID: number): boolean + } + + namespace C_QuestInfoSystem { + function GetQuestClassification( + questID: number | undefined + ): QuestClassification | undefined + + function GetQuestRewardCurrencies(questID: number | undefined): undefined[] + + function GetQuestRewardSpellInfo( + questID: number | undefined, + spellID: number + ): QuestRewardSpellInfo | undefined + + function GetQuestRewardSpells(questID: number | undefined): number[] + + function GetQuestShouldToastCompletion(questID: number | undefined): boolean + + function HasQuestRewardCurrencies(questID: number | undefined): boolean + + function HasQuestRewardSpells(questID: number | undefined): boolean + } + + namespace C_QuestItemUse { + function CanUseQuestItemOnObject( + item: ItemLocationMixin, + unit: UnitToken, + checkRange: boolean | undefined + ): boolean + } + + namespace C_QuestLine { + function GetAvailableQuestLines(uiMapID: number): undefined[] + + function GetForceVisibleQuests(uiMapID: number): number[] + + function GetQuestLineInfo( + questID: number, + uiMapID: number | undefined, + displayableOnly: boolean + ): QuestLineInfo | undefined + + function GetQuestLineQuests(questLineID: number): number[] + + function IsComplete(questLineID: number): boolean + + function QuestLineIgnoresAccountCompletedFiltering( + uiMapID: number, + questLineID: number + ): boolean + + function RequestQuestLinesForMap(uiMapID: number): void + } + + namespace C_QuestLog { + function AbandonQuest(): void + + function AddQuestWatch(questID: number): boolean + + function AddWorldQuestWatch( + questID: number, + watchType: QuestWatchType | undefined + ): boolean + + function CanAbandonQuest(questID: number): boolean + + function DoesQuestAwardReputationWithFaction( + questID: number, + factionID: number + ): boolean + + function GetAbandonQuest(): number + + function GetAbandonQuestItems(): number[] + + function GetActiveThreatMaps(): number[] + + function GetAllCompletedQuestIDs(): number[] + + function GetBountiesForMapID(uiMapID: number): undefined[] | undefined + + function GetBountySetInfoForMapID( + uiMapID: number + ): LuaMultiReturn< + [ + displayLocation: MapOverlayDisplayLocation, + lockQuestID: number, + bountySetID: number, + isActivitySet: boolean + ] + > + + function GetDistanceSqToQuest( + questID: number + ): LuaMultiReturn<[distanceSq: number, onContinent: boolean]> + + function GetHeaderIndexForQuest(questID: number): number | undefined + + function GetInfo(questLogIndex: number): QuestInfo | undefined + + function GetLogIndexForQuestID(questID: number): number | undefined + + function GetMapForQuestPOIs(): number + + function GetMaxNumQuests(): number + + function GetMaxNumQuestsCanAccept(): number + + function GetNextWaypoint( + questID: number + ): LuaMultiReturn<[mapID: number, x: number, y: number]> + + function GetNextWaypointForMap( + questID: number, + uiMapID: number + ): LuaMultiReturn<[x: number, y: number]> + + function GetNextWaypointText(questID: number): string + + function GetNumQuestLogEntries(): LuaMultiReturn< + [numShownEntries: number, numQuests: number] + > + + function GetNumQuestObjectives(questID: number): number + + function GetNumQuestWatches(): number + + function GetNumWorldQuestWatches(): number + + function GetQuestAdditionalHighlights( + questID: number + ): LuaMultiReturn< + [ + uiMapID: number, + worldQuests: boolean, + worldQuestsElite: boolean, + dungeons: boolean, + treasures: boolean + ] + > + + function GetQuestDetailsTheme(questID: number): QuestTheme | undefined + + function GetQuestDifficultyLevel(questID: number): number + + function GetQuestIDForLogIndex(questLogIndex: number): number | undefined + + function GetQuestIDForQuestWatchIndex(questWatchIndex: number): number | undefined + + function GetQuestIDForWorldQuestWatchIndex( + questWatchIndex: number + ): number | undefined + + function GetQuestLogMajorFactionReputationRewards(questID: number): undefined[] + + function GetQuestLogPortraitGiver( + questLogIndex: number | undefined + ): LuaMultiReturn< + [ + portraitGiver: number, + portraitGiverText: string, + portraitGiverName: string, + portraitGiverMount: number, + portraitGiverModelSceneID: number | undefined + ] + > + + function GetQuestObjectives(questID: number): undefined[] + + function GetQuestRewardCurrencies(questID: number): undefined[] + + function GetQuestRewardCurrencyInfo( + questID: number, + currencyIndex: number, + isChoice: boolean + ): QuestRewardCurrencyInfo | undefined + + function GetQuestTagInfo(questID: number): QuestTagInfo | undefined + + function GetQuestType(questID: number): number | undefined + + function GetQuestWatchType(questID: number): QuestWatchType | undefined + + function GetQuestsOnMap(uiMapID: number): undefined[] + + function GetRequiredMoney(questID: number | undefined): number + + function GetSelectedQuest(): number + + function GetSuggestedGroupSize(questID: number): number + + function GetTimeAllowed( + questID: number + ): LuaMultiReturn<[totalTime: number, elapsedTime: number]> + + function GetTitleForLogIndex(questLogIndex: number): string | undefined + + function GetTitleForQuestID(questID: number): string | undefined + + function GetZoneStoryInfo( + uiMapID: number + ): LuaMultiReturn<[achievementID: number, storyMapID: number]> + + function HasActiveThreats(): boolean + + function IsAccountQuest(questID: number): boolean + + function IsComplete(questID: number): boolean + + function IsFailed(questID: number): boolean + + function IsImportantQuest(questID: number): boolean + + function IsLegendaryQuest(questID: number): boolean + + function IsMetaQuest(questID: number): boolean + + function IsOnMap( + questID: number + ): LuaMultiReturn<[onMap: boolean, hasLocalPOI: boolean]> + + function IsOnQuest(questID: number): boolean + + function IsPushableQuest(questID: number): boolean + + function IsQuestBounty(questID: number): boolean + + function IsQuestCalling(questID: number): boolean + + function IsQuestCriteriaForBounty(questID: number, bountyQuestID: number): boolean + + function IsQuestDisabledForSession(questID: number): boolean + + function IsQuestFlaggedCompleted(questID: number): boolean + + function IsQuestFlaggedCompletedOnAccount(questID: number): boolean + + function IsQuestFromContentPush(questID: number): boolean + + function IsQuestInvasion(questID: number): boolean + + function IsQuestRepeatableType(questID: number): boolean + + function IsQuestReplayable(questID: number): boolean + + function IsQuestReplayedRecently(questID: number): boolean + + function IsQuestTask(questID: number): boolean + + function IsQuestTrivial(questID: number): boolean + + function IsRepeatableQuest(questID: number): boolean + + function IsThreatQuest(questID: number): boolean + + function IsUnitOnQuest(unit: UnitToken, questID: number): boolean + + function IsWorldQuest(questID: number): boolean + + function QuestCanHaveWarModeBonus(questID: number): boolean + + function QuestHasQuestSessionBonus(questID: number): boolean + + function QuestHasWarModeBonus(questID: number): boolean + + function QuestIgnoresAccountCompletedFiltering(questID: number): boolean + + function ReadyForTurnIn(questID: number): boolean | undefined + + function RemoveQuestWatch(questID: number): boolean + + function RemoveWorldQuestWatch(questID: number): boolean + + function RequestLoadQuestByID(questID: number): void + + function SetAbandonQuest(): void + + function SetMapForQuestPOIs(uiMapID: number): void + + function SetSelectedQuest(questID: number): void + + function ShouldDisplayTimeRemaining(questID: number): boolean + + function ShouldShowQuestRewards(questID: number): boolean + + function SortQuestWatches(): void + + function UnitIsRelatedToActiveQuest(unit: UnitToken): boolean + + function UpdateCampaignHeaders(): void + } + + namespace C_QuestOffer { + function GetHideRequiredItems(): boolean + + function GetQuestOfferMajorFactionReputationRewards(): undefined[] + + function GetQuestRequiredCurrencyInfo( + questRewardIndex: number + ): QuestRequiredCurrencyInfo | undefined + + function GetQuestRewardCurrencyInfo( + questInfoType: string, + questRewardIndex: number + ): QuestRewardCurrencyInfo | undefined + } + + namespace C_QuestSession { + function CanStart(): boolean + + function CanStop(): boolean + + function Exists(): boolean + + function GetAvailableSessionCommand(): QuestSessionCommand + + function GetPendingCommand(): QuestSessionCommand + + function GetProposedMaxLevelForSession(): number + + function GetSessionBeginDetails(): QuestSessionPlayerDetails | undefined + + function GetSuperTrackedQuest(): number | undefined + + function HasJoined(): boolean + + function HasPendingCommand(): boolean + + function RequestSessionStart(): void + + function RequestSessionStop(): void + + function SendSessionBeginResponse(beginSession: boolean): void + + function SetQuestIsSuperTracked(questID: number, superTrack: boolean): void + } + + namespace C_TaskQuest { + function DoesMapShowTaskQuestObjectives(uiMapID: number): boolean + + function GetQuestIconUIWidgetSet(questID: number): number + + function GetQuestInfoByQuestID( + questID: number + ): LuaMultiReturn< + [ + questTitle: string, + factionID: number | undefined, + capped: boolean | undefined, + displayAsObjective: boolean | undefined + ] + > + + function GetQuestLocation( + questID: number, + uiMapID: number + ): LuaMultiReturn<[locationX: number, locationY: number]> + + function GetQuestProgressBarInfo(questID: number): number + + function GetQuestTimeLeftMinutes(questID: number): number + + function GetQuestTimeLeftSeconds(questID: number): number + + function GetQuestTooltipUIWidgetSet(questID: number): number + + function GetQuestZoneID(questID: number): number + + function GetQuestsForPlayerByMapID(uiMapID: number): undefined[] + + function GetThreatQuests(): number[] + + function IsActive(questID: number): boolean + + function RequestPreloadRewardData(questID: number): void + } + + namespace C_RaidLocks { + function IsEncounterComplete( + mapID: number, + encounterID: number, + difficultyID: number | undefined + ): boolean + } + + namespace C_RecruitAFriend { + function CanSummonFriend(guid: string): boolean + + function ClaimActivityReward(activityID: number, acceptanceID: string): boolean + + function ClaimNextReward( + rafVersion: RecruitAFriendRewardsVersion | undefined + ): boolean + + function GenerateRecruitmentLink(): boolean + + function GetRAFInfo(): RafInfo + + function GetRAFSystemInfo(): RafSystemInfo + + function GetRecruitActivityRequirementsText( + activityID: number, + acceptanceID: string + ): string[] + + function GetRecruitInfo(): LuaMultiReturn<[active: boolean, faction: number]> + + function GetSummonFriendCooldown(): LuaMultiReturn< + [startTimeSeconds: number, durationSeconds: number, enableCooldownTimer: boolean] + > + + function IsEnabled(): boolean + + function IsRecruitAFriendLinked(guid: string): boolean + + function IsRecruitingEnabled(): boolean + + function RemoveRAFRecruit(wowAccountGUID: string): boolean + + function RequestUpdatedRecruitmentInfo(): boolean + + function SummonFriend(target: string, name: string): void + } + + namespace C_ReportSystem { + function CanReportPlayer(playerLocation: PlayerLocationMixin): boolean + + function CanReportPlayerForLanguage(playerLocation: PlayerLocationMixin): boolean + + function GetMajorCategoriesForReportType(reportType: ReportType): undefined[] + + function GetMajorCategoryString(majorCategory: ReportMajorCategory): string + + function GetMinorCategoriesForReportTypeAndMajorCategory( + reportType: ReportType, + majorCategory: ReportMajorCategory + ): undefined[] + + function GetMinorCategoryString(minorCategory: ReportMinorCategory): string + + function ReportServerLag(): void + + function ReportStuckInCombat(): void + + function SendReport( + reportInfo: ReportInfoMixin, + playerLocation: PlayerLocationMixin | undefined + ): void + } + + namespace C_Reputation { + function AreLegacyReputationsShown(): boolean + + function CollapseAllFactionHeaders(): void + + function CollapseFactionHeader(factionSortIndex: number): void + + function ExpandAllFactionHeaders(): void + + function ExpandFactionHeader(factionSortIndex: number): void + + function GetFactionDataByID(factionID: number): FactionData | undefined + + function GetFactionDataByIndex(factionSortIndex: number): FactionData | undefined + + function GetFactionParagonInfo( + factionID: number + ): LuaMultiReturn< + [ + currentValue: number, + threshold: number, + rewardQuestID: number, + hasRewardPending: boolean, + tooLowLevelForParagon: boolean + ] + > + + function GetGuildFactionData(): FactionData | undefined + + function GetGuildRepExpirationTime(): number | undefined + + function GetNumFactions(): number + + function GetReputationSortType(): ReputationSortType + + function GetSelectedFaction(): number + + function GetWatchedFactionData(): FactionData | undefined + + function IsAccountWideReputation(factionID: number): boolean + + function IsFactionActive(factionSortIndex: number): boolean + + function IsFactionParagon(factionID: number): boolean + + function IsMajorFaction(factionID: number): boolean + + function RequestFactionParagonPreloadRewardData(factionID: number): void + + function SetFactionActive(factionSortIndex: number, setActive: boolean): void + + function SetLegacyReputationsShown(showLegacyReputations: boolean): void + + function SetReputationSortType(sortType: ReputationSortType): void + + function SetSelectedFaction(factionSortIndex: number): void + + function SetWatchedFactionByID(factionID: number): void + + function SetWatchedFactionByIndex(factionSortIndex: number): void + + function ToggleFactionAtWar(factionSortIndex: number): void + } + + namespace C_ResearchInfo { + function GetDigSitesForMap(uiMapID: number): undefined[] + } + + function InCombatLockdown(): boolean + + namespace C_ReturningPlayerUI { + function AcceptPrompt(): void + + function DeclinePrompt(): void + } + + namespace C_ScenarioInfo { + function GetCriteriaInfo(criteriaIndex: number): ScenarioCriteriaInfo + + function GetCriteriaInfoByStep( + stepID: number, + criteriaIndex: number + ): ScenarioCriteriaInfo + + function GetJailersTowerTypeString(runType: JailersTowerType): string | undefined + + function GetScenarioInfo(): ScenarioInformation + + function GetScenarioStepInfo(scenarioStepID: number | undefined): ScenarioStepInfo + } + + namespace C_ScrappingMachineUI { + function CloseScrappingMachine(): void + + function DropPendingScrapItemFromCursor(index: number): void + + function GetCurrentPendingScrapItemLocationByIndex(index: number): ItemLocationMixin + + function GetScrapSpellID(): number + + function GetScrappingMachineName(): string + + function HasScrappableItems(): boolean + + function RemoveAllScrapItems(): void + + function RemoveCurrentScrappingItem(): void + + function RemoveItemToScrap(index: number): void + + function ScrapItems(): void + + function ValidateScrappingList(): void + } + + function GetDefaultScale(): number + + function GetPhysicalScreenSize(): LuaMultiReturn<[sizeX: number, sizeY: number]> + + function GetScreenDPIScale(): number + + function GetScreenHeight(): number + + function GetScreenWidth(): number + + namespace C_ScriptedAnimations { + function GetAllScriptedAnimationEffects(): undefined[] + } + + namespace C_SeasonInfo { + function GetCurrentDisplaySeasonExpansion(): number | undefined + + function GetCurrentDisplaySeasonID(): number + } + + namespace C_Traits { + function CanPurchaseRank( + configID: number, + nodeID: number, + nodeEntryID: number + ): boolean + + function CanRefundRank(configID: number, nodeID: number): boolean + + function CascadeRepurchaseRanks( + configID: number, + nodeID: number, + entryID: number | undefined + ): boolean + + function ClearCascadeRepurchaseHistory(configID: number): void + + function CloseTraitSystemInteraction(): void + + function CommitConfig(configID: number): boolean + + function ConfigHasStagedChanges(configID: number): boolean + + function GenerateImportString(configID: number): string + + function GenerateInspectImportString(target: string): string + + function GetConditionInfo(configID: number, condID: number): TraitCondInfo + + function GetConfigIDBySystemID(systemID: number): number + + function GetConfigIDByTreeID(treeID: number): number + + function GetConfigInfo(configID: number): TraitConfigInfo + + function GetConfigsByType(configType: TraitConfigType): number[] + + function GetDefinitionInfo(definitionID: number): TraitDefinitionInfo + + function GetEntryInfo(configID: number, entryID: number): TraitEntryInfo + + function GetLoadoutSerializationVersion(): number + + function GetNodeCost(configID: number, nodeID: number): undefined[] + + function GetNodeInfo(configID: number, nodeID: number): TraitNodeInfo + + function GetStagedChanges( + configID: number + ): LuaMultiReturn< + [ + nodeIDsWithPurchases: number[], + nodeIDsWithRefunds: number[], + nodeIDsWithSelectionSwaps: number[] + ] + > + + function GetStagedChangesCost(configID: number): undefined[] + + function GetSubTreeInfo(configID: number, subTreeID: number): TraitSubTreeInfo + + function GetSystemIDByTreeID(treeID: number): number + + function GetTraitCurrencyInfo( + traitCurrencyID: number + ): LuaMultiReturn< + [ + flags: number, + type: number, + currencyTypesID: number | undefined, + icon: number | undefined + ] + > + + function GetTraitDescription(entryID: number, rank: number): string + + function GetTraitSystemFlags(configID: number): number + + function GetTraitSystemWidgetSetID(configID: number): number + + function GetTreeCurrencyInfo( + configID: number, + treeID: number, + excludeStagedChanges: boolean + ): undefined[] + + function GetTreeHash(treeID: number): number[] + + function GetTreeInfo(configID: number, treeID: number): TraitTreeInfo + + function GetTreeNodes(treeID: number): number[] + + function HasValidInspectData(): boolean + + function IsReadyForCommit(): boolean + + function PurchaseRank(configID: number, nodeID: number): boolean + + function RefundAllRanks(configID: number, nodeID: number): boolean + + function RefundRank( + configID: number, + nodeID: number, + clearEdges: boolean | undefined + ): boolean + + function ResetTree(configID: number, treeID: number): boolean + + function ResetTreeByCurrency( + configID: number, + treeID: number, + traitCurrencyID: number + ): boolean + + function RollbackConfig(configID: number): boolean + + function SetSelection( + configID: number, + nodeID: number, + nodeEntryID: number | undefined, + clearEdges: boolean | undefined + ): boolean + + function StageConfig(configID: number): boolean + + function TalentTestUnlearnSpells(): void + } + + function AreDangerousScriptsAllowed(): boolean + + function SetAllowDangerousScripts(allowed: boolean): void + + namespace C_Social { + function GetLastAchievement(): LuaMultiReturn< + [ + achievementID: number, + achievementName: string, + achievementDesc: string, + iconFileID: number + ] + > + + function GetLastItem(): LuaMultiReturn< + [ + itemID: number, + itemName: string, + iconFileID: number, + itemQuality: number, + itemLevel: number, + itemLinkString: string + ] + > + + function GetLastScreenshotIndex(): number + + function GetMaxTweetLength(): number + + function GetScreenshotInfoByIndex( + index: number + ): LuaMultiReturn<[screenWidth: number, screenHeight: number]> + + function GetTweetLength(tweetText: string): number + + function IsSocialEnabled(): boolean + + function TwitterCheckStatus(): void + + function TwitterConnect(): void + + function TwitterDisconnect(): void + + function TwitterGetMSTillCanPost(): number + + function TwitterPostMessage(message: string): void + } + + namespace C_SocialQueue { + function GetAllGroups( + allowNonJoinable: boolean, + allowNonQueuedGroups: boolean + ): string[] + + function GetConfig(): SocialQueueConfig + + function GetGroupForPlayer( + playerGUID: string + ): LuaMultiReturn<[groupGUID: string, isSoloQueueParty: boolean]> + + function GetGroupInfo( + groupGUID: string + ): LuaMultiReturn< + [ + canJoin: boolean, + numQueues: number, + needTank: boolean, + needHealer: boolean, + needDamage: boolean, + isSoloQueueParty: boolean, + questSessionActive: boolean, + leaderGUID: string + ] + > + + function GetGroupMembers(groupGUID: string): undefined[] + + function GetGroupQueues(groupGUID: string): undefined[] + + function RequestToJoin( + groupGUID: string, + applyAsTank: boolean, + applyAsHealer: boolean, + applyAsDamage: boolean + ): boolean + + function SignalToastDisplayed(groupGUID: string, priority: number): void + } + + namespace C_SocialRestrictions { + function AcknowledgeRegionalChatDisabled(): void + + function IsChatDisabled(): boolean + + function IsMuted(): boolean + + function IsSilenced(): boolean + + function IsSquelched(): boolean + + function SetChatDisabled(disabled: boolean): void + } + + namespace C_Soulbinds { + function ActivateSoulbind(soulbindID: number): void + + function CanActivateSoulbind( + soulbindID: number + ): LuaMultiReturn<[result: boolean, errorDescription: string | undefined]> + + function CanModifySoulbind(): boolean + + function CanResetConduitsInSoulbind( + soulbindID: number + ): LuaMultiReturn<[result: boolean, errorDescription: string | undefined]> + + function CanSwitchActiveSoulbindTreeBranch(): boolean + + function CloseUI(): void + + function CommitPendingConduitsInSoulbind(soulbindID: number): void + + function FindNodeIDActuallyInstalled(soulbindID: number, conduitID: number): number + + function FindNodeIDAppearingInstalled(soulbindID: number, conduitID: number): number + + function FindNodeIDPendingInstall(soulbindID: number, conduitID: number): number + + function FindNodeIDPendingUninstall(soulbindID: number, conduitID: number): number + + function GetActiveSoulbindID(): number + + function GetConduitCollection(conduitType: SoulbindConduitType): undefined[] + + function GetConduitCollectionCount(): number + + function GetConduitCollectionData( + conduitID: number + ): ConduitCollectionData | undefined + + function GetConduitCollectionDataAtCursor(): ConduitCollectionData | undefined + + function GetConduitCollectionDataByVirtualID( + virtualID: number + ): ConduitCollectionData | undefined + + function GetConduitDisplayed(nodeID: number): number + + function GetConduitHyperlink(conduitID: number, rank: number): string + + function GetConduitIDPendingInstall(nodeID: number): number + + function GetConduitQuality(conduitID: number, rank: number): number + + function GetConduitRank(conduitID: number): number + + function GetConduitSpellID(conduitID: number, conduitRank: number): number + + function GetInstalledConduitID(nodeID: number): number + + function GetNode(nodeID: number): SoulbindNode + + function GetSoulbindData(soulbindID: number): SoulbindData + + function GetSpecsAssignedToSoulbind(soulbindID: number): number[] + + function GetTree(treeID: number): SoulbindTree + + function HasAnyInstalledConduitInSoulbind(soulbindID: number): boolean + + function HasAnyPendingConduits(): boolean + + function HasPendingConduitsInSoulbind(soulbindID: number): boolean + + function IsConduitInstalled(nodeID: number): boolean + + function IsConduitInstalledInSoulbind(soulbindID: number, conduitID: number): boolean + + function IsItemConduitByItemInfo(itemInfo: string | number): boolean + + function IsNodePendingModify(nodeID: number): boolean + + function IsUnselectedConduitPendingInSoulbind(soulbindID: number): boolean + + function ModifyNode( + nodeID: number, + conduitID: number, + type: SoulbindConduitTransactionType + ): void + + function SelectNode(nodeID: number): void + + function UnmodifyNode(nodeID: number): void + } + + namespace C_Sound { + function GetSoundScaledVolume(soundHandle: number): number + + function IsPlaying(soundHandle: number): boolean + + function PlayItemSound( + soundType: ItemSoundType, + itemLocation: ItemLocationMixin + ): void + + function PlayVocalErrorSound(vocalErrorSoundID: number): void + } + + namespace C_SpecializationInfo { + function CanPlayerUsePVPTalentUI(): LuaMultiReturn< + [canUse: boolean, failureReason: string] + > + + function CanPlayerUseTalentSpecUI(): LuaMultiReturn< + [canUse: boolean, failureReason: string] + > + + function CanPlayerUseTalentUI(): LuaMultiReturn< + [canUse: boolean, failureReason: string] + > + + function GetAllSelectedPvpTalentIDs(): number[] + + function GetClassIDFromSpecID(specID: number): number | undefined + + function GetInspectSelectedPvpTalent( + inspectedUnit: UnitToken, + talentIndex: number + ): number | undefined + + function GetPvpTalentAlertStatus(): LuaMultiReturn< + [hasUnspentSlot: boolean, hasNewTalent: boolean] + > + + function GetPvpTalentInfo(talentID: number): PvpTalentInfo | undefined + + function GetPvpTalentSlotInfo(talentIndex: number): PvpTalentSlotInfo | undefined + + function GetPvpTalentSlotUnlockLevel(talentIndex: number): number | undefined + + function GetPvpTalentUnlockLevel(talentID: number): number | undefined + + function GetSpecIDs(specSetID: number): number[] + + function GetSpellsDisplay(specializationID: number): number[] + + function IsInitialized(): boolean + + function IsPvpTalentLocked(talentID: number): boolean + + function MatchesCurrentSpecSet(specSetID: number): boolean + + function SetPvpTalentLocked(talentID: number, locked: boolean): void + } + + function GetNumSpecializationsForClassID(specID: number): number + + function GetSpecializationInfoForClassID( + classID: number, + index: number, + gender: number | undefined + ): LuaMultiReturn< + [ + id: number, + name: string, + description: string, + icon: number, + role: string, + recommended: boolean, + allowedForBoost: boolean, + masterySpell1: number | undefined, + masterySpell2: number | undefined + ] + > + + function GetSpecializationInfoForSpecID( + specID: number, + gender: number | undefined + ): LuaMultiReturn< + [ + id: number, + name: string, + description: string, + icon: number, + role: string, + recommended: boolean, + allowedForBoost: boolean, + masterySpell1: number | undefined, + masterySpell2: number | undefined + ] + > + + function GetSpecializationNameForSpecID( + specID: number, + gender: number | undefined + ): string | undefined + + namespace C_SpellBook { + function CastSpellBookItem( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank, + targetSelf: boolean + ): void + + function ContainsAnyDisenchantSpell(): boolean + + function FindSpellBookSlotForSpell( + spellIdentifier: number, + includeHidden: boolean, + includeFlyouts: boolean, + includeFutureSpells: boolean, + includeOffSpec: boolean + ): LuaMultiReturn< + [spellBookItemSlotIndex: number, spellBookItemSpellBank: SpellBookSpellBank] + > + + function GetCurrentLevelSpells(level: number): number[] + + function GetNumSpellBookSkillLines(): number + + function GetSkillLineIndexByID(skillLineID: number): number | undefined + + function GetSpellBookItemAutoCast( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): LuaMultiReturn<[autoCastAllowed: boolean, autoCastEnabled: boolean]> + + function GetSpellBookItemCastCount( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): number + + function GetSpellBookItemCharges( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): SpellChargeInfo + + function GetSpellBookItemCooldown( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): SpellCooldownInfo + + function GetSpellBookItemDescription( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): string + + function GetSpellBookItemInfo( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): SpellBookItemInfo + + function GetSpellBookItemLevelLearned( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): number + + function GetSpellBookItemLink( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank, + glyphID: number | undefined + ): string + + function GetSpellBookItemLossOfControlCooldown( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): LuaMultiReturn<[startTime: number, duration: number]> + + function GetSpellBookItemName( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): LuaMultiReturn<[name: string, subName: string]> + + function GetSpellBookItemPowerCost( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): undefined[] + + function GetSpellBookItemSkillLineIndex( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): number | undefined + + function GetSpellBookItemTexture( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): number + + function GetSpellBookItemTradeSkillLink( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): string + + function GetSpellBookItemType( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): LuaMultiReturn< + [itemType: SpellBookItemType, actionID: number, spellID: number | undefined] + > + + function GetSpellBookSkillLineInfo(skillLineIndex: number): SpellBookSkillLineInfo + + function GetTrackedNameplateCooldownSpells(): number[] + + function HasPetSpells(): LuaMultiReturn<[numPetSpells: number, petNameToken: string]> + + function IsAutoAttackSpellBookItem( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): boolean + + function IsClassTalentSpellBookItem( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): boolean + + function IsPvPTalentSpellBookItem( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): boolean + + function IsRangedAutoAttackSpellBookItem( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): boolean + + function IsSpellBookItemHarmful( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): boolean + + function IsSpellBookItemHelpful( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): boolean + + function IsSpellBookItemInRange( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank, + targetUnit: UnitToken | undefined + ): boolean | undefined + + function IsSpellBookItemOffSpec( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): boolean + + function IsSpellBookItemPassive( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): boolean + + function IsSpellBookItemUsable( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): LuaMultiReturn<[isUsable: boolean, insufficientPower: boolean]> + + function PickupSpellBookItem( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): void + + function SetSpellBookItemAutoCastEnabled( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank, + enabled: boolean + ): void + + function SpellBookItemHasRange( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): boolean + + function ToggleSpellBookItemAutoCast( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): void + } + + namespace C_Spell { + function DoesSpellExist(spellIdentifier: number): boolean + + function GetDeadlyDebuffInfo(spellIdentifier: number): DeadlyDebuffInfo + + function GetMawPowerBorderAtlasBySpellID(spellID: number): string + + function GetMawPowerLinkBySpellID(spellID: number): string + + function GetOverrideSpell( + spellIdentifier: number, + spec: number, + onlyKnown: boolean, + ignoreOverrideSpellID: number + ): number + + function GetSchoolString(schoolMask: number): string + + function GetSpellAutoCast( + spellIdentifier: number + ): LuaMultiReturn<[autoCastAllowed: boolean, autoCastEnabled: boolean]> + + function GetSpellCastCount(spellIdentifier: number): number + + function GetSpellCharges(spellIdentifier: number): SpellChargeInfo + + function GetSpellCooldown(spellIdentifier: number): SpellCooldownInfo + + function GetSpellDescription(spellIdentifier: number): string + + function GetSpellIDForSpellIdentifier(spellIdentifier: number): number + + function GetSpellInfo(spellIdentifier: number): SpellInfo + + function GetSpellLevelLearned(spellIdentifier: number): number + + function GetSpellLink(spellIdentifier: number, glyphID: number | undefined): string + + function GetSpellLossOfControlCooldown( + spellIdentifier: number + ): LuaMultiReturn<[startTime: number, duration: number]> + + function GetSpellName(spellIdentifier: number): string + + function GetSpellPowerCost(spellIdentifier: number): undefined[] + + function GetSpellQueueWindow(): number + + function GetSpellSkillLineAbilityRank(spellIdentifier: number): number + + function GetSpellSubtext(spellIdentifier: number): string + + function GetSpellTexture( + spellIdentifier: number + ): LuaMultiReturn<[iconID: number, originalIconID: number]> + + function GetSpellTradeSkillLink(spellIdentifier: number): string + + function IsAutoAttackSpell(spellIdentifier: number): boolean + + function IsAutoRepeatSpell(spellIdentifier: number): boolean + + function IsClassTalentSpell(spellIdentifier: number): boolean + + function IsCurrentSpell(spellIdentifier: number): boolean + + function IsPressHoldReleaseSpell(spellIdentifier: number): boolean + + function IsPvPTalentSpell(spellIdentifier: number): boolean + + function IsRangedAutoAttackSpell(spellIdentifier: number): boolean + + function IsSpellDataCached(spellIdentifier: number): boolean + + function IsSpellDisabled(spellIdentifier: number): boolean + + function IsSpellHarmful(spellIdentifier: number): boolean + + function IsSpellHelpful(spellIdentifier: number): boolean + + function IsSpellInRange( + spellIdentifier: number, + targetUnit: UnitToken | undefined + ): boolean | undefined + + function IsSpellPassive(spellIdentifier: number): boolean + + function IsSpellUsable( + spellIdentifier: number + ): LuaMultiReturn<[isUsable: boolean, insufficientPower: boolean]> + + function PickupSpell(spellIdentifier: number): void + + function RequestLoadSpellData(spellIdentifier: number): void + + function SetSpellAutoCastEnabled(spellIdentifier: number, enabled: boolean): void + + function SpellHasRange(spellIdentifier: number): boolean + + function TargetSpellIsEnchanting(): boolean + + function TargetSpellJumpsUpgradeTrack(): boolean + + function TargetSpellReplacesBonusTree(): boolean + + function ToggleSpellAutoCast(spellIdentifier: number): void + } + + namespace C_SplashScreen { + function AcknowledgeSplash(): void + + function CanViewSplashScreen(): boolean + + function RequestLatestSplashScreen(fromGameMenu: boolean): void + } + + namespace C_StableInfo { + function ClosePetStables(): void + + function GetActivePetList(): undefined[] + + function GetNumActivePets(): number + + function GetNumStablePets(): number + + function GetStablePetFoodTypes(index: number): string[] + + function GetStablePetInfo(index: number): PetInfo | undefined + + function GetStabledPetList(): undefined[] + + function IsAtStableMaster(): boolean + + function IsPetFavorite(slot: number): boolean + + function PickupStablePet(index: number): void + + function SetPetFavorite(slot: number, isFavorite: boolean): void + + function SetPetSlot(index: number, slot: number): void + } + + namespace C_StorePublic { + function DoesGroupHavePurchaseableProducts(groupID: number): boolean + + function IsDisabledByParentalControls(): boolean + + function IsEnabled(): boolean + } + + function GetAvailableBandwidth(): number + + function GetBackgroundLoadingStatus(): number + + function GetDownloadedPercentage(): number + + function GetFileStreamingStatus(): number + + function StripHyperlinks( + text: string, + maintainColor: boolean, + maintainBrackets: boolean, + stripNewlines: boolean, + maintainAtlases: boolean + ): string + + namespace C_SummonInfo { + function CancelSummon(): void + + function ConfirmSummon(): void + + function GetSummonConfirmAreaName(): string + + function GetSummonConfirmSummoner(): string | undefined + + function GetSummonConfirmTimeLeft(): number + + function GetSummonReason(): number + + function IsSummonSkippingStartExperience(): boolean + } + + namespace C_SuperTrack { + function ClearAllSuperTracked(): void + + function ClearSuperTrackedContent(): void + + function ClearSuperTrackedMapPin(): void + + function GetHighestPrioritySuperTrackingType(): SuperTrackingType | undefined + + function GetSuperTrackedContent(): LuaMultiReturn< + [trackableType: ContentTrackingType, trackableID: number] + > + + function GetSuperTrackedMapPin(): LuaMultiReturn< + [type: SuperTrackingMapPinType, typeID: number] + > + + function GetSuperTrackedQuestID(): number | undefined + + function GetSuperTrackedVignette(): string | undefined + + function IsSuperTrackingAnything(): boolean + + function IsSuperTrackingContent(): boolean + + function IsSuperTrackingCorpse(): boolean + + function IsSuperTrackingMapPin(): boolean + + function IsSuperTrackingQuest(): boolean + + function IsSuperTrackingUserWaypoint(): boolean + + function SetSuperTrackedContent( + trackableType: ContentTrackingType, + trackableID: number + ): void + + function SetSuperTrackedMapPin(type: SuperTrackingMapPinType, typeID: number): void + + function SetSuperTrackedQuestID(questID: number): void + + function SetSuperTrackedUserWaypoint(superTracked: boolean): void + + function SetSuperTrackedVignette(vignetteGUID: string): void + } + + namespace C_System { + function GetFrameStack(): unknown[] + } + + function GetGameTime(): LuaMultiReturn<[hour: number, minute: number]> + + function GetLocalGameTime(): LuaMultiReturn<[hour: number, minute: number]> + + function GetServerTime(): number + + function GetSessionTime(): number + + function GetTickTime(): number + + function GetTime(): number + + function IsUsingFixedTimeStep(): boolean + + namespace C_TTSSettings { + function GetChannelEnabled(channelInfo: ChatChannelInfo): boolean + + function GetCharacterSettingsSaved(): boolean + + function GetChatTypeEnabled(chatName: string): boolean + + function GetSetting(setting: TtsBoolSetting): boolean + + function GetSpeechRate(): number + + function GetSpeechVolume(): number + + function GetVoiceOptionID(voiceType: TtsVoiceType): number + + function GetVoiceOptionName(voiceType: TtsVoiceType): string + + function MarkCharacterSettingsSaved(): void + + function SetChannelEnabled(channelInfo: ChatChannelInfo, newVal: boolean): void + + function SetChannelKeyEnabled(channelKey: string, newVal: boolean): void + + function SetChatTypeEnabled(chatName: string, newVal: boolean): void + + function SetDefaultSettings(): void + + function SetSetting(setting: TtsBoolSetting, newVal: boolean): void + + function SetSpeechRate(newVal: number): void + + function SetSpeechVolume(newVal: number): void + + function SetVoiceOption(voiceType: TtsVoiceType, voiceID: number): void + + function SetVoiceOptionName(voiceType: TtsVoiceType, voiceName: string): void + + function ShouldOverrideMessage(language: number, messageText: string): boolean + } + + function AssistUnit(name: string, exactMatch: boolean): void + + function AttackTarget(): void + + function ClearFocus(): void + + function ClearTarget(): boolean + + function FocusUnit(name: string): void + + function IsTargetLoose(): boolean + + function TargetDirectionEnemy(facing: number, coneAngle: number | undefined): void + + function TargetDirectionFinished(): void + + function TargetDirectionFriend(facing: number, coneAngle: number | undefined): void + + function TargetLastEnemy(): void + + function TargetLastFriend(): void + + function TargetLastTarget(): void + + function TargetNearest(reverse: boolean): void + + function TargetNearestEnemy(reverse: boolean): void + + function TargetNearestEnemyPlayer(reverse: boolean): void + + function TargetNearestFriend(reverse: boolean): void + + function TargetNearestFriendPlayer(reverse: boolean): void + + function TargetNearestPartyMember(reverse: boolean): void + + function TargetNearestRaidMember(reverse: boolean): void + + function TargetPriorityHighlightEnd(): void + + function TargetPriorityHighlightStart(useStartDelay: boolean): void + + function TargetToggle(): void + + function TargetUnit(name: string, exactMatch: boolean): void + + namespace C_TaxiMap { + function GetAllTaxiNodes(uiMapID: number): undefined[] + + function GetTaxiNodesForMap(uiMapID: number): undefined[] + + function ShouldMapShowTaxiNodes(uiMapID: number): boolean + } + + namespace C_Texture { + function ClearTitleIconTexture(texture: Texture): void + + function GetAtlasElementID(atlas: string): number + + function GetAtlasID(atlas: string): number + + function GetAtlasInfo(atlas: string): AtlasInfo + + function GetCraftingReagentQualityChatIcon(quality: number): string + + function GetFilenameFromFileDataID(fileDataID: number): string + + function GetTitleIconTexture( + titleID: string, + version: TitleIconVersion, + callback: GetTitleIconTextureCallback + ): void + + function IsTitleIconTextureReady(titleID: string, version: TitleIconVersion): boolean + + function SetTitleIconTexture( + texture: Texture, + titleID: string, + version: TitleIconVersion + ): void + } + + function GetThreatStatusColor( + gameErrorIndex: number + ): LuaMultiReturn<[colorR: number, colorG: number, colorB: number]> + + function IsThreatWarningEnabled(): boolean + + function GetCurrentTitle(): number + + function GetNumTitles(): number + + function GetTitleName( + titleMaskID: number + ): LuaMultiReturn<[titleString: string, playerTitle: boolean]> + + function IsTitleKnown(titleMaskID: number): boolean + + function SetCurrentTitle(titleMaskID: number): void + + namespace C_TooltipComparison { + function GetItemComparisonDelta( + comparisonItem: TooltipComparisonItem, + equippedItem: TooltipComparisonItem, + pairedItem: TooltipComparisonItem | undefined, + addPairedStats: boolean | undefined + ): string[] + + function GetItemComparisonInfo( + comparisonItem: TooltipComparisonItem + ): TooltipItemComparisonInfo + } + + namespace C_TooltipInfo { + function GetAchievementByID(achievementID: number): TooltipData + + function GetAction(actionID: number): TooltipData + + function GetArtifactItem(): TooltipData + + function GetArtifactPowerByID(powerID: number): TooltipData + + function GetAzeriteEssence(essenceID: number, rank: number | undefined): TooltipData + + function GetAzeriteEssenceSlot(slot: AzeriteEssenceSlot): TooltipData + + function GetAzeritePower( + itemID: number, + itemLevel: number, + powerID: number, + owningItemLink: string | undefined + ): TooltipData + + function GetBackpackToken(index: number): TooltipData + + function GetBagItem(bagIndex: BagIndex, slotIndex: number): TooltipData + + function GetBagItemChild( + bagIndex: BagIndex, + slotIndex: number, + equipSlotIndex: number + ): TooltipData + + function GetBuybackItem(index: number): TooltipData + + function GetCompanionPet(petGUID: string): TooltipData + + function GetConduit(conduitID: number, conduitRank: number): TooltipData + + function GetCurrencyByID(currencyID: number, amount: number | undefined): TooltipData + + function GetCurrencyToken(tokenIndex: number): TooltipData + + function GetEnhancedConduit(conduitID: number, rank: number): TooltipData + + function GetEquipmentSet(setID: number): TooltipData + + function GetExistingSocketGem( + index: number, + toDestroy: boolean | undefined + ): TooltipData + + function GetGuildBankItem(tab: number, slot: number): TooltipData + + function GetHeirloomByItemID(itemID: number): TooltipData + + function GetHyperlink( + hyperlink: string, + optionalArg1: number | undefined, + optionalArg2: number | undefined, + hideVendorPrice: boolean | undefined + ): TooltipData + + function GetInboxItem( + messageIndex: number, + attachmentIndex: number | undefined + ): TooltipData + + function GetInstanceLockEncountersComplete(index: number): TooltipData + + function GetInventoryItem( + unit: UnitToken, + slot: number, + hideUselessStats: boolean | undefined + ): TooltipData + + function GetInventoryItemByID(itemID: number): TooltipData + + function GetItemByGUID(guid: string): TooltipData + + function GetItemByID(itemID: number, quality: number | undefined): TooltipData + + function GetItemByItemModifiedAppearanceID( + itemModifiedAppearanceID: number + ): TooltipData + + function GetItemInteractionItem(): TooltipData + + function GetItemKey( + itemID: number, + itemLevel: number, + itemSuffix: number, + requiredLevel: number | undefined + ): TooltipData + + function GetLFGDungeonReward(dungeonID: number, lootIndex: number): TooltipData + + function GetLFGDungeonShortageReward( + dungeonID: number, + shortageSeverity: number, + lootIndex: number + ): TooltipData + + function GetLootCurrency(slot: number): TooltipData + + function GetLootItem(slot: number): TooltipData + + function GetLootRollItem(id: number): TooltipData + + function GetMerchantCostItem(slot: number, costIndex: number): TooltipData + + function GetMerchantItem(slot: number): TooltipData + + function GetMinimapMouseover(): TooltipData + + function GetMountBySpellID( + spellID: number, + checkIndoors: boolean | undefined + ): TooltipData + + function GetOwnedItemByID(itemID: number): TooltipData + + function GetPetAction(slot: number): TooltipData + + function GetPossession(slot: number): TooltipData + + function GetPvpBrawl(isSpecial: boolean | undefined): TooltipData + + function GetPvpTalent( + talentID: number, + isInspect: boolean | undefined, + groupIndex: number | undefined, + talentIndex: number | undefined + ): TooltipData + + function GetQuestCurrency(type: string, currencyIndex: number): TooltipData + + function GetQuestItem( + type: string, + itemIndex: number, + allowCollectionText: boolean | undefined + ): TooltipData + + function GetQuestLogCurrency( + type: string, + currencyIndex: number, + questID: number | undefined + ): TooltipData + + function GetQuestLogItem( + type: string, + itemIndex: number, + questID: number | undefined, + allowCollectionText: boolean | undefined + ): TooltipData + + function GetQuestLogSpecialItem(questIndex: number): TooltipData + + function GetQuestPartyProgress( + questID: number, + omitTitle: boolean | undefined, + ignoreActivePlayer: boolean | undefined + ): TooltipData + + function GetRecipeRankInfo(recipeID: number, rank: number): TooltipData + + function GetRecipeReagentItem( + recipeSpellID: number, + dataSlotIndex: number + ): TooltipData + + function GetRecipeResultItem( + recipeID: number, + craftingReagents: undefined[] | undefined, + recraftItemGUID: string | undefined, + recipeLevel: number | undefined, + overrideQualityID: number | undefined + ): TooltipData + + function GetRecipeResultItemForOrder( + recipeID: number, + craftingReagents: undefined[] | undefined, + orderID: number | undefined, + recipeLevel: number | undefined, + overrideQualityID: number | undefined + ): TooltipData + + function GetRuneforgeResultItem( + itemGUID: string, + itemLevel: number, + powerID: number | undefined, + modifiers: number[] | undefined + ): TooltipData + + function GetSendMailItem(attachmentIndex: number | undefined): TooltipData + + function GetShapeshift(slot: number): TooltipData + + function GetSlottedKeystone(): TooltipData + + function GetSocketGem(index: number): TooltipData + + function GetSocketedItem(): TooltipData + + function GetSocketedRelic(slotIndex: number): TooltipData + + function GetSpellBookItem( + spellBookItemSlotIndex: number, + spellBookItemSpellBank: SpellBookSpellBank + ): TooltipData + + function GetSpellByID( + spellID: number, + isPet: boolean | undefined, + showSubtext: boolean | undefined, + dontOverride: boolean | undefined, + difficultyID: number | undefined, + isLink: boolean | undefined + ): TooltipData + + function GetTalent( + talentID: number, + isInspect: boolean | undefined, + groupIndex: number | undefined + ): TooltipData + + function GetTotem(slot: number): TooltipData + + function GetToyByItemID(itemID: number): TooltipData + + function GetTradePlayerItem(slot: number): TooltipData + + function GetTradeTargetItem(slot: number): TooltipData + + function GetTrainerService(serviceIndex: number): TooltipData + + function GetTraitEntry(entryID: number, rank: number | undefined): TooltipData + + function GetTransmogrifyItem(transmogLocation: TransmogLocationMixin): TooltipData + + function GetUnit(unit: UnitToken, hideStatus: boolean | undefined): TooltipData + + function GetUnitAura( + unitToken: UnitToken, + index: number, + filter: string | undefined + ): TooltipData + + function GetUnitBuff( + unitToken: UnitToken, + index: number, + filter: string | undefined + ): TooltipData + + function GetUnitBuffByAuraInstanceID( + unitTokenString: string, + auraInstanceID: number, + filter: string | undefined + ): TooltipData + + function GetUnitDebuff( + unitToken: UnitToken, + index: number, + filter: string | undefined + ): TooltipData + + function GetUnitDebuffByAuraInstanceID( + unitTokenString: string, + auraInstanceID: number, + filter: string | undefined + ): TooltipData + + function GetUpgradeItem(): TooltipData + + function GetVoidDepositItem(slot: number): TooltipData + + function GetVoidItem(tab: number, slot: number): TooltipData + + function GetVoidWithdrawalItem(slot: number): TooltipData + + function GetWeeklyReward(itemDBID: string): TooltipData + + function GetWorldCursor(): TooltipData + + function GetWorldLootObject(unitTokenString: string): TooltipData + } + + function DestroyTotem(slot: number): void + + function GetTotemCannotDismiss(slot: number): boolean | undefined + + function GetTotemInfo( + slot: number + ): LuaMultiReturn< + [ + haveTotem: boolean, + totemName: string, + startTime: number, + duration: number, + icon: number + ] + > + + function GetTotemTimeLeft(slot: number): number | undefined + + function TargetTotem(slot: number): void + + namespace C_ToyBoxInfo { + function ClearFanfare(itemID: number): void + + function IsToySourceValid(source: number): boolean + + function IsUsingDefaultFilters(): boolean + + function NeedsFanfare(itemID: number): boolean + + function SetDefaultFilters(): void + } + + namespace C_TradeSkillUI { + function CanStoreEnchantInItem(itemGUID: string): boolean + + function CloseTradeSkill(): void + + function CraftEnchant( + recipeSpellID: number, + numCasts: number, + craftingReagents: undefined[] | undefined, + itemTarget: ItemLocationMixin | undefined, + applyConcentration: boolean | undefined + ): void + + function CraftRecipe( + recipeSpellID: number, + numCasts: number, + craftingReagents: undefined[] | undefined, + recipeLevel: number | undefined, + orderID: number | undefined, + applyConcentration: boolean | undefined + ): void + + function CraftSalvage( + recipeSpellID: number, + numCasts: number, + itemTarget: ItemLocationMixin, + craftingReagents: undefined[] | undefined, + applyConcentration: boolean | undefined + ): void + + function DoesRecraftingRecipeAcceptItem( + itemLocation: ItemLocationMixin, + recipeID: number + ): boolean + + function GetAllProfessionTradeSkillLines(): number[] + + function GetBaseProfessionInfo(): ProfessionInfo + + function GetChildProfessionInfo(): ProfessionInfo + + function GetChildProfessionInfos(): undefined[] + + function GetConcentrationCurrencyID(skillLineID: number): number + + function GetCraftableCount( + recipeSpellID: number, + recipeLevel: number | undefined + ): number + + function GetCraftingOperationInfo( + recipeID: number, + craftingReagents: undefined[], + allocationItemGUID: string | undefined, + applyConcentration: boolean + ): CraftingOperationInfo | undefined + + function GetCraftingOperationInfoForOrder( + recipeID: number, + craftingReagents: undefined[], + orderID: number, + applyConcentration: boolean + ): CraftingOperationInfo | undefined + + function GetCraftingReagentBonusText( + recipeSpellID: number, + craftingReagentIndex: number, + craftingReagents: undefined[], + allocationItemGUID: string | undefined + ): string[] + + function GetCraftingTargetItems(itemIDs: number[]): undefined[] + + function GetEnchantItems(recipeID: number): string[] + + function GetFactionSpecificOutputItem(recipeSpellID: number): number | undefined + + function GetGatheringOperationInfo( + recipeID: number + ): GatheringOperationInfo | undefined + + function GetHideUnownedFlags( + recipeID: number + ): LuaMultiReturn<[cannotModifyHideUnowned: boolean, alwaysShowUnowned: boolean]> + + function GetItemCraftedQualityByItemInfo( + itemInfo: string | number + ): number | undefined + + function GetItemReagentQualityByItemInfo( + itemInfo: string | number + ): number | undefined + + function GetItemSlotModifications(itemGUID: string): undefined[] + + function GetItemSlotModificationsForOrder(orderID: number): undefined[] + + function GetOriginalCraftRecipeID( + itemGUID: string + ): LuaMultiReturn< + [recipeID: number | undefined, skillLineAbilityID: number | undefined] + > + + function GetProfessionByInventorySlot(slot: number): Profession | undefined + + function GetProfessionChildSkillLineID(): number + + function GetProfessionForCursorItem(): Profession | undefined + + function GetProfessionInfoByRecipeID(recipeID: number): ProfessionInfo + + function GetProfessionInfoBySkillLineID(skillLineID: number): ProfessionInfo + + function GetProfessionInventorySlots(): undefined[] + + function GetProfessionNameForSkillLineAbility(skillLineAbilityID: number): string + + function GetProfessionSkillLineID(profession: Profession): number + + function GetProfessionSlots(profession: Profession): number[] + + function GetProfessionSpells( + professionID: number, + skillLineID: number | undefined + ): number[] + + function GetQualitiesForRecipe(recipeID: number): number[] | undefined + + function GetReagentDifficultyText( + craftingReagentIndex: number, + craftingReagents: undefined[] + ): string + + function GetReagentRequirementItemIDs(itemID: number): number[] + + function GetReagentSlotStatus( + mcrSlotID: number, + recipeSpellID: number, + skillLineAbilityID: number + ): LuaMultiReturn<[locked: boolean, lockedReason: string]> + + function GetRecipeDescription( + recipeID: number, + craftingReagents: undefined[], + allocationItemGUID: string | undefined + ): string + + function GetRecipeFixedReagentItemLink( + recipeID: number, + dataSlotIndex: number + ): string + + function GetRecipeInfo( + recipeSpellID: number, + recipeLevel: number | undefined + ): TradeSkillRecipeInfo | undefined + + function GetRecipeInfoForSkillLineAbility( + skillLineAbilityID: number, + recipeLevel: number | undefined + ): TradeSkillRecipeInfo | undefined + + function GetRecipeOutputItemData( + recipeSpellID: number, + reagents: undefined[] | undefined, + allocationItemGUID: string | undefined, + overrideQualityID: number | undefined, + recraftOrderID: number | undefined + ): CraftingRecipeOutputInfo + + function GetRecipeQualityItemIDs(recipeSpellID: number): number[] | undefined + + function GetRecipeQualityReagentItemLink( + recipeID: number, + dataSlotIndex: number, + qualityIndex: number + ): string + + function GetRecipeRequirements(recipeID: number): undefined[] + + function GetRecipeSchematic( + recipeSpellID: number, + isRecraft: boolean, + recipeLevel: number | undefined + ): CraftingRecipeSchematic + + function GetRecipesTracked(isRecraft: boolean): number[] + + function GetRecraftItems(recipeID: number | undefined): string[] + + function GetRecraftRemovalWarnings( + itemGUID: string, + replacedItemIDs: number[] + ): string[] + + function GetRemainingRecasts(): number + + function GetSalvagableItemIDs(recipeID: number): number[] + + function GetShowLearned(): boolean + + function GetShowUnlearned(): boolean + + function GetSkillLineForGear(itemInfo: string | number): number | undefined + + function GetSourceTypeFilter(): number + + function GetTradeSkillDisplayName(skillLineID: number): string + + function HasFavoriteOrderRecipes(): boolean + + function IsEnchantTargetValid( + recipeID: number, + itemGUID: string, + craftingReagents: undefined[] | undefined + ): boolean + + function IsGuildTradeSkillsEnabled(): boolean + + function IsNPCCrafting(): boolean + + function IsNearProfessionSpellFocus(profession: Profession): boolean + + function IsOriginalCraftRecipeLearned(itemGUID: string): boolean + + function IsRecipeFirstCraft(recipeID: number): boolean + + function IsRecipeInBaseSkillLine(recipeID: number): boolean + + function IsRecipeInSkillLine(recipeID: number, skillLineID: number): boolean + + function IsRecipeProfessionLearned(recipeID: number): boolean + + function IsRecipeTracked(recipeID: number, isRecraft: boolean): boolean + + function IsRecraftItemEquipped(recraftItemGUID: string): boolean + + function IsRecraftReagentValid(itemGUID: string, itemID: number): boolean + + function IsRuneforging(): boolean + + function OpenRecipe(recipeID: number): void + + function OpenTradeSkill(skillLineID: number): boolean + + function RecraftLimitCategoryValid(reagentItemID: number): boolean + + function RecraftRecipe( + itemGUID: string, + craftingReagents: undefined[] | undefined, + removedModifications: undefined[] | undefined, + applyConcentration: boolean | undefined + ): boolean + + function RecraftRecipeForOrder( + orderID: number, + itemGUID: string, + craftingReagents: undefined[] | undefined, + removedModifications: undefined[] | undefined, + applyConcentration: boolean | undefined + ): boolean + + function SetOnlyShowAvailableForOrders(flag: boolean): void + + function SetProfessionChildSkillLineID(skillLineID: number): void + + function SetRecipeTracked( + recipeID: number, + tracked: boolean, + isRecraft: boolean + ): void + + function SetShowLearned(flag: boolean): void + + function SetShowUnlearned(flag: boolean): void + + function SetSourceTypeFilter(sourceTypeFilter: number): void + } + + namespace C_Transmog { + function ApplyAllPending(currentSpecOnly: boolean): boolean + + function CanHaveSecondaryAppearanceForSlotID(slotID: number): boolean + + function CanTransmogItem( + itemInfo: string | number + ): LuaMultiReturn< + [ + canBeTransmogged: boolean, + selfFailureReason: string | undefined, + canTransmogOthers: boolean, + othersFailureReason: string | undefined + ] + > + + function CanTransmogItemWithItem( + targetItemInfo: string | number, + sourceItemInfo: string | number + ): LuaMultiReturn<[canTransmog: boolean, failureReason: string | undefined]> + + function ClearAllPending(): void + + function ClearPending(transmogLocation: TransmogLocationMixin): void + + function Close(): void + + function ExtractTransmogIDList(input: string): number[] + + function GetAllSetAppearancesByID(setID: number): undefined[] | undefined + + function GetApplyCost(): number | undefined + + function GetApplyWarnings(): undefined[] + + function GetBaseCategory(transmogID: number): TransmogCollectionType + + function GetCreatureDisplayIDForSource( + itemModifiedAppearanceID: number + ): number | undefined + + function GetItemIDForSource(itemModifiedAppearanceID: number): number | undefined + + function GetPending(transmogLocation: TransmogLocationMixin): TransmogLocationMixin + + function GetSlotEffectiveCategory( + transmogLocation: TransmogLocationMixin + ): TransmogCollectionType + + function GetSlotForInventoryType(inventoryType: number): number + + function GetSlotInfo( + transmogLocation: TransmogLocationMixin + ): LuaMultiReturn< + [ + isTransmogrified: boolean, + hasPending: boolean, + isPendingCollected: boolean, + canTransmogrify: boolean, + cannotTransmogrifyReason: number, + hasUndo: boolean, + isHideVisual: boolean, + texture: number | undefined + ] + > + + function GetSlotUseError( + transmogLocation: TransmogLocationMixin + ): LuaMultiReturn<[errorCode: number, errorString: string]> + + function GetSlotVisualInfo( + transmogLocation: TransmogLocationMixin + ): LuaMultiReturn< + [ + baseSourceID: number, + baseVisualID: number, + appliedSourceID: number, + appliedVisualID: number, + pendingSourceID: number, + pendingVisualID: number, + hasUndo: boolean, + isHideVisual: boolean, + itemSubclass: number + ] + > + + function IsAtTransmogNPC(): boolean + + function IsSlotBeingCollapsed(transmogLocation: TransmogLocationMixin): boolean + + function LoadOutfit(outfitID: number): void + + function SetPending( + transmogLocation: TransmogLocationMixin, + pendingInfo: TransmogLocationMixin + ): void + } + + namespace C_TransmogCollection { + function AccountCanCollectSource( + sourceID: number + ): LuaMultiReturn<[hasItemData: boolean, canCollect: boolean]> + + function AreAllCollectionTypeFiltersChecked(): boolean + + function AreAllSourceTypeFiltersChecked(): boolean + + function CanAppearanceBeDisplayedOnPlayer(itemAppearanceID: number): boolean + + function CanAppearanceHaveIllusion(appearanceID: number): boolean + + function ClearNewAppearance(visualID: number): void + + function ClearSearch(searchType: TransmogSearchType): boolean + + function DeleteOutfit(outfitID: number): void + + function EndSearch(): void + + function GetAllAppearanceSources(itemAppearanceID: number): number[] + + function GetAllFactionsShown(): boolean + + function GetAllRacesShown(): boolean + + function GetAppearanceCameraID( + itemAppearanceID: number, + variation: TransmogCameraVariation | undefined + ): number + + function GetAppearanceCameraIDBySource( + itemModifiedAppearanceID: number, + variation: TransmogCameraVariation | undefined + ): number + + function GetAppearanceInfoBySource( + itemModifiedAppearanceID: number + ): TransmogAppearanceInfoBySourceData + + function GetAppearanceSourceDrops(itemModifiedAppearanceID: number): undefined[] + + function GetAppearanceSourceInfo( + itemModifiedAppearanceID: number + ): LuaMultiReturn< + [ + category: TransmogCollectionType, + itemAppearanceID: number, + canHaveIllusion: boolean, + icon: number, + isCollected: boolean, + itemLink: string, + transmoglink: string, + sourceType: number | undefined, + itemSubClass: number + ] + > + + function GetAppearanceSources( + appearanceID: number, + categoryType: TransmogCollectionType | undefined, + transmogLocation: TransmogLocationMixin | undefined + ): undefined[] + + function GetArtifactAppearanceStrings( + appearanceID: number + ): LuaMultiReturn<[name: string, hyperlink: string]> + + function GetCategoryAppearances( + category: TransmogCollectionType, + transmogLocation: TransmogLocationMixin | undefined + ): undefined[] + + function GetCategoryCollectedCount(category: TransmogCollectionType): number + + function GetCategoryForItem(itemModifiedAppearanceID: number): TransmogCollectionType + + function GetCategoryInfo( + category: TransmogCollectionType + ): LuaMultiReturn< + [ + name: string, + isWeapon: boolean, + canHaveIllusions: boolean, + canMainHand: boolean, + canOffHand: boolean + ] + > + + function GetCategoryTotal(category: TransmogCollectionType): number + + function GetClassFilter(): number + + function GetCollectedShown(): boolean + + function GetFallbackWeaponAppearance(): number | undefined + + function GetFilteredCategoryCollectedCount(category: TransmogCollectionType): number + + function GetFilteredCategoryTotal(category: TransmogCollectionType): number + + function GetIllusionInfo(illusionID: number): TransmogIllusionInfo + + function GetIllusionStrings( + illusionID: number + ): LuaMultiReturn<[name: string, hyperlink: string, sourceText: string | undefined]> + + function GetIllusions(): undefined[] + + function GetInspectItemTransmogInfoList(): ItemTransmogInfo[] + + function GetIsAppearanceFavorite(itemAppearanceID: number): boolean + + function GetItemInfo( + itemInfo: string | number + ): LuaMultiReturn<[itemAppearanceID: number, itemModifiedAppearanceID: number]> + + function GetItemTransmogInfoListFromOutfitHyperlink( + hyperlink: string + ): ItemTransmogInfo[] + + function GetLatestAppearance(): LuaMultiReturn< + [visualID: number, category: TransmogCollectionType] + > + + function GetNumMaxOutfits(): number + + function GetNumTransmogSources(): number + + function GetOutfitHyperlinkFromItemTransmogInfoList( + itemTransmogInfoList: ItemTransmogInfo[] + ): string + + function GetOutfitInfo(outfitID: number): LuaMultiReturn<[name: string, icon: number]> + + function GetOutfitItemTransmogInfoList(outfitID: number): ItemTransmogInfo[] + + function GetOutfits(): number[] + + function GetPairedArtifactAppearance(itemModifiedAppearanceID: number): number + + function GetSourceIcon(itemModifiedAppearanceID: number): number + + function GetSourceInfo(sourceID: number): AppearanceSourceInfo + + function GetSourceItemID(itemModifiedAppearanceID: number): number + + function GetSourceRequiredHoliday(itemModifiedAppearanceID: number): string + + function GetUncollectedShown(): boolean + + function GetValidAppearanceSourcesForClass( + appearanceID: number, + classID: number, + categoryType: TransmogCollectionType | undefined, + transmogLocation: TransmogLocationMixin | undefined + ): undefined[] + + function HasFavorites(): boolean + + function IsAppearanceHiddenVisual(appearanceID: number): boolean + + function IsCategoryValidForItem( + category: TransmogCollectionType, + itemInfo: string | number + ): boolean + + function IsNewAppearance(visualID: number): boolean + + function IsSearchDBLoading(): boolean + + function IsSearchInProgress(searchType: TransmogSearchType): boolean + + function IsSourceTypeFilterChecked(index: number): boolean + + function IsUsingDefaultFilters(): boolean + + function ModifyOutfit( + outfitID: number, + itemTransmogInfoList: ItemTransmogInfo[] + ): void + + function NewOutfit( + name: string, + icon: number, + itemTransmogInfoList: ItemTransmogInfo[] + ): number | undefined + + function PlayerCanCollectSource( + sourceID: number + ): LuaMultiReturn<[hasItemData: boolean, canCollect: boolean]> + + function PlayerHasTransmog(itemID: number, itemAppearanceModID: number): boolean + + function PlayerHasTransmogByItemInfo(itemInfo: string | number): boolean + + function PlayerHasTransmogItemModifiedAppearance( + itemModifiedAppearanceID: number + ): boolean + + function PlayerKnowsSource(sourceID: number): boolean + + function RenameOutfit(outfitID: number, name: string): void + + function SearchProgress(searchType: TransmogSearchType): number + + function SearchSize(searchType: TransmogSearchType): number + + function SetAllCollectionTypeFilters(checked: boolean): void + + function SetAllFactionsShown(shown: boolean): void + + function SetAllRacesShown(shown: boolean): void + + function SetAllSourceTypeFilters(checked: boolean): void + + function SetClassFilter(classID: number): void + + function SetCollectedShown(shown: boolean): void + + function SetDefaultFilters(): void + + function SetIsAppearanceFavorite(itemAppearanceID: number, isFavorite: boolean): void + + function SetSearch(searchType: TransmogSearchType, searchText: string): boolean + + function SetSearchAndFilterCategory(category: TransmogCollectionType): void + + function SetSourceTypeFilter(index: number, checked: boolean): void + + function SetUncollectedShown(shown: boolean): void + + function UpdateUsableAppearances(): void + } + + namespace C_TransmogSets { + function ClearLatestSource(): void + + function ClearNewSource(sourceID: number): void + + function ClearSetNewSourcesForSlot(transmogSetID: number, slot: number): void + + function GetAllSets(): undefined[] + + function GetAllSourceIDs(transmogSetID: number): number[] + + function GetBaseSetID(transmogSetID: number): number + + function GetBaseSets(): undefined[] + + function GetBaseSetsFilter(index: number): boolean + + function GetCameraIDs(): LuaMultiReturn< + [detailsCameraID: number | undefined, vendorCameraID: number | undefined] + > + + function GetFilteredBaseSetsCounts(): LuaMultiReturn< + [numCollected: number, numTotal: number] + > + + function GetFullBaseSetsCounts(): LuaMultiReturn< + [numCollected: number, numTotal: number] + > + + function GetIsFavorite( + transmogSetID: number + ): LuaMultiReturn<[isFavorite: boolean, isGroupFavorite: boolean]> + + function GetLatestSource(): number + + function GetSetInfo(transmogSetID: number): TransmogSetInfo + + function GetSetNewSources(transmogSetID: number): number[] + + function GetSetPrimaryAppearances(transmogSetID: number): undefined[] + + function GetSetsContainingSourceID(sourceID: number): number[] + + function GetSourceIDsForSlot(transmogSetID: number, slot: number): number[] + + function GetSourcesForSlot(transmogSetID: number, slot: number): undefined[] + + function GetTransmogSetsClassFilter(): number + + function GetUsableSets(): undefined[] + + function GetValidBaseSetsCountsForCharacter(): LuaMultiReturn< + [numCollected: number, numTotal: number] + > + + function GetVariantSets(transmogSetID: number): undefined[] + + function HasUsableSets(): boolean + + function IsBaseSetCollected(transmogSetID: number): boolean + + function IsNewSource(sourceID: number): boolean + + function IsSetVisible(transmogSetID: number): boolean + + function IsUsingDefaultBaseSetsFilters(): boolean + + function SetBaseSetsFilter(index: number, isChecked: boolean): void + + function SetDefaultBaseSetsFilters(): void + + function SetHasNewSources(transmogSetID: number): boolean + + function SetHasNewSourcesForSlot(transmogSetID: number, slot: number): boolean + + function SetIsFavorite(transmogSetID: number, isFavorite: boolean): void + + function SetTransmogSetsClassFilter(classID: number): void + } + + namespace C_Tutorial { + function AbandonTutorialArea(): void + + function ReturnToTutorialArea(): void + } + + namespace C_UIColor { + function GetColors(): undefined[] + } + + namespace C_EventToastManager { + function GetLevelUpDisplayToastsFromLevel(level: number): undefined[] + + function GetNextToastToDisplay(): EventToastInfo + + function RemoveCurrentToast(): void + } + + namespace C_FrameManager { + function GetFrameVisibilityState(frameType: UIFrameType): boolean + } + + namespace C_GenericWidgetDisplay { + function Acknowledge(): void + + function Close(): void + } + + namespace C_Macro { + function RunMacroText(text: string, button: string): void + + function SetMacroExecuteLineCallback(cb: MacroExecuteLineCallback): void + } + + namespace C_UI { + function DoesAnyDisplayHaveNotch(): boolean + + function GetTopLeftNotchSafeRegion(): LuaMultiReturn< + [left: number, right: number, top: number, bottom: number] + > + + function GetTopRightNotchSafeRegion(): LuaMultiReturn< + [left: number, right: number, top: number, bottom: number] + > + + function GetUIParent(): unknown + + function GetWorldFrame(): unknown + + function Reload(): void + + function ShouldUIParentAvoidNotch(): boolean + } + + namespace C_ModelInfo { + function AddActiveModelScene(modelSceneFrame: ModelScene, modelSceneID: number): void + + function AddActiveModelSceneActor( + modelSceneFrameActor: ModelSceneActor, + modelSceneActorID: number + ): void + + function ClearActiveModelScene(modelSceneFrame: ModelScene): void + + function ClearActiveModelSceneActor(modelSceneFrameActor: ModelSceneActor): void + + function GetModelSceneActorDisplayInfoByID( + modelActorDisplayID: number + ): UIModelSceneActorDisplayInfo + + function GetModelSceneActorInfoByID(modelActorID: number): UIModelSceneActorInfo + + function GetModelSceneCameraInfoByID( + modelSceneCameraID: number + ): UIModelSceneCameraInfo + + function GetModelSceneInfoByID( + modelSceneID: number + ): LuaMultiReturn< + [ + modelSceneType: ModelSceneType, + modelCameraIDs: number[], + modelActorsIDs: number[], + flags: number + ] + > + } + + namespace C_ModifiedInstance { + function GetModifiedInstanceInfoFromMapID(mapID: number): ModifiedInstanceInfo + } + + namespace C_SystemVisibilityManager { + function IsSystemVisible(system: UISystemType): boolean + } + + namespace C_UIWidgetManager { + function GetAllWidgetsBySetID(setID: number): undefined[] + + function GetBelowMinimapWidgetSetID(): number + + function GetBulletTextListWidgetVisualizationInfo( + widgetID: number + ): BulletTextListWidgetVisualizationInfo | undefined + + function GetCaptureBarWidgetVisualizationInfo( + widgetID: number + ): CaptureBarWidgetVisualizationInfo | undefined + + function GetCaptureZoneVisualizationInfo( + widgetID: number + ): CaptureZoneVisualizationInfo | undefined + + function GetDiscreteProgressStepsVisualizationInfo( + widgetID: number + ): DiscreteProgressStepsVisualizationInfo | undefined + + function GetDoubleIconAndTextWidgetVisualizationInfo( + widgetID: number + ): DoubleIconAndTextWidgetVisualizationInfo | undefined + + function GetDoubleStateIconRowVisualizationInfo( + widgetID: number + ): DoubleStateIconRowVisualizationInfo | undefined + + function GetDoubleStatusBarWidgetVisualizationInfo( + widgetID: number + ): DoubleStatusBarWidgetVisualizationInfo | undefined + + function GetFillUpFramesWidgetVisualizationInfo( + widgetID: number + ): FillUpFramesWidgetVisualizationInfo | undefined + + function GetHorizontalCurrenciesWidgetVisualizationInfo( + widgetID: number + ): HorizontalCurrenciesWidgetVisualizationInfo | undefined + + function GetIconAndTextWidgetVisualizationInfo( + widgetID: number + ): IconAndTextWidgetVisualizationInfo | undefined + + function GetIconTextAndBackgroundWidgetVisualizationInfo( + widgetID: number + ): IconTextAndBackgroundWidgetVisualizationInfo | undefined + + function GetIconTextAndCurrenciesWidgetVisualizationInfo( + widgetID: number + ): IconTextAndCurrenciesWidgetVisualizationInfo | undefined + + function GetItemDisplayVisualizationInfo( + widgetID: number + ): ItemDisplayVisualizationInfo | undefined + + function GetMapPinAnimationWidgetVisualizationInfo( + widgetID: number + ): MapPinAnimationWidgetVisualizationInfo | undefined + + function GetObjectiveTrackerWidgetSetID(): number + + function GetPowerBarWidgetSetID(): number + + function GetScenarioHeaderCurrenciesAndBackgroundWidgetVisualizationInfo( + widgetID: number + ): ScenarioHeaderCurrenciesAndBackgroundWidgetVisualizationInfo | undefined + + function GetScenarioHeaderDelvesWidgetVisualizationInfo( + widgetID: number + ): ScenarioHeaderDelvesWidgetVisualizationInfo | undefined + + function GetScenarioHeaderTimerWidgetVisualizationInfo( + widgetID: number + ): ScenarioHeaderTimerWidgetVisualizationInfo | undefined + + function GetSpacerVisualizationInfo( + widgetID: number + ): SpacerVisualizationInfo | undefined + + function GetSpellDisplayVisualizationInfo( + widgetID: number + ): SpellDisplayVisualizationInfo | undefined + + function GetStackedResourceTrackerWidgetVisualizationInfo( + widgetID: number + ): StackedResourceTrackerWidgetVisualizationInfo | undefined + + function GetStatusBarWidgetVisualizationInfo( + widgetID: number + ): StatusBarWidgetVisualizationInfo | undefined + + function GetTextColumnRowVisualizationInfo( + widgetID: number + ): TextColumnRowVisualizationInfo | undefined + + function GetTextWithStateWidgetVisualizationInfo( + widgetID: number + ): TextWithStateWidgetVisualizationInfo | undefined + + function GetTextWithSubtextWidgetVisualizationInfo( + widgetID: number + ): TextWithSubtextWidgetVisualizationInfo | undefined + + function GetTextureAndTextRowVisualizationInfo( + widgetID: number + ): TextureAndTextRowVisualizationInfo | undefined + + function GetTextureAndTextVisualizationInfo( + widgetID: number + ): TextureAndTextVisualizationInfo | undefined + + function GetTextureWithAnimationVisualizationInfo( + widgetID: number + ): TextureWithAnimationVisualizationInfo | undefined + + function GetTopCenterWidgetSetID(): number + + function GetTugOfWarWidgetVisualizationInfo( + widgetID: number + ): TugOfWarWidgetVisualizationInfo | undefined + + function GetUnitPowerBarWidgetVisualizationInfo( + widgetID: number + ): UnitPowerBarWidgetVisualizationInfo | undefined + + function GetWidgetSetInfo(widgetSetID: number): UIWidgetSetInfo + + function GetZoneControlVisualizationInfo( + widgetID: number + ): ZoneControlVisualizationInfo | undefined + + function RegisterUnitForWidgetUpdates(unitToken: string, isGuid: boolean): void + + function SetProcessingUnit(unit: UnitToken | undefined): void + + function SetProcessingUnitGuid(unit: string | undefined): void + + function UnregisterUnitForWidgetUpdates(unitToken: string, isGuid: boolean): void + } + + function LaunchURL(url: string): void + + function LoadURLIndex(index: number, param: number | undefined): void + + namespace C_UnitAuras { + function AddPrivateAuraAnchor(args: AddPrivateAuraAnchorArgs): number | undefined + + function AddPrivateAuraAppliedSound( + sound: UnitPrivateAuraAppliedSoundInfo + ): number | undefined + + function AuraIsPrivate(spellID: number): boolean + + function GetAuraDataByAuraInstanceID( + unitToken: string, + auraInstanceID: number + ): AuraData | undefined + + function GetAuraDataByIndex( + unitToken: string, + index: number, + filter: string | undefined + ): AuraData | undefined + + function GetAuraDataBySlot(unitToken: string, slot: number): AuraData | undefined + + function GetAuraDataBySpellName( + unitToken: string, + spellName: string, + filter: string | undefined + ): AuraData | undefined + + function GetAuraSlots( + unitToken: UnitToken, + filter: string | undefined, + maxSlots: number | undefined, + continuationToken: number | undefined + ): LuaMultiReturn<[outContinuationToken: number | undefined, slots: number]> + + function GetBuffDataByIndex( + unitToken: string, + index: number, + filter: string | undefined + ): AuraData | undefined + + function GetCooldownAuraBySpellID(spellID: number): number | undefined + + function GetDebuffDataByIndex( + unitToken: string, + index: number, + filter: string | undefined + ): AuraData | undefined + + function GetPlayerAuraBySpellID(spellID: number): AuraData | undefined + + function IsAuraFilteredOutByInstanceID( + unitToken: string, + auraInstanceID: number, + filterFlags: string + ): boolean + + function RemovePrivateAuraAnchor(anchorID: number): void + + function RemovePrivateAuraAppliedSound(privateAuraSoundID: number): void + + function SetPrivateWarningTextAnchor( + parent: unknown, + anchor: AnchorBinding | undefined + ): void + + function WantsAlteredForm(unitToken: string): boolean + } + + function CanEjectPassengerFromSeat(virtualSeatIndex: number): boolean + + function CanShowSetRoleButton(): boolean + + function CanSwitchVehicleSeat(): boolean + + function ClosestGameObjectPosition( + gameObjectID: number + ): LuaMultiReturn<[xPos: number, yPos: number, distance: number]> + + function ClosestUnitPosition( + creatureID: number + ): LuaMultiReturn<[xPos: number, yPos: number, distance: number]> + + function EjectPassengerFromSeat(virtualSeatIndex: number): void + + function GetComboPoints(unit: UnitToken, target: UnitToken): number + + function GetNegativeCorruptionEffectInfo(): undefined[] + + function GetUnitChargedPowerPoints(unit: UnitToken): number[] + + function GetUnitEmpowerHoldAtMaxTime(unit: UnitToken): number + + function GetUnitEmpowerMinHoldTime(unit: UnitToken): number + + function GetUnitEmpowerStageDuration(unit: UnitToken, index: number): number + + function GetUnitHealthModifier(unit: UnitToken): number + + function GetUnitMaxHealthModifier(unit: UnitToken): number + + function GetUnitPowerBarInfo(unitToken: UnitToken): UnitPowerBarInfo + + function GetUnitPowerBarInfoByID(barID: number): UnitPowerBarInfo + + function GetUnitPowerBarStrings( + unitToken: UnitToken + ): LuaMultiReturn< + [name: string | undefined, tooltip: string | undefined, cost: string | undefined] + > + + function GetUnitPowerBarStringsByID( + barID: number + ): LuaMultiReturn< + [name: string | undefined, tooltip: string | undefined, cost: string | undefined] + > + + function GetUnitPowerBarTextureInfo( + unitToken: UnitToken, + textureIndex: number, + timerIndex: number | undefined + ): LuaMultiReturn< + [texture: number, colorR: number, colorG: number, colorB: number, colorA: number] + > + + function GetUnitPowerBarTextureInfoByID( + barID: number, + textureIndex: number + ): LuaMultiReturn< + [texture: number, colorR: number, colorG: number, colorB: number, colorA: number] + > + + function GetUnitPowerModifier(unit: UnitToken): number + + function GetUnitSpeed( + unit: UnitToken + ): LuaMultiReturn< + [currentSpeed: number, runSpeed: number, flightSpeed: number, swimSpeed: number] + > + + function GetUnitTotalModifiedMaxHealthPercent(unit: UnitToken): number + + function GetVehicleUIIndicator( + vehicleIndicatorID: number + ): LuaMultiReturn<[backgroundTextureID: number, numSeatIndicators: number]> + + function GetVehicleUIIndicatorSeat( + vehicleIndicatorID: number, + indicatorSeatIndex: number + ): LuaMultiReturn<[virtualSeatIndex: number, xPos: number, yPos: number]> + + function InitiateRolePoll(): boolean + + function IsFalling(unit: UnitToken | undefined): boolean + + function IsFlying(unit: UnitToken | undefined): boolean + + function IsPlayerInGuildFromGUID(playerGUID: string): boolean + + function IsSubmerged(unit: UnitToken | undefined): boolean + + function IsSwimming(unit: UnitToken | undefined): boolean + + function IsUnitModelReadyForUI(unitToken: UnitToken): boolean + + function PlayerIsPVPInactive(unit: UnitToken): boolean + + function PlayerVehicleHasComboPoints(): boolean + + function ReportPlayerIsPVPAFK(unit: UnitToken): void + + function ResistancePercent(resistance: number, casterLevel: number): number + + function SetPortraitTexture( + textureObject: Texture, + unitToken: UnitToken, + disableMasking: boolean + ): void + + function SetPortraitTextureFromCreatureDisplayID( + textureObject: Texture, + creatureDisplayID: number + ): void + + function SetUnitCursorTexture( + textureObject: Texture, + unit: UnitToken, + style: CursorStyle | undefined, + includeLowPriority: boolean | undefined + ): boolean + + function ShowBossFrameWhenUninteractable(unit: UnitToken): boolean + + function UnitAffectingCombat(unit: UnitToken): boolean + + function UnitAlliedRaceInfo( + unit: UnitToken + ): LuaMultiReturn<[isAlliedRace: boolean, hasHeritageArmorUnlocked: boolean]> + + function UnitArmor( + unit: UnitToken + ): LuaMultiReturn<[base: number, effective: number, real: number, bonus: number]> + + function UnitAttackPower( + unit: UnitToken + ): LuaMultiReturn<[attackPower: number, posBuff: number, negBuff: number]> + + function UnitAttackSpeed( + unit: UnitToken + ): LuaMultiReturn<[attackSpeed: number, offhandAttackSpeed: number | undefined]> + + function UnitBattlePetLevel(unit: UnitToken): number | undefined + + function UnitBattlePetSpeciesID(unit: UnitToken): number | undefined + + function UnitBattlePetType(unit: UnitToken): number | undefined + + function UnitCanAssist(unit: UnitToken, target: UnitToken): boolean + + function UnitCanAttack(unit: UnitToken, target: UnitToken): boolean + + function UnitCanCooperate(unit: UnitToken, target: UnitToken): boolean + + function UnitCanPetBattle(unit: UnitToken, target: UnitToken): boolean + + function UnitCastingInfo( + unit: UnitToken + ): LuaMultiReturn< + [ + name: string, + displayName: string, + textureID: number, + startTimeMs: number, + endTimeMs: number, + isTradeskill: boolean, + castID: string, + notInterruptible: boolean, + castingSpellID: number + ] + > + + function UnitChannelInfo( + unitToken: string + ): LuaMultiReturn< + [ + name: string, + displayName: string, + textureID: number, + startTimeMs: number, + endTimeMs: number, + isTradeskill: boolean, + notInterruptible: boolean, + spellID: number, + isEmpowered: boolean, + numEmpowerStages: number + ] + > + + function UnitChromieTimeID(unit: UnitToken): number + + function UnitClass( + unit: UnitToken + ): LuaMultiReturn<[className: string, classFilename: string, classID: number]> + + function UnitClassBase( + unit: UnitToken + ): LuaMultiReturn<[classFilename: string, classID: number]> + + function UnitClassification(unit: UnitToken): string + + function UnitControllingVehicle(unit: UnitToken): boolean + + function UnitCreatureFamily(unit: UnitToken): string + + function UnitCreatureType(unit: UnitToken): string + + function UnitDamage( + unit: UnitToken + ): LuaMultiReturn< + [ + minDamage: number, + maxDamage: number, + offhandMinDamage: number, + offhandMaxDamage: number, + posBuff: number, + negBuff: number, + percent: number + ] + > + + function UnitDetailedThreatSituation( + unit: UnitToken, + mobGUID: UnitToken + ): LuaMultiReturn< + [ + isTanking: boolean, + status: number, + scaledPercentage: number, + rawPercentage: number, + rawThreat: number + ] + > + + function UnitDistanceSquared( + unit: UnitToken + ): LuaMultiReturn<[distance: number, checkedDistance: boolean]> + + function UnitEffectiveLevel(name: string): number + + function UnitExists(unit: UnitToken): boolean + + function UnitFactionGroup( + unitName: string, + checkDisplayRace: boolean + ): LuaMultiReturn<[factionGroupTag: string, localized: string]> + + function UnitFullName( + unit: string + ): LuaMultiReturn<[unitName: string, unitServer: string]> + + function UnitGUID(unit: UnitToken): string | undefined + + function UnitGetIncomingHeals( + unit: UnitToken, + healerGUID: UnitToken | undefined + ): number | undefined + + function UnitGetTotalAbsorbs(unit: UnitToken): number + + function UnitGetTotalHealAbsorbs(unit: UnitToken): number + + function UnitGroupRolesAssigned(unit: UnitToken): string + + function UnitGroupRolesAssignedEnum(unit: UnitToken): number + + function UnitHPPerStamina(unit: UnitToken): number + + function UnitHasRelicSlot(unit: UnitToken): boolean + + function UnitHasVehiclePlayerFrameUI(unit: UnitToken): boolean + + function UnitHasVehicleUI(unit: UnitToken): boolean + + function UnitHealthMax(unit: UnitToken): number + + function UnitHealth(unit: UnitToken, usePredicted: boolean): number + + function UnitHonor(unit: UnitToken): number + + function UnitHonorLevel(unit: UnitToken): number + + function UnitHonorMax(unit: UnitToken): number + + function UnitInAnyGroup(unit: UnitToken, partyIndex: number | undefined): boolean + + function UnitInBattleground( + unit: UnitToken, + partyIndex: number | undefined + ): number | undefined + + function UnitInParty(unit: UnitToken, partyIndex: number | undefined): boolean + + function UnitInPartyIsAI(unit: UnitToken): boolean + + function UnitInPartyShard(unit: UnitToken): boolean + + function UnitInRaid(unit: UnitToken, partyIndex: number | undefined): number | undefined + + function UnitInRange( + unit: UnitToken + ): LuaMultiReturn<[inRange: boolean, checkedRange: boolean]> + + function UnitInSubgroup(unit: UnitToken, partyIndex: number | undefined): boolean + + function UnitInVehicle(unit: UnitToken): boolean + + function UnitInVehicleControlSeat(unit: UnitToken): boolean + + function UnitInVehicleHidesPetFrame(unit: UnitToken): boolean + + function UnitIsAFK(unit: UnitToken): boolean + + function UnitIsBattlePet(unit: UnitToken): boolean | undefined + + function UnitIsBattlePetCompanion(unit: UnitToken): boolean + + function UnitIsBossMob(unit: UnitToken): boolean + + function UnitIsCharmed(unit: UnitToken): boolean + + function UnitIsConnected(unit: UnitToken): boolean + + function UnitIsControlling(unit: UnitToken): boolean + + function UnitIsCorpse(unit: UnitToken): boolean + + function UnitIsDND(unit: UnitToken): boolean + + function UnitIsDead(unit: UnitToken): boolean + + function UnitIsDeadOrGhost(unit: UnitToken): boolean + + function UnitIsEnemy(unit: UnitToken, target: UnitToken): boolean + + function UnitIsFeignDeath(unit: UnitToken): boolean + + function UnitIsFriend(unit: UnitToken, target: UnitToken): boolean + + function UnitIsGameObject(unit: UnitToken): boolean + + function UnitIsGhost(unit: UnitToken): boolean + + function UnitIsInMyGuild(unit: string): boolean + + function UnitIsInteractable(unit: UnitToken): boolean + + function UnitIsMercenary(name: string): boolean + + function UnitIsOtherPlayersBattlePet(unit: UnitToken): boolean + + function UnitIsOtherPlayersPet(unit: UnitToken): boolean + + function UnitIsOwnerOrControllerOfUnit( + controllingUnit: UnitToken, + controlledUnit: UnitToken + ): boolean + + function UnitIsPVP(unit: UnitToken): boolean + + function UnitIsPVPFreeForAll(unit: UnitToken): boolean + + function UnitIsPVPSanctuary(unit: UnitToken): boolean + + function UnitIsPlayer(unit: UnitToken, partyIndex: number | undefined): boolean + + function UnitIsPossessed(unit: UnitToken): boolean + + function UnitIsQuestBoss(unit: UnitToken): boolean + + function UnitIsRaidOfficer(unit: UnitToken): boolean + + function UnitIsSameServer(unitName: string): boolean + + function UnitIsTapDenied(unit: UnitToken): boolean + + function UnitIsTrivial(unit: UnitToken): boolean + + function UnitIsUnconscious(unit: UnitToken): boolean + + function UnitIsUnit(unitName1: string, unitName2: string): boolean + + function UnitIsVisible(unit: UnitToken): boolean + + function UnitIsWildBattlePet(unit: UnitToken): boolean + + function UnitLevel(name: string): number + + function UnitName(unit: string): LuaMultiReturn<[unitName: string, unitServer: string]> + + function UnitNameUnmodified( + unit: string + ): LuaMultiReturn<[unitName: string, unitServer: string]> + + function UnitNameplateShowsWidgetsOnly(unit: UnitToken): boolean + + function UnitNumPowerBarTimers(unit: UnitToken): number + + function UnitOnTaxi(unit: UnitToken): boolean + + function UnitPVPName(unit: UnitToken): string + + function UnitPartialPower( + unitToken: UnitToken, + powerType: PowerType | undefined, + unmodified: boolean + ): number + + function UnitPercentHealthFromGUID(unitGUID: string): number | undefined + + function UnitPhaseReason(unit: UnitToken): PhaseReason | undefined + + function UnitPlayerControlled(unit: UnitToken): boolean + + function UnitPlayerOrPetInParty( + unit: UnitToken, + partyIndex: number | undefined + ): boolean + + function UnitPlayerOrPetInRaid(unit: UnitToken, partyIndex: number | undefined): boolean + + function UnitPosition( + unit: UnitToken + ): LuaMultiReturn< + [positionX: number, positionY: number, positionZ: number, mapID: number] + > + + function UnitPower( + unitToken: UnitToken, + powerType: PowerType | undefined, + unmodified: boolean + ): number + + function UnitPowerBarID(unitToken: UnitToken): number + + function UnitPowerBarTimerInfo( + unit: UnitToken, + index: number + ): LuaMultiReturn<[duration: number, expiration: number, barID: number, auraID: number]> + + function UnitPowerDisplayMod(powerType: PowerType): number + + function UnitPowerMax( + unitToken: UnitToken, + powerType: PowerType | undefined, + unmodified: boolean + ): number + + function UnitPowerType( + unit: UnitToken, + index: number + ): LuaMultiReturn< + [ + powerType: PowerType, + powerTypeToken: string, + rgbX: number, + rgbY: number, + rgbZ: number + ] + > + + function UnitPvpClassification(unit: UnitToken): PvPUnitClassification | undefined + + function UnitQuestTrivialLevelRange(unit: UnitToken): number + + function UnitQuestTrivialLevelRangeScaling(unit: UnitToken): number + + function UnitRace( + name: string + ): LuaMultiReturn<[localizedRaceName: string, englishRaceName: string, raceID: number]> + + function UnitRangedAttackPower( + unit: UnitToken + ): LuaMultiReturn<[attackPower: number, posBuff: number, negBuff: number]> + + function UnitRangedDamage( + unit: UnitToken + ): LuaMultiReturn< + [ + speed: number, + minDamage: number, + maxDamage: number, + posBuff: number, + negBuff: number, + percent: number + ] + > + + function UnitReaction(unit: UnitToken, target: UnitToken): number | undefined + + function UnitRealmRelationship(unit: UnitToken): number | undefined + + function UnitSelectionColor( + unit: UnitToken, + useExtendedColors: boolean + ): LuaMultiReturn<[resultR: number, resultG: number, resultB: number, resultA: number]> + + function UnitSelectionType(unit: UnitToken, useExtendedColors: boolean): number + + function UnitSetRole(unit: UnitToken, roleStr: string | undefined): boolean + + function UnitSetRoleEnum(unit: UnitToken, role: LFGRole | undefined): boolean + + function UnitSex(unit: UnitToken): number | undefined + + function UnitShouldDisplayName(unit: UnitToken): boolean + + function UnitSpellHaste(unit: UnitToken): number + + function UnitStagger(unit: UnitToken): number + + function UnitStat( + unit: UnitToken, + index: number + ): LuaMultiReturn< + [ + currentStat: number, + effectiveStat: number, + statPositiveBuff: number, + statNegativeBuff: number + ] + > + + function UnitSwitchToVehicleSeat(unit: UnitToken, virtualSeatIndex: number): void + + function UnitTargetsVehicleInRaidUI(unit: UnitToken): boolean + + function UnitThreatPercentageOfLead( + unit: UnitToken, + mobGUID: UnitToken + ): number | undefined + + function UnitThreatSituation( + unit: UnitToken, + mobGUID: UnitToken | undefined + ): number | undefined + + function UnitTokenFromGUID(unitGUID: string): string | undefined + + function UnitTreatAsPlayerForDisplay(unit: UnitToken): boolean + + function UnitTrialBankedLevels( + unit: UnitToken + ): LuaMultiReturn< + [bankedLevels: number, xpIntoCurrentLevel: number, xpForNextLevel: number] + > + + function UnitTrialXP(unit: UnitToken): number + + function UnitUsingVehicle(unit: UnitToken): boolean + + function UnitVehicleSeatCount(unit: UnitToken): number + + function UnitVehicleSeatInfo( + unit: UnitToken, + virtualSeatIndex: number + ): LuaMultiReturn< + [ + controlType: string, + occupantName: string, + serverName: string, + ejectable: boolean, + canSwitchSeats: boolean + ] + > + + function UnitVehicleSkin(unit: UnitToken): number + + function UnitWeaponAttackPower( + unit: UnitToken + ): LuaMultiReturn< + [ + mainHandWeaponAttackPower: number, + offHandWeaponAttackPower: number, + rangedWeaponAttackPower: number + ] + > + + function UnitWidgetSet(unit: UnitToken): number + + function UnitXP(unit: UnitToken): number + + function UnitXPMax(unit: UnitToken): number + + function WorldLootObjectExists(unit: UnitToken): boolean + + namespace C_UserFeedback { + function SubmitBug(bugInfo: string, suppressNotification: boolean): boolean + + function SubmitSuggestion(suggestion: string): boolean + } + + namespace C_VideoOptions { + function GetCurrentGameWindowSize(): Vector2DMixin + + function GetDefaultGameWindowSize(monitor: number): Vector2DMixin + + function GetGameWindowSizes(monitor: number, fullscreen: boolean): Vector2DMixin[] + + function GetGxAdapterInfo(): undefined[] + + function SetGameWindowSize(x: number, y: number): void + } + + namespace C_VignetteInfo { + function FindBestUniqueVignette(vignetteGUIDs: string[]): number | undefined + + function GetVignetteInfo(vignetteGUID: string): VignetteInfo | undefined + + function GetVignettePosition( + vignetteGUID: string, + uiMapID: number + ): LuaMultiReturn< + [vignettePosition: Vector2DMixin, vignetteFacing: number | undefined] + > + + function GetVignettes(): string[] + } + + namespace C_VoiceChat { + function ActivateChannel(channelID: number): void + + function ActivateChannelTranscription(channelID: number): void + + function BeginLocalCapture(listenToLocalUser: boolean): void + + function CanPlayerUseVoiceChat(): boolean + + function CreateChannel(channelDisplayName: string): VoiceChatStatusCode + + function DeactivateChannel(channelID: number): void + + function DeactivateChannelTranscription(channelID: number): void + + function EndLocalCapture(): void + + function GetActiveChannelID(): number | undefined + + function GetActiveChannelType(): ChatChannelType | undefined + + function GetAvailableInputDevices(): undefined[] | undefined + + function GetAvailableOutputDevices(): undefined[] | undefined + + function GetChannel(channelID: number): VoiceChatChannel | undefined + + function GetChannelForChannelType( + channelType: ChatChannelType + ): VoiceChatChannel | undefined + + function GetChannelForCommunityStream( + clubId: string, + streamId: string + ): VoiceChatChannel | undefined + + function GetCommunicationMode(): CommunicationMode | undefined + + function GetCurrentVoiceChatConnectionStatusCode(): VoiceChatStatusCode | undefined + + function GetInputVolume(): number | undefined + + function GetJoinClubVoiceChannelError( + clubId: string + ): VoiceChannelErrorReason | undefined + + function GetLocalPlayerActiveChannelMemberInfo(): VoiceChatMember | undefined + + function GetLocalPlayerMemberID(channelID: number): number | undefined + + function GetMasterVolumeScale(): number + + function GetMemberGUID(memberID: number, channelID: number): string + + function GetMemberID(channelID: number, memberGUID: string): number | undefined + + function GetMemberInfo( + memberID: number, + channelID: number + ): VoiceChatMember | undefined + + function GetMemberName(memberID: number, channelID: number): string | undefined + + function GetMemberVolume(playerLocation: PlayerLocationMixin): number | undefined + + function GetOutputVolume(): number | undefined + + function GetPTTButtonPressedState(): boolean | undefined + + function GetProcesses(): undefined[] + + function GetPushToTalkBinding(): string[] | undefined + + function GetRemoteTtsVoices(): undefined[] + + function GetTtsVoices(): undefined[] + + function GetVADSensitivity(): number | undefined + + function IsChannelJoinPending( + channelType: ChatChannelType, + clubId: string | undefined, + streamId: string | undefined + ): boolean + + function IsDeafened(): boolean | undefined + + function IsEnabled(): boolean + + function IsLoggedIn(): boolean + + function IsMemberLocalPlayer(memberID: number, channelID: number): boolean + + function IsMemberMuted(playerLocation: PlayerLocationMixin): boolean | undefined + + function IsMemberMutedForAll(memberID: number, channelID: number): boolean | undefined + + function IsMemberSilenced(memberID: number, channelID: number): boolean | undefined + + function IsMuted(): boolean | undefined + + function IsParentalDisabled(): boolean + + function IsParentalMuted(): boolean + + function IsPlayerUsingVoice(playerLocation: PlayerLocationMixin): boolean + + function IsSilenced(): boolean | undefined + + function IsSpeakForMeActive(): boolean + + function IsSpeakForMeAllowed(): boolean + + function IsTranscribing(): boolean + + function IsTranscriptionAllowed(): boolean + + function IsVoiceChatConnected(): boolean + + function LeaveChannel(channelID: number): void + + function Login(): VoiceChatStatusCode + + function Logout(): VoiceChatStatusCode + + function MarkChannelsDiscovered(): void + + function RequestJoinAndActivateCommunityStreamChannel( + clubId: string, + streamId: string + ): void + + function RequestJoinChannelByChannelType( + channelType: ChatChannelType, + autoActivate: boolean | undefined + ): void + + function SetCommunicationMode(communicationMode: CommunicationMode): void + + function SetDeafened(isDeafened: boolean): void + + function SetInputDevice(deviceID: string): void + + function SetInputVolume(volume: number): void + + function SetMasterVolumeScale(scale: number): void + + function SetMemberMuted(playerLocation: PlayerLocationMixin, muted: boolean): void + + function SetMemberVolume(playerLocation: PlayerLocationMixin, volume: number): void + + function SetMuted(isMuted: boolean): void + + function SetOutputDevice(deviceID: string): void + + function SetOutputVolume(volume: number): void + + function SetPortraitTexture( + textureObject: Texture, + memberID: number, + channelID: number + ): void + + function SetPushToTalkBinding(keys: string[]): void + + function SetVADSensitivity(sensitivity: number): void + + function ShouldDiscoverChannels(): boolean + + function SpeakRemoteTextSample(text: string): void + + function SpeakText( + voiceID: number, + text: string, + destination: VoiceTtsDestination, + rate: number, + volume: number + ): void + + function StopSpeakingText(): void + + function ToggleDeafened(): void + + function ToggleMemberMuted(playerLocation: PlayerLocationMixin): void + + function ToggleMuted(): void + } + + namespace C_CampaignInfo { + function GetAvailableCampaigns(): number[] + + function GetCampaignChapterInfo( + campaignChapterID: number + ): CampaignChapterInfo | undefined + + function GetCampaignID(questID: number): number + + function GetCampaignInfo(campaignID: number): CampaignInfo | undefined + + function GetChapterIDs(campaignID: number): number[] | undefined + + function GetCurrentChapterID(campaignID: number): number | undefined + + function GetFailureReason(campaignID: number): CampaignFailureReason | undefined + + function GetState(campaignID: number): CampaignState + + function IsCampaignQuest(questID: number): boolean + + function SortAsNormalQuest(campaignID: number): boolean + } + + namespace C_WeeklyRewards { + function AreRewardsForCurrentRewardPeriod(): boolean + + function CanClaimRewards(): boolean + + function ClaimReward(id: number): void + + function CloseInteraction(): void + + function GetActivities(type: WeeklyRewardChestThresholdType | undefined): undefined[] + + function GetActivityEncounterInfo( + type: WeeklyRewardChestThresholdType, + index: number + ): undefined[] + + function GetConquestWeeklyProgress(): ConquestWeeklyProgress + + function GetDifficultyIDForActivityTier(activityTierID: number): number + + function GetExampleRewardItemHyperlinks( + id: number + ): LuaMultiReturn<[hyperlink: string, upgradeHyperlink: string]> + + function GetItemHyperlink(itemDBID: string): string + + function GetNextActivitiesIncrease( + activityTierID: number, + level: number + ): LuaMultiReturn< + [ + hasSeasonData: boolean, + nextActivityTierID: number | undefined, + nextLevel: number | undefined, + itemLevel: number | undefined + ] + > + + function GetNextMythicPlusIncrease( + mythicPlusLevel: number + ): LuaMultiReturn< + [ + hasSeasonData: boolean, + nextMythicPlusLevel: number | undefined, + itemLevel: number | undefined + ] + > + + function GetNumCompletedDungeonRuns(): LuaMultiReturn< + [numHeroic: number, numMythic: number, numMythicPlus: number] + > + + function HasAvailableRewards(): boolean + + function HasGeneratedRewards(): boolean + + function HasInteraction(): boolean + + function IsWeeklyChestRetired(): boolean + + function OnUIInteract(): void + + function ShouldShowFinalRetirementMessage(): boolean + + function ShouldShowRetirementMessage(): boolean + } + + namespace C_WorldLootObject { + function GetCurrentWorldLootObjectSwapInventoryType(): InventoryType + + function GetWorldLootObjectInfo(unitToken: UnitToken): WorldLootObjectInfo + + function IsWorldLootObject(unitToken: UnitToken): boolean + + function IsWorldLootObjectInRange(unitToken: UnitToken): boolean + + function OnWorldLootObjectClick(unitToken: UnitToken): void + } + + namespace C_WowTokenUI { + function StartTokenSell(tokenGUID: string): void + } + + namespace C_XMLUtil { + function GetTemplateInfo(name: string): XMLTemplateInfo + + function GetTemplates(): undefined[] + } + + namespace C_ZoneAbility { + function GetActiveAbilities(): undefined[] + + function GetZoneAbilityIcon(zoneAbilitySpellID: number): number | undefined + } + + function GetAreaText(): string + + function GetMinimapZoneText(): string + + function GetRealZoneText(mapID: number | undefined): string + + function GetSubZoneText(): string + + function GetZoneText(): string +} + +export {} diff --git a/src/types/Wow/undocumented.d.ts b/src/types/Wow/undocumented.d.ts new file mode 100644 index 0000000..ebb5cbd --- /dev/null +++ b/src/types/Wow/undocumented.d.ts @@ -0,0 +1,982 @@ +/** @noSelfInFile **/ + +declare global { + type ActionButtons = + | 'ACTIONBUTTON1' + | 'ACTIONBUTTON2' + | 'ACTIONBUTTON3' + | 'ACTIONBUTTON4' + | 'ACTIONBUTTON5' + | 'ACTIONBUTTON6' + | 'ACTIONBUTTON7' + | 'ACTIONBUTTON8' + | 'ACTIONBUTTON9' + | 'ACTIONBUTTON10' + | 'ACTIONBUTTON11' + | 'ACTIONBUTTON12' + | 'MULTIACTIONBAR1BUTTON1' + | 'MULTIACTIONBAR1BUTTON2' + | 'MULTIACTIONBAR1BUTTON3' + | 'MULTIACTIONBAR1BUTTON4' + | 'MULTIACTIONBAR1BUTTON5' + | 'MULTIACTIONBAR1BUTTON6' + | 'MULTIACTIONBAR1BUTTON7' + | 'MULTIACTIONBAR1BUTTON8' + | 'MULTIACTIONBAR1BUTTON9' + | 'MULTIACTIONBAR1BUTTON10' + | 'MULTIACTIONBAR1BUTTON11' + | 'MULTIACTIONBAR1BUTTON12' + | 'MULTIACTIONBAR2BUTTON1' + | 'MULTIACTIONBAR2BUTTON2' + | 'MULTIACTIONBAR2BUTTON3' + | 'MULTIACTIONBAR2BUTTON4' + | 'MULTIACTIONBAR2BUTTON5' + | 'MULTIACTIONBAR2BUTTON6' + | 'MULTIACTIONBAR2BUTTON7' + | 'MULTIACTIONBAR2BUTTON8' + | 'MULTIACTIONBAR2BUTTON9' + | 'MULTIACTIONBAR2BUTTON10' + | 'MULTIACTIONBAR2BUTTON11' + | 'MULTIACTIONBAR2BUTTON12' + | 'MULTIACTIONBAR3BUTTON1' + | 'MULTIACTIONBAR3BUTTON2' + | 'MULTIACTIONBAR3BUTTON3' + | 'MULTIACTIONBAR3BUTTON4' + | 'MULTIACTIONBAR3BUTTON5' + | 'MULTIACTIONBAR3BUTTON6' + | 'MULTIACTIONBAR3BUTTON7' + | 'MULTIACTIONBAR3BUTTON8' + | 'MULTIACTIONBAR3BUTTON9' + | 'MULTIACTIONBAR3BUTTON10' + | 'MULTIACTIONBAR3BUTTON11' + | 'MULTIACTIONBAR3BUTTON12' + | 'MULTIACTIONBAR4BUTTON1' + | 'MULTIACTIONBAR4BUTTON2' + | 'MULTIACTIONBAR4BUTTON3' + | 'MULTIACTIONBAR4BUTTON4' + | 'MULTIACTIONBAR4BUTTON5' + | 'MULTIACTIONBAR4BUTTON6' + | 'MULTIACTIONBAR4BUTTON7' + | 'MULTIACTIONBAR4BUTTON8' + | 'MULTIACTIONBAR4BUTTON9' + | 'MULTIACTIONBAR4BUTTON10' + | 'MULTIACTIONBAR4BUTTON11' + | 'MULTIACTIONBAR4BUTTON12' + | 'MULTIACTIONBAR5BUTTON1' + | 'MULTIACTIONBAR5BUTTON2' + | 'MULTIACTIONBAR5BUTTON3' + | 'MULTIACTIONBAR5BUTTON4' + | 'MULTIACTIONBAR5BUTTON5' + | 'MULTIACTIONBAR5BUTTON6' + | 'MULTIACTIONBAR5BUTTON7' + | 'MULTIACTIONBAR5BUTTON8' + | 'MULTIACTIONBAR5BUTTON9' + | 'MULTIACTIONBAR5BUTTON10' + | 'MULTIACTIONBAR5BUTTON11' + | 'MULTIACTIONBAR5BUTTON12' + | 'MULTIACTIONBAR6BUTTON1' + | 'MULTIACTIONBAR6BUTTON2' + | 'MULTIACTIONBAR6BUTTON3' + | 'MULTIACTIONBAR6BUTTON4' + | 'MULTIACTIONBAR6BUTTON5' + | 'MULTIACTIONBAR6BUTTON6' + | 'MULTIACTIONBAR6BUTTON7' + | 'MULTIACTIONBAR6BUTTON8' + | 'MULTIACTIONBAR6BUTTON9' + | 'MULTIACTIONBAR6BUTTON10' + | 'MULTIACTIONBAR6BUTTON11' + | 'MULTIACTIONBAR6BUTTON12' + | 'MULTIACTIONBAR7BUTTON1' + | 'MULTIACTIONBAR7BUTTON2' + | 'MULTIACTIONBAR7BUTTON3' + | 'MULTIACTIONBAR7BUTTON4' + | 'MULTIACTIONBAR7BUTTON5' + | 'MULTIACTIONBAR7BUTTON6' + | 'MULTIACTIONBAR7BUTTON7' + | 'MULTIACTIONBAR7BUTTON8' + | 'MULTIACTIONBAR7BUTTON9' + | 'MULTIACTIONBAR7BUTTON10' + | 'MULTIACTIONBAR7BUTTON11' + | 'MULTIACTIONBAR7BUTTON12' + + type UnitToken = + | 'arena1' + | 'arena2' + | 'arena3' + | 'arena4' + | 'arena5' + | 'raid1' + | 'raid2' + | 'raid3' + | 'raid4' + | 'raid5' + | 'raid6' + | 'raid7' + | 'raid8' + | 'raid9' + | 'raid10' + | 'raid11' + | 'raid12' + | 'raid13' + | 'raid14' + | 'raid15' + | 'raid16' + | 'raid17' + | 'raid18' + | 'raid19' + | 'raid20' + | 'raid21' + | 'raid22' + | 'raid23' + | 'raid24' + | 'raid25' + | 'raid26' + | 'raid27' + | 'raid28' + | 'raid29' + | 'raid30' + | 'raid31' + | 'raid32' + | 'raid33' + | 'raid34' + | 'raid35' + | 'raid36' + | 'raid37' + | 'raid38' + | 'raid39' + | 'raid40' + | 'raidpet1' + | 'raidpet2' + | 'raidpet3' + | 'raidpet4' + | 'raidpet5' + | 'raidpet6' + | 'raidpet7' + | 'raidpet8' + | 'raidpet9' + | 'raidpet10' + | 'raidpet11' + | 'raidpet12' + | 'raidpet13' + | 'raidpet14' + | 'raidpet15' + | 'raidpet16' + | 'raidpet17' + | 'raidpet18' + | 'boss1' + | 'boss2' + | 'boss3' + | 'boss4' + | 'boss5' + | 'boss6' + | 'boss7' + | 'boss8' + | 'raidpet19' + | 'raidpet20' + | 'raidpet21' + | 'raidpet22' + | 'raidpet23' + | 'raidpet24' + | 'raidpet25' + | 'raidpet26' + | 'raidpet27' + | 'raidpet28' + | 'raidpet29' + | 'raidpet30' + | 'raidpet31' + | 'raidpet32' + | 'raidpet33' + | 'raidpet34' + | 'raidpet35' + | 'raidpet36' + | 'raidpet37' + | 'raidpet38' + | 'raidpet39' + | 'raidpet40' + | 'party1' + | 'party2' + | 'party3' + | 'party4' + | 'party5' + | 'partypet1' + | 'partypet2' + | 'partypet3' + | 'partypet4' + | 'partypet5' + | 'player' + | 'pet' + | 'focus' + | 'mouseover' + | 'vehicle' + | 'target' + | 'none' + | 'npc' + | 'targettarget' + + enum ItemSoundType { + Pickup = 0, + Drop = 1, + Use = 2, + Close = 3 + } + + type FontShadow = [x: number, y: number, color: ColorMixin] + + type UiMapPoint = [uiMapID: number, position: Vector2DMixin, z: number | undefined] + + type TooltipData = + | [ + type: TooltipDataType | undefined, + id: number | undefined, + dataInstanceID: number, // Correlates to TOOLTIP_DATA_UPDATE + lines: TooltipDataLine[] // The lines in the tooltip + ] + | UnitTooltipData + | ItemTooltipData + + type UnitTooltipData = [ + type: TooltipDataType | undefined, + id: number | undefined, + dataInstanceID: number, // Correlates to TOOLTIP_DATA_UPDATE + lines: TooltipDataLine[], // The lines in the tooltip + guid: string, + healthGUID: string + ] + + type ItemTooltipData = [ + type: TooltipDataType | undefined, + id: number | undefined, + dataInstanceID: number, // Correlates to TOOLTIP_DATA_UPDATE + lines: TooltipDataLine[], // The lines in the tooltip + hyperlink: string | undefined, + guid: string | undefined, + hasDynamicData: boolean | undefined, + isAzeriteItem: boolean, + isAzeriteEmpoweredItem: boolean, + isCorruptedItem: boolean, + overrideItemLevel: number | undefined, + repairCost: number | undefined + ] + + type TooltipDataLine = + | [ + type: TooltipDataLineType, + leftColor: ColorMixin, + leftText: string, + rightColor: ColorMixin, + rightText: string | undefined, + wrapText: boolean | undefined + ] + | SellPriceTooltipDataLine + | NestedBlockItemTooltipData + | NestedBlockTooltipDataLine + | UnitTooltipDataLine + | ItemBindingTooltipDataLine + + type UnitTooltipDataLine = [ + type: TooltipDataLineType, + leftColor: ColorMixin, + leftText: string, + rightColor: ColorMixin, + rightText: string | undefined, + wrapText: boolean | undefined, + unitToken: UnitToken + ] + + type SellPriceTooltipDataLine = [ + type: TooltipDataLineType, + leftColor: ColorMixin, + leftText: string, + rightColor: ColorMixin, + rightText: string | undefined, + wrapText: boolean | undefined, + price: number, + maxPrice: number + ] + + type TooltipComparisonItem = [guid: string] + + type FontInfo = [ + height: number, + outline: string, + color: ColorMixin, + shadow: FontShadow | undefined + ] + + type NestedBlockItemTooltipData = [ + type: TooltipDataLineType, + leftColor: ColorMixin, + leftText: string, + rightColor: ColorMixin, + rightText: string | undefined, + wrapText: boolean | undefined, + tooltipType: number, + tooltipID: number + ] + + type NestedBlockTooltipDataLine = [ + type: TooltipDataLineType, + leftColor: ColorMixin, + leftText: string, + rightColor: ColorMixin, + rightText: string | undefined, + wrapText: boolean | undefined, + tooltipType: number, + tooltipID: number + ] + + type ItemBindingTooltipDataLine = [ + type: TooltipDataLineType, + leftColor: ColorMixin, + leftText: string, + rightColor: ColorMixin, + rightText: string | undefined, + wrapText: boolean | undefined, + bonding: number + ] + + type AuraInfo = [ + name: string, + icon: number, + count: number, + dispelType: 'Curse' | 'Disease' | 'Magic' | 'Poison' | undefined, + duration: number, + expirationTime: number, + source: string, + isStealable: boolean, + nameplateShowPersonal: boolean, + spellId: number, + canApplyAura: boolean, + isBossDebuff: boolean, + castByPlayer: boolean, + nameplateShowAll: boolean, + timeMod: number + ] + + type AuraData = { + applications: number + auraInstanceID: number + canApplyAura: boolean + charges: number + dispelName: 'Curse' | 'Disease' | 'Magic' | 'Poison' | undefined + duration: number + expirationTime: number + icon: number + isBossAura: boolean + isFromPlayerOrPlayerPet: boolean + isHarmful: boolean + isHelpful: boolean + isNameplateOnly: boolean + isRaid: boolean + isStealable: boolean + maxCharges: number + name: string + nameplateShowAll: boolean + nameplateShowPersonal: boolean + points: number[] + sourceUnit: string | undefined + spellId: number + timeMod: number + } + + enum CachedRewardType { + None = 0, + Item = 1, + Currency = 2, + Quest = 3 + } + + enum WeeklyRewardChestThresholdType { + None = 0, + MythicPlus = 1, + RankedPvP = 2, + Raid = 3, + AlsoReceive = 4, + Concession = 5 + } + + type DrawLayer = 'BACKGROUND' | 'BORDER' | 'ARTWORK' | 'OVERLAY' | 'HIGHLIGHT' + + type LoopType = 'BOUNCE' | 'NONE' | 'REPEAT' + + type SimpleButtonStateToken = 'DISABLED' | 'NORMAL' | 'PUSHED' + + type BlendMode = 'DISABLE' | 'BLEND' | 'ALPHAKEY' | 'ADD' | 'MOD' + + type FontFlags = 'MONOCHROME' | 'OUTLINE' | 'THICK' + + type FrameStrata = + | 'WORLD' + | 'BACKGROUND' + | 'LOW' + | 'MEDIUM' + | 'HIGH' + | 'DIALOG' + | 'FULLSCREEN' + | 'FULLSCREEN_DIALOG' + | 'TOOLTIP' + + type InsertMode = 'TOP' | 'BOTTOM' + + type Orientation = 'VERTICAL' | 'HORIZONTAL' + + type StatusBarFillStyle = 'STANDARD' | 'STANDARD_NO_RANGE_FILL' | 'CENTER' | 'REVERSE' + + type FilterMode = 'LINEAR' | 'TRILINEAR' | 'NEAREST' + + type WowScriptEvent = + | 'OnEvent' + | 'OnLoad' + | 'OnUpdate' + | 'OnClick' + | 'OnEnter' + | 'OnLeave' + | 'OnHide' + | 'OnShow' + | 'OnMouseDown' + | 'OnMouseUp' + | 'OnMouseWheel' + | 'OnValueChanged' + | 'OnTextChanged' + + type WowEvent = WowScriptEvent | WoWEventKey + + type MouseButton = 'LeftButton' | 'RightButton' | 'Middle' | 'Button4' | 'Button5' + + interface FunctionContainerMixin { + Cancel: () => void + Invoke: () => void + IsCancelled: () => boolean + } + + interface ItemLocationMixin { + Clear: () => void + SetBagAndSlot: (bagID: number, slotIndex: number) => void + GetBagAndSlot: () => LuaMultiReturn<[bagID: number, slotIndex: number]> + SetEquipmentSlot: (equipmentSlotIndex: number) => void + GetEquipmentSlot: () => number + IsEquipmentSlot: () => boolean + IsBagAndSlot: () => boolean + HasAnyLocation: () => boolean + IsValid: () => boolean + IsEqualToBagAndSlot: (bagID: number, slotIndex: number) => boolean + IsEqualToEquipmentSlot: (equipmentSlotIndex: number) => boolean + IsEqualTo: (itemLocation: ItemLocationMixin) => boolean + } + + interface TransmogLocationMixin { + Set: ( + slotID: number, + transmogType: TransmogType, + modification: TransmogModification + ) => void + IsAppearance: () => boolean + IsIllusion: () => boolean + GetSlotID: () => number + GetSlotName: () => string + IsEitherHand: () => boolean + IsMainHand: () => boolean + IsOffHand: () => boolean + IsEqual: (transmogLocation: TransmogLocationMixin) => boolean + GetArmorCategoryID: () => number + GetLookupKey: () => number + IsSecondary: () => boolean + } + + interface ItemTransmogInfo { + IsEqual: (itemTransmogInfo: ItemTransmogInfo) => boolean + Clear: () => void + ConfigureSecondaryForMainHand: (isLegionArtifact: boolean) => void + IsMainHandIndividualWeapon: () => boolean + IsMainHandPairedWeapon: () => boolean + } + + interface Vector3DMixin { + OnLoad: () => void + IsEqualTo: (otherVector: Vector3DMixin) => boolean + GetXYZ: () => [number, number, number] + SetXYZ: (x: number, y: number, z: number) => void + ScaleBy: (scalar: number) => void + DivideBy: (scalar: number) => void + Add: (other: Vector3DMixin) => void + Subtract: (other: Vector3DMixin) => void + Cross: (other: Vector3DMixin) => void + Dot: (other: Vector3DMixin) => void + GetLengthSquared: () => number + GetLength: () => number + Normalize: () => void + Clone: () => Vector3DMixin + } + + interface Vector2DMixin { + IsEqualTo: (vector: Vector2DMixin) => boolean + GetXY: () => [x: number, y: number] + SetXY: (x: number, y: number) => void + ScaleBy: (scalar: number) => void + DivideBy: (scalar: number) => void + Add: (vector: Vector2DMixin) => void + Subtract: (vector: Vector2DMixin) => void + Cross: (vector: Vector2DMixin) => void + Dot: (vector: Vector2DMixin) => number + IsZero: () => boolean + GetLengthSquared: () => number + GetLength: () => number + Normalize: () => void + RotateDirection: (rotationRadians: number) => void + Clone: () => Vector2DMixin + } + + interface ColorMixin { + r: number + g: number + b: number + a: number | undefined + IsRGBEqualTo: (color: ColorMixin) => boolean + IsEqualTo: (color: ColorMixin) => boolean + GetRGB: () => LuaMultiReturn<[number, number, number]> + OnLoad: () => void + GetRGBAsBytes: () => LuaMultiReturn<[number, number, number]> + GetRGBA: () => LuaMultiReturn<[number, number, number, number]> + GetRGBAAsBytes: () => LuaMultiReturn<[number, number, number, number]> + SetRGBA: () => void + SetRGB: () => void + GenerateHexColor: () => string + GenerateHexColorNoAlpha: () => string + GenerateHexColorMarkup: () => string + WrapTextInColorCode: (text: string) => string + } + + interface NamePlateFrame { + OnAdded: (namePlateUnitToken: UnitToken, driverFrame?: unknown) => void + OnRemoved: () => void + OnOptionsUpdated: () => void + ApplyOffsets: () => void + GetAdditionalInsetPadding: ( + insetWidth: number, + insetHeight: number + ) => LuaMultiReturn<[number, number]> + GetPreferredInsets: () => LuaMultiReturn<[number, number, number, number]> + OnSizeChanged: () => void + driverFrame: unknown | undefined + UnitFrame: unknown | undefined + namePlateUnitToken: UnitToken + template: string + } + + // Sort of guesses with some of the types here. + interface PlayerLocationMixin { + SetGUID: (guid: string) => void + IsValid: () => boolean + IsGUID: () => boolean + IsBattleNetGUID: () => boolean + GetGUID: () => string + SetUnit: (unit: string) => void + IsUnit: () => boolean + GetUnit: () => string + SetChatLineID: (lineID: number) => void + IsChatLineID: () => boolean + GetChatLineID: () => number + SetBattlefieldScoreIndex: (index: number) => void + IsBattlefieldScoreIndex: () => boolean + GetBattlefieldScoreIndex: () => number + SetVoiceID: (memberID: number, channelID: number) => void + IsVoiceID: () => boolean + GetVoiceID: () => [number, number] + SetBattleNetID: (battleNetID: string) => void + IsBattleNetID: () => boolean + GetBattleNetID: () => string + SetCommunityData: ( + clubID: number, + streamID: string, + epoch: unknown, + position: number + ) => void + IsCommunityData: () => boolean + SetCommunityInvitation: (clubID: number, guid: number) => void + IsCommunityInvitation: () => boolean + Clear: () => void + ClearAndSetField: (fieldName: string, field: string) => void + } + + interface ReportInfoMixin { + Clear: () => void + } + + type FrameType = + | 'Frame' + | 'Button' + | 'Cooldown' + | 'ColorSelect' + | 'EditBox' + | 'MessageFrame' + | 'Minimap' + | 'Model' + | 'ScrollFrame' + | 'SimpleHTML' + | 'Slider' + | 'StatusBar' + + type FrameGeneric = T extends 'Frame' + ? Frame + : T extends 'Slider' + ? Slider + : T extends 'EditBox' + ? EditBox + : T extends 'Button' + ? Button + : T extends 'Cooldown' + ? Cooldown + : T extends 'ColorSelect' + ? ColorSelect + : T extends 'MessageFrame' + ? MessageFrame + : T extends 'Minimap' + ? Minimap + : T extends 'Model' + ? Model + : T extends 'ScrollFrame' + ? ScrollFrame + : T extends 'SimpleHTML' + ? HTML + : T extends 'Slider' + ? Slider + : StatusBar + + interface Frame { + GetName(): string + + GetObjectType(): string + + IsForbidden(): boolean + + IsObjectType(objectType: string): boolean + + SetForbidden(): void + + AbortDrag(): void + + CanChangeAttribute(): boolean + + CreateFontString( + name: string | undefined, + drawLayer: DrawLayer | undefined, + templateName: string | undefined + ): FontString + + CreateLine( + name: string | undefined, + drawLayer: DrawLayer | undefined, + templateName: string | undefined, + subLevel: number | undefined + ): Line + + CreateMaskTexture( + name: string | undefined, + drawLayer: DrawLayer | undefined, + templateName: string | undefined, + subLevel: number | undefined + ): ScriptObject + + CreateTexture( + name: string | undefined, + drawLayer: DrawLayer | undefined, + templateName: string | undefined, + subLevel: number | undefined + ): Texture + + DesaturateHierarchy(desaturation: number, excludeRoot: boolean): void + + DisableDrawLayer(layer: DrawLayer): void + + DoesClipChildren(): boolean + + EnableDrawLayer(layer: DrawLayer): void + + EnableGamePadButton(enable: boolean): void + + EnableGamePadStick(enable: boolean): void + + EnableKeyboard(enable: boolean): void + + ExecuteAttribute( + attributeName: string, + unpackedPrimitiveType: string + ): LuaMultiReturn<[success: boolean, unpackedPrimitiveType: string]> + + GetAlpha(): number + + GetAttribute(attributeName: string): string + + GetBoundsRect(): LuaMultiReturn< + [left: number, bottom: number, width: number, height: number] + > + + GetChildren(): ScriptObject + + GetClampRectInsets(): LuaMultiReturn< + [left: number, right: number, top: number, bottom: number] + > + + GetDontSavePosition(): boolean + + GetEffectiveAlpha(): number + + GetEffectiveScale(): number + + GetEffectivelyFlattensRenderLayers(): boolean + + GetFlattensRenderLayers(): boolean + + GetFrameLevel(): number + + GetFrameStrata(): FrameStrata + + GetHitRectInsets(): LuaMultiReturn< + [left: number, right: number, top: number, bottom: number] + > + + GetHyperlinksEnabled(): boolean + + GetID(): number + + GetNumChildren(): number + + GetNumRegions(): number + + GetPropagateKeyboardInput(): boolean + + GetRaisedFrameLevel(): number + + GetRegions(): ScriptObject + + GetResizeBounds(): LuaMultiReturn< + [minWidth: number, minHeight: number, maxWidth: number, maxHeight: number] + > + + GetScale(): number + + GetWindow(): unknown + + HasFixedFrameLevel(): boolean + + HasFixedFrameStrata(): boolean + + Hide(): void + + InterceptStartDrag(delegate: unknown): void + + IsClampedToScreen(): boolean + + IsEventRegistered( + eventName: string + ): LuaMultiReturn<[isRegistered: boolean, units: string | undefined]> + + IsGamePadButtonEnabled(): boolean + + IsGamePadStickEnabled(): boolean + + IsIgnoringParentAlpha(): boolean + + IsIgnoringParentScale(): boolean + + IsKeyboardEnabled(): boolean + + IsMovable(): boolean + + IsObjectLoaded(): boolean + + IsResizable(): boolean + + IsShown(): boolean + + IsToplevel(): boolean + + IsUserPlaced(): boolean + + IsVisible(): boolean + + LockHighlight(): void + + Lower(): void + + Raise(): void + + RegisterAllEvents(): void + + RegisterEvent(eventName: string): boolean + + RegisterForDrag(unpackedPrimitiveType: number): void + + RegisterUnitEvent(eventName: string, units: string): boolean + + RotateTextures(radians: number, x: number, y: number): void + + SetAlpha(alpha: number): void + + SetAttribute(attributeName: string, value: string): void + + SetAttributeNoHandler(attributeName: string, value: string): void + + SetClampRectInsets(left: number, right: number, top: number, bottom: number): void + + SetClampedToScreen(clampedToScreen: boolean): void + + SetClipsChildren(clipsChildren: boolean): void + + SetDontSavePosition(dontSave: boolean): void + + SetDrawLayerEnabled(layer: DrawLayer, isEnabled: boolean): void + + SetFixedFrameLevel(isFixed: boolean): void + + SetFixedFrameStrata(isFixed: boolean): void + + SetFlattensRenderLayers(flatten: boolean): void + + SetFrameLevel(frameLevel: number): void + + SetFrameStrata(strata: FrameStrata): void + + SetHighlightLocked(locked: boolean): void + + SetHitRectInsets(left: number, right: number, top: number, bottom: number): void + + SetHyperlinksEnabled(enabled: boolean): void + + SetID(id: number): void + + SetIgnoreParentAlpha(ignore: boolean): void + + SetIgnoreParentScale(ignore: boolean): void + + SetIsFrameBuffer(isFrameBuffer: boolean): void + + SetMovable(movable: boolean): void + + SetPropagateKeyboardInput(propagate: boolean): void + + SetResizable(resizable: boolean): void + + SetResizeBounds( + minWidth: number, + minHeight: number, + maxWidth: number | undefined, + maxHeight: number | undefined + ): void + + SetScale(scale: number): void + + SetShown(shown: boolean): void + + SetToplevel(topLevel: boolean): void + + SetUserPlaced(userPlaced: boolean): void + + SetWindow(window: unknown | undefined): void + + Show(): void + + StartMoving(alwaysStartFromMouse: boolean): void + + StartSizing(resizePoint: string | undefined, alwaysStartFromMouse: boolean): void + + StopMovingOrSizing(): void + + UnlockHighlight(): void + + UnregisterAllEvents(): void + + UnregisterEvent(eventName: string): boolean + + SetScript( + event: Extract, + handler: (frame: Frame, eventName: WowEvent, ...args: any[]) => void + ): void + } + function GetActionInfo( + id: number + ): LuaMultiReturn<[actionType: string, id: number | string, subType: any]> + + function GetSpecialization(): number + + function GetNumBindings(): number + + function GetBinding( + index: number + ): LuaMultiReturn< + [command: string, category: string, key1?: string, key2?: string, key3?: string] + > + + function GetItemInfo( + id: number | string + ): LuaMultiReturn< + [ + itemName: string, + itemLink: string, + itemQuality: ItemQuality, + itemLevel: number, + itemMinLevel: number, + itemType: string, + itemSubType: string, + itemStackCount: number, + itemEquipLoc: string, + itemTexture: number, + sellPrice: number, + classID: number, + subclassID: number, + bindType: number, + expacID: number, + setID: number | undefined, + isCraftingReagent: boolean + ] + > + + function RunBinding(button: ActionButtons, direction?: 'up'): void + + function AuraUtil_ForEachAura( + token: string, + type: 'HELPFUL' | 'HARMFUL', + max: number | undefined, + callback: (...aura: AuraInfo) => void + ): void + + function CombatLogGetCurrentEventInfo(): LuaMultiReturn< + [ + timestamp: number, + subevent: string, + hideCaster: boolean, + sourceGUID: string, + sourceName: string, + sourceFlags: number, + sourceRaidFlags: number, + destGUID: string, + destName: string, + destFlags: number, + destRaidFlags: number + ] + > + + /** + * Returns whether or not the spell is known by the player + */ + function IsSpellKnown(spellId: number, isPetSpell?: boolean): boolean + /** + * Returns whether or not the override spell is known by the player. Override spells + * Are ones that "replace" an existing spell, via talent or equipment or whatever. + */ + function IsSpellKnownOrOverridesKnown(spellId: number, isPetSpell?: boolean): boolean + + /** + * Checks whether or not a spell is on cooldown because of loss of control. E.g if the player is silenced + */ + function GetSpellLossOfControlCooldown( + spell: number | string + ): LuaMultiReturn<[tart: number, duration: number]> + + /** + * Returns the action associated with a binding + */ + function GetBindingAction(binding: string): string +} + +export {} diff --git a/src/utils/aura-utils.ts b/src/utils/aura-utils.ts new file mode 100644 index 0000000..7f4eda9 --- /dev/null +++ b/src/utils/aura-utils.ts @@ -0,0 +1,52 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +/** + * Creates a useable aura + */ +function Create(this: void, id: number, isPlayerAura?: boolean): Aura { + return { + id, + isPlayerAura + } +} + +/** + * Returns whether or not an aura is active in a list of auras + */ +function IsUp(this: void, aura: Aura, mob: Mob, secondsToIgnore?: number): boolean { + let isUp = false + for (const [, auraData] of mob.auras) { + const matchesPlayerFilter = + aura.isPlayerAura === undefined || auraData.sourceUnit === 'player' + + if (auraData.spellId === aura.id && matchesPlayerFilter) { + if (auraData.expirationTime === 0) { + isUp = true + } else { + const expirationTime = auraData.expirationTime - GetTime() + if (secondsToIgnore !== undefined) { + isUp = expirationTime > secondsToIgnore + } else { + isUp = expirationTime > 0 + } + } + break + } + } + + return isUp +} + +const _AuraUtils = { + IsUp, + Create +} + +declare global { + type AuraUtils = typeof _AuraUtils +} + +Mekanome.AuraUtils = _AuraUtils + +export {} diff --git a/src/utils/cast-util.ts b/src/utils/cast-util.ts new file mode 100644 index 0000000..7886414 --- /dev/null +++ b/src/utils/cast-util.ts @@ -0,0 +1,75 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +/** + * Casts the provided castable. Can be used for spells, items, macros etc as long as there + * is a corresponding binding and target / position info. + */ +function Cast(this: void, castable: Castable) { + const mouseover = Mekanome.GetObject('mouseover') + + function ExecuteBinding(this: void) { + print(castable.binding) + RunBinding(castable.binding) + RunBinding(castable.binding, 'up') + } + function ClearMouseover(this: void) { + SetMouseover(undefined) + } + function RestoreMouseover(this: void) { + if (mouseover !== false) { + SetMouseover(mouseover) + } + } + /** + * Will execute the binding on the player, or active 'target'. + */ + function TargetOrSelfCast(this: void) { + // Because we have mouseover casting enabled, we need to clear the mouseover before casting. + ClearMouseover() + // Then we execute the binding. + ExecuteBinding() + // FInally we restore the mouseover to what it was before the binding was executed. + RestoreMouseover() + } + + // Casts as if no target was selected. + if (castable.variant === 'self') { + TargetOrSelfCast() + } + if (castable.variant === 'ground') { + const position = castable.position + + // First we execute the binding to get the target reticle active. + ExecuteBinding() + + const pending = IsSpellPending() + + // Then we check to make sure the spell is pending, and if it is we click on the specefied position to cast it + if (pending === 64) { + Click(position.x, position.y, position.z) + } + } + // Casts the spell at a target. + if (castable.variant === 'target') { + const target = Mekanome.GetObject('target') + const targetGuid = target !== false ? ObjectGUID(target) : undefined + + const castTarget = castable.target + + if (targetGuid === undefined || castTarget.guid !== targetGuid) { + const targetObj = Mekanome.GetObject(castTarget.token) + if (targetObj !== false) { + SetMouseover(targetObj) + ExecuteBinding() + RestoreMouseover() + } + } else { + TargetOrSelfCast() + } + } +} + +Mekanome.Cast = Cast + +export default {} diff --git a/src/utils/mob-utils.ts b/src/utils/mob-utils.ts new file mode 100644 index 0000000..0e46ace --- /dev/null +++ b/src/utils/mob-utils.ts @@ -0,0 +1,682 @@ +const [, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +/** + * Check whether or not the mob is a valid wow mob. + */ +function IsValid(this: void, mob: Mob) { + return ( + mob.token !== 'none' && + mob.token !== undefined && + Mekanome.GetObject(mob.token) !== false + ) +} + +/** + * Get whether or not the mob is alive. + */ +function IsAlive(this: void, mob: Mob) { + return UnitIsDeadOrGhost(mob.token as UnitToken) === false +} + +/** + * Get whether or not the mob is a pet. + */ +function IsPet(this: void, mob: Mob): boolean { + return UnitIsUnit(mob.token, 'pet') +} + +/** + * Get whether or not the player can attack this mob. + */ +function CanAttack(this: void, mob: Mob): boolean { + const token = mob.token as UnitToken + const isFriend = UnitIsFriend('player', token) + + if (isFriend) return false + + const isAttackable = UnitCanAttack('player', token) + + if (isAttackable === false) return false + + const reaction = UnitReaction('player', token) + + if (reaction === undefined) { + return false + } else { + const isPositiveReaction = reaction >= 5 + if (isPositiveReaction) return false + } + + return true +} + +/** + * Get the name of the mob. + */ +function GetName(this: void, mob: Mob) { + const [unitName] = UnitName(mob.token) + return unitName +} + +/** + * Get the health of the mob. + */ +function GetHealth(this: void, mob: Mob) { + const token = mob.token as UnitToken + + const absorbAmount = UnitGetTotalHealAbsorbs(token) + const health = UnitHealth(token, false) - absorbAmount + + return health +} + +/** + * Get the mobs current health expressed as a percentage of their max health. + */ +function GetHealthPercent(this: void, mob: Mob) { + const health = GetHealth(mob) + const maxHealth = UnitHealthMax(mob.token as UnitToken) + + return (health / maxHealth) * 100 +} + +/** + * Get the mobs default powertype, eg 1 for Rage. + */ +function GetPowerType(this: void, mob: Mob) { + const [powerType] = UnitPowerType(mob.token as UnitToken, 0) + return powerType +} + +/** + * Get the mobs maximum power of their default power type, or a specified one. + */ +function GetMaxPower(this: void, mob: Mob, powerType?: PowerType) { + const maxPower = UnitPowerMax( + mob.token as UnitToken, + powerType || GetPowerType(mob), + false + ) + return maxPower +} + +/** + * Get the current value for the mobs default powertype, or a specified one. + */ +function GetCurrentPower(this: void, mob: Mob, powerType?: PowerType) { + const power = UnitPower(mob.token as UnitToken, powerType || GetPowerType(mob), false) + return power +} + +/** + * Get the current value for the mobs default powertype, or a specified one, expressed as a percentage of the max for that powertype. + */ +function GetPowerPercent(this: void, mob: Mob, powerType: PowerType) { + const power = GetCurrentPower(mob, powerType) + const maxPower = GetMaxPower(mob, powerType) + + return (power / maxPower) * 100 +} + +type ROLE = 'TANK' | 'HEALER' | 'DAMAGER' + +/** + * Gets the group role of the mob if it exists. + */ +function GetRole(this: void, mob: Mob): ROLE | undefined { + return UnitGroupRolesAssigned(mob.token as UnitToken) as ROLE | undefined +} + +/** + * Check whether or not the mob is in combat according to the wow api. + */ +function IsAffectingCombat(this: void, mob: Mob) { + return UnitAffectingCombat(mob.token as UnitToken) +} + +/** + * Returns the Vector3 coords of the mob. + */ +function GetPosition(this: void, mob: Mob): Vector3 { + const [x, y, z] = ObjectPosition(mob.token) + return Mekanome.VectorUtils.Create({ x, y, z }) +} + +/** + * Returns distance between two mobs. + */ +function GetDistanceBetween(this: void, referenceMob: Mob, compareMob: Mob): number { + return Mekanome.VectorUtils.Distance(GetPosition(referenceMob), GetPosition(compareMob)) +} + +/** + * Get whether or not a mob can see another mob un-obstructed. + */ +function CanSee(this: void, reference: Mob, compare: Mob): boolean { + const [ax, ay, az] = ObjectPosition(reference.token) + const ah = ObjectHeight(reference.token) + const [attx, atty, attz] = GetUnitAttachmentPosition(compare.token, 34) + + if (attx === undefined || ax === undefined || ah === undefined) return false + + if ((ax === 0 && ay === 0 && az === 0) || (attx === 0 && atty === 0 && attz == 0)) { + return true + } + + const [x, y, z] = TraceLine(ax, ay, az + ah, attx, atty, attz, 0) + + if (x !== 0 || y !== 0 || z !== 0) { + return false + } else { + return true + } +} + +/** + * Returns whether or not a mob is casting a spell + */ +function IsCasting(this: void, mob: Mob) { + return UnitCastingInfo(mob.token as UnitToken) !== undefined +} + +/** + * Returns whether or not a mob is channeling a spell + */ +function IsChanneling(this: void, mob: Mob) { + return UnitChannelInfo(mob.token as UnitToken) !== undefined +} + +/** + * Returns whether or not a mob is channeling or casting a spell + */ +function IsCastingOrChanneling(this: void, mob: Mob) { + return IsChanneling(mob) || IsCasting(mob) +} + +function GetEndTime(this: void, startMs: number, endMs: number, percent?: number) { + const castLength = endMs - startMs + const startTime = startMs / 1000 + const timeUntil = (castLength / 1000) * ((percent || 100) / 100) + return startTime + timeUntil +} + +/** + * If a mob is casting a spell, return the time when it will end. + * @param percent: By default the cast end time is when the cast is complete. If you want to consider + * a spell as being done once it reaches a certain percentage threshold, pass in this value. + */ +function GetCastEndTime(this: void, mob: Mob, percent?: number) { + const castingInfo = UnitCastingInfo(mob.token as UnitToken) + + if (castingInfo !== undefined) { + const name = castingInfo[0] + const startTimeMS = castingInfo[3] + const endTimeMs = castingInfo[4] + + if (name !== undefined && startTimeMS !== undefined && endTimeMs !== undefined) { + return GetEndTime(startTimeMS, endTimeMs, percent) + } + } + return undefined +} + +/** + * If a mob is channeling a spell, return the time when it will end. + * @param percent: By default the cast end time is when the channel ends. If you want to consider + * a spell as being done once it reaches a certain percentage threshold, pass in this value. + */ +function GetChannelEndTime(this: void, mob: Mob, percent?: number) { + const channelInfo = UnitChannelInfo(mob.token as UnitToken) + + if (channelInfo !== undefined) { + const name = channelInfo[0] + const startTimeMS = channelInfo[3] + const endTimeMs = channelInfo[4] + + if (name !== undefined && startTimeMS !== undefined && endTimeMs !== undefined) { + return GetEndTime(startTimeMS, endTimeMs, percent) + } + } + return undefined +} + +function GetCastOrChannelEndTime( + this: void, + mob: Mob, + percent?: number +): number | undefined { + return GetCastEndTime(mob, percent) || GetChannelEndTime(mob, percent) +} + +/** + * If the mob is casting or channeling a spell, this returns the target mob of said spell. + */ +function GetCastTarget(this: void, mob: Mob) { + const isMobCasting = IsCastingOrChanneling(mob) + + if (isMobCasting) { + const target = ObjectCastingTarget(mob.token) + if (target !== false) { + const targetMob = Mekanome.MobManager.GetMob({ guid: target.guid() }) + + return targetMob || Mekanome.MobManager.GetMob({ token: 'none' }) + } else { + return Mekanome.MobManager.GetMob({ token: 'none' }) + } + } + return undefined +} + +/** + * If the mob is casting or channeling a spell, this returns how far into the cast the mob is, as a percentage. + */ +function GetCastOrChannelPercentComplete(this: void, mob: Mob) { + let name: string | undefined = undefined + let startTimeMS: number | undefined = undefined + let endTimeMs: number | undefined = undefined + + const castingInfo = UnitCastingInfo(mob.token as UnitToken) + + if (castingInfo === undefined) { + const channelInfo = UnitChannelInfo(mob.token as UnitToken) + + if (channelInfo !== undefined) { + name = channelInfo[0] + startTimeMS = channelInfo[3] + endTimeMs = channelInfo[4] + } + } else { + name = castingInfo[0] + startTimeMS = castingInfo[3] + endTimeMs = castingInfo[4] + } + + if (name !== undefined && startTimeMS !== undefined && endTimeMs !== undefined) { + const start = startTimeMS / 1000 + const finish = endTimeMs / 1000 + const current = GetTime() + return ((current - start) / (finish - start)) * 100 + } + + return undefined +} + +/** + * If the mob is casting or channeling a spell, returns whether or not that spell is interruptible. + */ +function GetIsInterruptible(this: void, mob: Mob) { + let name: string | undefined = undefined + let notInterruptible: boolean | undefined = undefined + + const castingInfo = UnitCastingInfo(mob.token as UnitToken) + + if (castingInfo === undefined) { + const channelInfo = UnitChannelInfo(mob.token as UnitToken) + if (channelInfo !== undefined) { + name = channelInfo[0] + notInterruptible = channelInfo[6] + } + } else { + name = castingInfo[0] + notInterruptible = castingInfo[7] + } + + if (name !== undefined && notInterruptible !== undefined) { + return notInterruptible === false + } + + return false +} + +/** + * Returns whether or not a mob is interruptible at a specific percentage of their cast. + * @param interruptPercent The percent to check against. + * @param ignoreInterruptible By default this will return false if the active spell is not interruptible. This bypasses that check. + */ +function GetIsInterruptibleAt( + this: void, + mob: Mob, + interruptPercent: number, + ignoreInterruptible?: boolean +) { + if (!ignoreInterruptible && GetIsInterruptible(mob) === false) { + return false + } + + const castPercent = GetCastOrChannelPercentComplete(mob) + + if (castPercent && castPercent >= interruptPercent) { + return true + } + + return false +} + +/** + * Gets whether or not the mob is moving. + */ +function GetIsMoving(this: void, mob: Mob) { + const [currentSpeed] = GetUnitSpeed(mob.token as UnitToken) + + return currentSpeed > 0 +} + +/** + * Checks if a mob is facing another using their current positions. + */ +function IsFacingMob(this: void, reference: Mob, compare: Mob) { + const rotation = ObjectRotation(reference.token) + + const [x, y] = ObjectPosition(reference.token) + const [x2, y2] = ObjectPosition(compare.token) + + if (!x || !x2 || !rotation) { + return false + } + + let angle = math.atan2(y2 - y, x2 - x) - rotation + angle = math.deg(angle) + angle = angle % 360 + + if (angle > 180) { + angle = angle - 360 + } + + return math.abs(angle) < 90 +} + +/** + * Checks if a mob is behind another using their current positions. + */ +function IsBehindMob(this: void, reference: Mob, compare: Mob) { + const rotation = ObjectRotation(reference.token) + const [x, y] = ObjectPosition(reference.token) + const [x2, y2] = ObjectPosition(compare.token) + + if (!x || !x2 || !rotation) { + return false + } + + let angle = math.atan2(y2 - y, x2 - x) - rotation + angle = math.deg(angle) + angle = angle % 360 + + if (angle > 180) { + angle = angle - 360 + } + + return math.abs(angle) > 90 +} + +/** + * Gets the model ID for the mob. + */ +function GetModelId(this: void, mob: Mob) { + return ObjectModelId(mob.token) +} + +/** + * Returns whether or not the mob is in a party with the player. + */ +function IsInParty(this: void, mob: Mob) { + return UnitInParty(mob.token as UnitToken, undefined) +} + +/** + * Returns whether or not the mob is in a raid with the player. + */ +function IsInRaid(this: void, mob: Mob) { + return UnitInRaid(mob.token as UnitToken, undefined) !== undefined +} + +/** + * Returns whether or not the mob is in a party or raid with the player. + */ +function IsInPartyOrRaid(this: void, mob: Mob) { + return IsInParty(mob) || IsInRaid(mob) +} + +/** + * Returns whether or not the player is mounted, or shapeshifted into a mount form. + */ +function IsMounted(this: void, mob: Mob) { + const isMounted = UnitIsMounted(mob.token) + + if (isMounted) return true + + const mountFormIds = [ + 3, // Mount / Travel form + 27, // Swift Flight Form + 29 // Flight Form + ] + + const shapeShiftId = GetShapeshiftFormID() + + return shapeShiftId !== undefined && mountFormIds.includes(shapeShiftId) +} + +/** + * Returns the "Combat reach" of a mob. The combat reach of a mob is a bounding radius from which distance calcs begin for the purposes of calculating combat distance. + */ +function GetCombatReach(this: void, mob: Mob) { + return ObjectCombatReach(mob.token) || 0 +} + +/** + * Returns the distance between two mobs, with combat reach accounted for. + */ +function GetCombatDistanceBetween(this: void, reference: Mob, compare: Mob) { + GetDistanceBetween(reference, compare) - GetCombatReach(compare) +} + +/** + * Gets whether or not the mob is currently online. + */ +function GetIsOnline(this: void, mob: Mob) { + return UnitIsConnected(mob.token as UnitToken) +} + +/** + * Get whether or not the mob is being resurrected. + */ +function HasIncomingRessurection(this: void, mob: Mob) { + return IsAlive(mob) === false && UnitHasIncomingResurrection(mob.token) +} + +/** + * Get whether or not the mob is currently targetting something. + */ +function HasTarget(this: void, mob: Mob) { + return ObjectTarget(mob.token) !== undefined +} + +/** + * Get the mobs current target. + */ +function GetTarget(this: void, mob: Mob): Mob | undefined { + const objTarget = ObjectTarget(mob.token) + + if (!objTarget) return undefined + + const mobManagerMob = Mekanome.MobManager.GetMob({ token: objTarget.unit() }) + + return mobManagerMob +} + +/** + * Returns whether or not a mob is within a certain distance from another mob, with combat reach accounted for. + */ +function IsWithinCombatDistance( + this: void, + reference: Mob, + compare: Mob, + distance: number +) { + if (!IsValid(compare)) return false + + return GetDistanceBetween(reference, compare) <= distance + GetCombatReach(compare) +} + +/** + * Returns whether or not a mob is within a certain distance from another mob. + */ +function IsWithinDistance(this: void, reference: Mob, compare: Mob, distance: number) { + return GetDistanceBetween(reference, compare) <= distance +} + +/** + * Returns the number of loss of control effects on the mob. Interrupt lockouts included. + */ +function GetLossOfControlCount(this: void, mob: Mob) { + return C_LossOfControl.GetActiveLossOfControlDataCountByUnit(mob.token as UnitToken) +} + +/** + * Returns the mobs outgoing missiles. + */ +function GetOutgoingMissles({ + reference, + target, + spellId, + spellVisualId +}: { + reference: Mob + target?: Mob + spellId?: number + spellVisualId?: number +}) { + const missiles = Missiles() + + const results: Missile[] = [] + + if (type(missiles) == 'table' && IsValid(reference)) { + for (const [, missile] of missiles) { + const missileSource = missile.source?.unit() + + if (missileSource) { + if ( + UnitIsUnit(reference.token, missileSource) && + (!target || UnitIsUnit(missile.target?.unit() || 'none', target.token)) && + (!spellId || (!!spellId && spellId === missile.spellId)) && + (!spellVisualId || (!!spellVisualId && spellVisualId == missile.spellVisualId)) + ) { + results.push(missile) + } + } + } + } + return results +} + +/** + * Returns the mobs incoming missiles. + */ +function GetIncomingMissiles( + this: void, + { + reference, + source, + spellId, + spellVisualId + }: { reference: Mob; source?: Mob; spellId?: number; spellVisualId?: number } +) { + const missiles = Missiles() + + const results: Missile[] = [] + if (type(missiles) == 'table' && IsValid(reference)) { + for (const [, missile] of missiles) { + const missileTarget = missile.target?.unit() + if ( + missileTarget && + UnitIsUnit(reference.token, missileTarget) && + (!source || UnitIsUnit(source.token || 'none', reference.token)) && + (!spellId || spellId == missile.spellId) && + (!spellVisualId || spellVisualId == missile.spellVisualId) + ) { + table.insert(results, missile) + } + } + } + return results +} + +/** + * Gets the amount of time the mob has been in combat. + */ +function GetCombatTime(this: void, mob: Mob) { + if (!mob.lastCombatTime) return undefined + return GetTime() - mob.lastCombatTime +} + +/** + * Get combat odds (if the last combat time is less than 1 minute ago return 1 / time, else return 0) + * the closer to 0 the more likely the unit is to be in combat (0 = 100%) 60 = 0% + * @param mob The mob to check + * @returns number | undefined + */ +function InCombatOdds(this: void, mob: Mob) { + const combatTime = GetCombatTime(mob) + + if (combatTime === undefined) return undefined + + const percent = 1 - combatTime / 60 + + return percent * 100 +} + +const _MobUtils = { + GetLossOfControlCount, + GetTarget, + IsWithinCombatDistance, + IsWithinDistance, + GetOutgoingMissles, + GetIncomingMissiles, + HasTarget, + HasIncomingRessurection, + GetCombatDistanceBetween, + GetCombatReach, + IsInPartyOrRaid, + IsMounted, + GetModelId, + IsInRaid, + IsInParty, + IsBehindMob, + GetIsOnline, + IsFacingMob, + GetIsMoving, + GetIsInterruptible, + GetCastOrChannelPercentComplete, + IsCasting, + GetCastOrChannelEndTime, + IsChanneling, + GetIsInterruptibleAt, + IsCastingOrChanneling, + IsAffectingCombat, + GetPowerType, + CanSee, + GetMaxPower, + GetCurrentPower, + GetPowerPercent, + GetCastTarget, + InCombatOdds, + GetName, + CanAttack, + GetHealthPercent, + IsAlive, + GetPosition, + GetDistanceBetween, + IsPet, + GetRole, + GetCombatTime, + GetChannelEndTime, + GetCastEndTime +} + +declare global { + type MobUtils = typeof _MobUtils +} + +Mekanome.MobUtils = _MobUtils + +export default {} diff --git a/src/utils/spell-utils.ts b/src/utils/spell-utils.ts new file mode 100644 index 0000000..3fb5df4 --- /dev/null +++ b/src/utils/spell-utils.ts @@ -0,0 +1,249 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +/** + * Creates a useable spell + */ +function Create(this: void, id: number, traits?: SpellTraits): Spell { + const spellInfo = C_Spell.GetSpellInfo(id) + + if (spellInfo === undefined || spellInfo.name === undefined) { + throw Mekanome.Error(`Unable to find info for spell ${id}`) + } + + return { + id, + minRange: spellInfo.minRange, + maxRange: spellInfo.maxRange, + name: spellInfo.name, + traits + } +} + +/** + * Get cooldown information for the spell. + */ +function GetCooldownInfo(this: void, spell: Spell) { + const [, cdDuration, enabled] = GetSpellCooldown(spell.id) + const [, ccDuration] = GetSpellLossOfControlCooldown(spell.id) + + const { spellQueueWindow } = Mekanome.PlayerStateManager.GetPlayerState() + + const secondsUntilReady = cdDuration === 0 ? ccDuration : cdDuration + const secondsUntilCastable = secondsUntilReady - spellQueueWindow / 1000 + + return { + secondsUntilReady, + secondsUntilCastable: secondsUntilCastable < 0 ? 0 : secondsUntilCastable, + isActive: enabled === 0 + } +} + +/** + * Handles undefined / funciton traits to get a more usuable set of trait values + */ +function GetSpellTraits(this: void, spell: Spell) { + let isCastableWhileMoving = false + let isCastableWhileCasting = false + let isOverride = false + + if (spell.traits !== undefined) { + if (spell.traits.isOverride !== undefined) { + isOverride = spell.traits.isOverride + } + if (spell.traits.isCastableWhileCasting !== undefined) { + if (typeof spell.traits.isCastableWhileCasting === 'function') { + isCastableWhileCasting = spell.traits.isCastableWhileCasting() + } else { + isCastableWhileCasting = spell.traits.isCastableWhileCasting + } + } + if (spell.traits.isCastableWhileMoving !== undefined) { + if (typeof spell.traits.isCastableWhileMoving === 'function') { + isCastableWhileMoving = spell.traits.isCastableWhileMoving() + } else { + isCastableWhileMoving = spell.traits.isCastableWhileMoving + } + } + } + + return { + isCastableWhileMoving, + isCastableWhileCasting, + isOverride + } +} + +interface IsCastableArgs { + spell: Spell + target?: Mob + position?: Vector3 +} + +/** + * Evaluates the spells traits & conditions to see if it is currently castable. + */ +function IsCastable(this: void, { spell, target, position }: IsCastableArgs): boolean { + const player = Mekanome.MobManager.GetMob({ token: 'player' }) + + const { isCastableWhileCasting, isCastableWhileMoving, isOverride } = + GetSpellTraits(spell) + + if (player === undefined) return false + + const traits = Mekanome.PlayerStateManager.GetPlayerState() + + // Return false is the spell is not known. + if (isOverride === true) { + if (IsSpellKnownOrOverridesKnown(spell.id) !== true) { + return false + } + } else { + if (IsSpellKnown(spell.id) !== true) { + return false + } + } + + const { isActive, secondsUntilCastable } = GetCooldownInfo(spell) + + print(`COOLDOWN: ${secondsUntilCastable}`) + + // If the spell is current active (e.g Presence of Mind was cast, but has not been consumed yet) + // return false. + if (isActive) return false + + // Return false if the spell is on + if (secondsUntilCastable !== 0) { + return false + } + + // Return falst is the player is moving and the spell isnt marked + // as castable while moving. + if (traits.isMoving && isCastableWhileMoving === false) { + return false + } + + // Return false if the player is currently casting, and this spell + // cant be cast while casting. + if (traits.isCasting === true && isCastableWhileCasting === false) { + return false + } + + return true +} + +/** + * Get the localized name of the spell. + */ +function GetName(this: void, spell: Spell) { + const name = C_Spell.GetSpellInfo(spell.id).name + return name +} + +/** + * Gets the action button binding for the provided spell. + */ +function GetBindingForSpell(this: void, spell: Spell) { + const binding = Mekanome.BindingsManager.GetBindingForSpell(spell) + + if (binding === undefined) { + throw Mekanome.Error(`Unable to cast ${GetName(spell)} without binding.`) + } + + return binding +} + +/** + * Generates a castable to cast the spell on the player + */ +function SelfCast(this: void, spell: Spell): Castable | undefined { + const binding = GetBindingForSpell(spell) + + if (IsCastable({ spell }) === false) { + return undefined + } + + return { + id: spell.id, + variant: 'self', + binding + } +} + +/** + * Generates a castable to cast the spell at the specified target. + */ +function TargetCast( + this: void, + spell: Spell, + _target: Mob | (() => Mob) +): Castable | undefined { + const binding = GetBindingForSpell(spell) + + const target = typeof _target === 'function' ? _target() : _target + + if (IsCastable({ spell, target }) === false) { + return undefined + } + + return { + id: spell.id, + variant: 'target', + binding, + target + } +} + +/** + * Generates a castable to cast the spell at the specified location + */ +function GroundCast( + this: void, + spell: Spell, + _position: Vector3 | (() => Vector3) +): Castable | undefined { + const binding = GetBindingForSpell(spell) + + const position = typeof _position === 'function' ? _position() : _position + + if (IsCastable({ spell, position }) === false) { + return undefined + } + + return { + id: spell.id, + variant: 'ground', + binding, + position + } +} + +const _SpellUtils = { + Create, + GetName, + GetCooldownInfo, + SelfCast, + GroundCast, + TargetCast +} + +declare global { + interface SpellTraits { + isCastableWhileMoving?: boolean | (() => boolean) + isCastableWhileCasting?: boolean | (() => boolean) + isOverride?: boolean + } + + interface Spell { + id: number + name: string + minRange: number + maxRange: number + traits?: SpellTraits + } + type SpellUtils = typeof _SpellUtils +} + +Mekanome.SpellUtils = _SpellUtils + +export default {} diff --git a/src/utils/vector-utils.ts b/src/utils/vector-utils.ts new file mode 100644 index 0000000..dabe2dc --- /dev/null +++ b/src/utils/vector-utils.ts @@ -0,0 +1,210 @@ +const [_, _Mekanome] = [...$vararg] +const Mekanome = _Mekanome as unknown as IMekanome + +function Create(this: void, { x, y, z }: { x: number; y: number; z: number }): Vector3 { + return { + x, + y, + z + } +} + +function Add(this: void, a: Vector3, b: Vector3 | number): Vector3 { + if (typeof b === 'number') { + return Create({ x: a.x + b, y: a.y + b, z: a.z + b }) + } + return Create({ + x: a.x + b.x, + y: a.y + b.y, + z: a.z + b.z + }) +} + +function Subtract(this: void, a: Vector3, b: Vector3 | number): Vector3 { + if (typeof b === 'number') { + return Create({ x: a.x - b, y: a.y - b, z: a.z - b }) + } + return Create({ + x: a.x - b.x, + y: a.y - b.y, + z: a.z - b.z + }) +} + +function Multiply(this: void, a: Vector3, b: Vector3 | number): Vector3 { + if (typeof b === 'number') { + return Create({ x: a.x * b, y: a.y * b, z: a.z * b }) + } + return Create({ + x: a.x * b.x, + y: a.y * b.y, + z: a.z * b.z + }) +} + +function Divide(this: void, a: Vector3, b: Vector3 | number): Vector3 { + if (typeof b === 'number') { + return Create({ x: a.x / b, y: a.y / b, z: a.z / b }) + } + return Create({ + x: a.x / b.x, + y: a.y / b.y, + z: a.z / b.z + }) +} + +function Equals(this: void, a: Vector3, b: Vector3): boolean { + return a.x === b.x && a.y === b.y && a.z === b.z +} + +function LessThan(this: void, a: Vector3, b: Vector3): boolean { + return a.x < b.x && a.y < b.y && a.z < b.z +} + +function LessThanOrEqualTo(this: void, a: Vector3, b: Vector3): boolean { + return a.x <= b.x && a.y <= b.y && a.z <= b.z +} + +function Dot(this: void, a: Vector3, b: Vector3): number { + return a.x * b.x + a.y * b.y + a.z + b.z +} + +function Cross(this: void, a: Vector3, b: Vector3): Vector3 { + return Create({ + x: a.y * b.z - a.z * b.y, + y: a.z * b.x - a.x * b.z, + z: a.x * b.y - a.y * b.x + }) +} + +function Distance(this: void, a: Vector3, b: Vector3): number { + return FastDistance(a.x, a.y, a.z, b.x, b.y, b.z) +} + +function NormalizeOrientation(this: void, orientation: number): number { + if (orientation < 0) { + let mod = orientation * -1 + mod = mod % (2.0 * Math.PI) + mod = -mod + 2.0 * math.pi + return mod + } else { + return orientation % (2.0 * Math.PI) + } +} + +function GetAbsoluteAngle(this: void, a: Vector3, b: Vector3): number { + return NormalizeOrientation(Math.atan2(b.y - a.y, b.x - a.x)) +} + +function Angle(this: void, a: Vector3, b: Vector3): number { + return Math.acos( + Dot(a, b) / + (Math.sqrt(a.x * a.x + a.y * a.y + a.z * a.z) * + Math.sqrt(b.x * b.x + b.y * b.y + b.z * b.z)) + ) +} + +function _GetNormalized(this: void, vector: Vector3): Vector3 { + const length = Math.sqrt( + vector.x * vector.x + vector.y * vector.y + vector.z * vector.z + ) + return Create({ x: vector.x / length, y: vector.y / length, z: vector.z / length }) +} + +function ClampMagnitude(this: void, vector: Vector3, maxLength: number): Vector3 { + if (Dot(vector, vector) > maxLength * maxLength) { + return Multiply(_GetNormalized(vector), maxLength) + } else { + return vector + } +} + +function _GetMagnitude(this: void, vector: Vector3): number { + return Math.sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z) +} + +function DirectionOrZero(this: void, vector: Vector3): Vector3 { + const magnitude = _GetMagnitude(vector) + if (magnitude < 0.0000001) { + return Create({ x: 0, y: 0, z: 0 }) + } else if (magnitude < 1.00001 && magnitude > 0.99999) { + return vector + } else { + return Multiply(vector, 1.0 / magnitude) + } +} + +function Clamp(this: void, x: number, min: number, max: number): number { + return x < min ? min : x > max ? max : x +} + +function Lerp(this: void, a: Vector3, b: Vector3, _t: number): Vector3 { + const t = Clamp(_t, 0, 1) + return Create({ + x: a.x + (b.x - a.x) * t, + y: a.y + (b.y - a.y) * t, + z: a.z + (b.z - a.z) * t + }) +} + +function MoveTowards( + this: void, + reference: Vector3, + target: Vector3, + maxDistanceDelta: number +): Vector3 { + const toVector = Subtract(target, reference) + const distance = _GetMagnitude(toVector) + if (distance <= maxDistanceDelta || distance === 0) { + return target + } + + return Divide(Add(reference, toVector), distance * maxDistanceDelta) +} + +function Project(this: void, reference: Vector3, normal: Vector3): Vector3 { + const num = Dot(normal, normal) + if (num < 1.401298e-45) { + return Create({ x: 0, y: 0, z: 0 }) + } + return Multiply(normal, Dot(reference, normal) / num) +} + +function ProjectOnPlane(this: void, reference: Vector3, plane: Vector3): Vector3 { + return Subtract(reference, Project(reference, plane)) +} + +const _VectorUtils = { + Create, + Add, + Subtract, + Multiply, + Divide, + Equals, + LessThan, + LessThanOrEqualTo, + Dot, + Cross, + Distance, + Angle, + GetAbsoluteAngle, + ClampMagnitude, + DirectionOrZero, + Clamp, + Lerp, + MoveTowards, + ProjectOnPlane +} + +declare global { + type VectorUtils = typeof _VectorUtils + type Vector3 = { + x: number + y: number + z: number + } +} + +Mekanome.VectorUtils = _VectorUtils + +export default {} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..37f92b3 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/TypeScriptToLua/TypeScriptToLua/master/tsconfig-schema.json", + "compilerOptions": { + "target": "ESNext", + "lib": ["ESNext"], + "moduleResolution": "Node", + "baseUrl": ".", + "rootDir": "src", + "outDir": "dist", + "types": ["@typescript-to-lua/language-extensions", "lua-types/5.1"], + "strict": true, + "forceConsistentCasingInFileNames": true, + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "allowUmdGlobalAccess": true + }, + "include": ["src/**/*"], + "tstl": { + "luaTarget": "5.1", + "noImplicitGlobalVariables": true, + "luaLibImport": "inline", + } +} +