903 lines
37 KiB
Lua
903 lines
37 KiB
Lua
local MAX_TUTORIAL_VERTICAL_TILE = 30;
|
|
local MAX_TUTORIAL_IMAGES = 3;
|
|
local MAX_TUTORIAL_KEYS = 4;
|
|
|
|
local TUTORIALFRAME_TOP_HEIGHT = 80;
|
|
local TUTORIALFRAME_MIDDLE_HEIGHT = 10;
|
|
local TUTORIALFRAME_BOTTOM_HEIGHT = 30;
|
|
local TUTORIALFRAME_WIDTH = 364;
|
|
|
|
local TUTORIAL_LAST_ID = nil;
|
|
|
|
local ARROW_TYPES = {
|
|
"ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight",
|
|
"ArrowCurveUpRight", "ArrowCurveUpLeft", "ArrowCurveDownRight", "ArrowCurveDownLeft",
|
|
"ArrowCurveRightDown", "ArrowCurveRightUp", "ArrowCurveLeftDown", "ArrowCurveLeftUp",
|
|
}
|
|
|
|
local ARROW_SIZES = {
|
|
["ArrowUp"] = {x = 68, y = 89},
|
|
["ArrowDown"] = {x = 68, y = 89},
|
|
["ArrowLeft"] = {x = 89, y = 68},
|
|
["ArrowRight"] = {x = 89, y = 68},
|
|
["ArrowCurveUpRight"] = {x = 66, y = 81},
|
|
["ArrowCurveUpLeft"] = {x = 66, y = 81},
|
|
["ArrowCurveDownRight"] = {x = 66, y = 81},
|
|
["ArrowCurveDownLeft"] = {x = 66, y = 81},
|
|
["ArrowCurveRightDown"] = {x = 82, y = 66},
|
|
["ArrowCurveRightUp"] = {x = 82, y = 66},
|
|
["ArrowCurveLeftDown"] = {x = 82, y = 66},
|
|
["ArrowCurveLeftUp"] = {x = 82, y = 66},
|
|
}
|
|
|
|
local MOUSE_SIZE = { x = 76, y = 101}
|
|
|
|
local TUTORIALFRAME_QUEUE = { };
|
|
|
|
local TUTORIAL_DATA = {
|
|
[1] = "QuestGiver",
|
|
[2] = "Movement",
|
|
[3] = "LookAround",
|
|
[4] = "QuestGiver",
|
|
[5] = "Combat1",
|
|
[6] = "Spells",
|
|
[7] = "LootPig",
|
|
[8] = "LootedItem",
|
|
[9] = "OnUseItem",
|
|
[10] = "Bags",
|
|
[11] = "Food",
|
|
[12] = "Drink",
|
|
[13] = "Talents",
|
|
[14] = "Trainer",
|
|
[15] = "SpellBook",
|
|
[16] = "Rep",
|
|
[17] = "Reply",
|
|
[18] = "Grouping",
|
|
[19] = "Players",
|
|
[20] = "Vendor",
|
|
[21] = "QuestLog",
|
|
[22] = "Friends",
|
|
[24] = "Equip",
|
|
[25] = "Death",
|
|
[27] = "Fat",
|
|
[28] = "Swim",
|
|
[29] = "Breath",
|
|
[30] = "Resting",
|
|
[31] = "Hearthstones",
|
|
[32] = "Pvp",
|
|
[33] = "Jumping",
|
|
[34] = "QuestComplete",
|
|
[35] = "Travel",
|
|
[36] = "DamagedItems",
|
|
[37] = "BrokenItems",
|
|
[38] = "Professions",
|
|
[39] = "Groups",
|
|
[40] = "Spellbook2",
|
|
[41] = "LeetQuests",
|
|
[42] = "Welcome",
|
|
[43] = "QuestGray",
|
|
[44] = "Ranged",
|
|
[45] = "Ammo",
|
|
[46] = "RaidGroups",
|
|
[47] = "TotemBar",
|
|
[48] = "Battleground1",
|
|
[49] = "Battleground2",
|
|
[50] = "Keyring",
|
|
[51] = "LFG",
|
|
[52] = "CosmeticPets",
|
|
[53] = "Mounts",
|
|
[54] = "ThreatWarnings",
|
|
[55] = "Ding",
|
|
[56] = "HealthManaBar",
|
|
[57] = "EnemyHealth",
|
|
[58] = "FullBags",
|
|
[59] = "FreeingUpBags",
|
|
[60] = "Hotbar",
|
|
};
|
|
|
|
local DISPLAY_DATA = {
|
|
-- Do not remove "Base" it is the default
|
|
["Base"] = {
|
|
tileHeight = 7,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["BaseTall"] = {
|
|
tileHeight = 12,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
-- layers can be BACKGROUND, BORDER, ARTWORK, OVERLAY, HIGHLIGHT
|
|
-- if you don't assign one it will default to ARTWORK
|
|
["QuestGiver"] = {
|
|
tileHeight = 21,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -100},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -180, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-QuestCursor", align = "TOP", xOff = 0, yOff = -110},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-QuestGiver", align = "TOP", xOff = -40, yOff = -50},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 80, yOff = -60},
|
|
},
|
|
|
|
["Movement"] = {
|
|
tileHeight = 18,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -200, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
keyData1 = {command = "TURNLEFT", layer = "OVERLAY", align = "TOPLEFT", xOff = 105, yOff = -100},
|
|
keyData2 = {command = "MOVEBACKWARD", layer = "OVERLAY", align = "TOPLEFT", xOff = 160, yOff = -100},
|
|
keyData3 = {command = "TURNRIGHT", layer = "OVERLAY", align = "TOPLEFT", xOff = 215, yOff = -100},
|
|
keyData4 = {command = "MOVEFORWARD", align = "TOPLEFT", xOff = 160, yOff = -60},
|
|
ArrowUp = {layer = "BORDER", align = "TOPLEFT", xOff = 182, yOff = -40, scale = 0.5},
|
|
ArrowDown = {layer = "ARTWORK", align = "TOPLEFT", xOff = 182, yOff = -150, scale = 0.5},
|
|
ArrowRight = {layer = "ARTWORK", align = "TOPLEFT", xOff = 270, yOff = -120, scale = 0.5},
|
|
ArrowLeft = {layer = "ARTWORK", align = "TOPLEFT", xOff = 83, yOff = -120, scale = 0.5},
|
|
},
|
|
|
|
["Moved"] = {
|
|
tileHeight = 20,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -185, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-QuestCursor", align = "CENTER", xOff = 0, yOff = 10},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-QuestGiver", align = "CENTER", xOff = -40, yOff = 30},
|
|
mouseData = {image = "RightClick", align = "CENTER", xOff = 80, yOff = 30},
|
|
},
|
|
|
|
["Ding"] = {
|
|
tileHeight = 22,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
callOut = {parent = "PlayerFrame", align = "TOPLEFT", xOff = 34, yOff = -6, width = 78, height = 78},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -215, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-LevelUp", align = "TOP", xOff = 10, yOff = -30},
|
|
},
|
|
|
|
["OnUseItem"] = {
|
|
tileHeight = 21,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = 70},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -200, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-OnUseItem", align = "TOP", xOff = -35, yOff = -70},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 110, yOff = -85},
|
|
},
|
|
|
|
["LootedItem"] = {
|
|
tileHeight = 21,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = 70},
|
|
callOut = {parent = "MainMenuBarBackpackButton", align = "TOPLEFT", xOff = -5, yOff = 5, width = 50, height = 45},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -190, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-LootedItem", align = "TOP", xOff = 5, yOff = -55},
|
|
},
|
|
|
|
["LootPig"] = {
|
|
tileHeight = 24,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = 90},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -195, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-LootCorpse", align = "TOP", xOff = -60, yOff = -13},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-LootCursor", align = "TOP", xOff = 40, yOff = -90},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 110, yOff = -65},
|
|
},
|
|
|
|
["Spells"] = {
|
|
tileHeight = 15,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = -200},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -120, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Spell01", align = "TOP", xOff = -60, yOff = -50},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Spell02", align = "TOP", xOff = 10, yOff = -50},
|
|
imageData3 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Spell03", align = "TOP", xOff = 80, yOff = -50},
|
|
},
|
|
|
|
["Combat1"] = {
|
|
tileHeight = 19,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = -150},
|
|
callOut = {parent = "MainMenuBar", align = "TOPLEFT", xOff = -5, yOff = -5, width = 525, height = 50},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -145, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-AttackCursor", align = "TOP", xOff = -60, yOff = -60},
|
|
mouseData = {image = "LeftClick", align = "TOP", xOff = 50, yOff = -45},
|
|
},
|
|
|
|
["LookAround"] = {
|
|
tileHeight = 18,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -175, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
mouseData = {layer = "OVERLAY", image = "RightClick", align = "TOP", xOff = 15, yOff = -55},
|
|
ArrowUp = {align = "TOPLEFT", xOff = 182, yOff = -40, scale = 0.5},
|
|
ArrowDown = {align = "TOPLEFT", xOff = 182, yOff = -125, scale = 0.5},
|
|
ArrowRight = {align = "TOPLEFT", xOff = 210, yOff = -90, scale = 0.5},
|
|
ArrowLeft = {align = "TOPLEFT", xOff = 140, yOff = -90, scale = 0.5},
|
|
-- ArrowCurveUpLeft = {layer = "OVERLAY", align = "TOPRIGHT", xOff = -215, yOff = -55, scale = 0.5},
|
|
-- ArrowCurveUpRight = {layer = "OVERLAY", align = "TOPRIGHT", xOff = -70, yOff = -55, scale = 0.5},
|
|
},
|
|
|
|
["Hotbar"] = {
|
|
tileHeight = 14,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = -150},
|
|
callOut = {parent = "MainMenuBar", align = "TOPLEFT", xOff = -5, yOff = -5, width = 525, height = 50},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -120, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Spell01", align = "TOP", xOff = -60, yOff = -50},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Spell02", align = "TOP", xOff = 10, yOff = -50},
|
|
imageData3 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Spell03", align = "TOP", xOff = 80, yOff = -50},
|
|
},
|
|
|
|
["SpellBook"] = {
|
|
tileHeight = 28,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -130},
|
|
callOut = {parent = "SpellbookMicroButton", align = "TOPLEFT", xOff = -5, yOff = -17, width = 38, height = 45},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Spellbook", align = "TOP", xOff = 10, yOff = -50},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -225, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Death"] = {
|
|
tileHeight = 22,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = 70},
|
|
callOut = {parent = "Minimap", align = "TOPLEFT", xOff = -8, yOff = 0, width = 151, height = 145},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -185, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-SpiritRez", align = "TOP", xOff = 10, yOff = -50},
|
|
},
|
|
|
|
["Resting"] = {
|
|
tileHeight = 11,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 150},
|
|
callOut = {parent = "PlayerFrame", align = "TOPLEFT", xOff = 32, yOff = -4, width = 85, height = 85},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Hearthstones"] = {
|
|
tileHeight = 10,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -120, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Hearthstone", align = "TOP", xOff = 10, yOff = -50},
|
|
},
|
|
|
|
["Pvp"] = {
|
|
tileHeight = 10,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 150},
|
|
callOut = {parent = "PlayerFrame", align = "TOPLEFT", xOff = 34, yOff = -6, width = 78, height = 78},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Jumping"] = {
|
|
tileHeight = 7,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["QuestComplete"] = {
|
|
tileHeight = 24,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = 60},
|
|
callOut = {parent = "Minimap", align = "TOPLEFT", xOff = -8, yOff = 0, width = 151, height = 145},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -185, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-QuestCompleteCursor", align = "TOP", xOff = 0, yOff = -110},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-QuestComplete", align = "TOP", xOff = -40, yOff = -50},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 80, yOff = -60},
|
|
},
|
|
|
|
["Travel"] = {
|
|
tileHeight = 25,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -195, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-FlightCursor", align = "TOP", xOff = 0, yOff = -110},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-FlightMaster", align = "TOP", xOff = -40, yOff = -50},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 80, yOff = -60},
|
|
},
|
|
|
|
["DamagedItems"] = {
|
|
tileHeight = 17,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -20},
|
|
callOut = {parent = "DurabilityFrame", align = "TOPLEFT", xOff = 0, yOff = 8, width = 58, height = 90},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -150, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-RepairCursor", align = "TOP", xOff = 0, yOff = -60},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-TheDude", align = "TOP", xOff = -40, yOff = -10},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 80, yOff = -40},
|
|
},
|
|
|
|
["BrokenItems"] = {
|
|
tileHeight = 18,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -20},
|
|
callOut = {parent = "DurabilityFrame", align = "TOPLEFT", xOff = 0, yOff = 8, width = 58, height = 90},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -150, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-RepairCursor", align = "TOP", xOff = 0, yOff = -60},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-TheDude", align = "TOP", xOff = -40, yOff = -10},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 80, yOff = -40},
|
|
},
|
|
|
|
-- ["Professions"] = {
|
|
-- tileHeight = 11,
|
|
-- anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
-- textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
-- },
|
|
|
|
["Groups"] = {
|
|
tileHeight = 11,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Spellbook2"] = {
|
|
tileHeight = 28,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -130},
|
|
callOut = {parent = "SpellbookMicroButton", align = "TOPLEFT", xOff = -5, yOff = -17, width = 38, height = 45},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Spellbook", align = "TOP", xOff = 10, yOff = -50},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -225, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["LeetQuests"] = {
|
|
tileHeight = 21,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Elite", align = "TOP", xOff = 10, yOff = -50},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -160, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Welcome"] = {
|
|
tileHeight = 22,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -180, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Logo", align = "TOP", xOff = 10, yOff = -50},
|
|
},
|
|
|
|
["RaidGroups"] = {
|
|
tileHeight = 14,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["TotemBar"] = {
|
|
tileHeight = 12,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = -150},
|
|
callOut = {parent = "MultiCastActionBarFrame", align = "TOPLEFT", xOff = -5, yOff = 4, width = 45, height = 45},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["CosmeticPets"] = {
|
|
tileHeight = 11,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -150},
|
|
callOut = {parent = "CharacterMicroButton", align = "TOPLEFT", xOff = -5, yOff = -17, width = 38, height = 45},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Mounts"] = {
|
|
tileHeight = 13,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -150},
|
|
callOut = {parent = "CharacterMicroButton", align = "TOPLEFT", xOff = -5, yOff = -17, width = 38, height = 45},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["ThreatWarnings"] = {
|
|
tileHeight = 19,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -150, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Threat", align = "TOP", xOff = 10, yOff = -50},
|
|
},
|
|
|
|
["HealthManaBar"] = {
|
|
tileHeight = 19,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 150},
|
|
callOut = {parent = "PlayerFrame", align = "TOPLEFT", xOff = 100, yOff = -33, width = 135, height = 40},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -125, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-DudeFull", align = "TOP", xOff = 10, yOff = -35},
|
|
},
|
|
|
|
["FullBags"] = {
|
|
tileHeight = 22,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = 70},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -185, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
callOut = {parent = "MainMenuBarBackpackButton", align = "TOPLEFT", xOff = -5, yOff = 5, width = 50, height = 45},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-FullBackpack", align = "TOP", xOff = -22, yOff = -55},
|
|
},
|
|
|
|
["EnemyHealth"] = {
|
|
tileHeight = 13,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 150},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -125, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
-- callOut = {parent = "TargetFrame", align = "TOPLEFT", xOff = -5, yOff = -34, width = 140, height = 38},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-EnemyHealth", align = "TOP", xOff = 10, yOff = -35},
|
|
},
|
|
|
|
["FreeingUpBags"] = {
|
|
tileHeight = 24,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = 70},
|
|
callOut = {parent = "MainMenuBarBackpackButton", align = "TOPLEFT", xOff = -5, yOff = 5, width = 50, height = 45},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -185, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-FullBackpack", align = "TOP", xOff = -70, yOff = -65},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 110, yOff = -65},
|
|
},
|
|
|
|
["Bags"] = {
|
|
tileHeight = 13,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = 50},
|
|
callOut = {parent = "MainMenuBarBackpackButton", align = "TOPLEFT", xOff = -150, yOff = 5, width = 200, height = 45},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -125, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Bag", align = "TOP", xOff = -60, yOff = -50},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Bag02", align = "TOP", xOff = 10, yOff = -50},
|
|
imageData3 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Bag03", align = "TOP", xOff = 80, yOff = -50},
|
|
},
|
|
|
|
["Talents"] = {
|
|
tileHeight = 9,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -150},
|
|
callOut = {parent = "TalentMicroButton", align = "TOPLEFT", xOff = -5, yOff = -17, width = 38, height = 45},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Rep"] = {
|
|
tileHeight = 8,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -150},
|
|
callOut = {parent = "CharacterMicroButton", align = "TOPLEFT", xOff = -5, yOff = -17, width = 38, height = 45},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Reply"] = {
|
|
tileHeight = 6,
|
|
anchorData = {align = "LEFT", xOff = 25, yOff = -50},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Players"] = {
|
|
tileHeight = 11,
|
|
anchorData = {align = "LEFT", xOff = 50, yOff = 150},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -135, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
-- callOut = {parent = "TargetFrame", align = "TOPLEFT", xOff = -5, yOff = -5, width = 210, height = 80},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-DudeParty", align = "TOP", xOff = 0, yOff = -40},
|
|
},
|
|
|
|
["QuestLog"] = {
|
|
tileHeight = 10,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -150},
|
|
callOut = {parent = "QuestLogMicroButton", align = "TOPLEFT", xOff = -5, yOff = -17, width = 38, height = 45},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Friends"] = {
|
|
tileHeight = 10,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -150},
|
|
callOut = {parent = "SocialsMicroButton", align = "TOPLEFT", xOff = -5, yOff = -17, width = 38, height = 45},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Equip"] = {
|
|
tileHeight = 25,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = 70},
|
|
callOut = {parent = "CharacterMicroButton", align = "TOPLEFT", xOff = -5, yOff = -17, width = 38, height = 45},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-EquipItem", align = "TOP", xOff = 10, yOff = -15},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -225, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Battleground1"] = {
|
|
tileHeight = 7,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = 70},
|
|
callOut = {parent = "Minimap", align = "TOPLEFT", xOff = -8, yOff = 0, width = 151, height = 145},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Battleground2"] = {
|
|
tileHeight = 7,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = 70},
|
|
callOut = {parent = "Minimap", align = "TOPLEFT", xOff = -8, yOff = 0, width = 151, height = 145},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Keyring"] = {
|
|
tileHeight = 7,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -150},
|
|
callOut = {parent = "KeyRingButton", align = "TOPLEFT", xOff = -8, yOff = 7, width = 35, height = 52},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["LFG"] = {
|
|
tileHeight = 7,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = -150},
|
|
callOut = {parent = "LFDMicroButton", align = "TOPLEFT", xOff = -5, yOff = -17, width = 38, height = 45},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -75, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
},
|
|
|
|
["Food"] = {
|
|
tileHeight = 10,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -130, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Food01", align = "TOP", xOff = -60, yOff = -50},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Food02", align = "TOP", xOff = 10, yOff = -50},
|
|
imageData3 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Food03", align = "TOP", xOff = 80, yOff = -50},
|
|
},
|
|
|
|
["Drink"] = {
|
|
tileHeight = 13,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -120, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Drink01", align = "TOP", xOff = -60, yOff = -50},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Drink02", align = "TOP", xOff = 10, yOff = -50},
|
|
imageData3 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Drink03", align = "TOP", xOff = 80, yOff = -50},
|
|
},
|
|
|
|
["QuestGray"] = {
|
|
tileHeight = 18,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -195, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-QuestGray", align = "TOP", xOff = 30, yOff = -50},
|
|
},
|
|
|
|
["Ranged"] = {
|
|
tileHeight = 20,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -125, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Shoot01", align = "TOP", xOff = -60, yOff = -50},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Shoot02", align = "TOP", xOff = 10, yOff = -50},
|
|
imageData3 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-Shoot03", align = "TOP", xOff = 80, yOff = -50},
|
|
},
|
|
|
|
["Trainer"] = {
|
|
tileHeight = 17,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -145, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-TrainerCursor", align = "TOP", xOff = 0, yOff = -60},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-TheDude", align = "TOP", xOff = -40, yOff = -10},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 80, yOff = -40},
|
|
},
|
|
|
|
["Vendor"] = {
|
|
tileHeight = 17,
|
|
anchorData = {align = "RIGHT", xOff = -25, yOff = 70},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -150, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-LootCursor", align = "TOP", xOff = 0, yOff = -60},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-TheDude", align = "TOP", xOff = -40, yOff = -10},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 80, yOff = -40},
|
|
},
|
|
|
|
["Professions"] = {
|
|
tileHeight = 18,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -150, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-TrainerCursor", align = "TOP", xOff = 0, yOff = -60},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-TheDude", align = "TOP", xOff = -40, yOff = -10},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 80, yOff = -40},
|
|
},
|
|
|
|
["Breath"] = {
|
|
tileHeight = 9,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -95, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-BreathBar", align = "TOP", xOff = 10, yOff = -40},
|
|
},
|
|
|
|
["Fat"] = {
|
|
tileHeight = 9,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -95, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-FatigueBar", align = "TOP", xOff = 10, yOff = -40},
|
|
},
|
|
|
|
["Grouping"] = {
|
|
tileHeight = 20,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -165, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
imageData1 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-DudeParty", align = "TOP", xOff = -50, yOff = -63},
|
|
imageData2 = {file ="Interface\\TutorialFrame\\UI-TutorialFrame-GloveCursor", layer = "OVERLAY", align = "TOP", xOff = 40, yOff = -90},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 110, yOff = -65},
|
|
},
|
|
|
|
["Swim"] = {
|
|
tileHeight = 14,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -135, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 10, yOff = -35},
|
|
},
|
|
|
|
["Ammo"] = {
|
|
tileHeight = 14,
|
|
anchorData = {align = "LEFT", xOff = 15, yOff = 30},
|
|
textBox = {topLeft_xOff = 33, topLeft_yOff = -135, bottomRight_xOff = -29, bottomRight_yOff = 35},
|
|
mouseData = {image = "RightClick", align = "TOP", xOff = 10, yOff = -35},
|
|
},
|
|
};
|
|
|
|
function TutorialFrame_OnLoad(self)
|
|
self:RegisterEvent("TUTORIAL_TRIGGER");
|
|
|
|
for i = 1, MAX_TUTORIAL_VERTICAL_TILE do
|
|
local texture = self:CreateTexture("TutorialFrameLeft"..i, "BORDER");
|
|
texture:SetTexture("Interface\\TutorialFrame\\UI-TUTORIAL-FRAME");
|
|
texture:SetTexCoord(0.3066406, 0.3261719, 0.656250025, 0.675781275);
|
|
texture:SetSize(11, 10);
|
|
texture = self:CreateTexture("TutorialFrameRight"..i, "BORDER");
|
|
texture:SetTexture("Interface\\TutorialFrame\\UI-TUTORIAL-FRAME");
|
|
texture:SetTexCoord(0.3496094, 0.3613281, 0.656250025, 0.675781275);
|
|
texture:SetSize(7, 10);
|
|
end
|
|
TutorialFrameLeft1:SetPoint("TOPLEFT", TutorialFrameTop, "BOTTOMLEFT", 6, 0);
|
|
TutorialFrameRight1:SetPoint("TOPRIGHT", TutorialFrameTop, "BOTTOMRIGHT", -1, 0);
|
|
|
|
for i = 1, MAX_TUTORIAL_IMAGES do
|
|
local texture = self:CreateTexture("TutorialFrameImage"..i, "ARTWORK");
|
|
end
|
|
|
|
for i = 1, MAX_TUTORIAL_KEYS do
|
|
local texture = self:CreateTexture("TutorialFrameKey"..i, "ARTWORK");
|
|
texture:SetTexture("Interface\\TutorialFrame\\UI-TUTORIAL-FRAME");
|
|
texture:SetTexCoord(0.1542969, 0.3007813, 0.8046875, 0.9433594);
|
|
texture:SetSize(76, 72);
|
|
local keyString = self:CreateFontString("TutorialFrameKeyString"..i, "ARTWORK", "GameFontNormalHugeBlack");
|
|
keyString:SetPoint("CENTER", texture, "CENTER", 0, 10);
|
|
end
|
|
|
|
TutorialFrame_ClearTextures();
|
|
end
|
|
|
|
function TutorialFrame_OnShow(self)
|
|
self:RegisterEvent("DISPLAY_SIZE_CHANGED");
|
|
TutorialFrame_CheckNextPrevButtons();
|
|
end
|
|
|
|
function TutorialFrame_OnHide(self)
|
|
self:UnregisterEvent("DISPLAY_SIZE_CHANGED");
|
|
|
|
if ( (getn(TUTORIALFRAME_QUEUE) <= 0) and (UnitLevel("player") > 5) ) then
|
|
TutorialFrameAlertButton:Hide();
|
|
UIParent_ManageFramePositions();
|
|
end
|
|
end
|
|
|
|
function TutorialFrame_CheckNextPrevButtons()
|
|
if ( GetPrevCompleatedTutorial(TutorialFrame.id) ) then
|
|
TutorialFramePrevButton:Enable();
|
|
else
|
|
TutorialFramePrevButton:Disable();
|
|
end
|
|
if ( GetNextCompleatedTutorial(TutorialFrame.id) or (getn(TUTORIALFRAME_QUEUE) > 0) ) then
|
|
TutorialFrameNextButton:Enable();
|
|
else
|
|
TutorialFrameNextButton:Disable();
|
|
end
|
|
end
|
|
|
|
function TutorialFrame_Update(currentTutorial)
|
|
FlagTutorial(currentTutorial);
|
|
TutorialFrame.id = currentTutorial;
|
|
|
|
local displayData = DISPLAY_DATA[ TUTORIAL_DATA[currentTutorial] ];
|
|
if ( not displayData ) then
|
|
displayData = DISPLAY_DATA["Base"];
|
|
end
|
|
|
|
-- setup the frame
|
|
TutorialFrame_ClearTextures();
|
|
local anchorData = displayData.anchorData;
|
|
TutorialFrame:SetPoint( anchorData.align, UIParent, anchorData.align, anchorData.xOff, anchorData.yOff );
|
|
|
|
local anchorParentLeft = TutorialFrameLeft1;
|
|
local anchorParentRight = TutorialFrameRight1;
|
|
for i = 2, displayData.tileHeight do
|
|
local leftTexture = _G["TutorialFrameLeft"..i];
|
|
local rightTexture = _G["TutorialFrameRight"..i];
|
|
leftTexture:SetPoint("TOPLEFT", anchorParentLeft, "BOTTOMLEFT", 0, 0);
|
|
rightTexture:SetPoint("TOPRIGHT", anchorParentRight, "BOTTOMRIGHT", 0, 0);
|
|
leftTexture:Show();
|
|
rightTexture:Show();
|
|
anchorParentLeft = leftTexture;
|
|
anchorParentRight = rightTexture;
|
|
end
|
|
TutorialFrameBottom:SetPoint("TOPLEFT", anchorParentLeft, "BOTTOMLEFT", 0, 0);
|
|
TutorialFrameBottom:SetPoint("TOPRIGHT", anchorParentRight, "TOPRIGHT", 0, 0);
|
|
|
|
local height = TUTORIALFRAME_TOP_HEIGHT + (displayData.tileHeight * TUTORIALFRAME_MIDDLE_HEIGHT) + TUTORIALFRAME_BOTTOM_HEIGHT;
|
|
TutorialFrame:SetSize(TUTORIALFRAME_WIDTH, height);
|
|
|
|
-- setup the text
|
|
local title = _G["TUTORIAL_TITLE"..currentTutorial];
|
|
local text = _G["TUTORIAL"..currentTutorial];
|
|
if ( title and text) then
|
|
TutorialFrameTitle:SetText(title);
|
|
TutorialFrameText:SetText(text);
|
|
end
|
|
if ( displayData.textBox) then
|
|
TutorialFrameTextScrollFrame:SetPoint("TOPLEFT", TutorialFrame, "TOPLEFT", displayData.textBox.topLeft_xOff, displayData.textBox.topLeft_yOff);
|
|
TutorialFrameTextScrollFrame:SetPoint("BOTTOMRIGHT", TutorialFrame, "BOTTOMRIGHT", displayData.textBox.bottomRight_xOff, displayData.textBox.bottomRight_yOff);
|
|
end
|
|
|
|
-- setup the callout
|
|
local callOut = displayData.callOut;
|
|
if(callOut) then
|
|
TutorialFrameCallOut:SetSize(callOut.width, callOut.height);
|
|
TutorialFrameCallOut:SetPoint( callOut.align, callOut.parent, callOut.align, callOut.xOff, callOut.yOff );
|
|
TutorialFrameCallOut:Show();
|
|
TutorialFrameCallOutPulser:Play();
|
|
end
|
|
|
|
-- setup images
|
|
for i = 1, MAX_TUTORIAL_IMAGES do
|
|
local imageTexture = _G["TutorialFrameImage"..i];
|
|
local imageData = displayData["imageData"..i];
|
|
if(imageData and imageTexture) then
|
|
imageTexture:SetTexture(imageData.file);
|
|
imageTexture:SetPoint( imageData.align, TutorialFrame, imageData.align, imageData.xOff, imageData.yOff );
|
|
if ( imageData.layer ) then
|
|
imageTexture:SetDrawLayer(imageData.layer);
|
|
end
|
|
imageTexture:Show();
|
|
elseif( imageTexture ) then
|
|
imageTexture:ClearAllPoints();
|
|
imageTexture:SetTexture("");
|
|
imageTexture:Hide();
|
|
end
|
|
end
|
|
|
|
-- setup mouse
|
|
local mouseData = displayData.mouseData;
|
|
if(mouseData) then
|
|
local mouseTexture = _G["TutorialFrameMouse"..mouseData.image];
|
|
mouseTexture:SetPoint( mouseData.align, TutorialFrame, mouseData.align, mouseData.xOff, mouseData.yOff );
|
|
|
|
local scale = 1.0;
|
|
if ( mouseData.scale ) then
|
|
scale = mouseData.scale;
|
|
end
|
|
mouseTexture:SetWidth( MOUSE_SIZE.x * scale );
|
|
mouseTexture:SetHeight( MOUSE_SIZE.y * scale );
|
|
|
|
if ( mouseData.layer ) then
|
|
mouseTexture:SetDrawLayer(mouseData.layer);
|
|
end
|
|
mouseTexture:Show();
|
|
end
|
|
|
|
-- setup keys
|
|
for i = 1, MAX_TUTORIAL_KEYS do
|
|
local keyTexture = _G["TutorialFrameKey"..i];
|
|
local keyString = _G["TutorialFrameKeyString"..i];
|
|
local keyData = displayData["keyData"..i];
|
|
if(keyTexture and keyString and keyData) then
|
|
keyTexture:SetPoint( keyData.align, TutorialFrame, keyData.align, keyData.xOff, keyData.yOff );
|
|
keyString:SetText( GetBindingText(GetBindingKey(keyData.command), "KEY_") );
|
|
if ( keyData.layer ) then
|
|
keyTexture:SetDrawLayer(keyData.layer);
|
|
keyString:SetDrawLayer(keyData.layer);
|
|
end
|
|
keyTexture:Show();
|
|
keyString:Show();
|
|
elseif ( keyTexture ) then
|
|
keyTexture:ClearAllPoints();
|
|
keyTexture:Hide();
|
|
keyString:Hide();
|
|
end
|
|
end
|
|
|
|
-- setup arrows
|
|
for i = 1, getn(ARROW_TYPES) do
|
|
arrowData = displayData[ ARROW_TYPES[i] ];
|
|
arrowTexture = _G[ "TutorialFrame"..ARROW_TYPES[i] ];
|
|
if ( arrowData and arrowTexture ) then
|
|
arrowTexture:SetPoint( arrowData.align, TutorialFrame, arrowData.align, arrowData.xOff, arrowData.yOff );
|
|
if ( arrowData.layer ) then
|
|
arrowTexture:SetDrawLayer(arrowData.layer);
|
|
end
|
|
if ( arrowData.scale ) then
|
|
arrowTexture:SetWidth( ARROW_SIZES[ARROW_TYPES[i]].x * arrowData.scale );
|
|
arrowTexture:SetHeight( ARROW_SIZES[ARROW_TYPES[i]].y * arrowData.scale );
|
|
end
|
|
arrowTexture:Show();
|
|
elseif ( arrowTexture ) then
|
|
arrowTexture:ClearAllPoints();
|
|
arrowTexture:Hide();
|
|
end
|
|
end
|
|
|
|
-- show
|
|
TutorialFrame:Show();
|
|
TutorialFrame_CheckNextPrevButtons();
|
|
end
|
|
|
|
function TutorialFrame_ClearTextures()
|
|
TutorialFrame:ClearAllPoints();
|
|
TutorialFrameBottom:ClearAllPoints();
|
|
TutorialFrameTextScrollFrame:ClearAllPoints();
|
|
|
|
TutorialFrameCallOutPulser:Stop();
|
|
TutorialFrameCallOut:ClearAllPoints();
|
|
TutorialFrameCallOut:Hide();
|
|
|
|
TutorialFrameMouseRightClick:ClearAllPoints();
|
|
TutorialFrameMouseLeftClick:ClearAllPoints();
|
|
TutorialFrameMouseBothClick:ClearAllPoints();
|
|
TutorialFrameMouseWheel:ClearAllPoints();
|
|
TutorialFrameMouseRightClick:Hide();
|
|
TutorialFrameMouseLeftClick:Hide();
|
|
TutorialFrameMouseBothClick:Hide();
|
|
TutorialFrameMouseWheel:Hide();
|
|
|
|
-- top & left1 & right1 never have thier anchors changed; or are independantly hidden
|
|
for i = 2, MAX_TUTORIAL_VERTICAL_TILE do
|
|
local leftTexture = _G["TutorialFrameLeft"..i];
|
|
local rightTexture = _G["TutorialFrameRight"..i];
|
|
leftTexture:ClearAllPoints();
|
|
rightTexture:ClearAllPoints();
|
|
leftTexture:Hide();
|
|
rightTexture:Hide();
|
|
end
|
|
end
|
|
|
|
function TutorialFrame_NewTutorial(tutorialID)
|
|
-- check that we haven't already seen it
|
|
if ( IsTutorialFlagged(tutorialID) ) then
|
|
return;
|
|
end
|
|
for index, value in pairs(TUTORIALFRAME_QUEUE) do
|
|
if( (value == tutorialID) ) then
|
|
return;
|
|
end
|
|
end
|
|
|
|
TUTORIAL_LAST_ID = tutorialID;
|
|
local button = TutorialFrameAlertButton;
|
|
tinsert(TUTORIALFRAME_QUEUE, tutorialID);
|
|
if ( not TutorialFrame:IsShown() ) then
|
|
button.id = tutorialID;
|
|
button:Show();
|
|
UIParent_ManageFramePositions();
|
|
if ( not TutorialFrame:IsShown() and not InCombatLockdown() ) then
|
|
TutorialFrame_AlertButton_OnClick(button);
|
|
end
|
|
elseif ( button:IsEnabled() == 0 ) then
|
|
button.id = tutorialID;
|
|
end
|
|
TutorialFrame_CheckBadge();
|
|
if ( getn(TUTORIALFRAME_QUEUE) > 0 ) then
|
|
TutorialFrameNextButton:Enable();
|
|
end
|
|
end
|
|
|
|
function TutorialFramePrevButton_OnClick(self)
|
|
PlaySound("igMainMenuOptionCheckBoxOn");
|
|
local prevTutorial = GetPrevCompleatedTutorial(TutorialFrame.id);
|
|
if ( prevTutorial ) then
|
|
TutorialFrame_Update(prevTutorial);
|
|
end
|
|
end
|
|
|
|
function TutorialFrameNextButton_OnClick(self)
|
|
PlaySound("igMainMenuOptionCheckBoxOn");
|
|
local nextTutorial = GetNextCompleatedTutorial(TutorialFrame.id);
|
|
if ( nextTutorial ) then
|
|
TutorialFrame_Update(nextTutorial);
|
|
elseif (getn(TUTORIALFRAME_QUEUE) > 0) then
|
|
TutorialFrame_AlertButton_OnClick(TutorialFrameAlertButton);
|
|
end
|
|
end
|
|
|
|
function TutorialFrame_AlertButton_OnClick(self)
|
|
local tutorialID = TUTORIALFRAME_QUEUE[1];
|
|
if ( tutorialID ) then
|
|
tremove(TUTORIALFRAME_QUEUE, 1);
|
|
TutorialFrame_Update(tutorialID);
|
|
elseif ( TUTORIAL_LAST_ID ) then
|
|
TutorialFrame_Update(TUTORIAL_LAST_ID);
|
|
end
|
|
TutorialFrame_CheckBadge();
|
|
end
|
|
|
|
function TutorialFrame_Hide()
|
|
PlaySound("igMainMenuClose");
|
|
HideUIPanel(TutorialFrame);
|
|
if ( getn(TUTORIALFRAME_QUEUE) > 0 ) then
|
|
TutorialFrame_AlertButton_OnClick( TutorialFrameAlertButton );
|
|
end
|
|
end
|
|
|
|
function TutorialFrame_CheckBadge()
|
|
TutorialFrameAlertButtonBadge:Hide();
|
|
TutorialFrameAlertButtonBadgeText:Hide();
|
|
--[[ leaving this here in case the badge system make a return
|
|
if( getn(TUTORIALFRAME_QUEUE) > 1 or (TutorialFrame:IsShown() and getn(TUTORIALFRAME_QUEUE) > 0) ) then
|
|
TutorialFrameAlertButtonBadge:Show();
|
|
local count = getn(TUTORIALFRAME_QUEUE);
|
|
if ( not TutorialFrame:IsShown() ) then
|
|
count = count - 1;
|
|
end
|
|
TutorialFrameAlertButtonBadgeText:SetText( count );
|
|
TutorialFrameAlertButtonBadgeText:Show();
|
|
else
|
|
TutorialFrameAlertButtonBadge:Hide();
|
|
TutorialFrameAlertButtonBadgeText:Hide();
|
|
end
|
|
--]]
|
|
end
|
|
|
|
function TutorialFrame_ClearQueue()
|
|
TUTORIALFRAME_QUEUE = { };
|
|
end
|