Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --
- -- Iron Man
- -- Version: 1.0.9.15
- -- Author: Walkerbo
- -- Email: [email protected]
- -- Date: Monday 31 January 2022
- --
- -- I have tried to name variables, functions, frames, and buttons to be descriptive
- -- ===================================================================================================
- -- ===================================================================================================
- -- =========================== Metrics, Lists & Variables ===========================
- -- ===================================================================================================
- -- ===================================================================================================
- local addonName = "Iron Man"
- local versionNumber = "1.0.9.15"
- local playerGUID = UnitGUID("Player")
- -- variables for the get all details function
- local DateTable, TemporaryTable, DateString, NameClassRaceString = {}, {}, "", ""
- local ImageList = {
- IMFrame = "Interface\\AddOns\\IronMan\\Files\\Images\\IronManFrame",
- blue = "Interface\\AddOns\\IronMan\\Files\\Images\\IMBlue",
- goldRed = "Interface\\AddOns\\IronMan\\Files\\Images\\IMRedGold",
- green = "Interface\\AddOns\\IronMan\\Files\\Images\\IMGreen",
- grey = "Interface\\AddOns\\IronMan\\Files\\Images\\IMGrey",
- orange = "Interface\\AddOns\\IronMan\\Files\\Images\\IMOrange",
- purple = "Interface\\AddOns\\IronMan\\Files\\Images\\IMPurple",
- IMBanner = "Interface\\AddOns\\IronMan\\Files\\Images\\IronManBanner"
- }
- local NumberList = {
- achievementCloseButtonX = -5,
- achievementCloseButtonY = -6,
- achievementFrameHeight = 160,
- achievementFramePositionY = 150,
- achievementFrameWidth = 600,
- bottomLeftTextureX = -200,
- bottomRightTextureX = 200,
- buttonSpacerBottom = -20,
- buttonSpacerLeft = 200,
- buttonSpacerTop = 30,
- dateNameTextBoxHeight = 40,
- dateNameTextBoxWidth = 500,
- dateTextBoxBottomGap = 5,
- edgeSize = 20,
- failTextBoxHeight = 80,
- failTextBoxSpacerLeft = 200,
- failTextBoxSpacerTop = 40,
- failTextBoxWidth = 190,
- iconAchievementTextureScale = .25,
- iconTextureScale = .45,
- iconTextureX = -11,
- iconTextureY = 30,
- insetSize = 5,
- interfaceTextureBoxSize = 50,
- interfaceTextureGap = -50,
- interfaceTextureScale = .55,
- maxDeaths = 100,
- maxFails = 100,
- maxJumps = 100,
- maxLevel = 19, -- debug -- GetMaxLevelForPlayerExpansion()
- maxPlayed = 100,
- metaAchievementFramePositionGapY = -40,
- metaAchievementTopGap = -8,
- nameTextBoxBottomGap = -5,
- selectionButtonHeight = 45,
- selectionButtonWidth = 190,
- selectionFrameHeight = 200,
- selectionFramePositionY = 150,
- selectionFrameScale = 1.2,
- selectionFrameWidth = 480,
- textBoxHeight = 190,
- textBoxSpacerLeft = 0,
- textBoxSpacerTop = 0,
- textBoxWidth = 190,
- titleTextBoxHeight = 80,
- titleTextBoxTopGap = -10,
- titleTextBoxWidth = 350,
- scrollFrameNumberOfFrames = 4, -- debug -- 4 or 5
- scrollFrameWidth = 330,
- scrollFrameRowHeight = 80,
- scrollParentTopGap = -135,
- scrollParentHeight = 350,
- scrollParentWidth = 390,
- scrollFrameRowWidth = 355,
- scrollParentGapX = 10,
- scrollAchievementTextBoxWidth = 300,
- scrollAchievementTextBoxHeight = 30
- }
- local FontList = {
- failFont = "Fancy22Font",
- nameDateFont = "Fancy22Font",
- rulesFont = "NumberFontNormalLargeYellow",
- titleFont = "Fancy48Font",
- failColour = "|cffff0000", -- red
- loadColour = "|cffffb90f", -- gold
- titleColour = "|cff00ff00" -- green
- }
- local StringList = {
- ironManLoad = (FontList.loadColour .. " *** " .. addonName .. " - " .. versionNumber .. " Loaded *** \n"),
- acceptChallenge = "Accept Ironman Challenge",
- closeFrameAfterFail = "Goodbye",
- doNotAcceptChallenge = "No Thanks",
- ironManBoosted = (FontList.failColour .. "You boosted"),
- ironManDied = (FontList.failColour .. "You died"),
- ironManEquipped = (FontList.failColour .. "You equipped an item that was not grey"),
- ironManGroup = (FontList.failColour .. "You joined a group"),
- ironManGuild = (FontList.failColour .. "You joined a guild"),
- ironManRaid = (FontList.failColour .. "You joined a raid"),
- ironManRules = ("Level to max following\nthese rules;\n\n1. Only equip grey items\n above starting gear.\n2. Don't join a guild.\n3. Don't join a group.\n4. Don't join a raid.\n5. Don't boost.\n6. Don't die."),
- ironManSuccess = (FontList.titleColour .. "I AM IRON MAN"),
- ironManDeaths = (FontList.failColour .. "1000 Deaths"),
- ironManFails = (FontList.failColour .. "1000 Fails"),
- ironManJumps = (FontList.titleColour .. "1000 Jumps"),
- ironManAllRaces = (FontList.titleColour .. "All Races"),
- ironManAllClasses = (FontList.titleColour .. "All Classes"),
- ironManAllGenders = (FontList.titleColour .. "All Genders")
- }
- local SoundList = {
- failServices = "Interface\\AddOns\\IronMan\\Files\\Sounds\\services.wav",
- iAmIronMan = "Interface\\AddOns\\IronMan\\Files\\Sounds\\IAmIronMan.wav",
- nextTime = "Interface\\AddOns\\IronMan\\Files\\Sounds\\NextTime.wav",
- suitUp = "Interface\\AddOns\\IronMan\\Files\\Sounds\\IronManSuitUp.wav"
- }
- -- list of guild masters used to prevent starting a guild
- -- some guild masters have multiple id's as they are found in different areas
- local guildMasterVendorList = {
- 3370, -- Urtrun Clanbringer
- 4161, -- Lysheana
- 4613, -- Christopher Drakul
- 4974, --Aldwin Laughlin
- 5054, -- Krumn
- 5130, -- Jondor Steelbrow
- 16568, -- Tandrine
- 16734, -- Funaam
- 28774, -- Andrew Matthews
- 52277, -- Droha
- 96811, -- Andrew Matthews
- 108092, -- Aldwin Laughlin
- 130964, -- Christopher Drakul
- 142077, -- Dockwarden Finnson
- 142179, -- Cringely Rottenfist
- 152324, -- Aldwin Laughlin
- 177066 -- Lysheana
- }
- -- ===================================================================================================
- -- ===================================================================================================
- -- =========================== Functions ===========================
- -- ===================================================================================================
- -- ===================================================================================================
- local function updateAchievementList() -- debug -- move to function section once working
- local os = FauxScrollFrame_GetOffset(IronManInterfaceScrollFrame)
- for index = 1, NumberList.scrollFrameNumberOfFrames do
- local frame = IronManInterfaceScrollFrame.frames[index]
- local offset = os + index
- local row = IronManInterfaceScrollFrame.frames[index]
- if offset <= #IronManCompleatedAchievements then
- row.texture:SetTexture(IronManCompleatedAchievements[offset].icon)
- row.titleTextBox.text:SetText(IronManCompleatedAchievements[offset].title)
- row.frameNameTextBox.text:SetText(IronManCompleatedAchievements[offset].char)
- row.frameDateTextBox.text:SetText(IronManCompleatedAchievements[offset].date)
- row:Show()
- else
- row:Hide()
- end
- end
- FauxScrollFrame_Update(
- IronManInterfaceScrollFrame,
- #IronManCompleatedAchievements,
- NumberList.scrollFrameNumberOfFrames,
- NumberList.scrollFrameRowHeight
- )
- end
- local function initialiseTables()
- if not IronManGlobalVariables then
- IronManGlobalVariables = {
- metaClasses = false,
- metaClassesSexes = false,
- metaDeaths = false,
- metaFails = false,
- metaJumps = false,
- metaPlayed = false,
- metaRaces = false,
- metaRacesSexes = false,
- totalNumberOfDeaths = 0,
- totalNumberOfFails = 0,
- totalNumberOfJumps = 0,
- totalTimePlayed = 0
- }
- IronManCompleatedAchievements = {}
- IronManClassTable = {
- -- unknown/neutrum = 1 -- male = 2 -- female = 3
- {class = "Warrior", male = false, female = false, classID = 1},
- {class = "Paladin", male = false, female = false, classID = 2},
- {class = "Hunter", male = false, female = false, classID = 3},
- {class = "Rogue", male = false, female = false, classID = 4},
- {class = "Priest", male = false, female = false, classID = 5},
- {class = "Deathknight", male = false, female = false, classID = 6},
- {class = "Shaman", male = false, female = false, classID = 7},
- {class = "Mage", male = false, female = false, classID = 8},
- {class = "Warlock", male = false, female = false, classID = 9},
- {class = "Monk", male = false, female = false, classID = 10},
- {class = "Druid", male = false, female = false, classID = 11},
- {class = "Demonhunter", male = false, female = false, classID = 12},
- {class = "Evoker", male = false, female = false, classID = 123} -- debug --
- }
- IronManRaceTable = {
- -- horde
- {race = "Orc", faction = "Horde", male = false, female = false, raceID = 2},
- {race = "Undead", faction = "Horde", male = false, female = false, raceID = 5},
- {race = "Tauren", faction = "Horde", male = false, female = false, raceID = 6},
- {race = "Troll", faction = "Horde", male = false, female = false, raceID = 8},
- {race = "Blood Elf", faction = "Horde", male = false, female = false, raceID = 10},
- {race = "Goblin", faction = "Horde", male = false, female = false, raceID = 9},
- {race = "Pandaren", faction = "Horde", male = false, female = false, raceID = 26},
- {race = "Nightborne", faction = "Horde", male = false, female = false, raceID = 27},
- {race = "Highmountain Tauren", faction = "Horde", male = false, female = false, raceID = 28},
- {race = "Mag'har Orc", faction = "Horde", male = false, female = false, raceID = 36},
- {race = "Zandalari Troll", faction = "Horde", male = false, female = false, raceID = 31},
- {race = "Vulpera", faction = "Horde", male = false, female = false, raceID = 35},
- {race = "Dracthyr", faction = "Neutral", male = false, female = false, raceID = 123}, -- debug --
- -- alliance
- {race = "Human", faction = "Alliance", male = false, female = false, raceID = 1},
- {race = "Dwarf", faction = "Alliance", male = false, female = false, raceID = 3},
- {race = "Night Elf", faction = "Alliance", male = false, female = false, raceID = 4},
- {race = "Gnome", faction = "Alliance", male = false, female = false, raceID = 7},
- {race = "Draenei", faction = "Alliance", male = false, female = false, raceID = 11},
- {race = "Worgen", faction = "Alliance", male = false, female = false, raceID = 22},
- {race = "Pandaren", faction = "Alliance", male = false, female = false, raceID = 25},
- {race = "Void Elf", faction = "Alliance", male = false, female = false, raceID = 29},
- {race = "Lightforged Draenei", faction = "Alliance", male = false, female = false, raceID = 30},
- {race = "Dark Iron Dwarf", faction = "Alliance", male = false, female = false, raceID = 34},
- {race = "Kul Tiran", faction = "Alliance", male = false, female = false, raceID = 32},
- {race = "Mechagnome", faction = "Alliance", male = false, female = false, raceID = 37},
- -- neutral
- {race = "Pandaren", faction = "Neutral", male = false, female = false, raceID = 24},
- {race = "Dracthyr", faction = "Neutral", male = false, female = false, raceID = 123} -- debug --
- }
- end
- if not IronManCharacterVariables then
- IronManCharacterVariables = {
- isNew = true,
- isAttemptingIronMan = false,
- failedIronMan = false,
- numberOfJumps = 0,
- timePlayed = 0
- }
- end
- end
- local function unregisterEventsIfNotRequired()
- if IronManCharacterVariables.failedIronMan or not IronManCharacterVariables.isAttemptingIronMan then
- -- IronManSelectionFrame:Hide() -- debug --
- IronManSelectionFrame:UnregisterEvent("PLAYER_EQUIPMENT_CHANGED")
- IronManSelectionFrame:UnregisterEvent("PLAYER_LEVEL_CHANGED")
- IronManSelectionFrame:UnregisterEvent("GUILD_INVITE_REQUEST")
- IronManSelectionFrame:UnregisterEvent("PARTY_INVITE_REQUEST")
- IronManSelectionFrame:UnregisterEvent("PLAYER_DEAD")
- IronManSelectionFrame:UnregisterEvent("TIME_PLAYED_MSG")
- IronManSelectionFrame:UnregisterEvent("MERCHANT_SHOW")
- IronManSelectionFrame:UnregisterEvent("PETITION_SHOW")
- IronManSelectionFrame:UnregisterEvent("GOSSIP_SHOW")
- IronManSelectionFrame:UnregisterEvent("LFG_UPDATE_RANDOM_INFO")
- IronManSelectionFrame:UnregisterEvent("GROUP_FORMED")
- IronManSelectionFrame:UnregisterEvent("EQUIP_BIND_CONFIRM")
- end
- end
- local function failedIronManChallenge(failType)
- -- IronManCharacterVariables.failedIronMan = true -- debug --
- -- IronManCharacterVariables.isAttemptingIronMan = false -- debug --
- -- IronManGlobalVariables.totalNumberOfFails = IronManGlobalVariables.totalNumberOfFails + 1
- if IronManCharacterVariables.isAttemptingIronMan then
- if failType == "Died" then
- IronManSelectionFrameTextBoxFailText:SetText(StringList.ironManDied)
- IronManGlobalVariables.totalNumberOfDeaths = IronManGlobalVariables.totalNumberOfDeaths + 1
- elseif failType == "Boosted" then
- IronManSelectionFrameTextBoxFailText:SetText(StringList.ironManBoosted)
- elseif failType == "JoinedRaid" then
- IronManSelectionFrameTextBoxFailText:SetText(StringList.ironManRaid)
- elseif failType == "JoinedGroup" then
- IronManSelectionFrameTextBoxFailText:SetText(StringList.ironManGroup)
- elseif failType == "JoinedGuild" then
- IronManSelectionFrameTextBoxFailText:SetText(StringList.ironManGuild)
- elseif failType == "Equiped" then
- IronManSelectionFrameTextBoxFailText:SetText(StringList.ironManEquipped)
- end
- end
- PlaySoundFile(SoundList.failServices)
- IronManSelectionFrameiconTexture:SetTexture(ImageList.grey)
- unregisterEventsIfNotRequired()
- IronManSelectionFramecloseButton:SetText(StringList.closeFrameAfterFail)
- IronManSelectionFrameselectionButton:Hide()
- IronManSelectionFrameTextBoxFail:Show()
- IronManSelectionFrameTextBoxFailText:Show()
- IronManSelectionFrame:Show()
- end
- local function closeVendorIfIsAGuildMaster()
- local vendorGUID = UnitGUID("target")
- if not vendorGUID then
- return
- end
- local _, _, _, _, _, npcID, _ = strsplit("-", vendorGUID)
- local vendorID = tonumber(npcID)
- for k, v in pairs(guildMasterVendorList) do
- if v == vendorID then
- CloseMerchant()
- C_GossipInfo.CloseGossip()
- end
- end
- end
- local function testForMetaAchievement(NameClassRaceString, DateString)
- local count = 0
- for k, v in pairs(IronManClassTable) do
- if v.male and v.female then
- count = count + 1
- end
- end
- if count == #IronManClassTable and not IronManGlobalVariables.metaClassesSexes then
- IronManGlobalVariables.metaClassesSexes = true
- TemporaryTable = {
- name = NameClassRaceString,
- date = dateString,
- description = StringList.ironManAllGenders,
- icon = "ImageList.purple"
- }
- table.insert(IronManCompleatedAchievements, TemporaryTable)
- IronManMetaAchievementFrameTitleTextBoxText:SetText(StringList.ironManAllGenders)
- IronManMetaAchievementFrameleftTexture:SetTexture(ImageList.purple)
- IronManMetaAchievementFramerightTexture:SetTexture(ImageList.purple)
- IronManMetaAchievementFrameDateTextBoxText:SetText(DateString)
- IronManMetaAchievementFrameNameTextBoxText:SetText(NameClassRaceString)
- IronManMetaAchievementFrame:Show()
- end
- count = 0
- TemporaryTable = {}
- for k, v in pairs(IronManClassTable) do
- if v.male or v.female then
- count = count + 1
- end
- end
- if count == #IronManClassTable and not IronManGlobalVariables.metaClasses then
- IronManGlobalVariables.metaClasses = true
- TemporaryTable = {
- name = NameClassRaceString,
- date = dateString,
- description = StringList.ironManAllClasses, -- debug --
- icon = "ImageList.blue"
- }
- table.insert(IronManCompleatedAchievements, TemporaryTable)
- IronManMetaAchievementFrameTitleTextBoxText:SetText(StringList.ironManAllClasses)
- IronManMetaAchievementFrameleftTexture:SetTexture(ImageList.blue)
- IronManMetaAchievementFramerightTexture:SetTexture(ImageList.blue)
- IronManMetaAchievementFrameDateTextBoxText:SetText(DateString)
- IronManMetaAchievementFrameNameTextBoxText:SetText(NameClassRaceString)
- IronManMetaAchievementFrame:Show()
- end
- count = 0
- TemporaryTable = {}
- for k, v in pairs(IronManRaceTable) do
- if v.male or v.female then
- count = count + 1
- end
- end
- if count == #IronManRaceTable and not IronManGlobalVariables.metaRaces then
- IronManGlobalVariables.metaRaces = true
- TemporaryTable = {
- name = NameClassRaceString,
- date = dateString,
- description = StringList.ironManAllRaces, -- debug --
- icon = "ImageList.orange"
- }
- table.insert(IronManCompleatedAchievements, TemporaryTable)
- IronManMetaAchievementFrameTitleTextBoxText:SetText(StringList.ironManAllRaces)
- IronManMetaAchievementFrameleftTexture:SetTexture(ImageList.orange)
- IronManMetaAchievementFramerightTexture:SetTexture(ImageList.orange)
- IronManMetaAchievementFrameDateTextBoxText:SetText(DateString)
- IronManMetaAchievementFrameNameTextBoxText:SetText(NameClassRaceString)
- IronManMetaAchievementFrame:Show()
- end
- count = 0
- TemporaryTable = {}
- if IronManGlobalVariables.totalNumberOfJumps == NumberList.maxJumps and not IronManGlobalVariables.metaJumps then
- IronManGlobalVariables.metaJumps = true
- TemporaryTable = {
- name = NameClassRaceString,
- date = dateString,
- description = StringList.ironManJumps, -- debug --
- icon = "ImageList.green"
- }
- table.insert(IronManCompleatedAchievements, TemporaryTable)
- IronManMetaAchievementFrameTitleTextBoxText:SetText(StringList.ironManJumps)
- IronManMetaAchievementFrameleftTexture:SetTexture(ImageList.green)
- IronManMetaAchievementFramerightTexture:SetTexture(ImageList.green)
- IronManMetaAchievementFrameDateTextBoxText:SetText(DateString)
- IronManMetaAchievementFrameNameTextBoxText:SetText(NameClassRaceString)
- IronManMetaAchievementFrame:Show()
- end
- count = 0
- TemporaryTable = {}
- if IronManGlobalVariables.totalNumberOfFails == NumberList.maxFails and not IronManGlobalVariables.metaFails then
- IronManGlobalVariables.metaFails = true
- TemporaryTable = {
- name = NameClassRaceString,
- date = dateString,
- description = StringList.ironManFails, -- debug --
- icon = "ImageList.grey"
- }
- table.insert(IronManCompleatedAchievements, TemporaryTable)
- IronManMetaAchievementFrameTitleTextBoxText:SetText(StringList.ironManFails)
- IronManMetaAchievementFrameleftTexture:SetTexture(ImageList.grey)
- IronManMetaAchievementFramerightTexture:SetTexture(ImageList.grey)
- IronManMetaAchievementFrameDateTextBoxText:SetText(DateString)
- IronManMetaAchievementFrameNameTextBoxText:SetText(NameClassRaceString)
- IronManMetaAchievementFrame:Show()
- end
- count = 0
- TemporaryTable = {}
- if IronManGlobalVariables.totalNumberOfDeaths == NumberList.maxDeaths and not IronManGlobalVariables.metaDeaths then
- IronManGlobalVariables.metaDeaths = true
- TemporaryTable = {
- name = NameClassRaceString,
- date = dateString,
- description = StringList.ironManDeaths, -- debug --
- icon = "ImageList.grey"
- }
- table.insert(IronManCompleatedAchievements, TemporaryTable)
- IronManMetaAchievementFrameTitleTextBoxText:SetText(StringList.ironManDeaths)
- IronManMetaAchievementFrameleftTexture:SetTexture(ImageList.grey)
- IronManMetaAchievementFramerightTexture:SetTexture(ImageList.grey)
- IronManMetaAchievementFrameDateTextBoxText:SetText(DateString)
- IronManMetaAchievementFrameNameTextBoxText:SetText(NameClassRaceString)
- IronManMetaAchievementFrame:Show()
- end
- count = 0
- TemporaryTable = {}
- end
- local function updateClassRaceTables(race, class, sex)
- for k, v in pairs(IronManClassTable) do
- if v.class == class then
- if sex == "Male" then
- v.male = true
- end
- if sex == "Female" then
- v.female = true
- end
- end
- end
- for k, v in pairs(IronManRaceTable) do
- if v.race == race then
- if sex == "Male" then
- v.male = true
- end
- if sex == "Female" then
- v.female = true
- end
- end
- end
- end
- local function getAllCharacterInfo()
- local characterGUID = UnitGUID("player")
- local class, _, race, _, sex, name = GetPlayerInfoByGUID(characterGUID)
- local faction = UnitFactionGroup("Player")
- local icon
- for k, v in pairs(date("*t")) do
- DateTable[k] = v
- end
- if DateTable.wday == 1 then
- DateTable.wday = "Sun"
- elseif DateTable.wday == 2 then
- DateTable.wday = "Mon"
- elseif DateTable.wday == 3 then
- DateTable.wday = "Tue"
- elseif DateTable.wday == 4 then
- DateTable.wday = "Wed"
- elseif DateTable.wday == 5 then
- DateTable.wday = "Thu"
- elseif DateTable.wday == 6 then
- DateTable.wday = "Fri"
- elseif DateTable.wday == 7 then
- DateTable.wday = "Sat"
- end
- if DateTable.month == 1 then
- DateTable.month = "Jan"
- elseif DateTable.month == 2 then
- DateTable.month = "Feb"
- elseif DateTable.month == 3 then
- DateTable.month = "Mar"
- elseif DateTable.month == 4 then
- DateTable.month = "Apr"
- elseif DateTable.month == 5 then
- DateTable.month = "May"
- elseif DateTable.month == 6 then
- DateTable.month = "Jun"
- elseif DateTable.month == 7 then
- DateTable.month = "Jul"
- elseif DateTable.month == 8 then
- DateTable.month = "Aug"
- elseif DateTable.month == 9 then
- DateTable.month = "Sep"
- elseif DateTable.month == 10 then
- DateTable.month = "Oct"
- elseif DateTable.month == 11 then
- DateTable.month = "Nov"
- elseif DateTable.month == 12 then
- DateTable.month = "Dec"
- end
- if sex == 1 then
- sex = "Neutral"
- elseif sex == 2 then
- sex = "Male"
- elseif sex == 3 then
- sex = "Female"
- end
- DateString = (DateTable.wday .. " " .. DateTable.day .. " " .. DateTable.month .. " " .. DateTable.year)
- NameClassRaceString = (name .. " - level " .. GetMaxLevelForPlayerExpansion() .. " " .. race .. " " .. class)
- TemporaryTable = {
- date = DateString,
- char = NameClassRaceString,
- description = StringList.ironManSuccess,
- icon = "ImageList.goldRed"
- }
- table.insert(IronManCompleatedAchievements, TemporaryTable)
- TemporaryTable = {}
- IronManSelectionFrame:ClearAllPoints()
- IronManSelectionFrame:SetPoint("CENTER", 0, NumberList.selectionFramePositionY)
- IronManAchievementFrame:ClearAllPoints()
- IronManAchievementFrame:SetPoint("CENTER", 0, NumberList.achievementFramePositionY)
- IronManMetaAchievementFrame:ClearAllPoints()
- IronManMetaAchievementFrame:SetPoint("TOP", IronManAchievementFrame, "BOTTOM", 0, NumberList.metaAchievementTopGap)
- updateClassRaceTables(race, class, sex)
- testForMetaAchievement(NameClassRaceString, DateString)
- end
- -- ===================================================================================================
- -- ===================================================================================================
- -- =========================== Hook Functions ===========================
- -- ===================================================================================================
- -- ===================================================================================================
- local function myHookFunctions()
- -- hook jump function
- hooksecurefunc(
- "JumpOrAscendStart",
- function()
- if IsFlying() or IsSwimming() or IsMounted() or IsFalling() then
- return
- else
- IronManCharacterVariables.numberOfJumps = IronManCharacterVariables.numberOfJumps + 1
- end
- end
- )
- -- hook character equipment manager button
- hooksecurefunc(
- "EquipmentFlyoutPopoutButton_ShowAll",
- function()
- ToggleCharacter("PaperDollFrame")
- end
- )
- -- not a hook but I must disable the LFG tool and it is better grouped here
- local functionIWantToDisable, isFunctionStillRelevent = PVEFrame_ToggleFrame, false
- function PVEFrame_ToggleFrame()
- if isFunctionStillRelevent then
- return functionIWantToDisable()
- end
- end
- end
- -- ===================================================================================================
- -- ===================================================================================================
- -- =========================== Frames ===========================
- -- ===================================================================================================
- -- ===================================================================================================
- -- InterfaceOptions_AddCategory(IronManSelectionFrame) -- debug --
- local IronManSelectionFrame = CreateFrame("Frame", "IronManSelectionFrame", UIParent, "HelpFrameContainerFrameTemplate")
- IronManSelectionFrame:SetSize(NumberList.selectionFrameWidth, NumberList.selectionFrameHeight)
- IronManSelectionFrame:SetScale(NumberList.selectionFrameScale)
- IronManSelectionFrame:ClearAllPoints()
- IronManSelectionFrame:SetPoint("CENTER", 0, NumberList.selectionFramePositionY)
- IronManSelectionFrame:EnableMouse(true) -- debug --
- IronManSelectionFrame:SetMovable(true) -- debug --
- IronManSelectionFrame:SetClampedToScreen(true) -- debug --
- IronManSelectionFrame:RegisterForDrag("RightButton", "LeftButton") -- debug --
- IronManSelectionFrame:SetScript("OnDragStart", IronManSelectionFrame.StartMoving) -- debug --
- IronManSelectionFrame:SetScript("OnDragStop", IronManSelectionFrame.StopMovingOrSizing) -- debug --
- IronManSelectionFrame:SetToplevel(true)
- IronManSelectionFrame:SetScript(
- "OnEvent",
- function(self, event, ...)
- if event == "PLAYER_LOGIN" then
- print(StringList.ironManLoad)
- -- unregisterEventsIfNotRequired() -- debug --
- initialiseTables()
- if IronManCharacterVariables.isNew then
- IronManCharacterVariables.isNew = false
- C_EquipmentSet.CreateEquipmentSet("IronMan", 1035053) -- create new equipment set
- RequestTimePlayed() -- need this to test if character is brand new
- end
- if IronManCharacterVariables.isAttemptingIronMan then
- myHookFunctions()
- else
- unregisterEventsIfNotRequired()
- end
- updateAchievementList()
- elseif event == "TIME_PLAYED_MSG" then
- local totalTimePlayed = ...
- if totalTimePlayed < 15 then -- if time played less than 15 seconds should be a new character
- if IsCharacterNewlyBoosted() then
- IronManCharacterVariables.failedIronMan = true
- failedIronManChallenge("Boosted")
- IronManSelectionFrame:Hide()
- else
- IronManSelectionFrame:Show()
- end
- print(totalTimePlayed) -- debug --
- end
- elseif event == "PLAYER_DEAD" then
- failedIronManChallenge("Died")
- elseif event == "PLAYER_LEVEL_CHANGED" then
- local oldLevel, newLevel = ...
- local levelChangeIncrease = newLevel - oldLevel
- if levelChangeIncrease > 1 then
- failedIronManChallenge("Boosted")
- elseif IsCharacterNewlyBoosted() then
- failedIronManChallenge("Boosted")
- elseif newLevel == NumberList.maxLevel then -- debug -- GetMaxLevelForPlayerExpansion()
- getAllCharacterInfo()
- IronManCharacterVariables.isAttemptingIronMan = false -- hit max level so no longer attemepting
- IronManAchievementFrameNameTextBoxText:SetText(NameClassRaceString)
- IronManAchievementFrameDateTextBoxText:SetText(DateString)
- IronManMetaAchievementFrameNameTextBoxText:SetText(NameClassRaceString)
- IronManMetaAchievementFrameDateTextBoxText:SetText(DateString)
- IronManAchievementFrame:Show()
- Screenshot()
- end
- elseif event == "PLAYER_EQUIPMENT_CHANGED" then
- local equipmentSlot = ...
- local itemQuality = GetInventoryItemQuality("player", equipmentSlot)
- if itemQuality ~= 0 then -- if item is not grey
- C_EquipmentSet.UseEquipmentSet(0)
- else
- for k, v in pairs(C_EquipmentSet.GetEquipmentSetIDs()) do
- C_EquipmentSet.DeleteEquipmentSet(v) -- delete all equipment sets
- end
- C_EquipmentSet.CreateEquipmentSet("IronMan", 1035053) -- create new equipment set
- end
- elseif event == "GUILD_INVITE_REQUEST" then
- DeclineGuild()
- elseif event == "PARTY_INVITE_REQUEST" then
- DeclineGroup()
- elseif event == "MERCHANT_SHOW" then
- closeVendorIfIsAGuildMaster()
- elseif event == "GOSSIP_SHOW" then
- closeVendorIfIsAGuildMaster()
- elseif event == "PETITION_SHOW" then
- ClosePetition()
- elseif event == "GROUP_FORMED" then
- failedIronManChallenge("JoinedGroup")
- elseif event == "EQUIP_BIND_CONFIRM" then
- ClearCursor()
- end
- end
- )
- IronManSelectionFrame:RegisterEvent("PLAYER_LOGIN") -- fires when a player logs in or reloads
- IronManSelectionFrame:RegisterEvent("PLAYER_EQUIPMENT_CHANGED") -- fires when a character changes equipment, returns equipmentSlot
- IronManSelectionFrame:RegisterEvent("PLAYER_LEVEL_CHANGED") -- fires when a character levels up, returns oldLevel, newLevel
- IronManSelectionFrame:RegisterEvent("GUILD_INVITE_REQUEST") -- fires when a charater receives a guild invite
- IronManSelectionFrame:RegisterEvent("PARTY_INVITE_REQUEST") -- fires when a character recieves a group invite
- IronManSelectionFrame:RegisterEvent("PLAYER_DEAD") -- fires when a character dies
- IronManSelectionFrame:RegisterEvent("TIME_PLAYED_MSG") -- fires when a timeplayed is requested, returns totalTimePlayed
- IronManSelectionFrame:RegisterEvent("MERCHANT_SHOW") -- fires you open a vendor
- IronManSelectionFrame:RegisterEvent("PETITION_SHOW") -- fires when guild petition is shown
- IronManSelectionFrame:RegisterEvent("GOSSIP_SHOW") -- fires when you see a gossip window
- IronManSelectionFrame:RegisterEvent("LFG_UPDATE_RANDOM_INFO") -- fires when the LFD frame is shown
- IronManSelectionFrame:RegisterEvent("GROUP_FORMED") -- fires when joined group
- IronManSelectionFrame:RegisterEvent("EQUIP_BIND_CONFIRM") -- fires when an equip confirm box is shown
- IronManSelectionFrame.iconTexture = IronManSelectionFrame:CreateTexture("IronManSelectionFrameiconTexture")
- IronManSelectionFrameiconTexture:SetScale(NumberList.iconTextureScale)
- IronManSelectionFrameiconTexture:SetTexture(ImageList.goldRed)
- IronManSelectionFrameiconTexture:SetPoint("LEFT", IronManSelectionFrame)
- IronManSelectionFrame.selectionButton =
- CreateFrame("Button", "IronManSelectionFrameselectionButton", IronManSelectionFrame, "SharedButtonTemplate")
- IronManSelectionFrameselectionButton:SetSize(NumberList.selectionButtonWidth, NumberList.selectionButtonHeight)
- IronManSelectionFrameselectionButton:SetPoint(
- "CENTER",
- IronManSelectionFrame,
- "LEFT",
- NumberList.buttonSpacerLeft,
- NumberList.buttonSpacerTop
- )
- IronManSelectionFrameselectionButton:SetText(StringList.acceptChallenge)
- IronManSelectionFrameselectionButton:SetScript(
- "OnClick",
- function()
- IronManCharacterVariables.isAttemptingIronMan = true
- PlaySoundFile(SoundList.suitUp)
- getAllCharacterInfo() -- debug -- add current to list just for testing
- IronManAchievementFrameNameTextBoxText:SetText(NameClassRaceString) -- debug --
- IronManAchievementFrameDateTextBoxText:SetText(DateString) -- debug --
- IronManMetaAchievementFrameNameTextBoxText:SetText(NameClassRaceString) -- debug --
- IronManMetaAchievementFrameDateTextBoxText:SetText(DateString) -- debug --
- IronManAchievementFrame:Show() -- debug --
- print(#IronManCompleatedAchievements) -- debug --
- end
- )
- IronManSelectionFrame.closeButton =
- CreateFrame("Button", "IronManSelectionFramecloseButton", IronManSelectionFrame, "SharedButtonTemplate")
- IronManSelectionFramecloseButton:SetSize(NumberList.selectionButtonWidth, NumberList.selectionButtonHeight)
- IronManSelectionFramecloseButton:SetPoint(
- "TOP",
- IronManSelectionFrameselectionButton,
- "BOTTOM",
- 0,
- NumberList.buttonSpacerBottom
- )
- IronManSelectionFramecloseButton:SetText(StringList.doNotAcceptChallenge)
- IronManSelectionFramecloseButton:SetScript(
- "OnClick",
- function()
- -- IronManCharacterVariables.isAttemptingIronMan = false -- debug --
- IronManSelectionFrame:Hide()
- PlaySoundFile(SoundList.nextTime)
- end
- )
- IronManSelectionFrame.TextBox = CreateFrame("Frame", "IronManSelectionFrameTextBox", IronManSelectionFrame)
- IronManSelectionFrameTextBox:SetSize(NumberList.textBoxWidth, NumberList.textBoxHeight)
- IronManSelectionFrameTextBox:SetPoint("RIGHT", IronManSelectionFrame)
- IronManSelectionFrameTextBox.Text = IronManSelectionFrameTextBox:CreateFontString("IronManSelectionFrameTextBoxText")
- IronManSelectionFrameTextBoxText:SetAllPoints(IronManSelectionFrameTextBox)
- IronManSelectionFrameTextBoxText:SetFontObject(FontList.rulesFont)
- IronManSelectionFrameTextBoxText:SetText(StringList.ironManRules)
- IronManSelectionFrame.TextBoxFail = CreateFrame("Frame", "IronManSelectionFrameTextBoxFail", IronManSelectionFrame)
- IronManSelectionFrameTextBoxFail:SetSize(NumberList.failTextBoxWidth, NumberList.failTextBoxHeight)
- IronManSelectionFrameTextBoxFail:SetPoint(
- "CENTER",
- IronManSelectionFrame,
- "LEFT",
- NumberList.failTextBoxSpacerLeft,
- NumberList.failTextBoxSpacerTop
- )
- -- IronManSelectionFrameTextBoxFail:Hide() -- debug --
- IronManSelectionFrameTextBoxFail.Text =
- IronManSelectionFrameTextBoxFail:CreateFontString("IronManSelectionFrameTextBoxFailText")
- IronManSelectionFrameTextBoxFailText:SetAllPoints(IronManSelectionFrameTextBoxFail)
- IronManSelectionFrameTextBoxFailText:SetFontObject(FontList.failFont)
- -- ===================================================================================================
- -- ===================================================================================================
- -- =========================== max level achievement frame ===========================
- -- ===================================================================================================
- -- ===================================================================================================
- local IronManAchievementFrame =
- CreateFrame("Frame", "IronManAchievementFrame", UIParent, "HelpFrameContainerFrameTemplate") -- debug -- PortraitFrameTemplate -- BasicFrameTemplateWithInset
- IronManAchievementFrame:SetSize(NumberList.achievementFrameWidth, NumberList.achievementFrameHeight)
- IronManAchievementFrame:ClearAllPoints()
- IronManAchievementFrame:SetPoint("CENTER", 0, NumberList.achievementFramePositionY)
- IronManAchievementFrame:EnableMouse(true) -- debug --
- IronManAchievementFrame:SetMovable(true) -- debug --
- IronManAchievementFrame:SetClampedToScreen(true) -- debug --
- IronManAchievementFrame:RegisterForDrag("RightButton", "LeftButton") -- debug --
- IronManAchievementFrame:SetScript("OnDragStart", IronManAchievementFrame.StartMoving) -- debug --
- IronManAchievementFrame:SetScript("OnDragStop", IronManAchievementFrame.StopMovingOrSizing) -- debug --
- IronManAchievementFrame:SetToplevel(true)
- IronManAchievementFrame:Hide()
- IronManAchievementFrame.CloseButton =
- CreateFrame(
- "Button",
- "IronManAchievementFrameCloseButton",
- IronManAchievementFrame,
- "SocialToastCloseButtonTemplate"
- )
- IronManAchievementFrameCloseButton:SetPoint(
- "TOPRIGHT",
- IronManAchievementFrame,
- "TOPRIGHT",
- NumberList.achievementCloseButtonX,
- NumberList.achievementCloseButtonY
- )
- IronManAchievementFrame.TitleTextBox =
- CreateFrame("Frame", "IronManAchievementFrameTitleTextBox", IronManAchievementFrame)
- IronManAchievementFrameTitleTextBox:SetSize(NumberList.titleTextBoxWidth, NumberList.titleTextBoxHeight)
- IronManAchievementFrameTitleTextBox:SetPoint("TOP", IronManAchievementFrame, "TOP", 0, NumberList.titleTextBoxTopGap)
- IronManAchievementFrameTitleTextBox.Text =
- IronManAchievementFrameTitleTextBox:CreateFontString("IronManAchievementFrameTitleTextBoxText")
- IronManAchievementFrameTitleTextBoxText:SetAllPoints(IronManAchievementFrameTitleTextBox)
- IronManAchievementFrameTitleTextBoxText:SetFontObject(FontList.titleFont)
- IronManAchievementFrameTitleTextBoxText:SetText(StringList.ironManSuccess)
- IronManAchievementFrame.leftTexture = IronManAchievementFrame:CreateTexture("IronManAchievementFrameleftTexture")
- IronManAchievementFrameleftTexture:SetScale(NumberList.iconAchievementTextureScale)
- IronManAchievementFrameleftTexture:SetTexture(ImageList.goldRed)
- IronManAchievementFrameleftTexture:SetPoint(
- "CENTER",
- IronManAchievementFrameTitleTextBox,
- "LEFT",
- NumberList.bottomLeftTextureX,
- 0
- )
- IronManAchievementFrame.rightTexture = IronManAchievementFrame:CreateTexture("IronManAchievementFramerightTexture")
- IronManAchievementFramerightTexture:SetScale(NumberList.iconAchievementTextureScale)
- IronManAchievementFramerightTexture:SetTexture(ImageList.goldRed)
- IronManAchievementFramerightTexture:SetPoint(
- "CENTER",
- IronManAchievementFrameTitleTextBox,
- "RIGHT",
- NumberList.bottomRightTextureX,
- 0
- )
- IronManAchievementFrame.DateTextBox =
- CreateFrame("Frame", "IronManAchievementFrameDateTextBox", IronManAchievementFrame)
- IronManAchievementFrameDateTextBox:SetSize(NumberList.achievementFrameWidth, NumberList.dateNameTextBoxHeight)
- IronManAchievementFrameDateTextBox:SetPoint(
- "BOTTOM",
- IronManAchievementFrame,
- "BOTTOM",
- 0,
- NumberList.dateTextBoxBottomGap
- )
- IronManAchievementFrameDateTextBox.Text =
- IronManAchievementFrameDateTextBox:CreateFontString("IronManAchievementFrameDateTextBoxText")
- IronManAchievementFrameDateTextBoxText:SetAllPoints(IronManAchievementFrameDateTextBox)
- IronManAchievementFrameDateTextBoxText:SetFontObject(FontList.nameDateFont)
- IronManAchievementFrame.NameTextBox =
- CreateFrame("Frame", "IronManAchievementFrameNameTextBox", IronManAchievementFrame)
- IronManAchievementFrameNameTextBox:SetSize(NumberList.achievementFrameWidth, NumberList.dateNameTextBoxHeight)
- IronManAchievementFrameNameTextBox:SetPoint(
- "BOTTOM",
- IronManAchievementFrameDateTextBox,
- "TOP",
- 0,
- NumberList.nameTextBoxBottomGap
- )
- IronManAchievementFrameNameTextBox.Text =
- IronManAchievementFrameNameTextBox:CreateFontString("IronManAchievementFrameNameTextBoxText")
- IronManAchievementFrameNameTextBoxText:SetAllPoints(IronManAchievementFrameNameTextBox)
- IronManAchievementFrameNameTextBoxText:SetFontObject(FontList.nameDateFont)
- -- ===================================================================================================
- -- ===================================================================================================
- -- =========================== meta achievement frame ===========================
- -- ===================================================================================================
- -- ===================================================================================================
- local IronManMetaAchievementFrame =
- CreateFrame("Frame", "IronManMetaAchievementFrame", UIParent, "HelpFrameContainerFrameTemplate")
- IronManMetaAchievementFrame:SetSize(NumberList.achievementFrameWidth, NumberList.achievementFrameHeight)
- IronManMetaAchievementFrame:ClearAllPoints()
- IronManMetaAchievementFrame:SetPoint("CENTER", 0, NumberList.achievementFramePositionY)
- IronManMetaAchievementFrame:EnableMouse(true) -- debug --
- IronManMetaAchievementFrame:SetMovable(true) -- debug --
- IronManMetaAchievementFrame:SetClampedToScreen(true) -- debug --
- IronManMetaAchievementFrame:RegisterForDrag("RightButton", "LeftButton") -- debug --
- IronManMetaAchievementFrame:SetScript("OnDragStart", IronManMetaAchievementFrame.StartMoving) -- debug --
- IronManMetaAchievementFrame:SetScript("OnDragStop", IronManMetaAchievementFrame.StopMovingOrSizing) -- debug --
- IronManMetaAchievementFrame:SetToplevel(true)
- -- IronManMetaAchievementFrame:Hide() -- debug --
- IronManMetaAchievementFrame.CloseButton =
- CreateFrame(
- "Button",
- "IronManMetaAchievementFrameCloseButton",
- IronManMetaAchievementFrame,
- "SocialToastCloseButtonTemplate"
- )
- IronManMetaAchievementFrameCloseButton:SetPoint(
- "TOPRIGHT",
- IronManMetaAchievementFrame,
- "TOPRIGHT",
- NumberList.achievementCloseButtonX,
- NumberList.achievementCloseButtonY
- )
- IronManMetaAchievementFrame.TitleTextBox =
- CreateFrame("Frame", "IronManMetaAchievementFrameTitleTextBox", IronManMetaAchievementFrame)
- IronManMetaAchievementFrameTitleTextBox:SetSize(NumberList.titleTextBoxWidth, NumberList.titleTextBoxHeight)
- IronManMetaAchievementFrameTitleTextBox:SetPoint(
- "TOP",
- IronManMetaAchievementFrame,
- "TOP",
- 0,
- NumberList.titleTextBoxTopGap
- )
- IronManMetaAchievementFrameTitleTextBox.Text =
- IronManMetaAchievementFrameTitleTextBox:CreateFontString("IronManMetaAchievementFrameTitleTextBoxText")
- IronManMetaAchievementFrameTitleTextBoxText:SetAllPoints(IronManMetaAchievementFrameTitleTextBox)
- IronManMetaAchievementFrameTitleTextBoxText:SetFontObject(FontList.titleFont)
- IronManMetaAchievementFrameTitleTextBoxText:SetText(StringList.ironManSuccess)
- IronManMetaAchievementFrame.leftTexture =
- IronManMetaAchievementFrame:CreateTexture("IronManMetaAchievementFrameleftTexture")
- IronManMetaAchievementFrameleftTexture:SetScale(NumberList.iconAchievementTextureScale)
- IronManMetaAchievementFrameleftTexture:SetTexture(ImageList.goldRed)
- IronManMetaAchievementFrameleftTexture:SetPoint(
- "CENTER",
- IronManMetaAchievementFrameTitleTextBox,
- "LEFT",
- NumberList.bottomLeftTextureX,
- 0
- )
- IronManMetaAchievementFrame.rightTexture =
- IronManMetaAchievementFrame:CreateTexture("IronManMetaAchievementFramerightTexture")
- IronManMetaAchievementFramerightTexture:SetScale(NumberList.iconAchievementTextureScale)
- IronManMetaAchievementFramerightTexture:SetTexture(ImageList.goldRed)
- IronManMetaAchievementFramerightTexture:SetPoint(
- "CENTER",
- IronManMetaAchievementFrameTitleTextBox,
- "RIGHT",
- NumberList.bottomRightTextureX,
- 0
- )
- IronManMetaAchievementFrame.DateTextBox =
- CreateFrame("Frame", "IronManMetaAchievementFrameDateTextBox", IronManMetaAchievementFrame)
- IronManMetaAchievementFrameDateTextBox:SetSize(NumberList.achievementFrameWidth, NumberList.dateNameTextBoxHeight)
- IronManMetaAchievementFrameDateTextBox:SetPoint(
- "BOTTOM",
- IronManMetaAchievementFrame,
- "BOTTOM",
- 0,
- NumberList.dateTextBoxBottomGap
- )
- IronManMetaAchievementFrameDateTextBox.Text =
- IronManMetaAchievementFrameDateTextBox:CreateFontString("IronManMetaAchievementFrameDateTextBoxText")
- IronManMetaAchievementFrameDateTextBoxText:SetAllPoints(IronManMetaAchievementFrameDateTextBox)
- IronManMetaAchievementFrameDateTextBoxText:SetFontObject(FontList.nameDateFont)
- IronManMetaAchievementFrame.NameTextBox =
- CreateFrame("Frame", "IronManMetaAchievementFrameNameTextBox", IronManMetaAchievementFrame)
- IronManMetaAchievementFrameNameTextBox:SetSize(NumberList.achievementFrameWidth, NumberList.dateNameTextBoxHeight)
- IronManMetaAchievementFrameNameTextBox:SetPoint(
- "BOTTOM",
- IronManMetaAchievementFrameDateTextBox,
- "TOP",
- 0,
- NumberList.nameTextBoxBottomGap
- )
- IronManMetaAchievementFrameNameTextBox.Text =
- IronManMetaAchievementFrameNameTextBox:CreateFontString("IronManMetaAchievementFrameNameTextBoxText")
- IronManMetaAchievementFrameNameTextBoxText:SetAllPoints(IronManMetaAchievementFrameNameTextBox)
- IronManMetaAchievementFrameNameTextBoxText:SetFontObject(FontList.nameDateFont)
- -- ===================================================================================================
- -- ===================================================================================================
- -- =========================== achievement panel ===========================
- -- ===================================================================================================
- -- ===================================================================================================
- local IronManInterfaceFrame = CreateFrame("Frame", "IronManInterfaceFrame", UIParent, "BackdropTemplate")
- IronManInterfaceFrame.name = "Iron Man"
- IronManInterfaceFrame:SetBackdrop(
- {
- bgFile = "Interface\\ACHIEVEMENTFRAME\\UI-Achievement-Parchment-Horizontal",
- insets = {
- left = NumberList.insetSize,
- right = NumberList.insetSize,
- top = NumberList.insetSize,
- bottom = NumberList.insetSize
- },
- tileSize = nil,
- tile = false,
- edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
- edgeSize = NumberList.edgeSize
- }
- )
- InterfaceOptions_AddCategory(IronManInterfaceFrame)
- local IronManInterfaceTitleTexture = CreateFrame("Frame", "IronManInterfaceTitleTexture", IronManInterfaceFrame)
- IronManInterfaceTitleTexture:SetSize(NumberList.interfaceTextureBoxSize, NumberList.interfaceTextureBoxSize)
- IronManInterfaceTitleTexture:SetPoint("TOP", 0, NumberList.interfaceTextureGap)
- IronManInterfaceTitleTexture.Texture = IronManInterfaceTitleTexture:CreateTexture(nil, "BACKGROUND")
- IronManInterfaceTitleTexture.Texture:SetPoint("CENTER")
- IronManInterfaceTitleTexture.Texture:SetScale(NumberList.interfaceTextureScale)
- IronManInterfaceTitleTexture.Texture:SetTexture(ImageList.IMBanner)
- -- ===================================================================================================
- -- ===================================================================================================
- -- =========================== scroll frames and update function ===========================
- -- ===================================================================================================
- -- ===================================================================================================
- local IronManInterfaceScrollParent =
- CreateFrame("Frame", "IronManInterfaceScrollParent", IronManInterfaceFrame, "HelpFrameContainerFrameTemplate")
- IronManInterfaceScrollParent:SetSize(NumberList.scrollParentWidth, NumberList.scrollParentHeight)
- IronManInterfaceScrollParent:SetPoint(
- "TOP",
- IronManInterfaceFrame,
- "TOP",
- NumberList.scrollParentGapX,
- NumberList.scrollParentTopGap
- )
- local IronManInterfaceScrollFrame =
- CreateFrame("ScrollFrame", "IronManInterfaceScrollFrame", IronManInterfaceScrollParent, "FauxScrollFrameTemplate")
- IronManInterfaceScrollFrame:SetPoint("TOPLEFT", 0, -8)
- IronManInterfaceScrollFrame:SetPoint("BOTTOMRIGHT", -30, 8)
- IronManInterfaceScrollFrame:SetScript(
- "OnVerticalScroll",
- function(self, offset)
- FauxScrollFrame_OnVerticalScroll(self, offset, NumberList.scrollFrameRowHeight, updateAchievementList)
- end
- )
- IronManInterfaceScrollFrame.frames = {}
- for index = 1, NumberList.scrollFrameNumberOfFrames do
- IronManInterfaceScrollFrame.frames[index] =
- CreateFrame("Frame", "IMISF" .. index, IronManInterfaceScrollParent, "HelpFrameContainerFrameTemplate")
- local frame = IronManInterfaceScrollFrame.frames[index]
- frame:SetSize(NumberList.scrollFrameRowWidth, NumberList.scrollFrameRowHeight)
- frame:SetPoint("TOPLEFT", 5, -(index - 1) * NumberList.scrollFrameRowHeight - 5)
- frame.texture = frame:CreateTexture("frametexture" .. index)
- frame.texture:SetScale(NumberList.iconAchievementTextureScale)
- frame.texture:SetPoint("LEFT")
- frame.titleTextBox = CreateFrame("Frame", "frametitleTextBox" .. index, frame, "HelpFrameContainerFrameTemplate")
- frame.titleTextBox:SetSize(NumberList.scrollAchievementTextBoxWidth, NumberList.scrollAchievementTextBoxHeight)
- frame.titleTextBox:SetPoint("TOPRIGHT")
- frame.titleTextBox.text = frame.titleTextBox:CreateFontString("frametitleTextBoxtext" .. index)
- frame.titleTextBox.text:SetAllPoints(frame.titleTextBox)
- frame.titleTextBox.text:SetFontObject(FontList.rulesFont)
- frame.frameNameTextBox = CreateFrame("Frame", "frameNameTextBox" .. index, frame, "HelpFrameContainerFrameTemplate")
- frame.frameNameTextBox:SetSize(NumberList.scrollAchievementTextBoxWidth, NumberList.scrollAchievementTextBoxHeight)
- frame.frameNameTextBox:SetPoint("RIGHT")
- frame.frameNameTextBox.text = frame.frameNameTextBox:CreateFontString("frameNameTextBoxtext" .. index)
- frame.frameNameTextBox.text:SetAllPoints(frame.frameNameTextBox)
- frame.frameNameTextBox.text:SetFontObject(FontList.rulesFont)
- frame.frameDateTextBox = CreateFrame("Frame", "frameDateTextBox" .. index, frame, "HelpFrameContainerFrameTemplate")
- frame.frameDateTextBox:SetSize(NumberList.scrollAchievementTextBoxWidth, NumberList.scrollAchievementTextBoxHeight)
- frame.frameDateTextBox:SetPoint("BOTTOMRIGHT")
- frame.frameDateTextBox.text = frame.frameDateTextBox:CreateFontString("frameDateTextBoxtext" .. index)
- frame.frameDateTextBox.text:SetAllPoints(frame.frameDateTextBox)
- frame.frameDateTextBox.text:SetFontObject(FontList.rulesFont)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement