Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| local e=Bejeweled or{} | |
| e.version="Version 1.1" | |
| e.splashDisplayTime=3 | |
| local t="Interface\\AddOns\\Bejeweled" | |
| local l="Interface\\AddOns\\Bejeweled\\images\\" | |
| local ut="Interface\\AddOns\\Bejeweled\\sounds\\" | |
| local xe="BEJEWELED2" | |
| local ft={"|cFFFFFF00".."Yellow","White","|cFF2255FF".."Blue","|cFFFF0000".."Red","|cFFEE00EE".."Purple","|cFFFF9922".."Orange","|cFF00FF00".."Green"} | |
| e.const={} | |
| e.const.channels={"GUILD","PARTY","RAID"} | |
| e.const.channelNames={CHAT_MSG_GUILD,CHAT_MSG_PARTY,CHAT_MSG_RAID} | |
| e.const.dropInfo={} | |
| e.const.skillDataNames={"Match Gems","Gem Cascades","Gem Combos","Classic","Timed","Fun Achievements","Game Achievements"} | |
| e.const.skillDataRanks={"Apprentice","Journeyman","Expert","Artisan","Master","Grand Master"} | |
| e.const.skillData={ | |
| [1]={ | |
| [1]={"Match 3 Gems",0,10,20,50}, | |
| [2]={"Match 4 Gems (Create a |cFF0070DD[Power Gem]|r)",50,105,150,215}, | |
| [3]={"Match 5 Gems (Create a |cFFA335EE[Hyper Cube]|r)",150,275,380,445}, | |
| }, | |
| [2]={ | |
| [1]={"Cause a x2 Cascade",0,25,55,75}, | |
| [2]={"Cause a x3 Cascade",40,100,160,225}, | |
| [3]={"Cause a x4 Cascade",80,125,195,280}, | |
| [4]={"Cause a x5 Cascade",125,190,265,335}, | |
| }, | |
| [3]={ | |
| [1]={"Clear 10 Gems in one move",115,225,300,375}, | |
| [2]={"Clear 15 Gems in one move",150,260,345,500}, | |
| [3]={"Clear 20 Gems in one move",225,325,420,501}, | |
| [4]={"Clear 25 Gems in one move",300,380,500,501}, | |
| }, | |
| [4]={ | |
| [1]={"Score 10,000 Points",75,150,225,300}, | |
| [2]={"Survive to Level 10",75,150,230,325}, | |
| [3]={"Survive 100 Moves",60,150,230,325}, | |
| [4]={"Score 25,000 Points",150,280,375,500}, | |
| [5]={"Survive to Level 15",150,280,385,500}, | |
| [6]={"Score 50,000 Points",225,300,420,500}, | |
| [7]={"Survive 250 Moves",265,375,500,501}, | |
| [8]={"Score 75,000 Points",300,500,501,502}, | |
| }, | |
| [5]={ | |
| [1]={"Achieve a PPS of 250+ at end of game",75,150,225,300}, | |
| [2]={"Achieve a PPS of 300+ at end of game",150,225,375,500}, | |
| [3]={"Achieve a PPS of 350+ at end of game",225,300,500,501}, | |
| }, | |
| [6]={ | |
| [1]={"Die from falling damage",0,0,0,0,"Not Only Gems Fall","Interface\\Icons\\spell_shadow_twistedfaith"}, | |
| [2]={"Join a Battleground Queue",0,0,0,0,"Queue Queue More","Interface\\Icons\\achievement_bg_killxenemies_generalsroom"}, | |
| [3]={"Loot a rare item",75,75,75,75,"Blue Your Chance","Interface\\Icons\\spell_frost_wizardmark"}, | |
| [4]={"Kill a critter",75,75,75,75,"Annoyed Grunt","Interface\\Icons\\inv_jewelcrafting_crimsonhare"}, | |
| [5]={"Get resurrected",75,75,75,75,"i can haz rez?","Interface\\Icons\\spell_holy_guardianspirit"}, | |
| [6]={"Loot an epic item",150,150,150,150,"Purple Reign","Interface\\Icons\\inv_enchant_voidcrystal"}, | |
| [7]={"Say yes to a raid ready check",150,150,150,150,"Jewel of Denial","Interface\\Icons\\spell_misc_emotionsad"}, | |
| [8]={"Die from combat damage",150,150,150,150,"Rest In Pieces","Interface\\Icons\\spell_shadow_chilltouch"}, | |
| [9]={"Kill an elite monster",225,225,225,225,"ur so leet","Interface\\Icons\\spell_shadow_deathscream"}, | |
| [10]={"Enter a raid instance",225,225,225,225,"Multitasking Mayhem","Interface\\Icons\\achievement_dungeon_coablackdragonflight_normal"}, | |
| [11]={"Gain a new reputation level",225,225,225,225,"Mr. Friendly","Interface\\Icons\\inv_misc_head_dragon_bronze"}, | |
| [12]={"Gain Honor from a killing blow",300,300,300,300,"Guilty, Your Honor","Interface\\Icons\\ability_dualwieldspecialization"}, | |
| [13]={"Kill a rare spawn monster",300,300,300,300,"Rare For Art Thou?","Interface\\Icons\\achievement_zone_stormpeaks_03"}, | |
| [14]={"Gain a new level on any character",375,375,375,375,"Movin' On Up","Interface\\Icons\\achievement_level_80"}, | |
| [15]={"Win an Arena match",375,375,375,375,"Two Gems Enter, One Gem Leaves","Interface\\Icons\\ability_warrior_offensivestance"}, | |
| }, | |
| [7]={ | |
| [1]={"Beat another player's high score (Classic)",0,0,0,0,"Pain In The Classic","Interface\\Icons\\achievement_pvp_p_14"}, | |
| [2]={"Clear 1,000 Gems",75,75,75,75,"Gem Collector","Interface\\Icons\\inv_misc_coin_17"}, | |
| [3]={"Play 100 games between all characters",75,75,75,75,"Too Much Time On Your Hands","Interface\\Icons\\inv_misc_map02"}, | |
| [4]={"Get a |cFF002AFF[Power Gem]|r total of 100+",150,150,150,150,"I've Got The Power!","Interface\\Icons\\inv_misc_gem_03"}, | |
| [5]={"Beat another player's high score (Timed)",150,150,150,150,"What Time Do You Have?","Interface\\Icons\\achievement_featsofstrength_gladiator_07"}, | |
| [6]={"75,000 points in a single game",225,225,225,225,"A True Master","Interface\\Icons\\ability_mage_brainfreeze"}, | |
| [7]={"Play 1,000 games between all characters",225,225,225,225,"Truly Addicted","Interface\\Icons\\achievement_bg_masterofallbgs"}, | |
| [8]={"Get a |cFFB300B3[Hyper Cube]|r total of 50+",300,300,300,300,"Hyperactive","Interface\\Icons\\spell_holy_summonlightwell"}, | |
| [9]={"Compete with 10+ Friends",300,300,300,300,"Keep Your Friends Close","Interface\\Icons\\achievement_reputation_08"}, | |
| [10]={"Complete all Achievements",375,375,375,375,"Master of All You Survey","Interface\\Icons\\inv_misc_celebrationcake_01"}, | |
| [11]={"Compete with 10+ Guildies",375,375,375,375,"All In The Family","Interface\\Icons\\achievement_reputation_02"}, | |
| }, | |
| } | |
| e.const.skillDataColors={ | |
| {1,.5,.25}, | |
| {1,1,0}, | |
| {.25,.75,.25}, | |
| {.3,.3,.3} | |
| } | |
| e.const.SKILLTYPE_MATCH=1 | |
| e.const.SKILL_MATCH3=1 | |
| e.const.SKILL_MATCH4=2 | |
| e.const.SKILL_MATCH5=3 | |
| e.const.SKILLTYPE_COMBO=2 | |
| e.const.SKILL_COMBO2=1 | |
| e.const.SKILL_COMBO3=2 | |
| e.const.SKILL_COMBO4=3 | |
| e.const.SKILL_COMBO5=4 | |
| e.const.SKILLTYPE_GEMCOMBO=3 | |
| e.const.SKILL_CLEAR10=1 | |
| e.const.SKILL_CLEAR15=2 | |
| e.const.SKILL_CLEAR20=3 | |
| e.const.SKILL_CLEAR25=4 | |
| e.const.SKILLTYPE_CLASSIC=4 | |
| e.const.SKILL_SCORE100K=1 | |
| e.const.SKILL_SCORE250K=4 | |
| e.const.SKILL_LEVEL10=2 | |
| e.const.SKILL_MOVE100=3 | |
| e.const.SKILL_LEVEL15=5 | |
| e.const.SKILL_SCORE500K=6 | |
| e.const.SKILL_MOVE250=7 | |
| e.const.SKILL_SCORE750K=8 | |
| e.const.SKILLTYPE_TIMED=5 | |
| e.const.SKILL_PPS350=1 | |
| e.const.SKILL_PPS300=2 | |
| e.const.SKILL_PPS250=3 | |
| e.const.SKILLTYPE_FUN=6 | |
| e.const.SKILL_FUNRANK1A=1 | |
| e.const.SKILL_FUNRANK1B=2 | |
| e.const.SKILL_FUNRANK2A=3 | |
| e.const.SKILL_FUNRANK2B=4 | |
| e.const.SKILL_FUNRANK2C=5 | |
| e.const.SKILL_FUNRANK3A=6 | |
| e.const.SKILL_FUNRANK3B=7 | |
| e.const.SKILL_FUNRANK3C=8 | |
| e.const.SKILL_FUNRANK4A=9 | |
| e.const.SKILL_FUNRANK4B=10 | |
| e.const.SKILL_FUNRANK4C=11 | |
| e.const.SKILL_FUNRANK5A=12 | |
| e.const.SKILL_FUNRANK5B=13 | |
| e.const.SKILL_FUNRANK6A=14 | |
| e.const.SKILL_FUNRANK6B=15 | |
| e.const.SKILLTYPE_ACHIEVEMENT=7 | |
| e.const.SKILL_ACHIEVE1A=1 | |
| e.const.SKILL_ACHIEVE2A=2 | |
| e.const.SKILL_ACHIEVE2B=3 | |
| e.const.SKILL_ACHIEVE3A=4 | |
| e.const.SKILL_ACHIEVE3B=5 | |
| e.const.SKILL_ACHIEVE4A=6 | |
| e.const.SKILL_ACHIEVE4B=7 | |
| e.const.SKILL_ACHIEVE5A=8 | |
| e.const.SKILL_ACHIEVE5B=9 | |
| e.const.SKILL_ACHIEVE6A=10 | |
| e.const.SKILL_ACHIEVE6B=11 | |
| e.const.largeText={ | |
| ["Go"]={135,76,0,.263,0,.296,224/255,142/255,254/255}, | |
| ["3"]={36,55,.637,.706,.785,1,225/255,32/255,38/255}, | |
| ["2"]={40,55,.479,.556,.344,.557,192/255,189/255,24/255}, | |
| ["1"]={25,55,.43,.478,.344,.557,54/255,255/255,54/255}, | |
| ["Time's up"]={155,40,.264,.565,.16,.314,223/255,0,0}, | |
| ["No more moves"]={295,41,.264,.839,0,.158,223/255,0,0}, | |
| ["Level up"]={220,56,0,.429,.341,.557,102/255,197/255,254/255}, | |
| ["Bejeweled"]={285,59,0,.555,.559,.786,1,1,1}, | |
| ["Multiplier up"]={313,54,0,.611,.79,1,102/255,197/255,254/255}, | |
| ["Strip"]={448,82,0,.622,.32,.336,1,1,1}, | |
| ["Popcap"]={100,100,.715,.85,.161,.431,1,1,1}, | |
| ["Tutorial_1"]={150,83,.708,1,.677,1,1,1,1}, | |
| ["Tutorial_2"]={152,76,1,0,.852,0,1,.592,.852,.592,1,1,1}, | |
| ["Tutorial_3"]={151,62,.557,.851,.434,.674,1,1,1}, | |
| } | |
| e.const.windowFadeOut={mode="OUT",timeToFade=.5,startAlpha=1,endAlpha=.3,} | |
| e.const.windowFadeIn={mode="IN",timeToFade=.15,startAlpha=.3,endAlpha=1,} | |
| e.const.windowGameOverFadeOut={mode="OUT",timeToFade=5,startAlpha=1,endAlpha=0,finishedFunc=function()if(e.const.windowGameOverFadeOut.timeToFade==-1)then | |
| e.const.windowGameOverFadeOut.timeToFade=5 | |
| e.window:Show() | |
| e.window:SetAlpha(BejeweledProfile.settings.gameAlpha) | |
| else | |
| e.window:Hide() | |
| end | |
| e.window.hiding=nil | |
| end,} | |
| local he={ | |
| [1]={1,1,0}, | |
| [2]={1,1,1}, | |
| [3]={.2,.4,1}, | |
| [4]={1,0,0}, | |
| [5]={.8,0,.8}, | |
| [6]={1,.6,.2}, | |
| [7]={0,1,0}, | |
| [8]={1,1,1}, | |
| [9]={1,1,1}, | |
| } | |
| local U={ | |
| [1]="yellow",[2]="white",[3]="blue",[4]="red",[5]="purple",[6]="orange",[7]="green",} | |
| local F={} | |
| local N={} | |
| local J={} | |
| local O={} | |
| local ie={} | |
| local t,i | |
| i=1 | |
| for e=0,4 do | |
| O[e*10+1]={0,.1,e*.19999,(e+1)*.19999} | |
| O[e*10+2]={.1,.2,e*.19999,(e+1)*.19999} | |
| O[e*10+3]={.2,.3,e*.19999,(e+1)*.19999} | |
| O[e*10+4]={.3,.4,e*.19999,(e+1)*.19999} | |
| O[e*10+5]={.4,.5,e*.19999,(e+1)*.19999} | |
| O[e*10+6]={.5,.6,e*.19999,(e+1)*.19999} | |
| O[e*10+7]={.6,.7,e*.19999,(e+1)*.19999} | |
| O[e*10+8]={.7,.8,e*.19999,(e+1)*.19999} | |
| O[e*10+9]={.8,.9,e*.19999,(e+1)*.19999} | |
| O[e*10+10]={.9,1,e*.19999,(e+1)*.19999} | |
| F[i]={0,49/255,(e*50)/255,((e+1)*50-1)/255} | |
| F[i+1]={49/255,99/255,(e*50)/255,((e+1)*50-1)/255} | |
| F[i+2]={99/255,149/255,(e*50)/255,((e+1)*50-1)/255} | |
| F[i+3]={149/255,199/255,(e*50)/255,((e+1)*50-1)/255} | |
| F[i+4]={199/255,249/255,(e*50)/255,((e+1)*50-1)/255} | |
| J[i]={unpack(F[i])} | |
| J[i+1]={unpack(F[i+1])} | |
| J[i+2]={unpack(F[i+2])} | |
| J[i+3]={unpack(F[i+3])} | |
| J[i+4]={unpack(F[i+4])} | |
| i=i+5 | |
| end | |
| i=1 | |
| for e=0,3 do | |
| ie[i]={0,.25,e/4,(e+1)/4} | |
| ie[i+1]={.25,.5,e/4,(e+1)/4} | |
| ie[i+2]={.5,.75,e/4,(e+1)/4} | |
| ie[i+3]={.75,1,e/4,(e+1)/4} | |
| i=i+4 | |
| end | |
| for e=0,2 do | |
| N[1+e*3]={0,42.66/128,e*.33,(e+1)*.33} | |
| N[2+e*3]={.33,85.33/128,e*.33,(e+1)*.33} | |
| N[3+e*3]={.66,1,e*.33,(e+1)*.33} | |
| end | |
| FX_SHINE_ALPHA={0,.43,.66,.8,.66,.43} | |
| FX_SHINE_KEYFRAME={1,5,3,7,2,6,4,8,9} | |
| FX_SHINE_GRIDX={0,0,-1,1,-1,1,-1,1,-8} | |
| FX_SHINE_GRIDY={-1,1,0,0,-1,1,1,-1,-8} | |
| local K=0 | |
| local Ye=24 | |
| local Ze=24 | |
| local b=50 | |
| local p=50 | |
| local lt=70+20 | |
| local Ue=70+20 | |
| local Qe=100+50 | |
| local qe=100+50 | |
| local s=400 | |
| local w=400 | |
| local q=s+32+16 | |
| local me=w+110 | |
| local f=160 | |
| local L=216 | |
| local Je=10 | |
| local E=math.random | |
| local S=-1 | |
| local y=1 | |
| local Lt=20 | |
| local ye=3 | |
| local ve=360 | |
| local Oe=4 | |
| local bt=16 | |
| local He=5 | |
| local Xe=12 | |
| local A=6 | |
| local se=4 | |
| local je=7 | |
| local it=#FX_SHINE_ALPHA | |
| local ke=8 | |
| local Re=#FX_SHINE_ALPHA | |
| local g=9 | |
| local mt=40 | |
| local te=10 | |
| local be=10 | |
| local t=11 | |
| local Ve=12 | |
| local yt=25 | |
| local De=13 | |
| local We=14 | |
| local Rt=15 | |
| local re=tonumber | |
| local z=type | |
| local _e=50 | |
| local ue=p | |
| local t=51 | |
| local t=p | |
| local le=51 | |
| local W=52 | |
| local at=53 | |
| local t=16 | |
| local Te=20 | |
| local et=150 | |
| local wt=60 | |
| local Gt=10 | |
| local ce=b/2 | |
| local ne=p/2 | |
| local pt=Ye/2 | |
| local ct=Ze/2 | |
| local t=Qe/2 | |
| local t=qe/2 | |
| local oe=Te/2 | |
| local gt=Je/2 | |
| local h=8 | |
| local a=8 | |
| local V=0 | |
| local Pe=1 | |
| local Ct=2 | |
| local t=3 | |
| local pe=4 | |
| local ot=5 | |
| local Fe=6 | |
| local nt=1 | |
| local Ne=2 | |
| local Ie=string.byte | |
| local Be=string.char | |
| local Ge=string.sub | |
| local Ae=math.floor | |
| local t=tostring | |
| local m=E | |
| E=nil | |
| local c=1 | |
| local ae=2 | |
| local k=3 | |
| local T={10,20,30,40,60,80,110,160,210} | |
| local Ce={ | |
| [c]=1,[ae]=15,[k]=15,} | |
| local j=Ie | |
| local P=Be | |
| local d=Ae | |
| local u=table.insert | |
| local B=table.remove | |
| local Y=t | |
| local G=Ge | |
| local D=re | |
| local R=z | |
| re=40 | |
| z=7 | |
| local o={} | |
| for e=1,8 do | |
| o[e]={} | |
| end | |
| local v,I,ge,we | |
| Ie=nil | |
| Be=nil | |
| Ge=nil | |
| Ae=nil | |
| t=nil | |
| local r={ | |
| [1]={-1,-1,0,0}, | |
| [2]={1,1,0,0}, | |
| [3]={0,0,-1,-1}, | |
| [4]={0,0,1,1}, | |
| [5]={-1,.5,0,0}, | |
| [6]={0,0,-1,.5} | |
| } | |
| local n={round=1;score=0;paused=false;moveAllowed=nil;activeTime=0;}; | |
| BejeweledData={ | |
| ["flightTimes"]={}, | |
| } | |
| BejeweledProfile={ | |
| ["stats"]={ | |
| ["classic"]={ | |
| ["score"]=0,["played"]=0,["highestLevel"]=0 | |
| }, | |
| ["timed"]={ | |
| ["score"]=0,["played"]=0,["mostMoves"]=0 | |
| }, | |
| ["largestCascade"]=0,["largestCombo"]=0,["played"]=0,["combatPause"]=0,["totalGemsMatched"]=0,["totalPowerGems"]=0,["totalHyperGems"]=0,["gemMatch"]={0,0,0,0,0,0,0,0}, | |
| }, | |
| ["skill"]={ | |
| ["rank"]=1,["skillPoints"]=0,["timedGames"]=0,["games"]=0, | |
| }, | |
| ["settings"]={ | |
| ["keybinding"]=nil,["gameAlpha"]=1,["mouseoffAlpha"]=.3,["publishSkillGains"]=1,["publishRankGains"]=1,["newGameFlight"]=1,["publishScores"]=1,["enableSounds"]=1,["disableHints"]=nil,["lockWindow"]=nil,["openFlightStart"]=1,["closeFlightEnd"]=nil,["openOnDeath"]=1,["closeReadyCheck"]=1,["openLogin"]=nil,["closeCombat"]=1,["showFlightTooltips"]=1,["defaultPublish"]="GUILD" | |
| }, | |
| ["version"]=1.1, | |
| ["scoresUpdated"]=true, | |
| ["scoresPopup"]=true, | |
| ["scoreList"]={ | |
| ["friends"]={ | |
| ["classic"]={ | |
| [1]={"PopCap Games",1,1e3,"9VW``nt"}, | |
| [2]={"PopCap Games",1,900,"7Rk``lQ"}, | |
| [3]={"PopCap Games",1,800,"zDR``k3"}, | |
| [4]={"PopCap Games",1,700,"v>z``j`"}, | |
| [5]={"PopCap Games",1,600,"va``h="}, | |
| [6]={"PopCap Games",1,500,"OC``gj"}, | |
| [7]={"PopCap Games",1,400,"MH``eG"}, | |
| [8]={"PopCap Games",1,300,"7EM``dt"}, | |
| [9]={"PopCap Games",1,200,"7CR``bQ"}, | |
| [10]={"PopCap Games",1,100,"x1C```j"}, | |
| }, | |
| ["timed"]={ | |
| [1]={"PopCap Games",1,2.8,"=H7`d`"}, | |
| [2]={"PopCap Games",1,2.6,"wST`cG"}, | |
| [3]={"PopCap Games",1,2.4,"<Nm`c3"}, | |
| [4]={"PopCap Games",1,2.2,"ST`cj"}, | |
| [5]={"PopCap Games",1,2,"xgl`bQ"}, | |
| [6]={"PopCap Games",1,1.8,"=a5`b="}, | |
| [7]={"PopCap Games",1,1.6,"<gl`bt"}, | |
| [8]={"PopCap Games",1,1.4,"9BI`b`"}, | |
| [9]={"PopCap Games",1,1.2,"=oH`aG"}, | |
| [10]={"PopCap Games",1,1,"8H4`a3"}, | |
| }, | |
| }, | |
| ["guild"]={ | |
| ["classic"]={ | |
| [1]={"PopCap Games",1,1e3,"9VW``nt"}, | |
| [2]={"PopCap Games",1,900,"7Rk``lQ"}, | |
| [3]={"PopCap Games",1,800,"zDR``k3"}, | |
| [4]={"PopCap Games",1,700,"v>z``j`"}, | |
| [5]={"PopCap Games",1,600,"va``h="}, | |
| [6]={"PopCap Games",1,500,"OC``gj"}, | |
| [7]={"PopCap Games",1,400,"MH``eG"}, | |
| [8]={"PopCap Games",1,300,"7EM``dt"}, | |
| [9]={"PopCap Games",1,200,"7CR``bQ"}, | |
| [10]={"PopCap Games",1,100,"x1C```j"}, | |
| }, | |
| ["timed"]={ | |
| [1]={"PopCap Games",1,2.8,"=H7`d`"}, | |
| [2]={"PopCap Games",1,2.6,"wST`cG"}, | |
| [3]={"PopCap Games",1,2.4,"<Nm`c3"}, | |
| [4]={"PopCap Games",1,2.2,"ST`cj"}, | |
| [5]={"PopCap Games",1,2,"xgl`bQ"}, | |
| [6]={"PopCap Games",1,1.8,"=a5`b="}, | |
| [7]={"PopCap Games",1,1.6,"<gl`bt"}, | |
| [8]={"PopCap Games",1,1.4,"9BI`b`"}, | |
| [9]={"PopCap Games",1,1.2,"=oH`aG"}, | |
| [10]={"PopCap Games",1,1,"8H4`a3"}, | |
| }, | |
| }, | |
| }, | |
| } | |
| e.debugArray=o | |
| e.debugCurrentGameData=n | |
| local function C()return{bgFile="Interface\\Tooltips\\UI-Tooltip-Background",tileSize=16,edgeFile="Interface\\Tooltips\\UI-Tooltip-Border",tile=1,edgeSize=16,insets={top=5,right=5,left=5,bottom=5,} | |
| } | |
| end | |
| local function st(t,e)if not e.animated then | |
| u(t.animationStack,e) | |
| e.animated=true | |
| end | |
| end | |
| local function ht(i,t)if(i.maxScore)then | |
| local o=n | |
| i.score=t | |
| o.score=t | |
| if(o.gameMode==c)then | |
| if(BejeweledProfile.skill.rank>=2)then | |
| if(t>=1e4)and not(n.scoreTrack1)then | |
| n.scoreTrack1=true | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_CLASSIC,e.const.SKILL_SCORE100K) | |
| end | |
| end | |
| if(BejeweledProfile.skill.rank>=3)then | |
| if(t>=25e3)and not(n.scoreTrack2)then | |
| n.scoreTrack2=true | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_CLASSIC,e.const.SKILL_SCORE250K) | |
| end | |
| end | |
| if(BejeweledProfile.skill.rank>=5)then | |
| if(t>=5e4)and not(n.scoreTrack3)then | |
| n.scoreTrack3=true | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_CLASSIC,e.const.SKILL_SCORE500K) | |
| end | |
| end | |
| if(BejeweledProfile.skill.rank>=6)then | |
| if(t>=75e3)and not(n.scoreTrack4)then | |
| n.scoreTrack4=true | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_CLASSIC,e.const.SKILL_SCORE750K) | |
| end | |
| end | |
| if not BejeweledProfile.skill["gainAchieve"..e.const.SKILL_ACHIEVE4A]then | |
| if(t>=75e3)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_ACHIEVEMENT,e.const.SKILL_ACHIEVE4A) | |
| end | |
| end | |
| end | |
| if(t>=i.maxScore)and not o.leveledUp then | |
| local i=e.gameStatusText | |
| if(o.gameMode==c)then | |
| i:SetText("Level up") | |
| else | |
| i:SetText("Multiplier up") | |
| local o | |
| if(math.fmod(n.level,2)==0)then | |
| o=n.level.."x" | |
| else | |
| o=string.format("%.1fx",(1+n.level*.5)) | |
| end | |
| local t,n | |
| for n=25,325,100 do | |
| t=e.animator:CreateFloatingText(n,135,o,2) | |
| t.fxType=te | |
| t:Show() | |
| e.animator:Add(t) | |
| t=e.animator:CreateFloatingText(n,250,o,3,true) | |
| t:SetTextColor(1,1,1) | |
| t.fxType=te | |
| t:Show() | |
| e.animator:Add(t) | |
| end | |
| end | |
| e.sound:Play("LevelUp") | |
| i:Show() | |
| i.background:Show() | |
| e.animator.hintObj:Hide() | |
| e.animator.hintObj.fxType=S | |
| o.leveledUp=true | |
| we=true | |
| end | |
| i:UpdateBar() | |
| end | |
| end | |
| local function Tt(t)if(t.mode==c)then | |
| if(t.lastScore~=t.score)then | |
| t.lastScore=t.score | |
| e.dataText:SetText(e:NumberWithCommas(t.score)) | |
| end | |
| if(n.leveledUp)then | |
| t.bar:SetWidth(t:GetWidth()-4) | |
| else | |
| t.bar:SetWidth((t.score-t.minScore+.5)/(t.maxScore-t.minScore)*(t:GetWidth()-4)) | |
| end | |
| else | |
| local n=(t.score/t.timer.timeElapsed) | |
| if(t.score>0)then | |
| e.levelText:SetFormattedText("%.2f",n) | |
| else | |
| e.levelText:SetFormattedText("%.2f",0) | |
| end | |
| if not((t.mode==k)and(e.flightOptionWindow.learning))then | |
| local n,e,o | |
| if(t.timer.timeLeft==-1)then | |
| t.text:SetText("Timing") | |
| else | |
| if(t.timer.timeLeft==t.timer.timeStart)then | |
| n=d((t.timer.timeLeft)/60)e=d((t.timer.timeLeft)-(n*60)) | |
| elseif(t.timer.timeLeft==0)then | |
| n=0 | |
| e=0 | |
| o=.01 | |
| else | |
| n=d((t.timer.timeLeft+1)/60)e=d((t.timer.timeLeft+1)-(n*60)) | |
| end | |
| if(e<10)then | |
| e="0"..e | |
| end | |
| t.text:SetFormattedText("%d:%s",n,e) | |
| if(t.timer.timeLeft==t.timer.timeStart)then | |
| t.bar:SetWidth(t:GetWidth()-4) | |
| else | |
| t.bar:SetWidth(o or(((t.timer.timeLeft+.1)/(t.timer.timeStart)*t:GetWidth())-4)) | |
| end | |
| end | |
| else | |
| local n,e,o | |
| if(t.timer.timeElapsed==0)then | |
| n=0 | |
| e=0 | |
| else | |
| n=d((t.timer.timeElapsed+1)/60)e=d((t.timer.timeElapsed+1)-(n*60)) | |
| end | |
| if(e<10)then | |
| e="0"..e | |
| end | |
| if(t.timer.timeLeft==-1)then | |
| t.text:SetText("Timing") | |
| else | |
| t.text:SetFormattedText("%d:%s",n,e) | |
| end | |
| t.bar:SetWidth(t:GetWidth()-4) | |
| end | |
| end | |
| end | |
| local function Bt(e,n,t)e.minScore=n | |
| e.maxScore=t | |
| end | |
| local function xt(e,t,n)return e:SetScore(e.score+t) | |
| end | |
| local function rt(t,o,i)local n=n | |
| t.mode=o | |
| e.levelText:SetText("1") | |
| e.levelBar.text:SetText("") | |
| if(o==c)then | |
| t:SetTimer()t:SetMinMaxScore(0,500) | |
| t:SetScore(0) | |
| t.bar:SetVertexColor(0,.5,1) | |
| e.dataBorder:SetWidth(128) | |
| e.levelBorder:SetWidth(94) | |
| e.levelTextCaption:SetText("|cFF11AAFFlvl|r")e.dataText:SetText("0") | |
| e.dataText:SetFont(l.."Contb___.ttf",12,"Outline") | |
| e.levelText:ClearAllPoints()e.levelText:SetPoint("Topright",-16,0) | |
| e.levelText:SetPoint("Bottomleft",48,1) | |
| e.levelText:SetJustifyH("LEFT") | |
| e.levelTextCaption:ClearAllPoints()e.levelTextCaption:SetPoint("Topright",e.levelText,"Topleft",5,0) | |
| e.levelTextCaption:SetWidth(20) | |
| e.levelTextCaption:SetHeight(30) | |
| else | |
| t:SetTimer(i)t:SetMinMaxScore(0,500*Ce[o]) | |
| t:SetScore(0) | |
| t.bar:SetVertexColor(0,1,0) | |
| e.dataBorder:SetWidth(76) | |
| e.levelBorder:SetWidth(130) | |
| e.levelTextCaption:SetText(" |cFF00FF00pps|r") | |
| e.dataText:SetText("1|cFF00FF00x") | |
| e.dataText:SetFont(l.."Contb___.ttf",10,"Outline") | |
| e.levelText:ClearAllPoints()e.levelText:SetPoint("Topleft",16,0) | |
| e.levelText:SetPoint("Bottomright",-48,1) | |
| e.levelText:SetJustifyH("RIGHT") | |
| e.levelTextCaption:ClearAllPoints()e.levelTextCaption:SetPoint("Topleft",e.levelText,"Topright",-5,0) | |
| e.levelTextCaption:SetPoint("Bottomright",-20,1) | |
| if(o==k)and(e.flightOptionWindow.learning)then | |
| t.timer.timeElapsed=i | |
| t.timer.legJourney=i | |
| end | |
| end | |
| end | |
| local function kt(e,t)e.timer.timeLeft=t or(0) | |
| e.timer.timeStart=t or(0) | |
| e.timer.timeElapsed=0 | |
| e:StartTimer() | |
| end | |
| local function Ft(e)e.timer.elapsed=0 | |
| e.timer:Show() | |
| end | |
| local function Pt(e)e.timer:Hide() | |
| end | |
| local function X(n,l)local t=0 | |
| local o,e | |
| local o=#n-1 | |
| for i=1,#n do | |
| e=j(n,i) | |
| if(e>=96)then | |
| e=e-96 | |
| else | |
| e=e-(48-27)end | |
| t=t+(e*(70^(o))) | |
| o=o-1 | |
| end | |
| if(l==true)then | |
| t=t-d((70^#n)/2) | |
| end | |
| return t | |
| end | |
| local function x(t,n,l)local o | |
| local e="" | |
| local i=0 | |
| if(l==true)then | |
| t=t+d((70^n)/2) | |
| end | |
| while true do | |
| o=mod(t,70) | |
| if(o<27)then | |
| e=P(96+o)..e | |
| else | |
| e=P(48+(o-27))..e | |
| end | |
| if(t>=70)then | |
| if(i<n)then | |
| t=d(t/70) | |
| i=i+1 | |
| else | |
| e=x(0,n)break | |
| end | |
| else | |
| break | |
| end | |
| end | |
| if(#e<n)then | |
| e=string.rep(P(96),(n-#e))..e | |
| end | |
| return e | |
| end | |
| local function H(s,e)local d,i,t | |
| local o=e or 0 | |
| local t=e or 0 | |
| local n,a,e,l,r | |
| d=#s | |
| for e=1,d do | |
| i=j(s,e) | |
| if(mod(e,2)==0)then | |
| t=t+i | |
| else | |
| o=o+i | |
| end | |
| end | |
| n=mod(t,10) | |
| a=mod(t-n,100)/10 | |
| e=mod(o,10) | |
| l=mod(o-e,100)/10 | |
| r=mod(n+a+e+l,10) | |
| return n,a,e,l,r | |
| end | |
| local function P(e,t)local t=t or 0 | |
| local l,o,t,i,n=H(e,t) | |
| return x(1e5+n*1e4+i*1e3+t*100+o*10+l,3)..e | |
| end | |
| local function fe(e,t)if(R(e)~="string")or(#e<4)then | |
| return | |
| end | |
| local r=G(e,1,3) | |
| local n=G(e,4) | |
| t=t or 0 | |
| local d,h,c,S,s=H(n,t) | |
| local l,i,t,o,a | |
| local e=Y(X(r)) | |
| l=D(G(e,6,6)) | |
| i=D(G(e,5,5)) | |
| t=D(G(e,4,4)) | |
| o=D(G(e,3,3)) | |
| a=D(G(e,2,2)) | |
| if((l==d)and(i==h)and(t==c)and(o==S)and(a==s))then | |
| return n | |
| end | |
| end | |
| local function H(t)local n,e=0,0 | |
| for n=1,#t do | |
| e=e+j(t,n) | |
| end | |
| return e | |
| end | |
| local function j(S,...)local a,a,a,o,c,n,i,t,l,d | |
| local a="PopCap Games"local f=UnitName("player") | |
| local h | |
| local r | |
| a=H(a)for s=1,select("#",...),2 do | |
| n=select(s+1,...) | |
| o=select(s,...) | |
| c=D(G(o,1,1)) | |
| o=G(o,2) | |
| n=fe(n,H(o)) | |
| r=true | |
| if(n)then | |
| if(#n>3)then | |
| n=X(n) | |
| l=1e3 | |
| d=100 | |
| t=S.classic | |
| else | |
| n=X(n)/100 | |
| l=2.8 | |
| d=.2 | |
| t=S.timed | |
| r=nil | |
| end | |
| else | |
| n=-1 | |
| end | |
| local s=true | |
| if(n>=t[10][3])then | |
| if(BejeweledProfile.settings.hideDuplicates)then | |
| for e=1,10 do | |
| if(o==t[e][1])then | |
| s=nil | |
| if(n>t[e][3])then | |
| s=true | |
| for e=e,9 do | |
| t[e][1]=t[e+1][1] | |
| t[e][2]=t[e+1][2] | |
| t[e][3]=t[e+1][3] | |
| t[e][4]=t[e+1][4] | |
| if(t[e][1]=="PopCap Games")then | |
| l=t[e][3]-d | |
| end | |
| end | |
| t[10][1]="PopCap Games" | |
| t[10][2]=1 | |
| t[10][3]=l | |
| if(r)then | |
| t[10][4]=P(x(l,4),a) | |
| else | |
| t[10][4]=P(x(l*100,3),a) | |
| end | |
| end | |
| break | |
| end | |
| end | |
| end | |
| i=nil | |
| if(s)then | |
| for e=10,1,-1 do | |
| if(n==t[e][3])and(o==t[e][1])then | |
| i=nil | |
| break | |
| end | |
| if(n>t[e][3])then | |
| i=e | |
| else | |
| break | |
| end | |
| end | |
| if(i)then | |
| for e=10,i+1,-1 do | |
| if(t[e-1][1]~=f)and(t[e-1][1]~="PopCap Games")then | |
| h=true | |
| end | |
| t[e][1]=t[e-1][1]t[e][2]=t[e-1][2]t[e][3]=t[e-1][3]t[e][4]=t[e-1][4]end | |
| t[i][1]=o | |
| t[i][2]=c | |
| t[i][3]=n | |
| if(r)then | |
| t[i][4]=P(x(n,4),H(o)) | |
| else | |
| t[i][4]=P(x(n*100,3),H(o)) | |
| end | |
| end | |
| if(h)then | |
| if(t==S.classic)then | |
| if not BejeweledProfile.skill["gainAchieve"..e.const.SKILL_ACHIEVE1A]then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_ACHIEVEMENT,e.const.SKILL_ACHIEVE1A) | |
| end | |
| else | |
| if not BejeweledProfile.skill["gainAchieve"..e.const.SKILL_ACHIEVE3B]then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_ACHIEVEMENT,e.const.SKILL_ACHIEVE3B) | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| local function _t(t)local r,i,S,o | |
| local l=n | |
| local o | |
| local s | |
| local a=UnitName("player")r=e.levelBar.timer.timeElapsed | |
| i=d(r/60) | |
| S=d(r-(i*60)) | |
| s=H(a) | |
| if(l.gameMode==c)then | |
| local i=l.score | |
| t.scoreCaption:SetText("Final Score") | |
| t.scoreValue:SetText(e:NumberWithCommas(i)) | |
| t.bragString="[Bejeweled Addon]: "..a.." just scored "..t.scoreValue:GetText().." points in Classic mode! Download the Bejeweled Addon for Wow to defeat their score!"if(i>n.statDB[I])then | |
| n.statDB[I]=i | |
| n.statDB[v]=P(x(i,4),s) | |
| end | |
| i=P(x(i,4),s) | |
| o=Y(BejeweledProfile.skill.rank)..a | |
| j(BejeweledProfile.scoreList.friends,o,i) | |
| j(BejeweledProfile.scoreList.guild,o,i) | |
| o=o.."*"..i | |
| else | |
| local i=(l.score/r) | |
| t.scoreCaption:SetText("Points per Second") | |
| t.scoreValue:SetFormattedText("%.2f",i) | |
| t.bragString="[Bejeweled Addon]: "..a.." just scored "..t.scoreValue:GetText().." points per second in a Timed mode! Download the Bejeweled Addon for Wow to defeat their score!"if(i>n.statDB[I])then | |
| n.statDB[I]=i | |
| n.statDB[v]=P(x(d(i*100),3),s) | |
| end | |
| if(i>=250)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_TIMED,e.const.SKILL_PPS250) | |
| end | |
| if(i>=300)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_TIMED,e.const.SKILL_PPS300) | |
| end | |
| if(i>=350)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_TIMED,e.const.SKILL_PPS350) | |
| end | |
| i=P(x(d(i*100),3),s) | |
| o=Y(BejeweledProfile.skill.rank)..a | |
| j(BejeweledProfile.scoreList.friends,o,i) | |
| j(BejeweledProfile.scoreList.guild,o,i) | |
| o=o.."*"..i | |
| end | |
| t.publishButton:Enable() | |
| t.seeScoresButton:Enable() | |
| t.bragButton:Enable() | |
| t.publishButton:Show() | |
| if(BejeweledProfile.settings.publishScores)then | |
| e.network:Send("HSPub",o,"GUILD","") | |
| local i,n | |
| for i=1,GetNumFriends()do | |
| n,_,_,_,online=GetFriendInfo(i)if(online)then | |
| e.network:Send("HSPub",o,"WHISPER",n) | |
| end | |
| end | |
| t.publishButton:Hide() | |
| end | |
| t.bragButton:Show() | |
| t.publishButton.dataDump=o | |
| t.publishButton:Enable() | |
| t.timeValue:SetText(e:TotalTime(d(r))) | |
| t.levelValue:SetText(l.level) | |
| t.cascadeValue:SetText(l.largestCascade) | |
| t.comboValue:SetText(l.largestCombo) | |
| e.levelBar.bar:SetVertexColor(1,0,0) | |
| e.levelBar.bar:SetWidth(e.levelBar:GetWidth()-4) | |
| e.levelBar.text:SetText("") | |
| e.levelBarButton:SetID(2) | |
| e.levelBarButton:Show() | |
| e.levelBarButton.text:SetText("New game") | |
| l.gameMode=nil | |
| e.gameStatusText:Hide() | |
| if not(BejeweledData.firstGame)then | |
| BejeweledData.firstGame=true | |
| e.popup.text:SetText(e.popup.text.tip3) | |
| e.popup:Hide() | |
| e.popup:Show() | |
| end | |
| end | |
| local function M(l,s,S,f,m,a,c,h,u)if(n.gameOver)then | |
| return | |
| end | |
| local t=0 | |
| local r=e.animator | |
| local o=0 | |
| local g=BejeweledProfile.skill.rank | |
| if(l>=3)then | |
| o=o+e.skillBar:CheckSkill(e.const.SKILLTYPE_MATCH,e.const.SKILL_MATCH3) | |
| n.combo=n.combo+1 | |
| local i=n.combo | |
| if(i>=2)then | |
| o=o+e.skillBar:CheckSkill(e.const.SKILLTYPE_COMBO,e.const.SKILL_COMBO2) | |
| end | |
| if(i>=3)then | |
| o=o+e.skillBar:CheckSkill(e.const.SKILLTYPE_COMBO,e.const.SKILL_COMBO3) | |
| end | |
| if(i>=4)then | |
| o=o+e.skillBar:CheckSkill(e.const.SKILLTYPE_COMBO,e.const.SKILL_COMBO4) | |
| end | |
| if(i>=5)then | |
| o=o+e.skillBar:CheckSkill(e.const.SKILLTYPE_COMBO,e.const.SKILL_COMBO5) | |
| end | |
| if(n.combo<#T)then | |
| t=T[i] | |
| else | |
| t=T[#T] | |
| end | |
| end | |
| if(l==4)then | |
| t=t+10 | |
| elseif(l>=5)then | |
| t=t+20 | |
| end | |
| if(f)then | |
| o=o+e.skillBar:CheckSkill(e.const.SKILLTYPE_MATCH,e.const.SKILL_MATCH4) | |
| t=t+25 | |
| end | |
| if(m)then | |
| if(a==0)then | |
| t=t+75 | |
| e.sound:Play("HyperDestroy") | |
| else | |
| t=t+20 | |
| e.sound:Play("ElectroExplode") | |
| end | |
| end | |
| if(a==1)then | |
| t=t+25 | |
| end | |
| if(a>1)then | |
| t=t+10*(a+2)end | |
| t=t*Ce[n.gameMode]if(n.gameMode<=k)then | |
| t=t*((n.level+1)/2)end | |
| local i=s.x | |
| local a=s.y | |
| if(c==true)then | |
| i=i+b*(l/2)else | |
| a=a+p*(l/2)i=i+ce | |
| end | |
| if(h)then | |
| a=s.y | |
| i=s.x+ce | |
| end | |
| if(u)then | |
| o=o+e.skillBar:CheckSkill(e.const.SKILLTYPE_MATCH,e.const.SKILL_MATCH5) | |
| else | |
| local e=r:CreateFloatingText(i,a,d(t),S) | |
| if(l>=3)then | |
| e.comboSound=n.combo | |
| end | |
| r:Add(e) | |
| end | |
| if(g~=BejeweledProfile.skill.rank)then | |
| r:Add(r:CreateFloatingText(i-20,a-20,"RANK UP: "..e.const.skillDataRanks[BejeweledProfile.skill.rank],7,true)) | |
| end | |
| if(o>0)then | |
| for e=(i+1),(i+o)do | |
| r:Add(r:CreateFloatingText(e,a+20,"+1 Skill",3,true)) | |
| end | |
| end | |
| end | |
| local function ze(e,t)if(UnitFactionGroup("player")=="Horde")then | |
| ge={ | |
| [1]={ | |
| ["146,244"]={ | |
| ["176,165"]=270,["159,229"]=79,["202,270"]=194,["169,279"]=161,["198,195"]=248,["199,224"]=237,["129,220"]=137, | |
| }, | |
| ["179,126"]={ | |
| ["166,137"]=49,["176,165"]=165,["173,93"]=106,["191,69"]=221,["184,105"]=65,["198,195"]=230,["191,158"]=91,["142,154"]=231, | |
| }, | |
| ["139,107"]={ | |
| ["131,73"]=130,["176,165"]=269,["173,93"]=107,["191,69"]=193,["100,146"]=226,["142,154"]=261, | |
| }, | |
| ["166,137"]={ | |
| ["179,126"]=49,["176,165"]=84,["173,93"]=126,["142,154"]=116, | |
| }, | |
| ["131,73"]={ | |
| ["191,69"]=247,["139,107"]=130,["157,83"]=97, | |
| }, | |
| ["176,165"]={ | |
| ["146,244"]=244,["179,126"]=164,["139,107"]=255,["166,137"]=92,["173,93"]=189,["191,69"]=311,["198,195"]=135,["191,158"]=51,["175,204"]=161,["128,185"]=144,["142,154"]=174,["199,224"]=171,["129,220"]=231, | |
| }, | |
| ["159,229"]={ | |
| ["146,244"]=139,["175,204"]=82,["129,220"]=115, | |
| }, | |
| ["202,270"]={ | |
| ["146,244"]=197,["169,279"]=145,["198,195"]=297,["199,224"]=135, | |
| }, | |
| ["173,93"]={ | |
| ["179,126"]=106,["139,107"]=123,["166,137"]=136,["176,165"]=188,["191,69"]=93,["184,105"]=70,["142,154"]=220, | |
| }, | |
| ["191,69"]={ | |
| ["179,126"]=223,["139,107"]=195,["131,73"]=242,["176,165"]=307,["173,93"]=89,["157,83"]=107,["191,158"]=243,["198,195"]=352,["142,154"]=305, | |
| }, | |
| ["157,83"]={ | |
| ["131,73"]=100,["191,69"]=113, | |
| }, | |
| ["169,279"]={ | |
| ["146,244"]=161,["202,270"]=147,["142,154"]=409, | |
| }, | |
| ["184,105"]={ | |
| ["179,126"]=65,["173,93"]=71, | |
| }, | |
| ["198,195"]={ | |
| ["146,244"]=250,["179,126"]=231,["176,165"]=112,["202,270"]=322,["191,69"]=418,["191,158"]=108,["175,204"]=92,["142,154"]=227,["199,224"]=97, | |
| }, | |
| ["191,158"]={ | |
| ["179,126"]=99,["176,165"]=68,["191,69"]=241,["198,195"]=108, | |
| }, | |
| ["100,146"]={ | |
| ["139,107"]=205,["142,154"]=173,["128,185"]=201, | |
| }, | |
| ["175,204"]={ | |
| ["176,165"]=165,["159,229"]=86,["198,195"]=95,["199,224"]=94,["129,220"]=168, | |
| }, | |
| ["128,185"]={ | |
| ["176,165"]=152,["100,146"]=199,["142,154"]=317,["129,220"]=121, | |
| }, | |
| ["142,154"]={ | |
| ["179,126"]=239,["139,107"]=255,["166,137"]=112,["176,165"]=159,["173,93"]=205,["191,69"]=293,["198,195"]=209,["100,146"]=161,["128,185"]=197,["199,224"]=270,["129,220"]=266, | |
| }, | |
| ["199,224"]={ | |
| ["146,244"]=239,["176,165"]=251,["202,270"]=130,["198,195"]=101,["175,204"]=93,["142,154"]=258, | |
| }, | |
| ["129,220"]={ | |
| ["146,244"]=137,["176,165"]=230,["159,229"]=121,["175,204"]=170,["128,185"]=121,["142,154"]=247, | |
| }, | |
| }, | |
| [2]={ | |
| ["193,255"]={ | |
| ["182,265"]=45,["192,230"]=103,["184,331"]=251, | |
| }, | |
| ["131,221"]={ | |
| ["158,120"]=491,["192,230"]=264,["144,202"]=142,["186,194"]=286,["172,190"]=302,["117,207"]=107, | |
| }, | |
| ["172,190"]={ | |
| ["117,207"]=107,["158,120"]=260,["131,221"]=260,["144,202"]=118,["186,194"]=90, | |
| }, | |
| ["170,74"]={ | |
| ["158,120"]=287,["129,25"]=262,["133,50"]=190,["158,110"]=199, | |
| }, | |
| ["144,202"]={ | |
| ["131,221"]=139,["186,194"]=193,["172,190"]=118,["117,207"]=101, | |
| }, | |
| ["133,50"]={ | |
| ["158,120"]=318,["170,74"]=189,["129,25"]=80,["158,110"]=199, | |
| }, | |
| ["146,121"]={ | |
| ["158,120"]=69,["158,110"]=61, | |
| }, | |
| ["117,207"]={ | |
| ["131,221"]=114,["144,202"]=96, | |
| }, | |
| ["184,331"]={ | |
| ["193,255"]=234,["186,287"]=167, | |
| }, | |
| ["186,287"]={ | |
| ["182,265"]=61,["184,331"]=185, | |
| }, | |
| ["129,25"]={ | |
| ["133,50"]=76,["158,120"]=315,["170,74"]=252, | |
| }, | |
| ["182,265"]={ | |
| ["186,287"]=75,["192,230"]=62,["193,255"]=54, | |
| }, | |
| ["158,120"]={ | |
| ["131,221"]=500,["170,74"]=283,["133,50"]=316,["172,190"]=258,["129,25"]=299,["146,121"]=58,["158,110"]=89, | |
| }, | |
| ["192,230"]={ | |
| ["131,221"]=260,["186,194"]=142,["182,265"]=58,["193,255"]=97, | |
| }, | |
| ["186,194"]={ | |
| ["144,202"]=163,["131,221"]=286,["172,190"]=160,["192,230"]=140, | |
| }, | |
| ["172,190"]={ | |
| ["131,221"]=257,["144,202"]=118,["186,194"]=92,["158,120"]=261, | |
| }, | |
| ["158,110"]={ | |
| ["158,120"]=89,["170,74"]=200,["146,121"]=62,["133,50"]=207}, | |
| }, | |
| [3]={ | |
| ["73,174"]={ | |
| ["119,238"]=113,["91,132"]=82,["138,115"]=153,["140,170"]=113,["169,151"]=149, | |
| }, | |
| ["140,170"]={ | |
| ["119,238"]=108,["73,174"]=112,["153,226"]=70,["138,115"]=88,["169,151"]=63, | |
| }, | |
| ["119,238"]={ | |
| ["198,287"]=159,["73,174"]=149,["133,253"]=27,["182,256"]=98,["153,226"]=69,["140,170"]=117, | |
| }, | |
| ["248,163"]={ | |
| ["206,174"]=61,["169,151"]=120, | |
| }, | |
| ["255,80"]={ | |
| ["208,81"]=68, | |
| }, | |
| ["245,51"]={ | |
| ["208,81"]=62, | |
| }, | |
| ["206,174"]={ | |
| ["214,130"]=68,["248,163"]=71.25,["160,94"]=131,["169,151"]=68, | |
| }, | |
| ["208,81"]={ | |
| ["255,80"]=85,["160,94"]=70,["245,51"]=73, | |
| }, | |
| ["182,256"]={ | |
| ["198,287"]=49,["133,253"]=81,["153,226"]=66,["119,238"]=109,["227,253"]=67, | |
| }, | |
| ["160,94"]={ | |
| ["208,81"]=66,["206,174"]=127,["138,115"]=55, | |
| }, | |
| ["153,226"]={ | |
| ["119,238"]=68,["182,256"]=60,["140,170"]=74, | |
| }, | |
| ["198,287"]={ | |
| ["182,256"]=57,["119,238"]=157,["227,253"]=70, | |
| }, | |
| ["91,132"]={ | |
| ["73,174"]=68,["138,115"]=78,["169,151"]=126, | |
| }, | |
| ["138,115"]={ | |
| ["91,132"]=86,["73,174"]=137,["140,170"]=82,["160,94"]=69,["169,151"]=78, | |
| }, | |
| ["133,253"]={ | |
| ["182,256"]=78,["119,238"]=33, | |
| }, | |
| ["214,130"]={ | |
| ["206,174"]=64, | |
| }, | |
| ["169,151"]={ | |
| ["91,132"]=135,["73,174"]=151,["138,115"]=73,["206,174"]=75,["140,170"]=70, | |
| }, | |
| ["227,253"]={ | |
| ["198,287"]=61,["182,256"]=65, | |
| }, | |
| }, | |
| [4]={ | |
| ["38,166"]={ | |
| ["52,166"]=30.175, | |
| }, | |
| ["46,151"]={ | |
| ["90,163"]=87,["91,151"]=95,["57,186"]=0,["52,166"]=37, | |
| }, | |
| ["52,166"]={ | |
| ["90,163"]=49,["57,186"]=24,["46,151"]=30,["38,166"]=26, | |
| }, | |
| ["57,186"]={ | |
| ["90,163"]=76.34999999999999,["52,166"]=57,["77,210"]=58, | |
| }, | |
| ["77,210"]={ | |
| ["165,217"]=302,["99,199"]=129,["57,186"]=94,["88,254"]=138.35, | |
| }, | |
| ["90,163"]={ | |
| ["99,199"]=72,["46,151"]=86,["143,172"]=0,["91,151"]=33,["57,186"]=74,["52,166"]=76, | |
| }, | |
| ["91,151"]={ | |
| ["90,163"]=23,["155,148"]=119,["46,151"]=88, | |
| }, | |
| ["99,199"]={ | |
| ["90,163"]=119.35,["164,230"]=160,["88,254"]=113,["143,172"]=101,["119,276"]=164,["165,217"]=142,["77,210"]=78, | |
| }, | |
| ["119,276"]={ | |
| ["156,277"]=77,["181,277"]=122,["164,230"]=122,["99,199"]=138,["175,225"]=136,["88,254"]=78, | |
| }, | |
| ["143,172"]={ | |
| ["90,163"]=114,["99,199"]=118,["155,148"]=65,["169,168"]=52,["150,197"]=66,["187,158"]=90.5, | |
| }, | |
| ["150,197"]={ | |
| ["200,203"]=108,["143,172"]=54,["169,168"]=68,["165,217"]=58,["187,158"]=91, | |
| }, | |
| ["155,148"]={ | |
| ["143,172"]=65,["169,168"]=49,["165,217"]=124,["169,168"]=51,["187,158"]=62, | |
| }, | |
| ["156,277"]={ | |
| ["119,276"]=42,["164,230"]=74,["165,217"]=141,["181,277"]=51, | |
| }, | |
| ["164,230"]={ | |
| ["165,217"]=71,["99,199"]=159,["156,277"]=97,["119,276"]=127,["175,225"]=34,["88,254"]=171, | |
| }, | |
| ["165,217"]={ | |
| ["156,277"]=123,["164,230"]=37.85,["169,168"]=121,["77,210"]=212,["150,197"]=260.35,["200,203"]=0,["175,225"]=33,["195,225"]=0,["155,148"]=160,["188,212"]=58,["99,199"]=162, | |
| }, | |
| ["169,168"]={ | |
| ["143,172"]=47,["150,197"]=45,["155,148"]=43,["165,217"]=66,["187,158"]=34,["200,203"]=50, | |
| }, | |
| ["175,225"]={ | |
| ["189,263"]=104,["119,276"]=149,["164,230"]=29,["165,217"]=32, | |
| }, | |
| ["181,277"]={ | |
| ["156,277"]=61,["201,286"]=45,["189,263"]=42, | |
| }, | |
| ["187,158"]={ | |
| ["267,94"]=186,["143,172"]=133,["169,168"]=53,["220,159"]=60,["200,203"]=84,["150,197"]=121,["235,132"]=99,["155,148"]=83,["219,203"]=108, | |
| }, | |
| ["188,212"]={ | |
| ["165,217"]=56,["195,225"]=34,["200,203"]=39, | |
| }, | |
| ["189,263"]={ | |
| ["181,277"]=38,["195,225"]=88,["175,225"]=80,["201,286"]=52,["231,262"]=97, | |
| }, | |
| ["195,225"]={ | |
| ["200,203"]=45.675,["189,263"]=76,["227,251"]=101,["165,217"]=0,["188,212"]=38,["231,262"]=91, | |
| }, | |
| ["200,203"]={ | |
| ["165,217"]=0,["150,197"]=108.5,["188,212"]=28,["228,210"]=64,["195,225"]=41,["169,168"]=92,["219,203"]=45,["187,158"]=98.5, | |
| }, | |
| ["201,286"]={ | |
| ["189,263"]=44,["181,277"]=49,["247,216"]=154,["227,251"]=105,["231,262"]=88, | |
| }, | |
| ["219,203"]={ | |
| ["200,203"]=41,["266,173"]=106,["187,158"]=122,["220,159"]=76,["228,210"]=44, | |
| }, | |
| ["220,159"]={ | |
| ["264,145"]=86,["266,173"]=102,["235,132"]=58,["219,203"]=81,["187,158"]=88, | |
| }, | |
| ["227,251"]={ | |
| ["195,225"]=88,["201,286"]=85,["231,262"]=33,["247,216"]=90, | |
| }, | |
| ["228,210"]={ | |
| ["200,203"]=54,["266,173"]=101,["219,203"]=25,["247,216"]=42.5, | |
| }, | |
| ["231,262"]={ | |
| ["189,263"]=101,["247,216"]=99,["195,225"]=115,["227,251"]=46,["201,286"]=74, | |
| }, | |
| ["233,102"]={ | |
| ["235,132"]=56,["267,94"]=65, | |
| }, | |
| ["235,132"]={ | |
| ["233,102"]=55,["267,94"]=93,["264,145"]=60.5,["220,159"]=48,["187,158"]=118, | |
| }, | |
| ["247,216"]={ | |
| ["266,173"]=83,["231,262"]=87,["227,251"]=86,["258,241"]=54,["201,286"]=155,["228,210"]=54, | |
| }, | |
| ["258,241"]={ | |
| ["247,216"]=56, | |
| }, | |
| ["264,145"]={ | |
| ["266,173"]=59.5,["267,94"]=81,["235,132"]=58,["220,159"]=95,["300,128"]=74, | |
| }, | |
| ["266,173"]={ | |
| ["264,145"]=49,["300,128"]=106,["247,216"]=93,["220,159"]=96.5,["219,203"]=93,["228,210"]=100, | |
| }, | |
| ["267,94"]={ | |
| ["264,145"]=80.5,["300,128"]=81,["235,132"]=104,["233,102"]=78,["187,158"]=195, | |
| }, | |
| ["300,128"]={ | |
| ["264,145"]=74,["267,94"]=81,["266,173"]=105, | |
| }, | |
| }, | |
| } | |
| else | |
| ge={ | |
| [1]={ | |
| ["190,67"]={ | |
| ["191,158"]=244,["157,83"]=105,["201,116"]=155,["152,106"]=177,["132,73"]=199, | |
| }, | |
| ["123,210"]={ | |
| ["125,173"]=128,["135,263"]=179,["146,212"]=156, | |
| }, | |
| ["132,73"]={ | |
| ["190,67"]=190,["99,108"]=176,["157,83"]=94, | |
| }, | |
| ["201,116"]={ | |
| ["146,212"]=370,["191,158"]=116,["190,67"]=158,["135,263"]=530,["125,173"]=335,["152,106"]=164,["192,211"]=235,["184,105"]=65, | |
| }, | |
| ["67,259"]={ | |
| ["69,290"]=78, | |
| }, | |
| ["159,229"]={ | |
| ["167,261"]=128,["183,215"]=104,["146,212"]=81, | |
| }, | |
| ["203,269"]={ | |
| ["167,261"]=108,["192,211"]=168,["174,279"]=112, | |
| }, | |
| ["174,279"]={ | |
| ["167,261"]=62,["135,263"]=143,["203,269"]=120, | |
| }, | |
| ["69,290"]={ | |
| ["67,259"]=78, | |
| }, | |
| ["125,173"]={ | |
| ["201,116"]=308,["135,263"]=283,["123,210"]=121,["99,108"]=233, | |
| }, | |
| ["192,211"]={ | |
| ["135,263"]=303,["191,158"]=137,["167,261"]=285,["201,116"]=241,["203,269"]=179,["183,215"]=28,["146,212"]=151, | |
| }, | |
| ["183,215"]={ | |
| ["159,229"]=110,["192,211"]=29,["146,212"]=143, | |
| }, | |
| ["184,105"]={ | |
| ["201,116"]=53,["152,106"]=106, | |
| }, | |
| ["131,296"]={ | |
| ["135,263"]=86, | |
| }, | |
| ["135,263"]={ | |
| ["174,279"]=152,["125,173"]=294,["192,211"]=301,["131,296"]=86,["201,116"]=445,["167,261"]=191,["123,210"]=182,["99,108"]=475,["146,212"]=169, | |
| }, | |
| ["191,158"]={ | |
| ["201,116"]=107,["190,67"]=246,["192,211"]=131,["146,212"]=198, | |
| }, | |
| ["157,83"]={ | |
| ["190,67"]=105,["132,73"]=95, | |
| }, | |
| ["167,261"]={ | |
| ["159,229"]=129,["203,269"]=108,["174,279"]=68,["192,211"]=283,["135,263"]=189, | |
| }, | |
| ["152,106"]={ | |
| ["201,116"]=160,["190,67"]=172,["99,108"]=179,["184,105"]=87, | |
| }, | |
| ["99,108"]={ | |
| ["125,173"]=228,["135,263"]=554,["152,106"]=155,["132,73"]=154, | |
| }, | |
| ["146,212"]={ | |
| ["159,229"]=80,["135,263"]=150,["191,158"]=194,["201,116"]=389,["183,215"]=135,["123,210"]=156,["192,211"]=149, | |
| }, | |
| ["173,284"]={ | |
| ["131,296"]=152, | |
| }, | |
| }, | |
| [2]={ | |
| ["123,72"]={ | |
| ["137,63"]=63,["129,93"]=87,["129,25"]=186,["148,73"]=98,["159,86"]=132, | |
| }, | |
| ["140,193"]={ | |
| ["150,213"]=82,["143,155"]=111,["162,186"]=74,["156,205"]=73,["147,143"]=207, | |
| }, | |
| ["150,213"]={ | |
| ["193,229"]=147,["140,193"]=86,["156,205"]=66,["147,143"]=261, | |
| }, | |
| ["193,229"]={ | |
| ["193,255"]=56,["150,213"]=150,["147,143"]=369,["184,331"]=61,["156,205"]=163, | |
| }, | |
| ["159,86"]={ | |
| ["123,72"]=136,["164,99"]=62,["148,73"]=62,["129,93"]=114, | |
| }, | |
| ["156,205"]={ | |
| ["140,193"]=69,["150,213"]=54,["193,229"]=165,["162,186"]=77,["147,143"]=247, | |
| }, | |
| ["164,99"]={ | |
| ["129,93"]=153,["159,86"]=64,["172,66"]=198,["147,121"]=92, | |
| }, | |
| ["193,255"]={ | |
| ["193,229"]=51,["184,331"]=252, | |
| }, | |
| ["147,121"]={ | |
| ["164,99"]=91,["166,135"]=89,["129,93"]=127,["147,143"]=90, | |
| }, | |
| ["148,73"]={ | |
| ["123,72"]=94,["172,66"]=98,["137,63"]=48,["159,86"]=61,["129,93"]=83,["129,25"]=172, | |
| }, | |
| ["172,66"]={ | |
| ["164,99"]=210,["148,73"]=91,["129,93"]=190, | |
| }, | |
| ["137,63"]={ | |
| ["123,72"]=67,["129,25"]=116,["148,73"]=50,["129,93"]=98, | |
| }, | |
| ["129,25"]={ | |
| ["123,72"]=149,["129,93"]=200,["148,73"]=168,["137,63"]=118, | |
| }, | |
| ["166,135"]={ | |
| ["143,155"]=154,["162,186"]=164,["147,121"]=83,["147,143"]=110, | |
| }, | |
| ["129,93"]={ | |
| ["123,72"]=79,["172,66"]=177,["137,63"]=93,["159,86"]=114,["164,99"]=154,["129,25"]=200,["147,121"]=134,["148,73"]=117,["147,143"]=217, | |
| }, | |
| ["143,155"]={ | |
| ["140,193"]=108,["166,135"]=163,["162,186"]=115,["147,143"]=90, | |
| }, | |
| ["162,186"]={ | |
| ["140,193"]=88,["143,155"]=127,["156,205"]=73,["166,135"]=171,["147,143"]=272, | |
| }, | |
| ["184,331"]={ | |
| ["193,255"]=229,["193,229"]=266, | |
| }, | |
| ["147,143"]={ | |
| ["140,193"]=216,["150,213"]=258,["193,229"]=350,["129,93"]=201,["156,205"]=241,["184,331"]=428,["143,155"]=115,["162,186"]=204,["147,121"]=85,["166,135"]=102, | |
| }, | |
| }, | |
| [3]={ | |
| ["165,174"]={ | |
| ["204,149"]=88,["118,174"]=82, | |
| }, | |
| ["245,51"]={ | |
| ["219,54"]=43, | |
| }, | |
| ["132,221"]={ | |
| ["182,256"]=85,["99,231"]=61,["118,174"]=73,["133,253"]=54, | |
| }, | |
| ["204,149"]={ | |
| ["175,82"]=119,["138,115"]=121,["248,158"]=66,["236,176"]=57,["165,174"]=77, | |
| }, | |
| ["248,158"]={ | |
| ["165,174"]=117,["236,176"]=28,["204,149"]=74, | |
| }, | |
| ["236,176"]={ | |
| ["204,149"]=59,["248,158"]=33, | |
| }, | |
| ["99,231"]={ | |
| ["198,287"]=155,["118,174"]=83,["133,253"]=52,["182,256"]=120,["132,221"]=58,["84,196"]=76, | |
| }, | |
| ["118,174"]={ | |
| ["165,174"]=82,["138,115"]=98,["132,221"]=69,["84,196"]=64,["99,231"]=92,["86,90"]=126, | |
| }, | |
| ["182,256"]={ | |
| ["198,287"]=49,["99,231"]=127,["133,253"]=82,["132,221"]=90,["227,253"]=67, | |
| }, | |
| ["86,90"]={ | |
| ["175,82"]=123,["118,174"]=128,["138,115"]=89, | |
| }, | |
| ["198,287"]={ | |
| ["182,256"]=56.35,["99,231"]=155,["227,253"]=70, | |
| }, | |
| ["255,80"]={ | |
| ["219,54"]=82, | |
| }, | |
| ["138,115"]={ | |
| ["118,174"]=85,["175,82"]=77,["204,149"]=112,["86,90"]=89, | |
| }, | |
| ["133,253"]={ | |
| ["182,256"]=78,["99,231"]=56,["132,221"]=45, | |
| }, | |
| ["219,54"]={ | |
| ["255,80"]=85,["175,82"]=102,["245,51"]=44, | |
| }, | |
| ["84,196"]={ | |
| ["118,174"]=54,["99,231"]=66, | |
| }, | |
| ["175,82"]={ | |
| ["219,54"]=80,["204,149"]=98,["138,115"]=76,["86,90"]=150, | |
| }, | |
| ["227,253"]={ | |
| ["182,256"]=66,["198,287"]=58, | |
| }, | |
| }, | |
| [4]={ | |
| ["38,166"]={ | |
| ["52,166"]=31, | |
| }, | |
| ["52,166"]={ | |
| ["38,166"]=25,["65,178"]=25,["68,136"]=46, | |
| }, | |
| ["55,212"]={ | |
| ["65,178"]=117,["77,210"]=77,["88,254"]=138, | |
| }, | |
| ["65,178"]={ | |
| ["52,166"]=45,["55,212"]=77,["68,136"]=71,["77,210"]=64,["91,151"]=66,["133,164"]=65.3, | |
| }, | |
| ["68,136"]={ | |
| ["52,166"]=64,["65,178"]=76.5,["91,151"]=64,["133,164"]=147, | |
| }, | |
| ["77,210"]={ | |
| ["55,212"]=65,["65,178"]=210.35,["88,254"]=140,["129,201"]=225,["165,217"]=302, | |
| }, | |
| ["88,254"]={ | |
| ["55,212"]=119,["77,210"]=118,["119,276"]=95,["129,201"]=173,["164,230"]=174.175, | |
| }, | |
| ["91,151"]={ | |
| ["65,178"]=80,["68,136"]=61,["133,164"]=99,["155,148"]=119, | |
| }, | |
| ["119,276"]={ | |
| ["88,254"]=78,["129,201"]=142,["175,225"]=135,["156,277"]=77,["164,230"]=122,["181,277"]=122, | |
| }, | |
| ["129,201"]={ | |
| ["77,210"]=137,["88,254"]=167,["119,276"]=162,["133,164"]=81,["145,189"]=50,["164,230"]=110,["165,217"]=91, | |
| }, | |
| ["133,164"]={ | |
| ["68,136"]=133,["91,151"]=100,["129,201"]=67,["145,189"]=83,["155,148"]=72,["169,168"]=90,["188,169"]=0, | |
| }, | |
| ["145,189"]={ | |
| ["129,201"]=61,["133,164"]=74,["165,217"]=67.35,["169,168"]=66,["188,169"]=88,["200,203"]=120, | |
| }, | |
| ["155,148"]={ | |
| ["91,151"]=133,["133,164"]=56,["165,217"]=123,["169,168"]=49,["188,169"]=86,["233,102"]=186, | |
| }, | |
| ["156,277"]={ | |
| ["119,276"]=87,["165,217"]=141,["164,230"]=74,["181,277"]=51, | |
| }, | |
| ["164,230"]={ | |
| ["88,254"]=168,["119,276"]=124,["129,201"]=108,["156,277"]=98,["165,217"]=72,["175,225"]=36.175, | |
| }, | |
| ["165,217"]={ | |
| ["77,210"]=212,["129,201"]=116,["145,189"]=101,["155,148"]=160,["156,277"]=124,["164,230"]=40,["169,168"]=121,["175,225"]=116,["184,199"]=54,["195,225"]=59,["200,203"]=82, | |
| }, | |
| ["169,168"]={ | |
| ["133,164"]=45,["145,189"]=40,["155,148"]=37,["165,217"]=0,["188,169"]=66.35,["200,203"]=73.35, | |
| }, | |
| ["175,225"]={ | |
| ["119,276"]=148,["164,230"]=29,["165,217"]=33,["179,236"]=41, | |
| }, | |
| ["179,236"]={ | |
| ["175,225"]=34,["181,277"]=66,["195,225"]=49,["201,286"]=99, | |
| }, | |
| ["181,277"]={ | |
| ["119,276"]=0,["156,277"]=61,["179,236"]=79,["201,286"]=113, | |
| }, | |
| ["184,199"]={ | |
| ["165,217"]=49,["188,169"]=77,["195,225"]=0,["200,203"]=48.175, | |
| }, | |
| ["188,169"]={ | |
| ["133,164"]=0,["145,189"]=97,["155,148"]=100,["169,168"]=55,["184,199"]=72,["200,203"]=65,["219,203"]=90,["230,163"]=78,["241,115"]=127, | |
| }, | |
| ["195,225"]={ | |
| ["165,217"]=0,["179,236"]=0,["184,199"]=0,["200,203"]=45.35,["227,251"]=101, | |
| }, | |
| ["200,203"]={ | |
| ["145,189"]=112,["165,217"]=68,["169,168"]=92,["184,199"]=35,["188,169"]=62,["195,225"]=41,["219,203"]=46,["228,210"]=65, | |
| }, | |
| ["201,286"]={ | |
| ["179,236"]=0,["181,277"]=49,["227,251"]=105,["247,216"]=104.35, | |
| }, | |
| ["219,203"]={ | |
| ["188,169"]=84,["200,203"]=41,["228,210"]=45,["230,163"]=84, | |
| }, | |
| ["227,251"]={ | |
| ["195,225"]=89,["201,286"]=86,["247,216"]=90, | |
| }, | |
| ["228,210"]={ | |
| ["200,203"]=54,["219,203"]=25,["247,216"]=42,["261,189"]=72, | |
| }, | |
| ["230,163"]={ | |
| ["188,169"]=83,["219,203"]=67,["241,115"]=84,["261,189"]=84,["277,141"]=117, | |
| }, | |
| ["233,102"]={ | |
| ["155,148"]=195,["241,115"]=37,["276,97"]=81, | |
| }, | |
| ["241,115"]={ | |
| ["188,169"]=152,["230,163"]=78,["233,102"]=52,["276,97"]=70,["277,141"]=86, | |
| }, | |
| ["247,216"]={ | |
| ["201,286"]=155,["227,251"]=86,["228,210"]=54,["258,241"]=54,["261,189"]=57, | |
| }, | |
| ["258,241"]={ | |
| ["247,216"]=57, | |
| }, | |
| ["261,189"]={ | |
| ["228,210"]=83,["230,163"]=80,["247,216"]=74,["277,141"]=86, | |
| }, | |
| ["276,97"]={ | |
| ["233,102"]=97,["241,115"]=71,["277,141"]=71.5, | |
| }, | |
| ["277,141"]={ | |
| ["230,163"]=97,["241,115"]=81,["261,189"]=98.5,["276,97"]=74, | |
| }, | |
| }, | |
| } | |
| end | |
| e:SetScript("OnEvent",function()end) | |
| e:UnregisterEvent("PLAYER_ENTERING_WORLD") | |
| ze=nil | |
| collectgarbage() | |
| end | |
| local function jt(i,l,e,o,n)if(e<=0)then | |
| e=360+e | |
| end | |
| local t=i.tableSin[e] | |
| local e=i.tableCos[e] | |
| l:SetTexCoord(o-t,n+e,o+e,n+t,o-e,n-t,o+t,n-e) | |
| end | |
| local function T(r)local i,i,l,t | |
| if(r==true)and((bCrowbar==nil)or((bCrowbar)and(not bCrowbar.jewelEdit)))then | |
| l="Hide" | |
| else | |
| l="Show" | |
| end | |
| e.paused=r | |
| local i=n.gameMode | |
| for n=1,a do | |
| for e=1,h do | |
| t=o[n][e] | |
| if(i==c)or(i==k)then | |
| if(l=="Hide")then | |
| if not(t.oldAlphaJewel)then | |
| t.oldAlphaJewel=t:GetAlpha() | |
| t:SetAlpha(t.oldAlphaJewel/2) | |
| end | |
| else | |
| t:SetAlpha((t.oldAlphaJewel or(.5))*2) | |
| t.oldAlphaJewel=nil | |
| end | |
| else | |
| t[l](t) | |
| end | |
| end | |
| end | |
| if(i==k)then | |
| e.animator:Show() | |
| else | |
| e.animator[l](e.animator) | |
| if(i==ae)then | |
| if(l=="Show")then | |
| e.pausedText:Hide() | |
| else | |
| e.pausedText:Show() | |
| end | |
| end | |
| end | |
| local o=e.animator.animationStack | |
| for n=0,#o do | |
| if(n==0)then | |
| t=e.animator.hintObj | |
| else | |
| t=o[n] | |
| end | |
| if(t)then | |
| if(r==true)then | |
| if(i==c)or(i==k)then | |
| if(t:IsShown())then | |
| t.wasShown=true | |
| if not t.oldAlpha then | |
| t.oldAlpha=t:GetAlpha() | |
| if not(t.contents)then | |
| t:SetAlpha(t.oldAlpha/2) | |
| end | |
| end | |
| end | |
| else | |
| if(t:IsShown())then | |
| t.wasShown=true | |
| t:Hide() | |
| end | |
| end | |
| else | |
| if(i==c)then | |
| if(t.wasShown)then | |
| t.wasShown=nil | |
| if not(t.contents)then | |
| t:SetAlpha((t.oldAlpha or(.5))*2) | |
| end | |
| t.oldAlpha=nil | |
| end | |
| else | |
| if(t.wasShown)then | |
| t.wasShown=nil | |
| t:Show() | |
| end | |
| end | |
| end | |
| end | |
| end | |
| if(r)and(i~=k)then | |
| e.levelBar.timer:Hide() | |
| else | |
| if not n.gameOver and(n.gameMode)then | |
| e.levelBar.timer:Show() | |
| else | |
| e.levelBar.timer:Hide() | |
| end | |
| end | |
| end | |
| function e:UpdateFlightTimes()local t=e.flightOptionWindow | |
| if(#t.pathArray>0)then | |
| local o=d(t.timer.legJourney+.75) | |
| local n=B(t.pathArray,1) | |
| local i=B(t.pathArray,1) | |
| local l=B(t.pathArray,1) | |
| if(#t.pathArray>0)then | |
| o=o+1.35 | |
| end | |
| SetMapToCurrentZone() | |
| local e=GetCurrentMapContinent() | |
| if(l==0)or(math.abs(o-l)>5)then | |
| BejeweledData.flightTimes[e]=BejeweledData.flightTimes[e]or{} | |
| BejeweledData.flightTimes[e][n]=BejeweledData.flightTimes[e][n]or{} | |
| BejeweledData.flightTimes[e][n][i]=o | |
| else | |
| BejeweledData.flightTimes[e]=BejeweledData.flightTimes[e]or{} | |
| BejeweledData.flightTimes[e][n]=BejeweledData.flightTimes[e][n]or{} | |
| BejeweledData.flightTimes[e][n][i]=((BejeweledData.flightTimes[e][n][i]or(o))+o)/2 | |
| end | |
| end | |
| t.timer.legJourney=0 | |
| end | |
| function e:LoadAchievementEvents()local o=BejeweledProfile.skill | |
| if(o.gainFun14)then | |
| BejeweledData.gainFun14=true | |
| end | |
| if(BejeweledData.gainFun14)then | |
| o.gainFun14=true | |
| end | |
| BejeweledData.played=BejeweledData.played or{} | |
| BejeweledData.played[UnitName("player")]=BejeweledProfile.skill.games | |
| local t,t | |
| for t,e in pairs(BejeweledData.played)do | |
| K=K+e | |
| end | |
| local t=CreateFrame("Frame","BejeweledEventWatcher",UIParent) | |
| t:SetWidth(1) | |
| t:SetHeight(1) | |
| t:SetPoint("Top") | |
| t:Show() | |
| t.eventList={} | |
| t:SetScript("OnEvent",function(i,o,...)if n.gameMode and e.window:IsVisible()then | |
| local l,e,n | |
| e=1 | |
| for l=1,#t.eventList[o]do | |
| n=t.eventList[o][e](i,o,...) | |
| if(n==true)then | |
| B(i.eventList[o],e) | |
| else | |
| e=e+1 | |
| end | |
| end | |
| if#t.eventList[o]==0 then | |
| t.eventList[o]=nil | |
| i:UnregisterEvent(o) | |
| end | |
| end | |
| end) | |
| t.AddEvent=function(t,e,n)t.eventList[e]=t.eventList[e]or{} | |
| u(t.eventList[e],n) | |
| t:RegisterEvent(e) | |
| end | |
| if not o.gainFun1 then | |
| t:AddEvent("COMBAT_LOG_EVENT_UNFILTERED",function(t,t,...)local n=0 | |
| local t=select(2,...) | |
| if(t=="ENVIRONMENTAL_DAMAGE")then | |
| unitName,_,t,damageAmount=select(7,...) | |
| if(t=="FALLING")and(unitName==UnitName("player"))and(damageAmount)then | |
| local t=UnitHealth("player")-damageAmount | |
| if UnitIsDeadOrGhost("player")or(UnitHealth("player")<2)or(t<=0)then | |
| n=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK1A) | |
| end | |
| end | |
| end | |
| return(n~=0)end) | |
| end | |
| if not o.gainFun2 then | |
| t:AddEvent("UPDATE_BATTLEFIELD_STATUS",function(t,t,...)local t=0 | |
| local n | |
| for n=1,MAX_BATTLEFIELD_QUEUES do | |
| bgStatus=GetBattlefieldStatus(n) | |
| if(bgStatus=="queued")then | |
| t=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK1B) | |
| end | |
| end | |
| return(t~=0)end) | |
| end | |
| if not o.gainFun3 then | |
| e.lootText=string.gsub(LOOT_ITEM_SELF,"%%s","(.*)") | |
| t:AddEvent("CHAT_MSG_LOOT",function(t,t,...)local n=0 | |
| local t,o=select(1,...) | |
| if(string.find(t,e.lootText))then | |
| t=string.match(t,e.lootText)or("") | |
| local t=select(3,GetItemInfo(t)) | |
| if(t==3)then | |
| n=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK2A) | |
| end | |
| end | |
| return(n~=0)end) | |
| end | |
| if not o.gainFun4 then | |
| t:AddEvent("COMBAT_LOG_EVENT_UNFILTERED",function(t,t,...)local t=0 | |
| local i,l,o,l,l,l,n=select(2,...) | |
| if(i=="PARTY_KILL")and(o==UnitGUID("player"))and(n==UnitGUID("target"))then | |
| if UnitCreatureType("target")=="Critter"then | |
| t=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK2B) | |
| end | |
| end | |
| return(t~=0)end) | |
| end | |
| if not o.gainFun5 then | |
| t:AddEvent("RESURRECT_REQUEST",function(t,t,...)local e=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK2C) | |
| return(e~=0)end) | |
| end | |
| if not o.gainFun6 then | |
| e.lootText=string.gsub(LOOT_ITEM_SELF,"%%s","(.*)") | |
| t:AddEvent("CHAT_MSG_LOOT",function(t,t,...)local n=0 | |
| local t,o=select(1,...) | |
| if(string.find(t,e.lootText))then | |
| t=string.match(t,e.lootText)or("") | |
| local t=select(3,GetItemInfo(t)) | |
| if(t==4)then | |
| n=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK3A) | |
| end | |
| end | |
| return(n~=0)end) | |
| end | |
| if not o.gainFun7 then | |
| hooksecurefunc("ConfirmReadyCheck",function(t)if not o.gainFun7 then | |
| if(t)then | |
| skillTrigger=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK3B) | |
| end | |
| end | |
| end) | |
| end | |
| if not o.gainFun8 then | |
| t:AddEvent("COMBAT_LOG_EVENT_UNFILTERED",function(t,t,...)local o=0 | |
| local t,l,l,l,l,i,l,l,n=select(2,...) | |
| if(i==UnitName("player"))and(t~="FALLING")and(n)then | |
| if(t=="SWING_DAMAGE")or(t=="RANGE_DAMAGE")or(t=="SPELL_DAMAGE")or(t=="SPELL_PERIODIC_DAMAGE")then | |
| n=D(n)or(0) | |
| local t=UnitHealth("player")-n | |
| if(t<=0)or UnitIsDeadOrGhost("player")or(UnitHealth("player")<=2)then | |
| o=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK3C) | |
| end | |
| end | |
| end | |
| return(o~=0)end) | |
| end | |
| if not o.gainFun9 then | |
| t:AddEvent("COMBAT_LOG_EVENT_UNFILTERED",function(t,t,...)local t=0 | |
| local i,n,l,l,o=select(2,...) | |
| if(i=="PARTY_KILL")and(n==UnitGUID("player"))and(o==UnitGUID("target"))then | |
| if UnitClassification("target")=="elite"then | |
| t=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK4A) | |
| end | |
| end | |
| return(t~=0)end) | |
| end | |
| if not o.gainFun10 then | |
| t:AddEvent("RAID_INSTANCE_WELCOME",function(t,t,...)local e=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK4B) | |
| return(e~=0)end) | |
| end | |
| if not o.gainFun11 then | |
| e.repText=string.gsub(FACTION_STANDING_CHANGED,"%%s","(.*)")t:AddEvent("CHAT_MSG_SYSTEM",function(t,t,...)local t=0 | |
| local n=select(1,...) | |
| if string.find(n,e.repText)then | |
| t=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK4C) | |
| end | |
| return(t~=0)end) | |
| end | |
| if not o.gainFun12 then | |
| t:AddEvent("CHAT_MSG_COMBAT_HONOR_GAIN",function(t,t,...)local e=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK5A) | |
| return(e~=0)end) | |
| end | |
| if not o.gainFun13 then | |
| t:AddEvent("COMBAT_LOG_EVENT_UNFILTERED",function(t,t,...)local n=0 | |
| local t,o,l,l,i=select(2,...) | |
| if(t=="PARTY_KILL")and(o==UnitGUID("player"))and(i==UnitGUID("target"))then | |
| local t=UnitClassification("target") | |
| if(t=="rare")or(t=="rareelite")then | |
| n=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK5B) | |
| end | |
| end | |
| return(n~=0)end) | |
| end | |
| if(not o.gainFun14)then | |
| t:AddEvent("PLAYER_LEVEL_UP",function(t,t,...)local e=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK6A) | |
| return(e~=0)end) | |
| end | |
| if(not o.gainFun15)then | |
| t:AddEvent("UPDATE_BATTLEFIELD_SCORE",function(t,t,...)local n=0 | |
| local t | |
| teamName1,oldTeamRating1,newTeamRating1=GetBattlefieldTeamInfo(0) | |
| teamName2,oldTeamRating2,newTeamRating2=GetBattlefieldTeamInfo(1) | |
| if(oldTeamRating1~=0)and(oldTeamRating2~=0)then | |
| if(teamName1==GetArenaTeam(1))or(teamName1==GetArenaTeam(2))or(teamName1==GetArenaTeam(3))then | |
| if(oldTeamRating1<newTeamRating1)then | |
| t=true | |
| end | |
| elseif(teamName2==GetArenaTeam(1))or(teamName2==GetArenaTeam(2))or(teamName2==GetArenaTeam(3))then | |
| if(oldTeamRating2<newTeamRating2)then | |
| t=true | |
| end | |
| end | |
| end | |
| if t then | |
| n=e.skillBar:CheckSkill(e.const.SKILLTYPE_FUN,e.const.SKILL_FUNRANK6B) | |
| end | |
| return(n~=0)end) | |
| end | |
| end | |
| function e:VariablesLoaded()if IsInGuild()then | |
| GuildRoster() | |
| end | |
| BejeweledProfile.skill.friendList=BejeweledProfile.skill.friendList or{c=0} | |
| BejeweledProfile.skill.guildList=BejeweledProfile.skill.guildList or{c=0} | |
| e:UpdateSavedVariablesDatabase() | |
| e:Initialize_OptionsScreen() | |
| e:LoadAchievementEvents() | |
| e.LoadAchievementEvents=nil | |
| e.Initialize_OptionsScreen=nil | |
| e.CreateCheckbox=nil | |
| e.CreateCheckbox_OnClick=nil | |
| e.CreateSlider=nil | |
| e.CreateSlider_OnValueChanged=nil | |
| if(BejeweledProfile.settings.openLogin)then | |
| e.menuWindow:Hide() | |
| else | |
| e.window:Hide() | |
| end | |
| if not BejeweledProfile.settings.hideMinimap then | |
| e.minimap:Show() | |
| else | |
| e.minimap:Hide() | |
| end | |
| if(BejeweledProfile.settings.minimapDetached==nil)then | |
| e.minimap:SetPoint("Center",Minimap,"Center",-(76*math.cos(math.rad(BejeweledProfile.settings.minimapAngle or(0)))),(76*math.sin(math.rad(BejeweledProfile.settings.minimapAngle or(0)))))else | |
| e.minimap:SetPoint("Center",UIParent,"bottomleft",BejeweledProfile.settings.minimapX,BejeweledProfile.settings.minimapY) | |
| end | |
| e.VariablesLoaded=nil | |
| if e.skillLimit~=true then | |
| if(BejeweledProfile.skill.skillPoints==375)and(BejeweledProfile.skill.rank==5)then | |
| end | |
| end | |
| if(Bejeweled_Fu)then | |
| Bejeweled_Fu.game=e.window | |
| end | |
| if(Bejeweled_Titan)then | |
| Bejeweled_Titan.game=e.window | |
| end | |
| end | |
| function e:ShowLegal()e.window:SetWidth(q) | |
| e.window:SetHeight(me) | |
| e.window:ClearAllPoints() | |
| e.window:SetPoint("Center") | |
| e.window:SetAlpha(1) | |
| e.window.splash.firstGame=true | |
| local t=CreateFrame("Frame","BejeweledLegalPopup",e.window) | |
| t:SetWidth(f*2) | |
| t:SetHeight(L+32) | |
| t:SetToplevel(true) | |
| t:SetFrameStrata("High")t:SetPoint("Center") | |
| t:EnableMouse(true) | |
| local n=C() | |
| n.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"n.bgFile=l.."windowBackground" | |
| n.edgeSize=32 | |
| n.tileSize=128 | |
| n.insets.top=3 | |
| t:SetBackdrop(n) | |
| t:SetBackdropColor(.6,.6,.6,1) | |
| t:SetBackdropBorderColor(1,.8,.45) | |
| t:SetMovable(true) | |
| local n=t:CreateFontString(nil,"Overlay") | |
| n:SetFont(STANDARD_TEXT_FONT,12,"Outline") | |
| n:SetTextColor(1,1,1) | |
| n:SetPoint("Top",0,-38) | |
| n:SetWidth(f*1.8) | |
| n:SetText("Bejeweled\n\n\n".."(c)2000, 2008 PopCap Games, Inc. All rights reserved. This application is ".."being made available free of charge for your personal, non-commercial entertainment "..'use, and is provided "as is", without any warranties. PopCap Games, Inc. will have '.."no liability to you or anyone else if you choose to use it. See readme.txt for details.") | |
| n:Show() | |
| local t=CreateFrame("Button","",t,"OptionsButtonTemplate")t:SetPoint("Bottom",0,16) | |
| t:SetText(OKAY) | |
| t:SetScript("OnClick",function(t)t:GetParent():Hide() | |
| BejeweledData.legalDisplayed=true | |
| e.window.splash.elapsed=0 | |
| end) | |
| end | |
| local function Ee(e,t,n,e)if(t=="")then | |
| return | |
| end | |
| local e | |
| if(n=="WHISPER")then | |
| e=BejeweledProfile.scoreList.friends | |
| else | |
| e=BejeweledProfile.scoreList.guild | |
| end | |
| j(e,strsplit("*",t)) | |
| end | |
| function e:CheckName(o,n)if(n~="PopCap Games")then | |
| local t=BejeweledProfile.skill[o] | |
| if(o=="friendList")and not BejeweledProfile.skill["gainAchieve"..e.const.SKILL_ACHIEVE5B]then | |
| if not t[n]then | |
| t[n]=true | |
| t.c=t.c+1 | |
| if(t.c>10)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_ACHIEVEMENT,e.const.SKILL_ACHIEVE5B) | |
| end | |
| end | |
| elseif(o=="guildList")and not BejeweledProfile.skill["gainAchieve"..e.const.SKILL_ACHIEVE6B]then | |
| if not t[n]then | |
| t[n]=true | |
| t.c=t.c+1 | |
| if(t.c>10)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_ACHIEVEMENT,e.const.SKILL_ACHIEVE6B) | |
| end | |
| end | |
| end | |
| end | |
| end | |
| local function dt(l,a)local i,n,o,i,i,t | |
| local i=UnitName("player") | |
| if(a=="WHISPER")then | |
| n=BejeweledProfile.scoreList.friends | |
| t="" | |
| for a=1,10 do | |
| o=n.classic[a][1] | |
| e:CheckName("friendList",o) | |
| if(o==i)then | |
| if(t~="")then | |
| t=t.."*" | |
| end | |
| t=t..n.classic[a][2]..i.."*"..(n.classic[a][4]or"")end | |
| if(string.len(t)>180)then | |
| e.network:Send("HSSync",t,"WHISPER",l) | |
| t="" | |
| end | |
| o=n.timed[a][1] | |
| e:CheckName("friendList",o) | |
| if(o==i)then | |
| if(t~="")then | |
| t=t.."*" | |
| end | |
| t=t..n.timed[a][2]..i.."*"..(n.timed[a][4]or"")end | |
| if(string.len(t)>180)then | |
| e.network:Send("HSSync",t,"WHISPER",l) | |
| t="" | |
| end | |
| end | |
| if(t~="")then | |
| e.network:Send("HSSync",t,"WHISPER",l) | |
| end | |
| else | |
| n=BejeweledProfile.scoreList.guild | |
| t="" | |
| local r=0 | |
| local d | |
| for a=1,GetNumGuildMembers(true)do | |
| i=GetGuildRosterInfo(a) | |
| d=nil | |
| for a=1,10 do | |
| o=n.classic[a][1] | |
| if(o==i)then | |
| d=true | |
| if(t~="")then | |
| t=t.."*" | |
| end | |
| t=t..n.classic[a][2]..i.."*"..(n.classic[a][4]or"")r=r+1 | |
| end | |
| if(string.len(t)>180)then | |
| e.network:Send("HSSync",t,"GUILD",l) | |
| t="" | |
| end | |
| o=n.timed[a][1] | |
| if(o==i)then | |
| d=true | |
| if(t~="")then | |
| t=t.."*" | |
| end | |
| t=t..n.timed[a][2]..i.."*"..(n.timed[a][4]or"")r=r+1 | |
| end | |
| if(string.len(t)>180)then | |
| e.network:Send("HSSync",t,"GUILD",l) | |
| t="" | |
| end | |
| end | |
| if(d)then | |
| e:CheckName("guildList",i) | |
| end | |
| if(r>=20)then | |
| break | |
| end | |
| end | |
| if(t~="")then | |
| e.network:Send("HSSync",t,"GUILD",l) | |
| end | |
| end | |
| end | |
| function e:ScrubLists()local l,d,d,i,o,d,d,n,t,a,r | |
| local S=UnitName("player") | |
| for d=1,2 do | |
| if(d==1)then | |
| n=BejeweledProfile.scoreList.friends | |
| else | |
| n=BejeweledProfile.scoreList.guild | |
| end | |
| for s=1,2 do | |
| if(s==1)then | |
| o=1e3 | |
| scoreOffset=100 | |
| t="classic" | |
| else | |
| o=2.8 | |
| scoreOffset=.2 | |
| t="timed" | |
| end | |
| if(BejeweledProfile.settings.hideDuplicates)then | |
| e.nameList=e.nameList or{} | |
| for t,n in pairs(e.nameList)do | |
| e.nameList[t]=nil | |
| end | |
| l=1 | |
| for a=1,10 do | |
| i=n[t][l][1] | |
| if(i~="PopCap Games")then | |
| if not e.nameList[i]then | |
| e.nameList[i]=true | |
| else | |
| if(l<10)then | |
| for e=l,9 do | |
| n[t][e][1]=n[t][e+1][1] | |
| n[t][e][2]=n[t][e+1][2] | |
| n[t][e][3]=n[t][e+1][3] | |
| if(n[t][e][1]=="PopCap Games")then | |
| o=n[t][e][3]-scoreOffset | |
| end | |
| end | |
| l=l-1 | |
| end | |
| n[t][10][1]="PopCap Games" | |
| n[t][10][2]=1 | |
| n[t][10][3]=o | |
| end | |
| end | |
| l=l+1 | |
| end | |
| end | |
| if(s==1)then | |
| o=1e3 | |
| scoreOffset=100 | |
| else | |
| o=2.8 | |
| scoreOffset=.2 | |
| end | |
| for e=1,10 do | |
| i=n[t][e][1] | |
| if(i~="PopCap Games")and(i~=S)then | |
| a=nil | |
| if(d==1)then | |
| for e=1,GetNumFriends()do | |
| r=GetFriendInfo(e) | |
| if(i==r)then | |
| a=true | |
| break | |
| end | |
| end | |
| else | |
| for e=1,GetNumGuildMembers(true)do | |
| r=GetGuildRosterInfo(e) | |
| if(i==r)then | |
| a=true | |
| break | |
| end | |
| end | |
| end | |
| if not a then | |
| for e=e,9 do | |
| n[t][e][1]=n[t][e+1][1] | |
| n[t][e][2]=n[t][e+1][2] | |
| n[t][e][3]=n[t][e+1][3] | |
| if(n[t][e][1]=="PopCap Games")then | |
| o=n[t][e][3]-scoreOffset | |
| end | |
| end | |
| n[t][10][1]="PopCap Games" | |
| n[t][10][2]=1 | |
| n[t][10][3]=o | |
| o=o-scoreOffset | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| local function St()local t,t,i | |
| local t=BejeweledProfile.settings.savedState | |
| if not t then | |
| BejeweledProfile.settings.savedState={} | |
| t=BejeweledProfile.settings.savedState | |
| for e=1,a+1 do | |
| t[e]={} | |
| end | |
| end | |
| for n=1,a do | |
| for e=1,h do | |
| i=o[n][e].contents | |
| if(o[n][e].bigStar)then | |
| i=i+10 | |
| end | |
| t[n][e]=i | |
| end | |
| end | |
| t=t[a+1] | |
| local n=n | |
| t[1]=n.score | |
| t[2]=n.pointsToLevelUp | |
| t[3]=n.level | |
| t[4]=n.moves | |
| t[5]=n.largestCascade | |
| t[6]=n.largestCombo | |
| t[7]=e.levelBar.timer.timeElapsed | |
| t[8]=n.pointMultiplier | |
| t[9]=P(x(t[1],4),H(UnitName("player"))) | |
| end | |
| function e:NumberWithCommas(e)local e=string.gsub(e,"(%d)(%d%d%d)$","%1,%2")local t | |
| while true do | |
| e,t=string.gsub(e,"(%d)(%d%d%d),","%1,%2,")if t==0 then | |
| break | |
| end | |
| end | |
| return e | |
| end | |
| function e:SecondsConvert(e)local t=d(e/60) | |
| e=math.ceil(e-(t*60)) | |
| return t,e | |
| end | |
| local function Q(e,n,o)local t | |
| for n,o in pairs(e)do | |
| t=R(o) | |
| if(t=="number")then | |
| e[n]=nil | |
| end | |
| end | |
| e.markX=nil | |
| e.markY=nil | |
| e.spawnHyper=nil | |
| e.adj=nil | |
| e.swapJewel=nil | |
| e.x=(n-1)*b | |
| e.y=(o-1)*p | |
| e.gridX=n | |
| e.gridY=o | |
| e.texture:SetTexCoord(unpack(F[1])) | |
| e.texture:SetWidth(b) | |
| e.texture:SetHeight(p) | |
| e.fxType=E | |
| e.fxFrame=1 | |
| e:Show() | |
| e:SetAlpha(1) | |
| e:ClearAllPoints() | |
| e:SetWidth(b) | |
| e:SetHeight(p) | |
| e:SetPoint("Topleft",e.x,-e.y) | |
| e.selector:Hide() | |
| e.glowLevel=0 | |
| end | |
| local function Ke()local n,n,t | |
| local n=e.animator | |
| for i=1,a do | |
| for e=1,h do | |
| t=o[i][e] | |
| if(t.fxType~=g)then | |
| t.fxType=y | |
| else | |
| t.wasHyper=true | |
| t.contents=0 | |
| t.hyperGemContents=nil | |
| end | |
| t.moving=at | |
| t.yVel=(4-m(1,5)/2)t.xVel=((m(1,11)-6)/2) | |
| n:Add(t) | |
| end | |
| end | |
| end | |
| local function de(t,n,f,i)local p,p,p,p,s,p,c,d,S,e | |
| e=m(1,7) | |
| if not i then | |
| Q(o[n][t],t,n) | |
| o[n][t].contents=0 | |
| end | |
| if(f)then | |
| for i=1,7 do | |
| c=true | |
| for i=1,6 do | |
| s=0 | |
| S=r[i][4] | |
| if S==0 then | |
| S=1 | |
| end | |
| for l=r[i][3],r[i][4]*2,math.ceil(S)do | |
| d=r[i][2] | |
| if d==0 then | |
| d=1 | |
| end | |
| for i=r[i][1],r[i][2]*2,math.ceil(d)do | |
| if(n+l)>0 and(n+l)<=a then | |
| if(t+i)>0 and(t+i)<=h then | |
| if o[n+l][t+i].contents==e then | |
| s=s+1 | |
| end | |
| end | |
| end | |
| end | |
| end | |
| if(s>1)then | |
| e=e+1 | |
| if e>7 then | |
| e=1 | |
| end | |
| c=false | |
| break | |
| end | |
| end | |
| if c==true then | |
| break | |
| end | |
| end | |
| end | |
| local t=o[n][t]t.contents=e | |
| t.texture:SetTexture(l.."gem_"..U[e]) | |
| t.texture:SetTexCoord(unpack(F[1])) | |
| t.highlight:SetTexture(l.."shine_"..U[e]) | |
| t.highlight:SetTexCoord(0,0,0,0) | |
| if not f then | |
| BejeweledProfile.stats.totalGemsMatched=BejeweledProfile.stats.totalGemsMatched+1 | |
| end | |
| end | |
| local function R(t)if(t.contents)and(t.contents>0)and(t.contents<=7)then | |
| t.texture:SetTexture(l.."gem_"..U[t.contents]) | |
| t.texture:SetTexCoord(unpack(F[1])) | |
| t.highlight:SetTexture(l.."shine_"..U[t.contents]) | |
| t.highlight:SetTexCoord(0,0,0,0) | |
| t.glow:SetTexture(l.."highlight_"..U[t.contents]) | |
| t.glow:SetTexCoord(0,1,0,1) | |
| else | |
| if(t.contents==9)then | |
| e.animator:CreateHyperGem(t) | |
| else | |
| t.texture:SetTexCoord(0,0,0,0) | |
| t.glow:SetTexCoord(0,0,0,0) | |
| end | |
| end | |
| end | |
| local function j(l,s,r)local d,d,i,t | |
| local d=UnitName("player") | |
| t=n | |
| t.gameOver=false | |
| t.paused=false | |
| t.score=0 | |
| t.combo=0 | |
| t.level=1 | |
| t.moveAllowed=true | |
| t.selectedJewel=nil | |
| t.pointsToLevelUp=500*Ce[l] | |
| t.gameMode=l | |
| t.explosions=0 | |
| t.bigStarSpawn=0 | |
| t.hyperSpawn=0 | |
| t.moves=0 | |
| t.gemsCleared=0 | |
| if(e.window.splash.firstGame==true)then | |
| e.window.splash.firstGame=nil | |
| e.window.splash:Hide() | |
| end | |
| for t=1,#e.animator.animationStack do | |
| i=e.animator.animationStack[1]if(i.fxType==ye)then | |
| u(e.animator.bigStarQueue,i) | |
| i:ClearAllPoints() | |
| i:SetAlpha(0) | |
| if(i.parent)then | |
| i.parent.bigStar=nil | |
| end | |
| i.parent=nil | |
| i:Hide() | |
| elseif(i.fxType==Oe)then | |
| u(e.animator.explosionQueue,i) | |
| i:Hide() | |
| elseif(i.fxType==te)then | |
| u(e.animator.floatingTextQueue,i) | |
| i:Hide() | |
| elseif(i.fxType==He)then | |
| u(e.animator.shardQueue,i) | |
| i:Hide() | |
| elseif(i.fxType==De)then | |
| u(e.animator.lightwaveQueue,i) | |
| i:GetParent().lightWaveObj=nil | |
| i:Hide() | |
| elseif(i.fxType==We)then | |
| u(e.animator.lightningQueue,i) | |
| i.highlight:Hide() | |
| i:Hide() | |
| end | |
| B(e.animator.animationStack,1)i.animated=nil | |
| end | |
| for t=1,a do | |
| for e=1,h do | |
| Q(o[t][e],e,t) | |
| o[t][e].wasHyper=nil | |
| end | |
| end | |
| if(Bejeweled_Fu)then | |
| Bejeweled_Fu.currentMode=l | |
| end | |
| if(Bejeweled_Titan)then | |
| Bejeweled_Titan.currentMode=l | |
| end | |
| if(l==c)then | |
| t.statDB=BejeweledProfile.stats.classic | |
| if(t.statDB.highestLevel==0)then | |
| t.statDB.highestLevel=1 | |
| end | |
| BejeweledProfile.settings.classicInProgress=true | |
| else | |
| BejeweledProfile.settings.classicInProgress=nil | |
| t.statDB=BejeweledProfile.stats.timed | |
| end | |
| t.largestCascade=0 | |
| t.largestCombo=0 | |
| t.leveledUp=nil | |
| t.levelingUp=nil | |
| e.pausedText:Hide() | |
| e.flightOptionWindow.learning=nil | |
| e.levelBar:SetMode(l,s) | |
| e.animator.newGameStart=true | |
| e.animator.countdownState=4 | |
| t.moveAllowed=nil | |
| if(l==ae)then | |
| e.levelBar:StopTimer() | |
| elseif(l==k)then | |
| e.animator.countdownState=0 | |
| t.moveAllowed=nil | |
| end | |
| e.gameStatusText:Hide() | |
| e.gameStatusText.background:Hide() | |
| e.summaryScreen:Hide() | |
| e.summaryScreen.bragScreen:Hide()e.aboutScreen:Hide() | |
| e.featsOfSkillScreen:Hide() | |
| e.optionsScreen:Hide() | |
| e.levelBarButton:Hide() | |
| e.levelBarButton:SetID(0) | |
| e.levelBarButton.text:SetText("Return to Game") | |
| e.animator.spawningLevel=true | |
| e.animator.animationStatus=pe | |
| e.animator.spawnedJewels=nil | |
| e.animator.hintObj:Hide() | |
| e.animator.hintObj:ClearAllPoints() | |
| if(math)and(math.randomseed)then | |
| math.randomseed(math.random(0,214748364)+(GetTime()*1e3)) | |
| end | |
| for e=1,a do | |
| de(e,e,true) | |
| o[e][e].contents=0 | |
| for t=e+1,h do | |
| de(t,e,true) | |
| o[e][t].contents=0 | |
| end | |
| for t=e+1,a do | |
| de(e,t,true) | |
| o[t][e].contents=0 | |
| end | |
| end | |
| if(r)then | |
| e.animator.spawningLevel=nil | |
| e.animator.animationStatus=V | |
| local n=BejeweledProfile.settings.savedState | |
| local l | |
| local r=e.animator | |
| for e=1,a do | |
| for t=1,h do | |
| i=o[e][t] | |
| l=n[e][t] | |
| if(l<9)then | |
| i.contents=l | |
| elseif(l==9)then | |
| r:CreateHyperGem(i) | |
| r:Add(i) | |
| else | |
| i.contents=l-10 | |
| i.bigStar=r:CreateBigStar(0,0,i) | |
| r:Add(i.bigStar) | |
| end | |
| R(i) | |
| end | |
| end | |
| n=n[a+1] | |
| t.score=n[1] | |
| t.pointsToLevelUp=n[2] | |
| t.level=n[3] | |
| t.moves=n[4] | |
| t.largestCascade=n[5] | |
| t.largestCombo=n[6] | |
| t[I]=fe(n[9],H(d))if(t[I])then | |
| t[I]=X(t[I]) | |
| else | |
| t[I]=0 | |
| end | |
| e.levelBar.timer.timeElapsed=n[7] | |
| t.pointMultiplier=n[8] | |
| e.animator.countdownState=0 | |
| e.levelBar.score=t.score | |
| e.levelBar.maxScore=t.pointsToLevelUp | |
| e.levelText:SetText(t.level) | |
| e.levelBar:UpdateBar() | |
| end | |
| if(t.level>1)then | |
| we=true | |
| else | |
| we=nil | |
| end | |
| T(false) | |
| end | |
| local function ee(t,i)local o | |
| if(n.selectedJewel and((n.selectedJewel==t)or(n.selectedJewel.swapJewel==t)))or(i)then | |
| o=true | |
| if not(t.explode)then | |
| t.bigStarSpawn=e.animator:CreateBigStar(0,0,t) | |
| t.bigStarSpawn:Hide() | |
| e.animator:Add(t.bigStarSpawn) | |
| BejeweledProfile.stats.totalPowerGems=BejeweledProfile.stats.totalPowerGems+1 | |
| if not BejeweledProfile.skill["gainAchieve"..e.const.SKILL_ACHIEVE3A]then | |
| if(BejeweledProfile.stats.totalPowerGems>=100)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_ACHIEVEMENT,e.const.SKILL_ACHIEVE3A) | |
| end | |
| end | |
| end | |
| end | |
| return o | |
| end | |
| local function Z(t,i)local o | |
| if(n.selectedJewel and((n.selectedJewel==t)or(n.selectedJewel.swapJewel==t)))or(i)then | |
| if not(t.bigStar)then | |
| t.hyperGemSpawn=true | |
| t.fxType=A | |
| e.animator:Add(t) | |
| o=true | |
| BejeweledProfile.stats.totalHyperGems=BejeweledProfile.stats.totalHyperGems+1 | |
| M(0,t,9,nil,nil,0,nil,nil,true)if not BejeweledProfile.skill["gainAchieve"..e.const.SKILL_ACHIEVE5A]then | |
| if(BejeweledProfile.stats.totalHyperGems>=50)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_ACHIEVEMENT,e.const.SKILL_ACHIEVE5A) | |
| end | |
| end | |
| end | |
| end | |
| return o | |
| end | |
| local function Le(t,o)if(o==Ne)then | |
| t.markX=true | |
| else | |
| t.markY=true | |
| end | |
| if(t.bigStar)then | |
| t.explode=1 | |
| n.explosions=n.explosions+1 | |
| end | |
| t.fxType=A | |
| t.fxFrame=1 | |
| t.highlight:SetAlpha(0) | |
| e.animator:Add(t) | |
| return(t.explode or 0) | |
| end | |
| local function Q()local e,e,n,i,e,c,e,f,d,s,S,l | |
| for e=1,a do | |
| for t=1,h do | |
| for p=1,4 do | |
| i=t+r[p][1] | |
| n=e+r[p][3] | |
| if(i>0)and(i<=h)and(n>0)and(n<=a)then | |
| c=o[e][t] | |
| f=nil | |
| if(c.contents==9)then | |
| f=true | |
| end | |
| if(o[n][i].contents~=0)then | |
| o[e][t]=o[n][i] | |
| o[n][i]=c | |
| d=t | |
| s=t | |
| while((d>1)and(o[e][d-1].contents~=0)and(o[e][t].contents==o[e][d-1].contents))do | |
| d=d-1 | |
| end | |
| while((s<h)and(o[e][s+1].contents~=0)and(o[e][t].contents==o[e][s+1].contents))do | |
| s=s+1 | |
| end | |
| S=e | |
| l=e | |
| while((S>1)and(o[S-1][t].contents~=0)and(o[e][t].contents==o[S-1][t].contents))do | |
| S=S-1 | |
| end | |
| while((l<a)and(o[l+1][t].contents~=0)and(o[e][t].contents==o[l+1][t].contents))do | |
| l=l+1 | |
| end | |
| c=o[e][t]o[e][t]=o[n][i] | |
| o[n][i]=c | |
| if((s-d)>=2)or((l-S)>=2)then | |
| f=true | |
| end | |
| end | |
| if f then | |
| return c | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| function e:TotalTime(t)local e="" | |
| t=d(t) | |
| if(t>=86400)then | |
| e=e..d(t/86400).." d"t=mod(t,86400) | |
| end | |
| if(t>=3600)then | |
| if(e~="")then | |
| e=e.." " | |
| end | |
| e=e..d(t/3600).." hr"t=mod(t,3600) | |
| end | |
| if(t>=60)then | |
| if(e~="")then | |
| e=e.." " | |
| end | |
| e=e..d(t/60).." min"t=mod(t,60) | |
| end | |
| if(t==0)then | |
| if(e=="")then | |
| e="0 s" | |
| end | |
| else | |
| if(e~="")then | |
| e=e.." " | |
| end | |
| e=e..d(t).." s" | |
| end | |
| return e | |
| end | |
| function e:Print(o,n,e,t)DEFAULT_CHAT_FRAME:AddMessage(o,n,e,t) | |
| end | |
| local function Se(t)local e | |
| if(t)then | |
| e=n.nextSelectedJewel | |
| n.nextSelectedJewel=nil | |
| else | |
| e=n.selectedJewel | |
| n.selectedJewel=nil | |
| end | |
| if(e)then | |
| if(e.fxType~=g)then | |
| e.fxEnd=true | |
| end | |
| e.selector:Hide() | |
| e.mouseX=nil | |
| e.mouseY=nil | |
| end | |
| end | |
| local function Me()local o=e.animator | |
| local t=e.gameStatusText | |
| o.hintObj:Hide() | |
| o.hintObj.fxType=S | |
| n.gameOver=true | |
| n.moveAllowed=nil | |
| n.lastGameMode=n.gameMode | |
| if(Bejeweled_Fu)then | |
| Bejeweled_Fu.currentMode=nil | |
| Bejeweled_Fu.lastScore=e:NumberWithCommas(n.score) | |
| end | |
| if(Bejeweled_Titan)then | |
| Bejeweled_Titan.currentMode=nil | |
| Bejeweled_Titan.lastScore=e:NumberWithCommas(n.score) | |
| end | |
| e.levelBar:StopTimer() | |
| if(n.gameMode==c)then | |
| t:SetText("No more moves") | |
| e.sound:Play("NoMoreMoves") | |
| local e,e | |
| for t=1,a do | |
| for e=1,h do | |
| BejeweledProfile.settings.savedState[t][e]=0 | |
| end | |
| end | |
| for e=1,#BejeweledProfile.settings.savedState[a+1]do | |
| BejeweledProfile.settings.savedState[a+1][e]=0 | |
| end | |
| BejeweledProfile.settings.classicInProgress=nil | |
| else | |
| t:SetText("Time's up") | |
| e.sound:Play("TimesUp") | |
| end | |
| BejeweledProfile.skill.games=BejeweledProfile.skill.games+1 | |
| K=K+1 | |
| if not BejeweledProfile.skill["gainAchieve"..e.const.SKILL_ACHIEVE2B]then | |
| if(K>=100)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_ACHIEVEMENT,e.const.SKILL_ACHIEVE2B) | |
| end | |
| end | |
| if not BejeweledProfile.skill["gainAchieve"..e.const.SKILL_ACHIEVE4B]then | |
| if(K>=1e3)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_ACHIEVEMENT,e.const.SKILL_ACHIEVE4B) | |
| end | |
| end | |
| t:Show() | |
| t.background:Show() | |
| Se() | |
| Se(true) | |
| o.animationStatus=Fe | |
| Ke() | |
| e.sound:Play("WipeBoard") | |
| end | |
| local function At(a,o,i,n,t,e,l)local e=CreateFrame("Frame","",e) | |
| e:SetPoint("Topleft",o,-i) | |
| e:SetWidth(n) | |
| e:SetHeight(t) | |
| e:Show() | |
| if(l)then | |
| e.texture=e:CreateTexture(nil,"OVERLAY") | |
| else | |
| e.texture=e:CreateTexture(nil,"ART") | |
| end | |
| e.texture:SetWidth(n) | |
| e.texture:SetHeight(t) | |
| e.texture:SetPoint("Center") | |
| e.texture:Show() | |
| e.highlight=e:CreateTexture(nil,"OVERLAY") | |
| e.highlight:SetWidth(n) | |
| e.highlight:SetHeight(t) | |
| e.highlight:SetBlendMode("add") | |
| e.highlight:SetPoint("Center") | |
| e.highlight:Show() | |
| e.x=o | |
| e.y=i | |
| return e | |
| end | |
| local function tt(n,i,o,t)local e=e.animator:CreateImage(n,i,b,p,o) | |
| e.texture:SetTexture(l.."gem_"..U[t]) | |
| e.texture:SetTexCoord(0,0,0,0) | |
| e.highlight:SetTexture(l.."shine_"..U[t]) | |
| e.highlight:SetTexCoord(0,0,0,0) | |
| e.selector=e:CreateTexture(nil,"OVERLAY") | |
| e.selector:SetTexture(l.."selector") | |
| e.selector:SetHeight(p) | |
| e.selector:SetWidth(b) | |
| e.selector:SetPoint("Center") | |
| e.selector:Hide() | |
| e.glow=e:CreateTexture(nil,"OVERLAY") | |
| e.glow:SetHeight(p) | |
| e.glow:SetWidth(b) | |
| e.glow:SetPoint("Topleft",e.texture) | |
| e.glow:SetPoint("Bottomright",e.texture) | |
| e.glow:SetAlpha(0) | |
| e.glowLevel=0 | |
| e.fxType=E | |
| e.fxFrame=1 | |
| return e | |
| end | |
| local function It(t,e)e.texture:SetTexture(l.."hypergem") | |
| e.texture:SetTexCoord(unpack(O[1])) | |
| e.highlight:SetTexture(l.."shine_white") | |
| e.highlight:SetTexCoord(0,0,0,0) | |
| e.glow:SetTexCoord(0,0,0,0) | |
| e.fxType=g | |
| e.fxFrame=1 | |
| e.contents=9 | |
| end | |
| local function Ht(t,o,i,n)local e=t.bigStarQueue[1] | |
| if e then | |
| B(t.bigStarQueue,1) | |
| else | |
| e=t:CreateImage(o,i,b,p,n,true) | |
| e.texture:SetTexture(l.."bigstar") | |
| e.texture:SetHeight(lt) | |
| e.texture:SetWidth(Ue) | |
| e.highlight:SetTexture(l.."bigstar") | |
| e.highlight:SetHeight(lt) | |
| e.highlight:SetWidth(Ue) | |
| end | |
| e:ClearAllPoints() | |
| e:SetPoint("Topleft",n,"Topleft") | |
| e.fxType=ye | |
| e.fxFrame=1 | |
| e.fxFrame2=1 | |
| e.fxAlpha=100 | |
| e.fxAlphaStep=-3 | |
| e:SetAlpha(1) | |
| e:Show() | |
| e.parent=n | |
| return e | |
| end | |
| local function Ot(n,i,a,o)local t=n.explosionQueue[1] | |
| if t then | |
| B(n.explosionQueue,1) | |
| else | |
| t=n:CreateImage(i,a,b,p,e.gameBoard)t.texture:SetTexture(l.."explosion") | |
| t.texture:SetHeight(Qe) | |
| t.texture:SetWidth(qe) | |
| end | |
| t.x=o.x | |
| t.y=o.y | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",e.gameBoard,"Topleft",t.x,-t.y) | |
| t.texture:SetTexCoord(unpack(J[1])) | |
| t:Show() | |
| t.fxType=Oe | |
| t.fxFrame=1 | |
| e.sound:Play("Explosion") | |
| return t | |
| end | |
| local function Et(t,n)if not t.hintObj then | |
| t.hintObj=t:CreateImage(0,0,64,64,e.foreground,true) | |
| t.hintObj.texture:SetTexture(l.."hintArrow") | |
| end | |
| if(n)then | |
| t.hintObj.x=n.x+2 | |
| t.hintObj.y=n.y-ne | |
| t.hintObj:ClearAllPoints() | |
| t.hintObj:SetPoint("Topleft",t.hintObj.x,-t.hintObj.y) | |
| t.hintObj.fxType=Ve | |
| t.hintObj.fxFrame=0 | |
| end | |
| t.hintObj:SetAlpha(1)t.hintObj:Hide() | |
| t.hintObj.bounceY=0 | |
| t.hintObj.bounceDir=1 | |
| return t.hintObj | |
| end | |
| local function vt(n,t,o)local e=n.lightwaveQueue[1] | |
| if e then | |
| B(n.lightwaveQueue,1) | |
| else | |
| e=n:CreateImage(0,0,b,p,t,true) | |
| end | |
| e:ClearAllPoints() | |
| e:SetParent(t) | |
| e.texture:SetTexture(t.highlight:GetTexture()) | |
| e:SetAllPoints(t.texture) | |
| e:Show() | |
| e.texture:SetTexCoord(unpack(N[2])) | |
| e:SetAlpha(0)e.fxType=De | |
| e.fxFrame=-(o*2)-1 | |
| t.lightWaveObv=e | |
| return e | |
| end | |
| local function lt(a,r,o,i,n,d)local t=a.lightningQueue[1] | |
| if t then | |
| B(a.lightningQueue,1) | |
| else | |
| t=e.foreground:CreateTexture(nil,"ARTWORK") | |
| t:SetTexture(l.."lightning") | |
| t.highlight=e.foreground:CreateTexture(nil,"OVERLAY") | |
| t.highlight:SetTexture(l.."lightning") | |
| end | |
| t:SetVertexColor(unpack(he[d])) | |
| t.fxType=We | |
| t.fxFrame=1 | |
| DrawRouteLine(t,e.gameBoard,r,-o,i,-n,128,"TOPLEFT")DrawRouteLine(t.highlight,e.gameBoard,r,-o,i,-n,128,"TOPLEFT")t:Show() | |
| t.highlight:Show() | |
| return t | |
| end | |
| local function qe(n,i,o,a,r)local t=n.shardQueue[1] | |
| if t then | |
| B(n.shardQueue,1) | |
| else | |
| t=n:CreateImage(i,o,Ye,Ze,e.gameBoard,true) | |
| t.texture:SetTexture(l.."gemshards") | |
| end | |
| t.x=a.x+i | |
| t.y=a.y+o | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",t.x,-t.y) | |
| t.texture:SetTexCoord(unpack(ie[1])) | |
| t.texture:SetVertexColor(unpack(he[r])) | |
| t:SetAlpha(1)t.yVel=0 | |
| t.xVel=0 | |
| t:Show() | |
| t.fxType=He | |
| t.fxFrame=m(1,Xe) | |
| return t | |
| end | |
| local function Qe(r,S,s,e,a,i,l,d)local h,o,t | |
| if(e.bigStar)and not e.explode then | |
| e.explode=1 | |
| e.fxType=A | |
| r:Add(e) | |
| if not d then | |
| n.explosions=n.explosions+1 | |
| M(1,e,a,nil,nil,n.explosions) | |
| end | |
| elseif(e.contents~=0)then | |
| if(e.contents==9)then | |
| a=9 | |
| M(1,e,a,nil,true,0) | |
| end | |
| e.contents=0 | |
| R(e) | |
| if not((i==0)and(l==0))then | |
| for n=1,Je do | |
| if(n>gt)then | |
| t=1 | |
| else | |
| t=-1 | |
| end | |
| local d=l*m(4,7) | |
| if(l==0)then | |
| d=t*m(1,5) | |
| end | |
| if(i<0)then | |
| t=-1 | |
| end | |
| if(i>0)then | |
| t=1 | |
| end | |
| local n=m(4,7) | |
| if(i==0)then | |
| n=2 | |
| end | |
| o=r:CreateShard(S+ce-pt+(12-(m(1,24))),s+ne-ct+(12-(m(1,24))),e,a) | |
| o.yVel=(d)+(l*m(1,5)) | |
| if(i==0)then | |
| if(l==-1)then | |
| o.xVel=(t*3/m(1,5)) | |
| else | |
| o.xVel=(t*m(0,5)) | |
| end | |
| else | |
| o.xVel=(t*n)+(t*m(1,n)) | |
| end | |
| u(r.animationStack,o) | |
| end | |
| end | |
| end | |
| end | |
| local function Je(d,i,n,o,a,l)local t=d.floatingTextQueue[1] | |
| local r=e.foreground | |
| if t then | |
| B(d.floatingTextQueue,1) | |
| t:SetText(o) | |
| else | |
| t=e:CreateCaption(i,n,o,r,50,1,1,1,true) | |
| end | |
| t.x=i | |
| t.y=n | |
| if(l)then | |
| t:SetTextColor(1,.4,1) | |
| else | |
| if(he[a])then | |
| t:SetTextColor(unpack(he[a])) | |
| else | |
| t:SetTextColor(unpack(he[9])) | |
| end | |
| end | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",r,"Topleft",i,-n) | |
| t:SetAlpha(1)t:Hide() | |
| t.score=o | |
| t.notScore=l | |
| t.comboSound=nil | |
| t.fxType=A | |
| t.fxFrame=0 | |
| return t | |
| end | |
| function e:CreateCaption(S,s,d,e,t,o,n,i,r,a)local e=e:CreateFontString(nil,"Overlay") | |
| if(r)then | |
| e:SetFont(l.."Contb___.ttf",(t or 10),"Outline") | |
| else | |
| if(a)then | |
| e:SetFont(STANDARD_TEXT_FONT,(t or 10)) | |
| else | |
| e:SetFont(STANDARD_TEXT_FONT,(t or 10),"Outline") | |
| end | |
| end | |
| e:SetTextColor((o or 1),(n or 1),(i or 1)) | |
| e:SetPoint("Topleft",S,-s) | |
| e:SetText(d) | |
| e:Show() | |
| return e | |
| end | |
| local function Ye(t)if not n.moveAllowed then | |
| n.currentMouseOver=t | |
| return | |
| end | |
| e:UpdateMouseOver(t) | |
| end | |
| function e:UpdateMouseOver(t)if(t.fxType~=y)and(t.fxType~=g)and(t.fxType~=W)and(t.fxType~=A)and(t.fxType~=S)then | |
| e.animator:Add(t) | |
| t.fxType=je | |
| t.fxFrame=it | |
| t.nextGlow=0 | |
| t.fxEnd=nil | |
| t.adj=nil | |
| t.highlight:SetTexCoord(unpack(N[1])) | |
| t.highlight:SetAlpha(0) | |
| end | |
| end | |
| local function Ue()local t=n | |
| t.pointMultiplier=Ce[t.gameMode]+t.level*.5 | |
| t.pointsToLevelUp=t.score+(t.pointsToLevelUp+d((500+150*t.level)*t.pointMultiplier))e.levelBar:SetMinMaxScore(t.score,t.pointsToLevelUp) | |
| if(t.gameMode==c)then | |
| e.levelText:SetText(t.level+1) | |
| else | |
| if(math.fmod(t.level,2)==0)then | |
| e.dataText:SetFormattedText("%d|cFF00FF00x",(t.level)) | |
| else | |
| e.dataText:SetFormattedText("%.1f|cFF00FF00x",(1+t.level*.5)) | |
| end | |
| end | |
| t.level=t.level+1 | |
| if(t.statDB.highestLevel)then | |
| if(t.level>t.statDB.highestLevel)then | |
| t.statDB.highestLevel=t.level | |
| end | |
| end | |
| if(t.gameMode==c)then | |
| if(t.level==10)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_CLASSIC,e.const.SKILL_LEVEL10) | |
| end | |
| if(t.level==15)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_CLASSIC,e.const.SKILL_LEVEL15) | |
| end | |
| end | |
| e.levelBar:UpdateBar() | |
| end | |
| local function Ce(t)local n=e.animator | |
| n:CreateShardSpawn(0,0,t,t.hyperGemContents,0,0) | |
| M(1,t,t.hyperGemContents,nil,true,-1,true) | |
| t.hyperGemTrigger=nil | |
| t.contents=0 | |
| t.fxType=S | |
| if(t.bigStar)then | |
| t.bigStar.explode=1 | |
| t.fxType=A | |
| n:Add(t) | |
| t.fxFrame=1 | |
| t.highlight:SetAlpha(0) | |
| end | |
| local S=t.x+ce | |
| local s=t.y+ne | |
| local i,r | |
| local l,l,e | |
| for l=1,a do | |
| for d=1,h do | |
| if(o[l][d].contents==t.hyperGemContents)then | |
| e=o[l][d] | |
| e.hyperGemTrigger=true | |
| e.hyperGemContents=t.hyperGemContents | |
| e.fxType=A | |
| n:Add(e) | |
| l=a | |
| i=e.x+ce | |
| r=e.y+ne | |
| break | |
| end | |
| end | |
| if(i)then | |
| break | |
| end | |
| end | |
| if(i)then | |
| n:Add(n:CreateLightning(S,s,i,r,t.hyperGemContents)) | |
| end | |
| t.hyperGemContents=nil | |
| end | |
| local function he()local t,t,x,e,S,c,T,t,t,r,s,t,t,t,w,g,C,u,l,d,p | |
| local f | |
| for i=1,a do | |
| for t=1,h do | |
| S=o[i][t].contents | |
| if(S~=0)and(S~=9)then | |
| c=0 | |
| e=0 | |
| if i<a then | |
| l=nil | |
| d=nil | |
| p=nil | |
| for n=i,a do | |
| T=o[n][t] | |
| if T.contents==S and not T.markY then | |
| e=e+1 | |
| else | |
| break | |
| end | |
| if not l then | |
| w=0 | |
| g=0 | |
| for e=t+1,h do | |
| if(o[n][e].contents==S)then | |
| g=g+1 | |
| else | |
| break | |
| end | |
| end | |
| for e=t-1,1,-1 do | |
| if(o[n][e].contents==S)then | |
| w=w+1 | |
| else | |
| break | |
| end | |
| end | |
| if(g+w>1)then | |
| d=n | |
| l=t | |
| end | |
| end | |
| end | |
| if e>2 then | |
| x=true | |
| explodeCount=0 | |
| for e=i,i+e-1 do | |
| explodeCount=explodeCount+Le(o[e][t],nt) | |
| end | |
| if(l)then | |
| for e=l-w,l+g do | |
| explodeCount=explodeCount+Le(o[d][e],Ne) | |
| end | |
| if(e>4)or(w+g>3)then | |
| p=true | |
| end | |
| e=e+w+g | |
| end | |
| r=nil | |
| s=nil | |
| if(e==4)or(l and not p)then | |
| if(l)then | |
| r=ee(o[d][l],true)or r | |
| else | |
| for e=i,i+e-1 do | |
| r=ee(o[e][t])or r | |
| end | |
| end | |
| if not r then | |
| r=ee(o[m(i,(i+e-1))][t],true)or r | |
| end | |
| elseif(e>=5)then | |
| f=nil | |
| if(p)then | |
| f=i | |
| end | |
| f=f or(i+e-1) | |
| if(l)then | |
| s=Z(o[d][l],true)or s | |
| else | |
| for e=i,i+e-1 do | |
| s=Z(o[e][t])or s | |
| end | |
| end | |
| if not s then | |
| s=Z(o[m(i,f)][t],true)or s | |
| end | |
| end | |
| if(l)then | |
| M(e,o[d][l],S,true,nil,explodeCount,nil,true) | |
| else | |
| M(e,o[i][t],S,r,nil,explodeCount) | |
| end | |
| c=c+e | |
| end | |
| end | |
| e=0 | |
| if t<h then | |
| l=nil | |
| d=nil | |
| p=nil | |
| for t=t,h do | |
| T=o[i][t] | |
| if T.contents==S and not T.markX then | |
| e=e+1 | |
| else | |
| break | |
| end | |
| if not d then | |
| u=0 | |
| C=0 | |
| for e=i+1,a do | |
| if(o[e][t].contents==S)then | |
| u=u+1 | |
| else | |
| break | |
| end | |
| end | |
| for e=i-1,1,-1 do | |
| if(o[e][t].contents==S)then | |
| C=C+1 | |
| else | |
| break | |
| end | |
| end | |
| if(C+u>1)then | |
| l=t | |
| d=i | |
| end | |
| end | |
| end | |
| if e>2 then | |
| x=true | |
| explodeCount=0 | |
| for e=t,t+e-1 do | |
| explodeCount=explodeCount+Le(o[i][e],Ne)end | |
| if(d)then | |
| for e=d-C,d+u do | |
| explodeCount=explodeCount+Le(o[e][l],nt) | |
| end | |
| if(e>4)or(C+u>3)then | |
| p=true | |
| end | |
| e=e+C+u | |
| end | |
| r=nil | |
| s=nil | |
| if(e==4)or(d and not p)then | |
| if(d)then | |
| r=ee(o[d][l],true)or r | |
| else | |
| for e=t,t+e-1 do | |
| r=ee(o[i][e])or r | |
| end | |
| end | |
| if not r then | |
| r=ee(o[i][m(t,(t+e-1))],true)or r | |
| end | |
| elseif(e>=5)then | |
| f=nil | |
| if(p)then | |
| f=t | |
| end | |
| f=f or(t+e-1) | |
| if(d)then | |
| s=Z(o[d][l],true)or s | |
| else | |
| for e=t,t+e-1 do | |
| s=Z(o[i][e])or s | |
| end | |
| end | |
| if not s then | |
| s=Z(o[i][m(t,f)],true)or s | |
| end | |
| end | |
| if(l)then | |
| M(e,o[d][l],S,true,nil,explodeCount,nil,true) | |
| else | |
| M(e,o[i][t],S,r,nil,explodeCount,true) | |
| end | |
| c=c+e | |
| end | |
| end | |
| if(c>n.largestCascade)then | |
| n.largestCascade=c | |
| end | |
| if(c>BejeweledProfile.stats.largestCascade)then | |
| BejeweledProfile.stats.largestCascade=c | |
| end | |
| if(c>2)then | |
| BejeweledProfile.stats.gemMatch[S]=BejeweledProfile.stats.gemMatch[S]+1 | |
| end | |
| end | |
| end | |
| end | |
| return x | |
| end | |
| local function ce(e)if not n.moveAllowed then | |
| n.currentMouseOver=nil | |
| return | |
| end | |
| if(e.fxType~=y)and(e.fxType~=g)and(e.fxType~=W)and(e.fxType~=A)and(e.fxType~=S)and not e.moving then | |
| e.fxEnd=true | |
| if(e.adj)and(e.adj.fxType==ke)then | |
| if(e.adj.fxFrame<=Re)then | |
| e.adj.fxFrame=Re-e.adj.fxFrame+1 | |
| end | |
| end | |
| e.adj=nil | |
| end | |
| end | |
| local function Z(t)if(not n.gameMode)or(e.paused==true)then | |
| return | |
| end | |
| if(bCrowbar)and(bCrowbar.jewelEdit)then | |
| bCrowbar:Edit(t) | |
| return | |
| end | |
| if not n.moveAllowed then | |
| if not e.animator.newGameStart then | |
| if(n.nextSelectedJewel)then | |
| Se(true) | |
| else | |
| if(t.fxType~=A)then | |
| n.nextSelectedJewel=t | |
| t.mouseX,t.mouseY=GetCursorPosition() | |
| t.selector:Show() | |
| t.highlight:SetAlpha(0) | |
| e.animator:Add(t) | |
| e.sound:Play("Select") | |
| end | |
| end | |
| end | |
| return | |
| end | |
| local r=false | |
| local a | |
| local l=e.animator | |
| if not BejeweledProfile.settings.disableHints then | |
| l:Add(l:CreateHint(Q())) | |
| end | |
| if n.selectedJewel then | |
| local o,i | |
| o=n.selectedJewel.gridX | |
| i=n.selectedJewel.gridY | |
| if(t.gridX==o)then | |
| if(math.abs(t.gridY-i)==1)then | |
| r=true | |
| end | |
| elseif(t.gridY==i)then | |
| if(math.abs(t.gridX-o)==1)then | |
| r=true | |
| end | |
| end | |
| if r==true then | |
| local o=n.selectedJewel | |
| l:Add(o) | |
| l:Add(t) | |
| o.highlight:SetAlpha(0) | |
| t.highlight:SetAlpha(0) | |
| o.mouseX=nil | |
| o.mouseY=nil | |
| t.mouseX=nil | |
| t.mouseY=nil | |
| if(o.fxType~=g)then | |
| o.fxEnd=true | |
| else | |
| if not((t.fxType==g)and(o.fxType==g))then | |
| o.hyperGemContents=t.contents | |
| a=true | |
| end | |
| end | |
| o.moving=_e | |
| o.xOffset=0 | |
| o.yOffset=0 | |
| o.xMove=math.abs(t.gridX-o.gridX) | |
| o.yMove=math.abs(t.gridY-o.gridY) | |
| o.xDir=t.gridX-o.gridX | |
| o.yDir=t.gridY-o.gridY | |
| o.swapJewel=t | |
| if(t.fxType~=g)then | |
| t.fxType=E | |
| t.fxFrame=1 | |
| else | |
| if not((t.fxType==g)and(o.fxType==g))then | |
| t.hyperGemContents=o.contents | |
| a=true | |
| end | |
| end | |
| t.moving=_e | |
| t.xOffset=0 | |
| t.yOffset=0 | |
| t.xMove=math.abs(o.gridX-t.gridX) | |
| t.yMove=math.abs(o.gridY-t.gridY) | |
| t.xDir=o.gridX-t.gridX | |
| t.yDir=o.gridY-t.gridY | |
| t.swapJewel=o | |
| t.selector:Show() | |
| n.moveAllowed=nil | |
| l.movingJewels=2 | |
| if(bCrowbar)then | |
| local e=bCrowbar.prevState or{} | |
| bCrowbar.prevState=e | |
| local t,t,t,t | |
| for t=1,8 do | |
| if not e[t]then | |
| e[t]={} | |
| end | |
| for n=1,8 do | |
| if not e[t][n]then | |
| e[t][n]={} | |
| else | |
| table.wipe(e[t][n]) | |
| end | |
| for o,i in pairs(bCrowbar.jewelArray[t][n])do | |
| e[t][n][o]=i | |
| end | |
| end | |
| end | |
| end | |
| local i | |
| i=o.contents | |
| o.contents=t.contents | |
| t.contents=i | |
| i=o.bigStar | |
| o.bigStar=t.bigStar | |
| t.bigStar=i | |
| local l | |
| if((t.fxType==g)and(o.fxType==g))then | |
| l=true | |
| a=true | |
| o.hyperGemContents=9 | |
| t.hyperGemContents=9 | |
| end | |
| if not a then | |
| local a=he() | |
| if not a and(not l)then | |
| i=o.contents | |
| o.contents=t.contents | |
| t.contents=i | |
| i=o.bigStar | |
| o.bigStar=t.bigStar | |
| t.bigStar=i | |
| t.invalidMove=1 | |
| o.invalidMove=1 | |
| e.sound:Play("Invalid") | |
| else | |
| n.moves=n.moves+1 | |
| if n.statDB.mostMoves then | |
| if(n.moves>n.statDB.mostMoves)then | |
| n.statDB.mostMoves=n.moves | |
| end | |
| end | |
| if(n.gameMode==c)then | |
| if(n.moves==100)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_CLASSIC,e.const.SKILL_MOVE100) | |
| end | |
| if(n.moves==250)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_CLASSIC,e.const.SKILL_MOVE250) | |
| end | |
| end | |
| local t,e | |
| t=o.fxType | |
| e=o.fxFrame | |
| end | |
| end | |
| end | |
| end | |
| if r==false then | |
| if(n.selectedJewel)then | |
| Se() | |
| else | |
| n.selectedJewel=t | |
| t.mouseX,t.mouseY=GetCursorPosition() | |
| t.selector:Show() | |
| if(t.fxType~=g)then | |
| t.fxType=y | |
| t.fxEnd=nil | |
| t.fxFrame=1 | |
| end | |
| t.highlight:SetAlpha(0) | |
| l:Add(t) | |
| e.sound:Play("Select") | |
| end | |
| end | |
| end | |
| local function ee(t)if(t.mouseX)then | |
| if not BejeweledProfile.settings.disableHints then | |
| e.animator:Add(e.animator:CreateHint(Q())) | |
| end | |
| local e,l=GetCursorPosition() | |
| local r=e-t.mouseX | |
| local i=l-t.mouseY | |
| local d | |
| if(math.abs(r)>math.abs(i))then | |
| r=r/math.abs(r) | |
| e=t.gridX+r | |
| if(e>0)and(e<=h)then | |
| d=o[t.gridY][e] | |
| end | |
| else | |
| i=i/math.abs(i) | |
| l=t.gridY-i | |
| if(l>0)and(l<=a)then | |
| d=o[l][t.gridX] | |
| end | |
| end | |
| if(d)then | |
| Z(d) | |
| else | |
| if(t.fxType~=g)then | |
| t.fxEnd=true | |
| end | |
| t.selector:Hide() | |
| t.mouseX=nil | |
| t.mouseY=nil | |
| n.selectedJewel=nil | |
| end | |
| end | |
| end | |
| local function U(n)local e | |
| local e=n:GetParent() | |
| for t=1,4 do | |
| if(e["tab"..t])then | |
| e["tab"..t.."Content"]:Hide() | |
| if(n:GetID()==t)then | |
| e["tab"..t]:SetFrameLevel(e:GetFrameLevel()+1) | |
| e["tab"..t].texture:SetVertexColor(1,1,1) | |
| e["tab"..t.."Content"]:Show() | |
| else | |
| e["tab"..t]:SetFrameLevel(e:GetFrameLevel()-1) | |
| e["tab"..t].texture:SetVertexColor(.5,.5,.5) | |
| end | |
| end | |
| end | |
| end | |
| local function nt(o,r)if IsInGuild()then | |
| GuildRoster() | |
| end | |
| e:ScrubLists() | |
| local t,t,n,i,l | |
| local h=BejeweledProfile.scoreList[r] | |
| local a="|cFF00FFFF" | |
| local S="|cFF00FF00" | |
| local d=UnitName("player") | |
| local s=GetNumFriends() | |
| for t=1,10 do | |
| n,i,l=unpack(h.classic[t])if(n=="PopCap Games")then | |
| n="|cFFFFFFFF"..n | |
| i=0 | |
| end | |
| l=e:NumberWithCommas(l) | |
| i=D(i) | |
| if(i>0)then | |
| o["classicRank"..t]:SetTexCoord(((i-1)*16/128),(i*16/128),0,1) | |
| else | |
| o["classicRank"..t]:SetTexCoord(0,0,0,0) | |
| end | |
| if(n~=d)then | |
| if(r=="friends")then | |
| o["classicName"..t]:SetText(a..n) | |
| else | |
| for e=1,GetNumFriends()do | |
| if(n==GetFriendInfo(e))then | |
| o["classicName"..t]:SetText(a..n) | |
| break | |
| end | |
| if(e==s)then | |
| o["classicName"..t]:SetText(S..n) | |
| end | |
| end | |
| end | |
| else | |
| o["classicName"..t]:SetText(n) | |
| end | |
| if(t==1)then | |
| o["classicScore"..t]:SetText("|cFF00FF00"..l) | |
| else | |
| o["classicScore"..t]:SetText(l) | |
| end | |
| n,i,l=unpack(h.timed[t])if(n=="PopCap Games")then | |
| n="|cFFFFFFFF"..n | |
| i=0 | |
| end | |
| l=e:NumberWithCommas(l) | |
| i=D(i) | |
| if(i>0)then | |
| o["timedRank"..t]:SetTexCoord(((i-1)*16/128),(i*16/128),0,1) | |
| else | |
| o["timedRank"..t]:SetTexCoord(0,0,0,0) | |
| end | |
| if(n~=d)then | |
| if(r=="friends")then | |
| o["timedName"..t]:SetText(a..n) | |
| else | |
| for e=1,GetNumFriends()do | |
| if(n==GetFriendInfo(e))then | |
| o["timedName"..t]:SetText(a..n) | |
| break | |
| end | |
| if(e==s)then | |
| o["timedName"..t]:SetText(S..n) | |
| end | |
| end | |
| end | |
| else | |
| o["timedName"..t]:SetText(n) | |
| end | |
| if(t==1)then | |
| o["timedScore"..t]:SetFormattedText("|cFF00FF00%.2f",l) | |
| else | |
| o["timedScore"..t]:SetFormattedText("%.2f",l) | |
| end | |
| end | |
| end | |
| local function Ne(t,n)t.elapsed=t.elapsed+n | |
| if(t.elapsed<.1)then | |
| return | |
| end | |
| t.timeElapsed=t.timeElapsed+t.elapsed | |
| t.timeRemaining=(t.timeRemaining or(0))-t.elapsed | |
| t.legJourney=t.legJourney+t.elapsed | |
| t.elapsed=0 | |
| local n=e.timedWindow | |
| if(t.learning)and not t.learnEvent and(t.timeElapsed>4)then | |
| t.learnEvent=true | |
| e.window:RegisterEvent("PLAYER_MONEY") | |
| end | |
| if not e.flightOptionWindow.learning and(t.timeRemaining<60)and not n.flightCheckbox.disabled then | |
| n.flightCheckbox.disabled=true | |
| n.flightCheckbox:Hide() | |
| n.flightCheckboxCaption:Show() | |
| end | |
| if(t.timeRemaining<=0)and not e.flightOptionWindow.learning then | |
| t:Hide() | |
| if(n:IsVisible())then | |
| n:SetHeight(L-80) | |
| n.flightCheckbox:Hide() | |
| n.flightCheckboxCaption:Hide() | |
| n.flightCheckbox:SetChecked(nil) | |
| n.timerRemainingCaption:Hide() | |
| n.timeRemainingValue:Hide() | |
| end | |
| end | |
| if n:IsVisible()then | |
| if(e.flightOptionWindow.learning)then | |
| e.timedWindow.timeRemainingValue:SetText(e:TotalTime(d(t.timeElapsed))) | |
| else | |
| e.timedWindow.timeRemainingValue:SetText(e:TotalTime(d(t.timeRemaining))) | |
| end | |
| end | |
| end | |
| function e:UpdateSavedVariablesDatabase()if(bCrowbar)then | |
| bCrowbar:Hook(o,n,R,he,e) | |
| end | |
| if(BejeweledData.beta)then | |
| BejeweledData.beta=nil | |
| BejeweledData.legalDisplayed=nil | |
| BejeweledData.firstHyperCube=nil | |
| BejeweledData.firstPowerGem=nil | |
| BejeweledData.firstSkillShow=nil | |
| BejeweledData.firstGame=nil | |
| BejeweledProfile={ | |
| ["stats"]={ | |
| ["classic"]={ | |
| ["score"]=0,["played"]=0,["highestLevel"]=0 | |
| }, | |
| ["timed"]={ | |
| ["score"]=0,["played"]=0,["mostMoves"]=0 | |
| }, | |
| ["largestCascade"]=0,["largestCombo"]=0,["played"]=0,["combatPause"]=0,["totalGemsMatched"]=0,["totalPowerGems"]=0,["totalHyperGems"]=0,["gemMatch"]={0,0,0,0,0,0,0,0}, | |
| }, | |
| ["skill"]={ | |
| ["rank"]=1,["skillPoints"]=0,["timedGames"]=0,["games"]=0, | |
| }, | |
| ["settings"]={ | |
| ["keybinding"]=nil,["gameAlpha"]=1,["mouseoffAlpha"]=.3,["publishSkillGains"]=1,["publishRankGains"]=1,["newGameFlight"]=1,["publishScores"]=1,["enableSounds"]=1,["disableHints"]=nil,["lockWindow"]=nil,["openFlightStart"]=1,["closeFlightEnd"]=nil,["openOnDeath"]=1,["closeReadyCheck"]=1,["openLogin"]=nil,["closeCombat"]=1,["showFlightTooltips"]=1,["defaultPublish"]="GUILD", | |
| }, | |
| } | |
| end | |
| local i=BejeweledProfile.stats.classic | |
| local a=BejeweledProfile.stats.timed | |
| local t=BejeweledProfile.settings.savedState | |
| local o=UnitName("player") | |
| if(BejeweledProfile)then | |
| if not BejeweledProfile.version then | |
| BejeweledProfile.version=1.1 | |
| BejeweledProfile.scoresUpdated=nil | |
| BejeweledProfile.scoresPopup=nil | |
| BejeweledProfile.settings.defaultPublish="GUILD" | |
| if(t)then | |
| if(t[1][1]and t[1][1]~=0)then | |
| t[9][9]=P(x(t[9][1],4),H(o))end | |
| end | |
| end | |
| end | |
| if not BejeweledProfile.settings.defaultPublish then | |
| BejeweledProfile.settings.defaultPublish="GUILD" | |
| end | |
| o=H(o) | |
| if not BejeweledProfile.scoreList then | |
| BejeweledProfile.stats.classic.score=0 | |
| BejeweledProfile.stats.timed.score=0 | |
| BejeweledProfile.scoreList={ | |
| ["friends"]={ | |
| ["classic"]={ | |
| [1]={"PopCap Games",1,1e3,"9VW``nt"}, | |
| [2]={"PopCap Games",1,900,"7Rk``lQ"}, | |
| [3]={"PopCap Games",1,800,"zDR``k3"}, | |
| [4]={"PopCap Games",1,700,"v>z``j`"}, | |
| [5]={"PopCap Games",1,600,"va``h="}, | |
| [6]={"PopCap Games",1,500,"OC``gj"}, | |
| [7]={"PopCap Games",1,400,"MH``eG"}, | |
| [8]={"PopCap Games",1,300,"7EM``dt"}, | |
| [9]={"PopCap Games",1,200,"7CR``bQ"}, | |
| [10]={"PopCap Games",1,100,"z6>``a3"}, | |
| }, | |
| ["timed"]={ | |
| [1]={"PopCap Games",1,2.8,"=H7`d`"}, | |
| [2]={"PopCap Games",1,2.6,"wST`cG"}, | |
| [3]={"PopCap Games",1,2.4,"<Nm`c3"}, | |
| [4]={"PopCap Games",1,2.2,"ST`cj"}, | |
| [5]={"PopCap Games",1,2,"xgl`bQ"}, | |
| [6]={"PopCap Games",1,1.8,"=a5`b="}, | |
| [7]={"PopCap Games",1,1.6,"<gl`bt"}, | |
| [8]={"PopCap Games",1,1.4,"9BI`b`"}, | |
| [9]={"PopCap Games",1,1.2,"=oH`aG"}, | |
| [10]={"PopCap Games",1,1,"8H4`a3"}, | |
| }, | |
| }, | |
| ["guild"]={ | |
| ["classic"]={ | |
| [1]={"PopCap Games",1,1e3,"9VW``nt"}, | |
| [2]={"PopCap Games",1,900,"7Rk``lQ"}, | |
| [3]={"PopCap Games",1,800,"zDR``k3"}, | |
| [4]={"PopCap Games",1,700,"v>z``j`"}, | |
| [5]={"PopCap Games",1,600,"va``h="}, | |
| [6]={"PopCap Games",1,500,"OC``gj"}, | |
| [7]={"PopCap Games",1,400,"MH``eG"}, | |
| [8]={"PopCap Games",1,300,"7EM``dt"}, | |
| [9]={"PopCap Games",1,200,"7CR``bQ"}, | |
| [10]={"PopCap Games",1,100,"z6>``a3"}, | |
| }, | |
| ["timed"]={ | |
| [1]={"PopCap Games",1,2.8,"=H7`d`"}, | |
| [2]={"PopCap Games",1,2.6,"wST`cG"}, | |
| [3]={"PopCap Games",1,2.4,"<Nm`c3"}, | |
| [4]={"PopCap Games",1,2.2,"ST`cj"}, | |
| [5]={"PopCap Games",1,2,"xgl`bQ"}, | |
| [6]={"PopCap Games",1,1.8,"=a5`b="}, | |
| [7]={"PopCap Games",1,1.6,"<gl`bt"}, | |
| [8]={"PopCap Games",1,1.4,"9BI`b`"}, | |
| [9]={"PopCap Games",1,1.2,"=oH`aG"}, | |
| [10]={"PopCap Games",1,1,"8H4`a3"}, | |
| }, | |
| }, | |
| } | |
| i[v]=P(x(0,4),o) | |
| a[v]=P(x(0,3),o) | |
| end | |
| if not BejeweledProfile.scoresUpdated then | |
| local n=CreateFrame("Frame","BejeweledUpdatePopup",e.window) | |
| n:SetWidth(320) | |
| n:SetHeight(200) | |
| n:SetPoint("Center") | |
| n:EnableMouse(true) | |
| n:SetToplevel(true) | |
| n:Hide() | |
| local t=C() | |
| t.edgeFile=l.."windowBorder" | |
| t.bgFile=l.."windowBackground" | |
| t.edgeSize=32 | |
| t.tileSize=64 | |
| t.insets.right=3 | |
| n:SetBackdrop(t) | |
| n:SetBackdropColor(.7,.7,.7,1) | |
| local t=CreateFrame("Button","",n,"UIPanelCloseButton")t:SetToplevel(true) | |
| t:SetPoint("Topright",n,"Topright",2,2)t:SetWidth(32) | |
| t:SetHeight(32) | |
| t:SetScript("OnClick",function(e)e:GetParent():Hide() | |
| end) | |
| local t=n:CreateFontString(nil,"Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,12) | |
| t:SetShadowColor(0,0,0) | |
| t:SetShadowOffset(1,-1) | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Top",0,-38) | |
| t:SetText("The score storage system has been changed in this version. In order to continue to send high scores to other players you must upgrade to the new system, which will wipe your existing scores. If you do not upgrade, you will not broadcast or receive scores. Would you like to upgrade now?") | |
| t:SetWidth(290) | |
| t:Show() | |
| local t=CreateFrame("Button","BejeweledUpdateYes",n,"OptionsButtonTemplate")t:SetPoint("Bottomleft",40,20) | |
| t:SetText("Yes") | |
| t:SetWidth(100) | |
| t:SetHeight(28) | |
| t:SetScript("OnClick",function(e)BejeweledProfile.scoresUpdated=true | |
| BejeweledProfile.scoreList=nil | |
| ReloadUI() | |
| end) | |
| t=CreateFrame("Button","BejeweledUpdateNo",n,"OptionsButtonTemplate")t:SetPoint("Bottomright",-40,20) | |
| t:SetText("No") | |
| t:SetWidth(100) | |
| t:SetHeight(28) | |
| t:SetScript("OnClick",function(e)BejeweledProfile.scoresPopup=true | |
| e:GetParent():Hide() | |
| end) | |
| e.updatePopup=n | |
| t=CreateFrame("Button","BejeweledUpdateNo",n,"OptionsButtonTemplate")t:SetPoint("Bottomright",-40,20) | |
| t:SetText("No") | |
| t:SetWidth(100) | |
| t:SetHeight(28) | |
| t:SetScript("OnClick",function(e)BejeweledProfile.scoresPopup=true | |
| e:GetParent():Hide() | |
| end) | |
| if not BejeweledProfile.scoresPopup then | |
| n:Show() | |
| end | |
| e.featsOfSkillScreen.tab3Content.friends:Hide() | |
| e.featsOfSkillScreen.tab3Content.guild:Hide() | |
| t=CreateFrame("Button","BejeweledUpdateScoresButton",e.featsOfSkillScreen.tab3Content,"OptionsButtonTemplate")t:SetPoint("Top",0,2) | |
| t:SetText("Upgrade Score System") | |
| t:SetWidth(230) | |
| t:SetHeight(22) | |
| t:SetScript("OnClick",function(t)e.updatePopup:Show() | |
| end) | |
| else | |
| xe="BEJ2a" | |
| local e=function(e,r,n,d)local i="PopCap Games"local t,t,o | |
| local l=0 | |
| local a=H(i) | |
| for t=10,1,-1 do | |
| o=fe(e[t][4],H(e[t][1])) | |
| if(o)then | |
| e[t][3]=X(o) | |
| if not r then | |
| e[t][3]=e[t][3]/100 | |
| end | |
| else | |
| l=l+1 | |
| for t=t,9 do | |
| e[t][1]=e[t+1][1] | |
| e[t][2]=e[t+1][2] | |
| e[t][3]=e[t+1][3] | |
| e[t][4]=e[t+1][4] | |
| if(e[t][1]==i)then | |
| n=e[t][3]-d | |
| end | |
| end | |
| e[10][1]=i | |
| e[10][2]=1 | |
| e[10][3]=n | |
| if(r)then | |
| e[10][4]=P(x(n,4),a) | |
| else | |
| e[10][4]=P(x(n*100,3),a) | |
| end | |
| end | |
| end | |
| end | |
| e(BejeweledProfile.scoreList.friends.classic,true,1e3,100) | |
| e(BejeweledProfile.scoreList.guild.timed,nil,2.8,.2) | |
| e(BejeweledProfile.scoreList.friends.classic,true,1e3,100) | |
| e(BejeweledProfile.scoreList.guild.timed,nil,2.8,.2) | |
| local e=fe(i[v],o) | |
| if(e)then | |
| i[I]=X(e) | |
| else | |
| i[I]=0 | |
| i[v]=P(x(0,4),o) | |
| end | |
| e=fe(a[v],o) | |
| if(e)then | |
| a[I]=X(e)/100 | |
| else | |
| a[I]=0 | |
| a[v]=P(x(0,3),o) | |
| end | |
| end | |
| e.UpdateSavedVariablesDatabase=nil | |
| end | |
| local function Ze(t)local n=t | |
| local t=n | |
| local o=string.find(t," ") | |
| if(o)then | |
| t=G(t,1,o-1) | |
| n=G(n,o+1) | |
| else | |
| n="" | |
| end | |
| t=string.lower(t) | |
| if(t=="reset")then | |
| BejeweledProfile={ | |
| ["stats"]={ | |
| ["classic"]={ | |
| ["score"]=0,["played"]=0,["highestLevel"]=0 | |
| }, | |
| ["timed"]={ | |
| ["score"]=0,["played"]=0,["mostMoves"]=0 | |
| }, | |
| ["largestCascade"]=0,["largestCombo"]=0,["played"]=0,["combatPause"]=0,["totalGemsMatched"]=0,["totalPowerGems"]=0,["totalHyperGems"]=0,["gemMatch"]={0,0,0,0,0,0,0,0}, | |
| }, | |
| ["skill"]={ | |
| ["rank"]=1,["skillPoints"]=0,["timedGames"]=0,["games"]=0, | |
| }, | |
| ["settings"]={ | |
| ["keybinding"]=nil,["gameAlpha"]=1,["mouseoffAlpha"]=.3,["publishSkillGains"]=1,["publishRankGains"]=1,["newGameFlight"]=1,["publishScores"]=1,["enableSounds"]=1,["disableHints"]=nil,["lockWindow"]=nil,["openFlightStart"]=1,["closeFlightEnd"]=nil,["openOnDeath"]=1,["closeReadyCheck"]=1,["openLogin"]=nil,["closeCombat"]=1,["showFlightTooltips"]=1, | |
| }, | |
| ["scoreList"]={ | |
| ["friends"]={ | |
| ["classic"]={ | |
| [1]={"PopCap Games",1,1e3}, | |
| [2]={"PopCap Games",1,900}, | |
| [3]={"PopCap Games",1,800}, | |
| [4]={"PopCap Games",1,700}, | |
| [5]={"PopCap Games",1,600}, | |
| [6]={"PopCap Games",1,500}, | |
| [7]={"PopCap Games",1,400}, | |
| [8]={"PopCap Games",1,300}, | |
| [9]={"PopCap Games",1,200}, | |
| [10]={"PopCap Games",1,100}, | |
| }, | |
| ["timed"]={ | |
| [1]={"PopCap Games",1,2.8}, | |
| [2]={"PopCap Games",1,2.6}, | |
| [3]={"PopCap Games",1,2.4}, | |
| [4]={"PopCap Games",1,2.2}, | |
| [5]={"PopCap Games",1,2}, | |
| [6]={"PopCap Games",1,1.8}, | |
| [7]={"PopCap Games",1,1.6}, | |
| [8]={"PopCap Games",1,1.4}, | |
| [9]={"PopCap Games",1,1.2}, | |
| [10]={"PopCap Games",1,1}, | |
| }, | |
| }, | |
| ["guild"]={ | |
| ["classic"]={ | |
| [1]={"PopCap Games",1,1e3}, | |
| [2]={"PopCap Games",1,900}, | |
| [3]={"PopCap Games",1,800}, | |
| [4]={"PopCap Games",1,700}, | |
| [5]={"PopCap Games",1,600}, | |
| [6]={"PopCap Games",1,500}, | |
| [7]={"PopCap Games",1,400}, | |
| [8]={"PopCap Games",1,300}, | |
| [9]={"PopCap Games",1,200}, | |
| [10]={"PopCap Games",1,100}, | |
| }, | |
| ["timed"]={ | |
| [1]={"PopCap Games",1,2.8}, | |
| [2]={"PopCap Games",1,2.6}, | |
| [3]={"PopCap Games",1,2.4}, | |
| [4]={"PopCap Games",1,2.2}, | |
| [5]={"PopCap Games",1,2}, | |
| [6]={"PopCap Games",1,1.8}, | |
| [7]={"PopCap Games",1,1.6}, | |
| [8]={"PopCap Games",1,1.4}, | |
| [9]={"PopCap Games",1,1.2}, | |
| [10]={"PopCap Games",1,1}, | |
| }, | |
| }, | |
| }, | |
| } | |
| if(e.window:IsVisible())then | |
| e.window:Hide() | |
| e.window:Show() | |
| end | |
| else | |
| local e=getglobal("BejeweledWindow") | |
| if(e:IsVisible())then | |
| e:Hide()else | |
| e:Show()end | |
| end | |
| end | |
| function e.CreateCheckbox_OnClick(e)BejeweledProfile.settings[string.match(e:GetName(),"BejeweledCheckBox(.*)")]=e:GetChecked() | |
| end | |
| function e.CreateSlider_OnValueChanged(e)if(BejeweledProfile.settings[e.objectSetting])then | |
| BejeweledProfile.settings[e.objectSetting]=e:GetValue() | |
| end | |
| if(e.usePercent)then | |
| e.valueCaption:SetFormattedText(": %d%%",(e:GetValue()*100)) | |
| else | |
| e.valueCaption:SetFormattedText(": %d",e:GetValue()) | |
| end | |
| if(e.updateFunc)then | |
| e:updateFunc() | |
| end | |
| end | |
| function e:CreateSlider(a,l,s,h,n,t,o,d,r,i,S)local t=CreateFrame("Slider","BejeweledSlider"..n,t,"OptionsSliderTemplate") | |
| t:SetWidth(s) | |
| getglobal(t:GetName().."Thumb"):Show() | |
| getglobal(t:GetName().."Text"):SetFont(STANDARD_TEXT_FONT,14) | |
| getglobal(t:GetName().."Text"):SetShadowOffset(1,-1) | |
| getglobal(t:GetName().."Text"):SetText(h) | |
| getglobal(t:GetName().."Text"):SetVertexColor(NORMAL_FONT_COLOR.r,NORMAL_FONT_COLOR.g,NORMAL_FONT_COLOR.b) | |
| getglobal(t:GetName().."Low"):SetText("") | |
| getglobal(t:GetName().."Low"):SetVertexColor(HIGHLIGHT_FONT_COLOR.r,HIGHLIGHT_FONT_COLOR.g,HIGHLIGHT_FONT_COLOR.b) | |
| getglobal(t:GetName().."High"):SetText("") | |
| getglobal(t:GetName().."High"):SetVertexColor(HIGHLIGHT_FONT_COLOR.r,HIGHLIGHT_FONT_COLOR.g,HIGHLIGHT_FONT_COLOR.b) | |
| t.valueCaption=e:CreateCaption(0,0,"",t,10,HIGHLIGHT_FONT_COLOR.r,HIGHLIGHT_FONT_COLOR.g,HIGHLIGHT_FONT_COLOR.b)t.valueCaption:ClearAllPoints() | |
| t.valueCaption:SetPoint("Topleft",t,"Topright") | |
| t:SetHitRectInsets(0,0,0,0) | |
| t:SetMinMaxValues(o,d) | |
| t:SetValueStep(r) | |
| if(BejeweledProfile.settings[n])then | |
| if(i)then | |
| t.valueCaption:SetFormattedText(": %d%%",(BejeweledProfile.settings[n]*100)) | |
| else | |
| t.valueCaption:SetFormattedText(": %d",BejeweledProfile.settings[n]) | |
| end | |
| t:SetValue(BejeweledProfile.settings[n]) | |
| else | |
| t:SetValue(o) | |
| if(i)then | |
| t.valueCaption:SetFormattedText(": %d%%",(o*100)) | |
| else | |
| t.valueCaption:SetFormattedText(": %d",o) | |
| end | |
| end | |
| t:SetPoint("Topleft",a,l) | |
| t:SetScript("OnValueChanged",e.CreateSlider_OnValueChanged) | |
| t.updateFunc=S | |
| t.objectSetting=n | |
| t.usePercent=i | |
| return t | |
| end | |
| function e:CreateCheckbox(d,r,a,o,l,t,n,i)local t=CreateFrame("CheckButton","BejeweledCheckBox"..o,t,"OptionsCheckButtonTemplate") | |
| t:SetWidth(21) | |
| t:SetHeight(21) | |
| getglobal(t:GetName().."Text"):SetFont(STANDARD_TEXT_FONT,13) | |
| getglobal(t:GetName().."Text"):SetShadowOffset(1,-1) | |
| getglobal(t:GetName().."Text"):SetText("|cFFFF9922"..a) | |
| if(i)then | |
| t:SetWidth(16) | |
| t:SetHeight(16) | |
| t:SetNormalTexture("Interface\\Buttons\\UI-RadioButton") | |
| t:GetNormalTexture():SetTexCoord(0,.25,0,1) | |
| t:SetHighlightTexture("Interface\\Buttons\\UI-RadioButton") | |
| t:GetHighlightTexture():SetTexCoord(.5,.75,0,1) | |
| t:SetCheckedTexture("Interface\\Buttons\\UI-RadioButton") | |
| t:GetCheckedTexture():SetTexCoord(.25,.5,0,1) | |
| t:SetPushedTexture("Interface\\Buttons\\UI-RadioButton") | |
| t:GetPushedTexture():SetTexCoord(0,.25,0,1) | |
| end | |
| t:SetPoint("Topleft",d,r) | |
| if(BejeweledProfile.settings[o]==l)then | |
| t:SetChecked(1) | |
| end | |
| if(n)then | |
| t:SetScript("OnClick",n) | |
| else | |
| t:SetScript("OnClick",e.CreateCheckbox_OnClick) | |
| end | |
| return t | |
| end | |
| local function fe(t,o)if(e.animator.newGameStart)then | |
| return | |
| end | |
| if(o>1)then | |
| o=.1 | |
| end | |
| t.elapsed=t.elapsed+o | |
| if(t.elapsed<.1)then | |
| return | |
| end | |
| n.statDB.played=n.statDB.played+t.elapsed | |
| BejeweledProfile.stats.played=BejeweledProfile.stats.played+t.elapsed | |
| t.timeLeft=t.timeLeft-t.elapsed | |
| t.timeElapsed=t.timeElapsed+t.elapsed | |
| t.elapsed=0 | |
| if(e.levelBar.mode~=c)then | |
| if(e.levelBar.mode==k)then | |
| if(t.timeLeft<=0)then | |
| t.timeLeft=-1 | |
| e.flightOptionWindow.learning=true | |
| if not e.flightOptionWindow.timer:IsShown()then | |
| e.flightOptionWindow.timer:Show() | |
| end | |
| else | |
| local e=e.flightOptionWindow.timer | |
| if e.learning~=true then | |
| if(math.abs(t.timeLeft-e.timeRemaining)>.6)then | |
| t.timeLeft=e.timeRemaining | |
| t.timeElapsed=e.timeElapsed | |
| end | |
| end | |
| end | |
| else | |
| if(t.timeLeft<=0)then | |
| t.timeLeft=0 | |
| t.timeElapsed=t.timeStart | |
| t:Hide() | |
| Me() | |
| end | |
| end | |
| e.levelBar:UpdateBar() | |
| end | |
| end | |
| local function Le(i)if not i.spawnedJewels then | |
| i.spawnedJewels=true | |
| n.gemsCleared=n.gemsCleared or(0) | |
| local s,s,t,d,l,r,s | |
| for e=1,h do | |
| i.columnOffset[e]=p | |
| if(i.spawningLevel)then | |
| i.columnOffset[e]=p+m(1,400) | |
| end | |
| for l=a,1,-1 do | |
| if o[l][e].contents==0 then | |
| t=o[l][e]if not i.spawningLevel then | |
| n.gemsCleared=n.gemsCleared+1 | |
| end | |
| u(i.newJewel,t) | |
| if i.spawningLevel and we then | |
| if t.wasHyper then | |
| t.wasHyper=nil | |
| n.hyperSpawn=(n.hyperSpawn or(0))+1 | |
| end | |
| if(t.bigStar)then | |
| t.bigStar:Hide() | |
| n.bigStarSpawn=(n.bigStarSpawn or(0))+1 | |
| t.bigStar:Hide() | |
| t.bigStar.fxEnd=nil | |
| t.bigStar.explode=nil | |
| t.bigStar.fxType=S | |
| u(i.bigStarQueue,t.bigStar) | |
| t.bigStar=nil | |
| t.explode=nil | |
| end | |
| end | |
| de(e,l,i.spawningLevel) | |
| d=m(30,50) | |
| if(i.spawningLevel)then | |
| d=d*2 | |
| end | |
| t.y=-i.columnOffset[e]-ne-d | |
| t.maxYOffset=i.columnOffset[e]+(p*(t.gridY-1))+ne+d | |
| i.columnOffset[e]=i.columnOffset[e]+p+d | |
| t.yOffset=0 | |
| if(i.spawningLevel)then | |
| t.yVel=0 | |
| else | |
| t.yVel=t.yVel or 0 | |
| end | |
| t.moving=le | |
| t.fxType=W | |
| t.fxFrame=1 | |
| i:Add(t) | |
| t:SetWidth(b) | |
| t:SetHeight(p) | |
| R(t) | |
| t:SetAlpha(1) | |
| if(t.lightWaveObj)then | |
| t.lightWaveObj:Hide() | |
| end | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",t.x,-t.y) | |
| end | |
| end | |
| end | |
| local d | |
| if(n.gameMode~=c)or(n.level==1)then | |
| for n=1,200 do | |
| if not Q()then | |
| for e=1,#i.newJewel do | |
| i.newJewel[e].contents=0 | |
| end | |
| for e=1,#i.newJewel do | |
| de(i.newJewel[e].gridX,i.newJewel[e].gridY,true,true) | |
| end | |
| else | |
| break | |
| end | |
| if(n==50)then | |
| t=i:CreateBigStar(0,0,i.newJewel[1]) | |
| i.newJewel[1].explode=1 | |
| i.newJewel[1].fxType=A | |
| i.newJewel[1].bigStar=t | |
| i.newJewel[1].forcedExplode=1 | |
| i:Add(t) | |
| i.forceBlow=true | |
| end | |
| end | |
| end | |
| if(i.spawningLevel)then | |
| if n.bigStarSpawn>0 then | |
| for e=1,n.bigStarSpawn do | |
| for e=1,6 do | |
| l=m(1,h) | |
| r=m(1,a) | |
| t=o[r][l] | |
| if not t.bigStar then | |
| t.bigStar=i:CreateBigStar(0,0,t) | |
| t.bigStar:Hide() | |
| i:Add(t.bigStar) | |
| break | |
| end | |
| if(e==6)then | |
| for e=1,h*a do | |
| l=l+1 | |
| if(l>h)then | |
| l=1 | |
| r=r+1 | |
| if(r>a)then | |
| r=1 | |
| end | |
| end | |
| t=o[r][l] | |
| if not t.bigStar then | |
| t.bigStar=i:CreateBigStar(0,0,t) | |
| t.bigStar:Hide() | |
| i:Add(t.bigStar) | |
| break | |
| end | |
| end | |
| end | |
| end | |
| end | |
| n.bigStarSpawn=0 | |
| end | |
| if n.hyperSpawn>0 then | |
| for e=1,n.hyperSpawn do | |
| for e=1,6 do | |
| l=m(1,h) | |
| r=m(1,a) | |
| t=o[r][l] | |
| if not t.bigStar and not t.spawnHyper then | |
| t.spawnHyper=true | |
| break | |
| end | |
| if(e==6)then | |
| for e=1,h*a do | |
| l=l+1 | |
| if(l>h)then | |
| l=1 | |
| r=r+1 | |
| if(r>a)then | |
| r=1 | |
| end | |
| end | |
| t=o[r][l] | |
| if not t.bigStar and not t.spawnHyper then | |
| t.spawnHyper=true | |
| break | |
| end | |
| end | |
| end | |
| end | |
| end | |
| n.hyperSpawn=0 | |
| end | |
| i.spawningLevel=nil | |
| if not i.newGameStart then | |
| Ue() | |
| end | |
| end | |
| if not BejeweledProfile.skill["gainAchieve"..e.const.SKILL_ACHIEVE2A]then | |
| if(BejeweledProfile.stats.totalGemsMatched>=1e3)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_ACHIEVEMENT,e.const.SKILL_ACHIEVE2A) | |
| end | |
| end | |
| end | |
| end | |
| local function X(r)local e,t,t,t | |
| for l=a,1,-1 do | |
| for t=1,h do | |
| if(o[l][t].contents==0)then | |
| for i=l-1,1,-1 do | |
| if(o[i][t].contents~=0)then | |
| e=o[l][t] | |
| e.contents=o[i][t].contents | |
| if o[i][t].bigStar then | |
| e.bigStar=o[i][t].bigStar | |
| o[i][t].bigStar=nil | |
| e.bigStar:ClearAllPoints() | |
| e.bigStar:SetPoint("Topleft",e,"Topleft") | |
| e.bigStar.parent=e | |
| end | |
| o[i][t].contents=0 | |
| e.maxYOffset=e.y-o[i][t].y | |
| e.y=o[i][t].y | |
| e.needsOffset=nil | |
| e.yOffset=o[i][t].yOffset or(0) | |
| e.yVel=o[i][t].yVel or(0) | |
| e.moving=le | |
| e.fxType=E | |
| e.fxFrame=1 | |
| if(e.contents==9)then | |
| e.fxType=g | |
| end | |
| if(o[i][t]==n.nextSelectedJewel)then | |
| Se(true) | |
| n.nextSelectedJewel=e | |
| e.selector:Show() | |
| if(e.fxType~=g)then | |
| e.fxType=y | |
| e.fxEnd=nil | |
| e.fxFrame=1 | |
| end | |
| e.highlight:SetAlpha(0) | |
| end | |
| r:Add(e) | |
| R(e) | |
| R(o[i][t]) | |
| e:ClearAllPoints() | |
| e:SetPoint("Topleft",e.x,-e.y) | |
| break | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| local function ne(t)t.countdown=(t.countdown or(0))-t.elapsed | |
| if(t.countdown<0)then | |
| if(t.hintObj)then | |
| t.hintObj.fxFrame=0 | |
| end | |
| t.countdown=1 | |
| t.countdownState=(t.countdownState or(4))-1 | |
| if(t.countdownState>0)then | |
| if(t.countdownState==3)then | |
| e.sound:Play("GetReady") | |
| end | |
| e.gameStatusText:SetText(Y(t.countdownState)) | |
| e.gameStatusText:Show() | |
| e.gameStatusText.background:Show() | |
| else | |
| t.countdownState=nil | |
| t.countdown=nil | |
| t.newGameStart=nil | |
| e.gameStatusText:SetText("Go") | |
| e.sound:Play("Go") | |
| if not BejeweledProfile.settings.disableHints then | |
| t:Add(t:CreateHint(Q())) | |
| end | |
| if(n.gameMode~=c)then | |
| e.levelBar:StartTimer() | |
| end | |
| local t={mode="OUT",timeToFade=3,startAlpha=1,endAlpha=0,finishedFunc=function()e.gameStatusText:SetAlpha(1) | |
| e.gameStatusText.background:SetAlpha(1) | |
| e.gameStatusText:Hide() | |
| e.gameStatusText.background:Hide() | |
| end} | |
| UIFrameFade(e.gameStatusText,t) | |
| UIFrameFade(e.gameStatusText.background,t) | |
| n.moveAllowed=true | |
| end | |
| end | |
| end | |
| local function de(t,o)t.animationStatus=o+1 | |
| if(t.animationStatus==pe)then | |
| t.spawnedJewels=nil | |
| end | |
| if(t.animationStatus==ot)and(t.newGameStart)then | |
| t.animationStatus=V | |
| end | |
| if(t.animationStatus==ot)or(t.animationStatus>Fe)then | |
| local i,o | |
| i=he()if i or(t.forceBlow==true)then | |
| t.animationStatus=Pe | |
| t.forceBlow=nil | |
| else | |
| if(n.gemsCleared or(0))>=10 then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_GEMCOMBO,e.const.SKILL_CLEAR10) | |
| end | |
| if(n.gemsCleared or(0))>=15 then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_GEMCOMBO,e.const.SKILL_CLEAR15) | |
| end | |
| if(n.gemsCleared or(0))>=20 then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_GEMCOMBO,e.const.SKILL_CLEAR20) | |
| end | |
| if(n.gemsCleared or(0))>=25 then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_GEMCOMBO,e.const.SKILL_CLEAR25) | |
| end | |
| n.gemsCleared=0 | |
| if(n.leveledUp)then | |
| n.leveledUp=nil | |
| n.levelingUp=true | |
| t.animationStatus=Fe | |
| t.spawningLevel=true | |
| Ke() | |
| else | |
| if(t.animationStatus>Fe)then | |
| if(n.gameOver)then | |
| e.summaryScreen:FillData() | |
| e.summaryScreen:Show() | |
| t.animationStatus=V | |
| else | |
| t.animationStatus=pe | |
| t.spawnedJewels=nil | |
| end | |
| t.spawnedJewels=nil | |
| else | |
| if not n.gameOver then | |
| if(n.levelingUp)then | |
| UIFrameFadeOut(e.gameStatusText,2)UIFrameFadeOut(e.gameStatusText.background,2)else | |
| e.gameStatusText:Hide() | |
| e.gameStatusText.background:Hide() | |
| end | |
| end | |
| n.levelingUp=nil | |
| t.animationStatus=V | |
| if not n.gameOver then | |
| n.moveAllowed=true | |
| end | |
| if(n.combo>n.largestCombo)then | |
| n.largestCombo=n.combo | |
| end | |
| if(n.combo>BejeweledProfile.stats.largestCombo)then | |
| BejeweledProfile.stats.largestCombo=n.combo | |
| end | |
| if(n.nextSelectedJewel)then | |
| n.selectedJewel=n.nextSelectedJewel | |
| n.nextSelectedJewel=nil | |
| if(n.selectedJewel.fxType~=g)then | |
| n.selectedJewel.fxType=y | |
| n.selectedJewel.fxEnd=nil | |
| n.selectedJewel.fxFrame=1 | |
| end | |
| t:Add(n.selectedJewel) | |
| end | |
| n.combo=0 | |
| n.explosions=0 | |
| o=Q() | |
| if not o then | |
| Me() | |
| else | |
| if not BejeweledProfile.settings.disableHints then | |
| t:Add(t:CreateHint(o)) | |
| end | |
| if(n.gameMode==c)then | |
| St() | |
| end | |
| end | |
| if(n.currentMouseOver)then | |
| e:UpdateMouseOver(n.currentMouseOver) | |
| n.currentMouseOver=nil | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| local function Se(l,w)l.elapsed=l.elapsed+w | |
| if(l.elapsed<l.delay)then | |
| return | |
| end | |
| if not e.isShown then | |
| l.elapsed=0 | |
| return | |
| end | |
| local T=e.animator | |
| local K=e.gameBoard | |
| local k=Te*l.elapsed | |
| local _=et*l.elapsed | |
| local P=wt*l.elapsed | |
| local I=Gt*l.elapsed | |
| local t=et*.025 | |
| local t=20 | |
| if(n.levelingUp)then | |
| if(n.mode~=c)then | |
| k=k*2.5 | |
| P=P*2 | |
| end | |
| end | |
| local x=l.animationStack | |
| local r,f,i,C,t,s,j,D,L,U,r | |
| local c,r | |
| local m=l.animationStatus | |
| local G,v | |
| l.glowFrame=l.glowFrame+(w*re*l.glowFrameDir) | |
| if(l.glowFrame>=re)then | |
| l.glowFrameDir=-1 | |
| l.glowFrame=re | |
| end | |
| if(l.glowFrame<=1)then | |
| l.glowFrameDir=1 | |
| l.glowFrame=1 | |
| end | |
| local H=(l.glowFrame/re)*(1/(z+4)) | |
| if(n.gameMode)then | |
| l.lightwaveElapsed=(l.lightwaveElapsed or(0))+l.elapsed | |
| if(l.lightwaveElapsed>25)then | |
| l.lightwaveElapsed=0 | |
| for e=1,a do | |
| l:Add(l:CreateLightwave(o[e][1],e)) | |
| end | |
| end | |
| end | |
| for e=1,a do | |
| for n=1,h do | |
| t=o[e][n] | |
| t.glowLevel=0 | |
| t.glow:SetAlpha(0) | |
| end | |
| end | |
| f=1 | |
| if(#l.newJewel>0)then | |
| for e=1,#l.newJewel do | |
| B(l.newJewel,1) | |
| end | |
| end | |
| local w=(m~=V)if(m==pe)then | |
| l:HandleJewelDropping(l)end | |
| if(m==Ct)then | |
| m=m+1 | |
| l:HandleJewelFalling(l) | |
| end | |
| for Y=1,#x do | |
| t=x[f] | |
| t.movedOnce=nil | |
| if(t.fxType==De)then | |
| i=t.fxFrame+1 | |
| t.fxFrame=i | |
| local e=t:GetParent() | |
| if(i==1)then | |
| if(e.gridX<8)then | |
| l:Add(l:CreateLightwave(o[e.gridY][e.gridX+1],0)) | |
| end | |
| t.texture:SetTexCoord(unpack(N[2])) | |
| elseif(i==10)then | |
| t.fxType=S | |
| u(l.lightwaveQueue,t) | |
| t:Hide() | |
| t:GetParent().lightWaveObj=nil | |
| end | |
| if(i>0)and(e.y>=0)then | |
| t:SetAlpha((10-i)/10) | |
| else | |
| t:SetAlpha(0) | |
| end | |
| end | |
| if(m==V)then | |
| if(t.fxType==y)then | |
| i=t.fxFrame+1 | |
| if(i>Lt)then | |
| i=1 | |
| if(t.fxEnd)then | |
| t.fxEnd=nil | |
| t.fxType=E | |
| if not t.moving then | |
| t.fxType=S | |
| end | |
| end | |
| end | |
| t.fxFrame=i | |
| t.texture:SetTexCoord(unpack(F[i])) | |
| elseif(t.fxType==je)then | |
| i=t.fxFrame+1 | |
| if(i>it)then | |
| i=1 | |
| t.nextGlow=t.nextGlow+1 | |
| if(t.nextGlow>9)then | |
| t.nextGlow=1 | |
| end | |
| s=t.adj | |
| if s and(s.fxType==ke)then | |
| s.fxEnd=true | |
| end | |
| local n=t.gridX+FX_SHINE_GRIDX[t.nextGlow] | |
| local e=t.gridY+FX_SHINE_GRIDY[t.nextGlow] | |
| if(n>=1)and(n<=8)and(e>=1)and(e<=8)and not t.fxEnd then | |
| s=o[e][n] | |
| if(math.fmod(t.nextGlow,2)==1)then | |
| s.nextGlow=t.nextGlow+1 | |
| else | |
| s.nextGlow=t.nextGlow-1 | |
| end | |
| if(s.fxType~=je)and(s.fxType~=y)and(s.fxType~=g)and(s.fxType~=W)and(s.fxType~=S)and not(s.moving)then | |
| T:Add(s) | |
| s.fxType=ke | |
| s.fxFrame=1 | |
| s.fxEnd=nil | |
| s.highlight:SetTexCoord(unpack(N[FX_SHINE_KEYFRAME[s.nextGlow]])) | |
| s.highlight:SetAlpha(0) | |
| end | |
| else | |
| s=nil | |
| end | |
| t.adj=s | |
| if(t.fxEnd)then | |
| t.fxEnd=nil | |
| t.fxType=nil | |
| B(x,f) | |
| f=f-1 | |
| t.animated=nil | |
| t.highlight:SetTexCoord(0,0,0,0) | |
| else | |
| t.highlight:SetTexCoord(unpack(N[FX_SHINE_KEYFRAME[t.nextGlow]])) | |
| end | |
| end | |
| t.fxFrame=i | |
| t.highlight:SetAlpha(FX_SHINE_ALPHA[i]) | |
| elseif(t.fxType==ke)then | |
| i=t.fxFrame+1 | |
| if(i>Re)then | |
| t.fxEnd=true | |
| i=1 | |
| end | |
| if(t.fxEnd)then | |
| t.fxEnd=nil | |
| B(x,f) | |
| f=f-1 | |
| t.animated=nil | |
| t.highlight:SetTexCoord(0,0,0,0) | |
| end | |
| t.fxFrame=i | |
| t.highlight:SetAlpha(FX_SHINE_ALPHA[i]) | |
| end | |
| elseif(m==Pe)then | |
| if(t.fxType==A)then | |
| t.markX=nil | |
| t.markY=nil | |
| if(t.score)then | |
| t:Show() | |
| t.fxType=te | |
| if not t.notScore then | |
| e.levelBar:AddScore(t.score) | |
| end | |
| if(t.comboSound)then | |
| e.sound:Play("Combo",t.comboSound) | |
| t.comboSound=nil | |
| end | |
| elseif(t.bigStarSpawn)then | |
| t.fxType=E | |
| t.bigStar=t.bigStarSpawn | |
| t.bigStarSpawn=nil | |
| t.bigStar:Show() | |
| e.sound:Play("PowerCreate") | |
| if not(BejeweledData.firstPowerGem)then | |
| BejeweledData.firstPowerGem=true | |
| e.popup.text:SetText(e.popup.text.tip1) | |
| e.popup.parent=t | |
| e.popup:Hide() | |
| e.popup:Show() | |
| end | |
| elseif(t.hyperGemSpawn)then | |
| t.hyperGemSpawn=nil | |
| T:CreateHyperGem(t) | |
| e.sound:Play("HyperCreate") | |
| if not(BejeweledData.firstHyperCube)then | |
| BejeweledData.firstHyperCube=true | |
| e.popup.text:SetText(e.popup.text.tip2) | |
| e.popup.parent=t | |
| e.popup:Hide() | |
| e.popup:Show() | |
| end | |
| elseif(t.hyperGemTrigger)then | |
| if not G then | |
| G=true | |
| if(t.hyperGemDelay==1)then | |
| t.hyperGemDelay=nil | |
| Ce(t)if not(t.explode)then | |
| t.fxEnd=nil | |
| t.fxType=S | |
| t.contents=0 | |
| R(t) | |
| end | |
| else | |
| t.hyperGemDelay=(t.hyperGemDelay or(0))+1 | |
| end | |
| end | |
| w=nil | |
| elseif(t.bigStar)then | |
| if(t.explode)then | |
| if not v then | |
| v=true | |
| if t.explodeDelay then | |
| t.fxType=E | |
| t.bigStar:Hide() | |
| t.bigStar.fxEnd=true | |
| t.bigStar=nil | |
| t.explode=nil | |
| local r=t.forcedExplode | |
| t.forcedExplode=nil | |
| u(T.animationStack,T:CreateExplosion(0,0,t)) | |
| for i=-1,1 do | |
| if((t.gridY+i)>0)and((t.gridY+i)<=a)then | |
| for e=-1,1 do | |
| if((t.gridX+e)>0)and((t.gridX+e)<=h)then | |
| T:CreateShardSpawn(0,0,o[t.gridY+i][t.gridX+e],o[t.gridY+i][t.gridX+e].contents,e,i,r) | |
| if(e==0)then | |
| o[t.gridY+i][t.gridX+e].yVel=-20 | |
| else | |
| o[t.gridY+i][t.gridX+e].yVel=o[t.gridY+i][t.gridX+e].yVel or-10 | |
| end | |
| o[t.gridY+i][t.gridX+e].moving=le | |
| o[t.gridY+i][t.gridX+e].yOffset=o[t.gridY+i][t.gridX+e].yOffset or(0) | |
| l:Add(o[t.gridY+i][t.gridX+e]) | |
| if(r)then | |
| n.gemsCleared=n.gemsCleared-1 | |
| end | |
| if(i==-1)then | |
| local n | |
| for n=t.gridY-1,1,-1 do | |
| if(e==0)then | |
| o[n][t.gridX+e].yVel=-20 | |
| else | |
| o[n][t.gridX+e].yVel=o[n][t.gridX+e].yVel or-10 | |
| end | |
| o[n][t.gridX+e].moving=le | |
| o[n][t.gridX+e].yOffset=o[n][t.gridX+e].yOffset or(0) | |
| l:Add(o[n][t.gridX+e]) | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| else | |
| t.explodeDelay=1 | |
| end | |
| end | |
| w=nil | |
| end | |
| else | |
| i=t.fxFrame+1 | |
| if(i>se)then | |
| i=1 | |
| t.fxEnd=nil | |
| t.fxType=S | |
| t.contents=0 | |
| R(t) | |
| else | |
| w=nil | |
| end | |
| t.texture:SetWidth((se-i+1)/se*b)t.texture:SetHeight((se-i+1)/se*p)t.fxFrame=i | |
| end | |
| end | |
| elseif(m==pe)then | |
| if(t.moving==le)then | |
| t.movedOnce=true | |
| t.yVel=t.yVel+P | |
| r=t.yOffset+t.yVel | |
| if(r>=t.maxYOffset)then | |
| r=t.maxYOffset | |
| t.yOffset=0 | |
| t.maxYOffset=nil | |
| else | |
| t.yOffset=r | |
| end | |
| w=nil | |
| if(t.maxYOffset==nil)then | |
| t.moving=nil | |
| t.y=t.y+r | |
| r=0 | |
| t.fxFrame=1 | |
| t.yVel=nil | |
| if(t.fxType~=W)and(t.fxType~=g)then | |
| if not t.explode then | |
| t.fxType=S | |
| end | |
| end | |
| e.sound:Play("GemClick") | |
| end | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",t.x,-(t.y+r)) | |
| end | |
| if(t.fxType==W)then | |
| r=t.y+t.yOffset | |
| if(r>=0)then | |
| t.texture:SetTexCoord(unpack(F[1])) | |
| t.texture:ClearAllPoints()t.texture:SetPoint("Center")t.fxType=E | |
| if(t.explode==1)then | |
| t.fxType=A | |
| end | |
| if(t.spawnHyper)then | |
| t.spawnHyper=nil | |
| l:CreateHyperGem(t) | |
| end | |
| t.texture:SetHeight(p)if(t.bigStar)then | |
| t.bigStar:Show() | |
| end | |
| if(t.lightWaveObj)then | |
| t.lightWaveObj:Show() | |
| end | |
| elseif(r>=-p)then | |
| j,D,L,U=unpack(F[1]) | |
| r=d(r+p) | |
| t.texture:ClearAllPoints()t.texture:SetPoint("Bottom")t.texture:SetHeight(r) | |
| L=(p-r)/255 | |
| t.texture:SetTexCoord(j,D,L,U) | |
| if(t.lightWaveObj)then | |
| t.lightWaveObj:Hide() | |
| end | |
| else | |
| t.texture:SetTexCoord(0,0,0,0) | |
| if(t.lightWaveObj)then | |
| t.lightWaveObj:Hide() | |
| end | |
| end | |
| end | |
| end | |
| if(t.moving==le)and(not t.movedOnce)then | |
| t.movedOnce=true | |
| t.yVel=t.yVel+(math.abs(t.yVel)*.1)+P | |
| r=t.yOffset+t.yVel | |
| if(t.maxYOffset)then | |
| if(r>=t.maxYOffset)then | |
| r=t.maxYOffset | |
| t.yOffset=0 | |
| t.maxYOffset=nil | |
| else | |
| t.yOffset=r | |
| end | |
| if(t.maxYOffset==nil)then | |
| t.moving=nil | |
| t.y=t.y+r | |
| r=0 | |
| t.fxFrame=1 | |
| t.yVel=nil | |
| if(t.fxType~=W)and(t.fxType~=g)then | |
| if not t.explode then | |
| t.fxType=S | |
| end | |
| end | |
| e.sound:Play("GemClick") | |
| end | |
| else | |
| t.yOffset=r | |
| end | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",t.x,-(t.y+r)) | |
| end | |
| if(t.fxType==g)then | |
| i=t.fxFrame+1 | |
| if(i>mt)then | |
| i=1 | |
| if(t.fxEnd)then | |
| t.fxEnd=nil | |
| end | |
| end | |
| t.fxFrame=i | |
| t.texture:SetTexCoord(unpack(O[i])) | |
| local e | |
| for i=-2,2 do | |
| if((t.gridY+i)>0)and((t.gridY+i)<=a)then | |
| for n=-2,2 do | |
| if((t.gridX+n)>0)and((t.gridX+n)<=h)then | |
| e=o[t.gridY+i][t.gridX+n] | |
| if(math.abs(i)==2)or(math.abs(n)==2)then | |
| e.glowLevel=math.min(e.glowLevel+1,z) | |
| else | |
| e.glowLevel=math.min(e.glowLevel+2,z) | |
| end | |
| if(e.fxType==y)or(e.y<-5)then | |
| e.glow:SetAlpha(0) | |
| else | |
| e.glow:SetAlpha(e.glowLevel*H) | |
| end | |
| end | |
| end | |
| end | |
| end | |
| elseif(t.fxType==ye)then | |
| i=t.fxFrame+.5 | |
| frame2=t.fxFrame2-2.5 | |
| if(i>ve)then | |
| i=ve-i | |
| end | |
| if(frame2<=0)then | |
| frame2=ve+frame2 | |
| end | |
| if(t.fxEnd)then | |
| t.fxEnd=nil | |
| t.fxType=S | |
| t:Hide() | |
| u(l.bigStarQueue,t) | |
| end | |
| t.fxFrame=i | |
| t.fxFrame2=frame2 | |
| l:RotateTexture(t.texture,d(i),.5,.5) | |
| l:RotateTexture(t.highlight,d(frame2),.5,.5) | |
| C=t.fxAlpha+t.fxAlphaStep | |
| if(C>100)then | |
| t.fxAlphaStep=-t.fxAlphaStep | |
| C=100 | |
| elseif(C<0)then | |
| t.fxAlphaStep=-t.fxAlphaStep | |
| C=0 | |
| end | |
| t.fxAlpha=C | |
| t.texture:SetAlpha(C/100) | |
| t.highlight:SetAlpha((100-C)/100) | |
| local e | |
| for i=-2,2 do | |
| if((t.parent.gridY+i)>0)and((t.parent.gridY+i)<=a)then | |
| for n=-2,2 do | |
| if((t.parent.gridX+n)>0)and((t.parent.gridX+n)<=h)then | |
| e=o[t.parent.gridY+i][t.parent.gridX+n] | |
| if(math.abs(i)==2)or(math.abs(n)==2)then | |
| e.glowLevel=math.min(e.glowLevel+1,z) | |
| else | |
| e.glowLevel=math.min(e.glowLevel+2,z) | |
| end | |
| if(e.fxType==y)or(e.y<-5)then | |
| e.glow:SetAlpha(0) | |
| else | |
| e.glow:SetAlpha(e.glowLevel*H) | |
| end | |
| end | |
| end | |
| end | |
| end | |
| elseif(t.fxType==He)then | |
| i=t.fxFrame+1 | |
| if(i>Xe)then | |
| i=1 | |
| if(t.fxEnd)then | |
| t.fxEnd=nil | |
| t.fxType=S | |
| t:Hide() | |
| end | |
| end | |
| t.x=t.x+t.xVel | |
| t.y=t.y+t.yVel | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",t.x,-t.y) | |
| t.yVel=t.yVel+k | |
| if(t.xVel>0)and(t.xVel<8)then | |
| t.xVel=t.xVel+.1 | |
| elseif(t.xVel<0)and(t.xVel>-8)then | |
| t.xVel=t.xVel-.1 | |
| end | |
| if(t.yVel>=Te)then | |
| t.fxType=S | |
| elseif(t.yVel>oe)then | |
| t:SetAlpha(1-((t.yVel-oe)/oe))end | |
| if(t.fxType==S)then | |
| t.fxEnd=nil | |
| t:Hide() | |
| u(l.shardQueue,t) | |
| end | |
| t.fxFrame=i | |
| t.texture:SetTexCoord(unpack(ie[i])) | |
| elseif(t.fxType==Oe)then | |
| i=t.fxFrame+1 | |
| if(i>bt)then | |
| t.fxType=S | |
| end | |
| if(t.fxEnd)then | |
| t.fxEnd=nil | |
| t.fxType=S | |
| end | |
| if(t.fxType==S)then | |
| u(l.explosionQueue,t) | |
| t:Hide() | |
| else | |
| t.fxFrame=i | |
| t.texture:SetTexCoord(unpack(J[i])) | |
| end | |
| elseif(t.fxType==We)then | |
| i=t.fxFrame+1 | |
| if(i>Rt)then | |
| t.fxType=S | |
| end | |
| if(math.fmod(i,2)==1)then | |
| t.highlight:SetAlpha(.2) | |
| else | |
| t.highlight:SetAlpha(.6) | |
| end | |
| if(t.fxEnd)then | |
| t.fxEnd=nil | |
| t.fxType=S | |
| end | |
| if(t.fxType==S)then | |
| u(l.lightningQueue,t) | |
| t:Hide() | |
| t.highlight:Hide() | |
| else | |
| t.fxFrame=i | |
| end | |
| elseif(t.fxType==te)then | |
| i=t.fxFrame+I | |
| if(i>be)then | |
| if(i>be*2)then | |
| i=0 | |
| u(l.floatingTextQueue,t) | |
| t.fxType=S | |
| t:Hide() | |
| else | |
| t:SetAlpha(1-((i-be)/be)) | |
| end | |
| end | |
| if(t.notScore)then | |
| t.y=t.y+I | |
| else | |
| t.y=t.y-I | |
| end | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",K,"Topleft",t.x,-t.y) | |
| t.fxFrame=i | |
| elseif(t.fxType==Ve)then | |
| t.fxFrame=t.fxFrame+l.elapsed | |
| if(t.fxFrame>yt)then | |
| t:Show() | |
| t.bounceY=t.bounceY+t.bounceDir | |
| if(t.bounceDir==1)then | |
| if(t.bounceY>=10)then | |
| t.bounceDir=-1 | |
| t.bounceY=10 | |
| end | |
| else | |
| if(t.bounceY<=0)then | |
| t.bounceDir=1 | |
| t.bounceY=0 | |
| end | |
| end | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",t.x,-t.y+t.bounceY) | |
| end | |
| end | |
| if(t.moving==_e)then | |
| c=t.xOffset+t.xMove*_ | |
| r=t.yOffset+t.yMove*_ | |
| local e | |
| if(c>=ue)then | |
| c=t.xDir*ue | |
| t.xOffset=0 | |
| e=true | |
| else | |
| t.xOffset=c | |
| c=t.xDir*c | |
| end | |
| if(r>=ue)then | |
| r=t.yDir*ue | |
| t.yOffset=0 | |
| e=true | |
| else | |
| t.yOffset=r | |
| r=t.yDir*r | |
| end | |
| if(e)then | |
| if t.invalidMove==1 then | |
| t.xDir=-t.xDir | |
| t.x=t.x+c | |
| c=0 | |
| t.yDir=-t.yDir | |
| t.y=t.y+r | |
| r=0 | |
| t.invalidMove=2 | |
| else | |
| t.moving=nil | |
| if(t.invalidMove==2)then | |
| t.invalidMove=nil | |
| t.x=t.x+c | |
| t.y=t.y+r | |
| c=0 | |
| r=0 | |
| end | |
| t.xOffset=0 | |
| t.yOffset=0 | |
| t.xMove=0 | |
| t.yMove=0 | |
| t.xDir=0 | |
| t.yDir=0 | |
| t.selector:Hide() | |
| if(t.bigStar)then | |
| t.bigStar:ClearAllPoints() | |
| t.bigStar:SetPoint("Topleft",t,"Topleft") | |
| end | |
| if(t.fxType~=A)and(t.fxType~=g)and(t.fxType~=W)then | |
| t.fxType=S | |
| end | |
| if(t.hyperGemContents)then | |
| if(t.swapJewel and(t.swapJewel.contents==9))then | |
| t.swapJewel.fxType=S | |
| t.swapJewel.contents=0 | |
| M(1,t.swapJewel,t.hyperGemContents,nil,true,0,true) | |
| end | |
| t.fxType=A | |
| t.hyperGemTrigger=true | |
| m=Pe | |
| w=nil | |
| end | |
| l.movingJewels=l.movingJewels-1 | |
| t.fxFrame=1 | |
| R(t) | |
| if(l.movingJewels==0)then | |
| n.selectedJewel=nil | |
| l.animationStatus=Pe | |
| end | |
| end | |
| c=0 | |
| r=0 | |
| end | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",t.x+c,-(t.y+r)) | |
| elseif(t.moving==at)then | |
| t.x=t.x+t.xVel | |
| t.y=t.y+t.yVel | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",t.x,-t.y) | |
| t.yVel=t.yVel+k | |
| if(t.yVel>=Te)then | |
| t.fxType=S | |
| elseif(t.yVel>oe)then | |
| t:SetAlpha(1-((t.yVel-oe)/oe))end | |
| if(t.fxType==S)then | |
| t.fxEnd=nil | |
| t.contents=0 | |
| t.x=(t.gridX-1)*b | |
| t.y=(t.gridY-1)*p | |
| t.yVel=0 | |
| t:SetAlpha(0) | |
| else | |
| w=nil | |
| end | |
| end | |
| if(t.fxType==S)and not t.lightWave then | |
| B(x,f) | |
| t.animated=nil | |
| t.fxType=E | |
| else | |
| f=f+1 | |
| end | |
| end | |
| if(l.newGameStart==true)then | |
| l:HandleNewGameCountdown() | |
| end | |
| if(w==true)then | |
| l:HandleAnimatorStatusChange(m) | |
| end | |
| l.elapsed=0 | |
| end | |
| local function A()local e=CreateFrame("Frame","",UIParent) | |
| e:SetWidth(1) | |
| e:SetHeight(1) | |
| e:EnableMouse(false) | |
| e:SetAlpha(0) | |
| e.animationStack={} | |
| e.elapsed=0 | |
| e.delay=.025 | |
| e.glowFrameDir=1 | |
| e.glowFrame=1 | |
| e:SetScript("OnUpdate",Se) | |
| e:SetScript("OnEvent",ze) | |
| e:RegisterEvent("PLAYER_ENTERING_WORLD") | |
| e.movingGems=0 | |
| e.animationStatus=V | |
| e.tableCos={} | |
| e.tableSin={} | |
| for t=0,360 do | |
| i=-math.rad(t-135) | |
| e.tableSin[t]=math.sin(i)*.71 | |
| e.tableCos[t]=math.cos(i)*.71 | |
| end | |
| e:Show() | |
| e.shardQueue={} | |
| e.lightwaveQueue={} | |
| e.lightningQueue={} | |
| e.explosionQueue={} | |
| e.bigStarQueue={} | |
| e.floatingTextQueue={} | |
| e.columnOffset={} | |
| e.newJewel={} | |
| e.Add=st | |
| e.CreateBigStar=Ht | |
| e.CreateExplosion=Ot | |
| e.CreateHyperGem=It | |
| e.CreateImage=At | |
| e.CreateShard=qe | |
| e.CreateShardSpawn=Qe | |
| e.CreateFloatingText=Je | |
| e.CreateHint=Et | |
| e.CreateLightwave=vt | |
| e.CreateLightning=lt | |
| e.RotateTexture=jt | |
| e.HandleAnimatorStatusChange=de | |
| e.HandleJewelDropping=Le | |
| e.HandleJewelFalling=X | |
| e.HandleNewGameCountdown=ne | |
| return e | |
| end | |
| local function V()local o=CreateFrame("Frame","BejeweledNetwork",UIParent) | |
| o:SetWidth(1) | |
| o:SetHeight(1) | |
| o:SetPoint("Top") | |
| o:Show() | |
| o:RegisterEvent("CHAT_MSG_ADDON") | |
| o.queue={} | |
| o.Send=function(l,i,o,n,t)if(BejeweledProfile.scoresUpdated)then | |
| u(e.network.queue,i.."+"..o.."~"..n.."~"..(t or(""))) | |
| end | |
| end | |
| o.throttleCount=0 | |
| o.elapsed=0 | |
| o:SetScript("OnUpdate",function(t,o)if(e.resizeUpdate)then | |
| if not(n.gameOver)then | |
| e.levelBar:SetScore(e.levelBar.score or(0)) | |
| else | |
| e.levelBar.bar:SetWidth(e.levelBar:GetWidth()-4) | |
| end | |
| e.resizeUpdate=nil | |
| end | |
| t.elapsed=t.elapsed+o | |
| if(t.elapsed<1)then | |
| return | |
| end | |
| t.elapsed=0 | |
| t.throttleCount=0 | |
| if(#t.queue>0)then | |
| if(t.throttleCount<20)then | |
| local e,e,e,e | |
| local i,o,e,n | |
| while(t.throttleCount<20)do | |
| o,e,n=strsplit("~",B(t.queue,1)) | |
| if((e=="GUILD")and IsInGuild())then | |
| SendAddonMessage(xe,o,e,n) | |
| t.throttleCount=t.throttleCount+1 | |
| elseif(e=="WHISPER")and(n~="")then | |
| SendAddonMessage(xe,o,e,n) | |
| t.throttleCount=t.throttleCount+1 | |
| end | |
| if(#t.queue==0)then | |
| break | |
| end | |
| end | |
| end | |
| end | |
| end) | |
| o:SetScript("OnEvent",function(i,i,o,n,t,e)if(o==xe)and BejeweledProfile.scoresUpdated then | |
| local o,i | |
| o,n=strsplit("+",n) | |
| if(o=="HSPub")then | |
| if(t=="WHISPER")then | |
| local i,o | |
| for i=1,GetNumFriends()do | |
| o=GetFriendInfo(i)if(o==e)then | |
| Ee(e,n,t) | |
| break | |
| end | |
| end | |
| else | |
| Ee(e,n,t) | |
| end | |
| elseif(o=="HSSync")then | |
| Ee(e,n,t) | |
| elseif(o=="LogSync")and(UnitName("player")~=e)then | |
| dt(e,t) | |
| end | |
| end | |
| end) | |
| e.network=o | |
| end | |
| local function O()local n=CreateFrame("Frame","BejeweledSound",e.window) | |
| n:SetWidth(1) | |
| n:SetHeight(1) | |
| n:SetPoint("Top") | |
| n:Show() | |
| n.playSound=nil | |
| n.elapsed=0 | |
| n.mouseOverElapsed=0 | |
| n.mouseOver=true | |
| n.lastClick=0 | |
| n.Play=function(t,n,o)if not BejeweledProfile.settings.disableSounds and e.window:IsVisible()then | |
| t.playSound=true | |
| if(n=="Combo")then | |
| if(o>6)then | |
| o=6 | |
| end | |
| t[n..o]=true | |
| end | |
| if(n=="GemClick")then | |
| if(t.lastClick>.2)then | |
| t[n]=true | |
| t.lastClick=0 | |
| end | |
| else | |
| t[n]=true | |
| end | |
| end | |
| end | |
| n:SetScript("OnUpdate",function(t,n)if BejeweledProfile.settings.disableSounds then | |
| return | |
| end | |
| t.mouseOverElapsed=t.mouseOverElapsed+n | |
| t.lastClick=t.lastClick+n | |
| if(t.mouseOverElapsed>.5)and(BejeweledData.legalDisplayed)then | |
| t.mouseOverElapsed=0 | |
| if t.mouseOver and not e.window.hiding then | |
| if not MouseIsOver(e.window.mouseBounds)then | |
| if not e.window.resizing then | |
| t.waitMouseOver=nil | |
| e.const.windowFadeOut.fadeTimer=0 | |
| UIFrameFade(e.window,e.const.windowFadeOut)e.window.mouseOverScreen:Show() | |
| t.mouseOver=nil | |
| t:Hide() | |
| if(e.paused~=true)then | |
| e.mousePaused=true | |
| T(true) | |
| end | |
| end | |
| end | |
| end | |
| if(t.waitMouseOver)then | |
| if MouseIsOver(e.window.mouseBounds)then | |
| e.window.mouseOverScreen:Hide() | |
| t.waitMouseOver=nil | |
| t.mouseOver=true | |
| end | |
| end | |
| end | |
| if(t.playSound)then | |
| t.playSound=nil | |
| local e=ut | |
| if(BejeweledProfile.settings.quietSounds)then | |
| e=e.."q_" | |
| end | |
| if(t.Invalid)then | |
| t.Invalid=nil | |
| PlaySoundFile(e.."bad2.mp3") | |
| end | |
| if(t.Explosion)then | |
| t.Explosion=nil | |
| PlaySoundFile(e.."bombexplode.mp3") | |
| end | |
| if(t.GetReady)then | |
| t.GetReady=nil | |
| PlaySoundFile(e.."Get_ready.mp3") | |
| end | |
| if(t.NoMoreMoves)then | |
| t.NoMoreMoves=nil | |
| PlaySoundFile(e.."No_More_Moves.mp3") | |
| end | |
| if(t.TimesUp)then | |
| t.TimesUp=nil | |
| PlaySoundFile(e.."Time_Up.mp3") | |
| end | |
| if(t.Go)then | |
| t.Go=nil | |
| PlaySoundFile(e.."Go.mp3") | |
| end | |
| if(t.Select)then | |
| t.Select=nil | |
| PlaySoundFile(e.."select.mp3") | |
| end | |
| if(t.PowerCreate)then | |
| t.PowerCreate=nil | |
| PlaySoundFile(e.."multishot.mp3") | |
| end | |
| if(t.HyperCreate)then | |
| t.HyperCreate=nil | |
| PlaySoundFile(e.."hypergem_creation.mp3") | |
| end | |
| if(t.HyperDestroy)then | |
| t.HyperDestroy=nil | |
| PlaySoundFile(e.."hypergem_destroyed.mp3") | |
| end | |
| if(t.GemClick)then | |
| t.GemClick=nil | |
| PlaySoundFile(e.."gemongem2.mp3") | |
| end | |
| if(t.WipeBoard)then | |
| t.WipeBoard=nil | |
| PlaySoundFile(e.."explode2.mp3") | |
| end | |
| if(t.ElectroExplode)then | |
| t.ElectroExplode=nil | |
| PlaySoundFile(e.."electro_explode.mp3") | |
| end | |
| if(t.LevelUp)then | |
| t.LevelUp=nil | |
| PlaySoundFile("Sound\\Spells\\LevelUp.wav") | |
| end | |
| if(t.Combo)then | |
| local n | |
| for n=1,6 do | |
| if(t["Combo"..n])then | |
| if(n==1)then | |
| PlaySoundFile(e.."gotset2.mp3") | |
| else | |
| PlaySoundFile(e.."combo"..(n+1).."2.mp3") | |
| end | |
| t["Combo"..n]=nil | |
| break | |
| end | |
| if(n==6)then | |
| t.Combo=nil | |
| end | |
| end | |
| end | |
| end | |
| end) | |
| e.sound=n | |
| end | |
| local function E()local t=CreateFrame("Frame","BejeweledMinimapIcon",Minimap) | |
| t:SetWidth(33) | |
| t:SetHeight(33) | |
| t:SetFrameStrata("LOW") | |
| t:EnableMouse(true) | |
| t:SetClampedToScreen(true) | |
| t.icon=t:CreateTexture(nil,"BACKGROUND") | |
| t.icon:SetWidth(26) | |
| t.icon:SetHeight(26) | |
| t.icon:SetPoint("Center",-1,1) | |
| t.icon:SetTexture(l.."windowIcon") | |
| t.border=t:CreateTexture(nil,"ARTWORK") | |
| t.border:SetWidth(52) | |
| t.border:SetHeight(52) | |
| t.border:SetPoint("Topleft") | |
| t.border:SetTexture("Interface\\Minimap\\MiniMap-TrackingBorder") | |
| t.highlight=t:CreateTexture(nil,"OVERLAY") | |
| t.highlight:SetWidth(32) | |
| t.highlight:SetHeight(32) | |
| t.highlight:SetPoint("Center") | |
| t.highlight:SetTexture("Interface\\Minimap\\UI-Minimap-ZoomButton-Highlight") | |
| t.highlight:SetBlendMode("ADD") | |
| t.highlight:Hide() | |
| t:SetPoint("Center",-(76*math.cos(math.rad(0))),(76*math.sin(math.rad(0))))t:Show() | |
| t:SetScript("OnMouseDown",function(e,t)e.icon:SetPoint("Center",0,0)if(t=="RightButton")then | |
| e.moving=true | |
| end | |
| end) | |
| t:SetScript("OnMouseUp",function(t,n)t.icon:SetPoint("Center",-1,1)t.moving=nil | |
| if(n=="LeftButton")then | |
| local t=e.window | |
| if(t:IsVisible())then | |
| if not e.popup:IsVisible()then | |
| t:Hide()end | |
| else | |
| t:SetAlpha(BejeweledProfile.settings.mouseoffAlpha) | |
| if not MouseIsOver(t)then | |
| t.mouseOverScreen:Show() | |
| e.sound.mouseOver=nil | |
| e.sound:Hide() | |
| if(e.paused~=true)then | |
| e.mousePaused=true | |
| T(true) | |
| end | |
| end | |
| t:Show()end | |
| end | |
| end) | |
| t:SetScript("OnEnter",function(e)e.highlight:Show() | |
| GameTooltip_SetDefaultAnchor(GameTooltip,UIParent) | |
| local e=BejeweledProfile.settings.keybinding or"" | |
| if(e~="")then | |
| e="("..e..")" | |
| end | |
| GameTooltip:SetText("|cFFFFFFFFBejeweled |r"..e)GameTooltip:AddLine("Left-click to show/hide game.\nRight-click to move icon.") | |
| GameTooltip:Show() | |
| end) | |
| t:SetScript("OnLeave",function(e)e.highlight:Hide() | |
| GameTooltip:Hide() | |
| end) | |
| t:SetScript("OnUpdate",function(i)if(i.moving)then | |
| local o,n=GetCursorPosition()local a=Minimap:GetLeft()+Minimap:GetWidth()/2 | |
| local l=Minimap:GetBottom()+Minimap:GetHeight()/2 | |
| local e=(o/UIParent:GetScale())-a | |
| local t=(n/UIParent:GetScale())-l | |
| if(sqrt(e^2+t^2)>Minimap:GetWidth())then | |
| BejeweledProfile.settings.minimapDetached=true | |
| e=o/UIParent:GetScale() | |
| t=n/UIParent:GetScale() | |
| BejeweledProfile.settings.minimapX=e | |
| BejeweledProfile.settings.minimapY=t | |
| i:SetPoint("Center",UIParent,"bottomleft",e,t) | |
| else | |
| local e=math.deg(math.atan2((n/UIParent:GetScale())-l,a-(o/UIParent:GetScale()))) | |
| BejeweledProfile.settings.minimapAngle=e | |
| BejeweledProfile.settings.minimapDetached=nil | |
| i:SetPoint("Center",Minimap,"Center",-(76*math.cos(math.rad(e))),(76*math.sin(math.rad(e))))end | |
| end | |
| end) | |
| e.minimap=t | |
| end | |
| local function g()local t=CreateFrame("Frame","BejeweledWindow",UIParent) | |
| t:SetWidth(q) | |
| t:SetHeight(me) | |
| t:SetPoint("Center") | |
| t:EnableMouse(true) | |
| t:SetToplevel(true) | |
| t:Hide() | |
| t.mouseBounds=CreateFrame("Frame","",t) | |
| t.mouseBounds:SetPoint("Topleft",-20,20) | |
| t.mouseBounds:SetPoint("Bottomright",20,-20) | |
| t.mouseBounds:Show() | |
| local a=t:GetFrameLevel() | |
| local o=C() | |
| o.edgeFile=l.."windowBorder" | |
| o.bgFile=l.."windowBackground" | |
| o.edgeSize=32 | |
| o.tileSize=64 | |
| o.insets.right=3 | |
| t:SetBackdrop(o) | |
| t:SetBackdropColor(.7,.7,.7,1) | |
| t:SetMovable(true) | |
| t:RegisterForDrag("LeftButton") | |
| t:SetScript("OnDragStart",function(e)if not BejeweledProfile.settings.lockWindow then | |
| e:StartMoving() | |
| end | |
| end) | |
| t:SetScript("OnDragStop",function(e)e:StopMovingOrSizing() | |
| end) | |
| t:SetScript("OnHide",function(t)e.isShown=nil | |
| n.isActive=nil | |
| n.activeTime=0 | |
| end) | |
| t:SetScript("OnShow",function(t)e.isShown=true | |
| e.window:SetAlpha(BejeweledProfile.settings.gameAlpha) | |
| if not MouseIsOver(e.window)then | |
| e.sound.waitMouseOver=true | |
| e.sound.mouseOver=nil | |
| else | |
| e.sound.waitMouseOver=nil | |
| e.sound.mouseOver=true | |
| end | |
| e.window.mouseOverScreen:Hide() | |
| e.sound:Show() | |
| if(e.summaryScreen:GetAlpha()==1)then | |
| T(false) | |
| end | |
| end) | |
| local o=CreateFrame("Button","",t,"UIPanelCloseButton")o:SetToplevel(true) | |
| o:SetPoint("Topright",t,"Topright",2,2)o:SetWidth(32) | |
| o:SetHeight(32) | |
| o:SetScript("OnClick",function(t)if not e.popup:IsVisible()then | |
| e.window:Hide() | |
| end | |
| end) | |
| if(bCrowbar)then | |
| local e=CreateFrame("Frame","",t)e:SetWidth(32) | |
| e:SetHeight(32) | |
| e:SetPoint("Right",o,"Left",-2,0) | |
| e.art=e:CreateTexture(nil,"Art")e.art:SetTexture("Interface\\AddOns\\Bejeweled\\images\\crowbar") | |
| e.art:SetPoint("Center") | |
| e.art:SetWidth(32) | |
| e.art:SetHeight(32) | |
| e:EnableMouse(true) | |
| e:SetScript("OnMouseDown",function(e)if bCrowbar.window:IsShown()then | |
| bCrowbar.window:Hide() | |
| else | |
| bCrowbar.window:Show() | |
| end | |
| end) | |
| end | |
| local o=CreateFrame("Button","",t,"OptionsButtonTemplate")o:SetToplevel(true) | |
| o:SetPoint("Topright",-12,-30) | |
| o:SetText("Menu") | |
| o:SetWidth(50) | |
| o:SetHeight(26) | |
| o:SetScript("OnClick",function()local t=e.menuWindow | |
| if(e.aboutScreen:IsVisible()or e.featsOfSkillScreen:IsVisible()or e.optionsScreen:IsVisible())then | |
| e.menuWindow.keepScreen=true | |
| end | |
| if(t:IsShown())then | |
| t:Hide() | |
| else | |
| t:Show() | |
| end | |
| end) | |
| t.menuButton=o | |
| local o=t:CreateTexture(nil,"Art")o:SetTexture(l.."windowIcon") | |
| o:SetPoint("Topleft",-12,4) | |
| o:SetWidth(64) | |
| o:SetHeight(64) | |
| t.icon=o | |
| local o=e.const.largeText["Bejeweled"] | |
| local i=CreateFrame("Frame","",t) | |
| i:SetPoint("Topleft",t) | |
| i:SetPoint("Topright",t,-8,0) | |
| i:SetHeight(o[2]) | |
| local i=i:CreateTexture(nil,"Art")i:SetTexture(l.."artPieces") | |
| i:SetPoint("Bottom",0,0) | |
| i:SetWidth(o[1]) | |
| i:SetHeight(o[2]) | |
| i:SetTexCoord(o[3],o[4],o[5],o[6]) | |
| t.logo=i | |
| local o=CreateFrame("Frame","",t) | |
| o:SetPoint("Bottomright",0,0) | |
| o:SetWidth(32) | |
| o:SetHeight(32) | |
| o:Show() | |
| o:SetFrameLevel(a+3) | |
| o:EnableMouse(true) | |
| o:SetScript("OnMouseDown",function(n,t)if not BejeweledProfile.settings.lockWindow then | |
| if(t=="RightButton")then | |
| e.window:SetWidth(q) | |
| e.window:SetHeight(w+4+110) | |
| else | |
| e.window:StartSizing("Right") | |
| e.window.resizing=true | |
| end | |
| end | |
| end) | |
| o:SetScript("OnMouseUp",function(t)e.window:StopMovingOrSizing() | |
| e.window.resizing=nil | |
| end) | |
| t:SetMaxResize(q*1.5,me*1.5) | |
| t:SetMinResize(q/2,me/2) | |
| t:SetResizable(true) | |
| t:SetScript("OnSizeChanged",function(t)local o=t:GetWidth()/q | |
| local a=1 | |
| local i=1 | |
| local l=e.const.largeText["Bejeweled"] | |
| if(o<.887)then | |
| a=o/.827/(.827/o) | |
| if not(t.menuButton.isSmall)then | |
| t.menuButton.isSmall=true | |
| t.menuButton:SetWidth(26) | |
| t.menuButton:SetText("M") | |
| end | |
| else | |
| if(t.menuButton.isSmall)then | |
| t.menuButton.isSmall=nil | |
| t.menuButton:SetWidth(50) | |
| t.menuButton:SetText("Menu") | |
| end | |
| end | |
| if(o<.855)then | |
| i=o/.855/(.855/o) | |
| if(i<.75)then | |
| i=.75 | |
| end | |
| end | |
| local r=t:GetWidth()-i*56-t.menuButton:GetWidth() | |
| r=math.min(l[1],r) | |
| a=r/l[1] | |
| e.gameBoard:SetScale(o) | |
| e.summaryScreen:SetScale(o) | |
| t:SetHeight((w+4)*o+110) | |
| if(e.levelBar)then | |
| if not(n.gameOver)then | |
| e.levelBar:SetScore(e.levelBar.score or(0)) | |
| else | |
| e.levelBar.bar:SetWidth(e.levelBar:GetWidth()-4) | |
| end | |
| end | |
| t.logo:SetWidth(l[1]*a) | |
| t.logo:SetHeight(l[2]*a) | |
| t.icon:SetWidth(64*i) | |
| t.icon:SetHeight(64*i) | |
| e.resizeUpdate=true | |
| end) | |
| local n=CreateFrame("Frame","BejeweledShowHideButton",UIParent) | |
| n:SetWidth(1) | |
| n:SetHeight(1) | |
| n:SetPoint("Bottomright") | |
| n:SetScript("OnMouseDown",function()if(e.window:IsShown())then | |
| e.window:Hide() | |
| else | |
| e.window:Show() | |
| end | |
| end) | |
| t.showHideButton=n | |
| n=CreateFrame("Frame","BejeweledMouseOverScreen",t) | |
| n:SetPoint("Topleft") | |
| n:SetPoint("Bottomright") | |
| n:EnableMouse(true) | |
| n:SetScript("OnMouseDown",function(t)if(e.window.hiding)then | |
| e.window.hiding=nil | |
| e.const.windowGameOverFadeOut.timeToFade=-1 | |
| e.sound.mouseOver=true | |
| e.sound:Show() | |
| t:Hide() | |
| end | |
| end) | |
| n:SetScript("OnEnter",function(t)if(e.window.hiding)then | |
| return | |
| end | |
| t:Hide() | |
| e.const.windowFadeIn.fadeTimer=0 | |
| UIFrameFade(e.window,e.const.windowFadeIn)e.sound.mouseOver=true | |
| e.sound:Show() | |
| if(e.mousePaused==true)then | |
| if(e.summaryScreen:GetAlpha()==1)then | |
| T(false) | |
| end | |
| e.mousePaused=nil | |
| end | |
| end) | |
| n:SetFrameLevel(t:GetFrameLevel()+80) | |
| t.mouseOverScreen=n | |
| n:Show() | |
| return t | |
| end | |
| local function P()local t=CreateFrame("Frame","BejeweledMenu",e.window) | |
| t:SetWidth(f) | |
| t:SetHeight(L-20) | |
| t:SetPoint("Center") | |
| t:EnableMouse(true) | |
| t:Hide() | |
| t:SetFrameLevel(e.window:GetFrameLevel()+30) | |
| if(e.updatePopup)then | |
| e.updatePopup:SetFrameLevel(e.window:GetFrameLevel()+50) | |
| end | |
| local o=C() | |
| o.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"o.bgFile=l.."windowBackground" | |
| o.edgeSize=32 | |
| o.tileSize=128 | |
| o.insets.top=3 | |
| t:SetBackdrop(o) | |
| t:SetBackdropColor(.6,.6,.6,1) | |
| t:SetBackdropBorderColor(1,.8,.45) | |
| t:SetMovable(true) | |
| local o=CreateFrame("Button","",t,"UIPanelCloseButton")o:SetPoint("Topright",t,"Topright",0,2)o:SetWidth(38) | |
| o:SetHeight(38) | |
| local o=t:CreateFontString(nil,"Overlay") | |
| o:SetFont(STANDARD_TEXT_FONT,16,"Outline") | |
| o:SetTextColor(1,1,1) | |
| o:SetPoint("Top",0,-8) | |
| o:SetText("Menu") | |
| o:Show() | |
| t:SetScript("OnShow",function()T(true) | |
| local t=e.menuWindow | |
| if not n.gameOver and(n.gameMode)then | |
| t.buttonResume:Show() | |
| t.buttonNewGame:ClearAllPoints() | |
| t.buttonNewGame:SetPoint("Bottom",t.buttonResume,"Bottom",0,-32) | |
| t:SetHeight(L-20) | |
| else | |
| t.buttonResume:Hide() | |
| t.buttonNewGame:ClearAllPoints() | |
| t.buttonNewGame:SetPoint("Top",t,"Top",2,-30) | |
| t:SetHeight(L-32-18) | |
| end | |
| e.timedWindow:Hide() | |
| e.gameModeWindow:Hide() | |
| end) | |
| t:SetScript("OnHide",function(t)if(t.keepScreen==true)then | |
| t.keepScreen=nil | |
| else | |
| T(false) | |
| e.aboutScreen:Hide() | |
| e.featsOfSkillScreen:Hide() | |
| e.optionsScreen:Hide() | |
| end | |
| end) | |
| local n=CreateFrame("Button","BejeweledButtonResume",t,"OptionsButtonTemplate")n:SetPoint("Top",2,-30) | |
| n:SetText("Resume") | |
| n:SetWidth(f-20) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)e.menuWindow.keepScreen=nil | |
| e.menuWindow:Hide() | |
| e.levelBarButton:Hide() | |
| end) | |
| t.buttonResume=n | |
| local n=CreateFrame("Button","BejeweledButtonNewGame",n,"OptionsButtonTemplate")n:SetPoint("Bottom",0,-32) | |
| n:SetParent(t) | |
| n:SetText("New Game") | |
| n:SetWidth(f-20) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)e.menuWindow.keepScreen=true | |
| e.menuWindow:Hide() | |
| e.gameModeWindow:Show() | |
| end) | |
| t.buttonNewGame=n | |
| local n=CreateFrame("Button","BejeweledButtonSkills",n,"OptionsButtonTemplate")n:SetPoint("Top",0,-32) | |
| n:SetParent(t) | |
| n:SetText("Feats of Skill") | |
| n:SetWidth(f-20) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)e.menuWindow:Hide() | |
| e.aboutScreen:Hide() | |
| e.optionsScreen:Hide() | |
| e.featsOfSkillScreen:Show() | |
| if(e.levelBarButton:GetID()==0)then | |
| e.levelBarButton:SetID(1) | |
| end | |
| e.levelBarButton:Show() | |
| end) | |
| t.buttonSkills=n | |
| local n=CreateFrame("Button","BejeweledButtonOptions",n,"OptionsButtonTemplate")n:SetPoint("Top",0,-32) | |
| n:SetParent(t) | |
| n:SetText("Options") | |
| n:SetWidth(f-20) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)e.menuWindow:Hide() | |
| e.aboutScreen:Hide() | |
| e.featsOfSkillScreen:Hide() | |
| e.optionsScreen:Show() | |
| if(e.levelBarButton:GetID()==0)then | |
| e.levelBarButton:SetID(1) | |
| end | |
| e.levelBarButton:Show() | |
| end) | |
| t.buttonOptions=n | |
| local n=CreateFrame("Button","BejeweledButtonAbout",n,"OptionsButtonTemplate")n:SetPoint("Top",0,-32) | |
| n:SetParent(t) | |
| n:SetText("About") | |
| n:SetWidth(f-20) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)e.menuWindow:Hide() | |
| t.tabClick(e.aboutScreen.tab2,true) | |
| e.featsOfSkillScreen:Hide() | |
| e.optionsScreen:Hide() | |
| e.aboutScreen:Show() | |
| if(e.levelBarButton:GetID()==0)then | |
| e.levelBarButton:SetID(1) | |
| end | |
| e.levelBarButton:Show() | |
| end) | |
| t.buttonAbout=n | |
| n.tabClick=U | |
| e.menuWindow=t | |
| end | |
| local function N()local t=CreateFrame("Frame","BejeweledPopup",e.window) | |
| t:SetWidth(f+60) | |
| t:SetHeight(L/1.2) | |
| t:SetPoint("Center") | |
| t:EnableMouse(true) | |
| t:Hide() | |
| e.popup=t | |
| t:SetFrameLevel(e.window:GetFrameLevel()+23) | |
| local n=C() | |
| n.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"n.bgFile=l.."windowBackground" | |
| n.edgeSize=32 | |
| n.tileSize=128 | |
| n.insets.top=3 | |
| t:SetBackdrop(n) | |
| t:SetBackdropColor(.6,.6,.6,1) | |
| t:SetBackdropBorderColor(1,.8,.45) | |
| t:SetMovable(true) | |
| local n=CreateFrame("Button","",t,"UIPanelCloseButton")n:SetToplevel(true) | |
| n:SetPoint("Topright",t,"Topright",0,2)n:SetWidth(38) | |
| n:SetHeight(38) | |
| local n=t:CreateFontString(nil,"Overlay") | |
| n:SetFont(STANDARD_TEXT_FONT,13,"Outline") | |
| n:SetTextColor(1,1,1) | |
| n:SetPoint("Top",0,-28) | |
| n:SetWidth(f+40) | |
| n:SetText("") | |
| n:Show() | |
| t.text=n | |
| t.text.tip1="Create a |cFF0070DD[Power Gem]|r by merging 4 gems of the same color. These new gems will explode when matched, scoring extra points!" | |
| t.text.tip2="Create a |cFFA335EE[Hyper Cube]|r by merging 5 gems of the same color. Swap it with a gem to clear all gems of that color onscreen!" | |
| t.text.tip3="Now that you've played a game, check out the Options menu to adjust the settings of Bejeweled, or check out the Feats of Skill area to check out your friend's and guild's high scores, your personal stats, and your Bejeweling Skill progress!" | |
| t.text.tip4="|cFFFFFFFF|rThis is the Skill Tab. Listed are the moves in the game that will up your Bejeweling skill. This follows other tradeskills in WoW: as you go up in skill old actions will stop giving you points and new actions will show up!"t:SetScript("OnShow",function(n)n.caption:SetText("") | |
| n:ClearAllPoints() | |
| if(n.parent)then | |
| n:SetPoint("Bottom",n.parent,"Top") | |
| n.parent=nil | |
| else | |
| n:SetPoint("Center") | |
| end | |
| e.popup.parent=obj | |
| e.window.menuButton:Disable() | |
| if(string.find(t.text:GetText(),"|cFF"))then | |
| n:SetHeight(t.text:GetHeight()+50+20) | |
| n.button1:Show() | |
| n.button2:Hide() | |
| n.button3:Hide() | |
| else | |
| n:SetHeight(t.text:GetHeight()+86+20) | |
| n.button1:Hide() | |
| n.button2:Show() | |
| n.button3:Show() | |
| end | |
| end) | |
| t:SetScript("OnHide",function(t)e.window.menuButton:Enable() | |
| end) | |
| local n=t:CreateFontString(nil,"Overlay") | |
| n:SetFont(STANDARD_TEXT_FONT,13,"Outline") | |
| n:SetTextColor(1,1,1) | |
| n:SetPoint("Top",0,-8) | |
| n:SetWidth(f+40) | |
| n:SetText("") | |
| n:Show() | |
| t.caption=n | |
| local n=CreateFrame("Button","",t,"OptionsButtonTemplate")n:SetPoint("Bottom",0,10) | |
| n:SetText(OKAY) | |
| n:SetWidth(f-20) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)e.popup:Hide() | |
| end) | |
| t.button1=n | |
| local n=CreateFrame("Button","",t,"OptionsButtonTemplate")n:SetPoint("Bottom",0,15) | |
| n:SetText("Feats of Skill") | |
| n:SetWidth(f-20) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)e.popup:Hide() | |
| e.menuWindow.buttonSkills:GetScript("OnClick")(t) | |
| end) | |
| t.button2=n | |
| local n=CreateFrame("Button","",t.button2,"OptionsButtonTemplate")n:SetPoint("Bottom",t.button2,"Top",0,5) | |
| n:SetText("Options") | |
| n:SetWidth(f-20) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)e.popup:Hide() | |
| e.menuWindow.buttonOptions:GetScript("OnClick")(t) | |
| end) | |
| t.button3=n | |
| end | |
| local function W()local t=CreateFrame("Frame","BejeweledGameModeMenu",e.window) | |
| t:SetWidth(f) | |
| t:SetHeight(L-100) | |
| t:SetPoint("Center") | |
| t:EnableMouse(true) | |
| t:Hide() | |
| t:SetFrameLevel(e.window:GetFrameLevel()+33) | |
| local n=C() | |
| n.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"n.bgFile=l.."windowBackground" | |
| n.edgeSize=32 | |
| n.tileSize=128 | |
| n.insets.top=3 | |
| t:SetBackdrop(n) | |
| t:SetBackdropColor(.6,.6,.6,1) | |
| t:SetBackdropBorderColor(1,.8,.45) | |
| t:SetMovable(true) | |
| local n=CreateFrame("Button","",t,"UIPanelCloseButton")n:SetToplevel(true) | |
| n:SetPoint("Topright",t,"Topright",0,2)n:SetWidth(38) | |
| n:SetHeight(38) | |
| local n=t:CreateFontString(nil,"Overlay") | |
| n:SetFont(STANDARD_TEXT_FONT,16,"Outline") | |
| n:SetTextColor(1,1,1) | |
| n:SetPoint("Top",-10,-8) | |
| n:SetText("Game Type") | |
| n:Show() | |
| t:SetScript("OnShow",function()T(true) | |
| end) | |
| t:SetScript("OnHide",function(t)if(t.gameMode)then | |
| t.gameMode=nil | |
| T(false) | |
| else | |
| e.menuWindow:Show() | |
| end | |
| end) | |
| local n=CreateFrame("Button","BejeweledGameModeNormal",t,"OptionsButtonTemplate")n:SetPoint("Top",2,-30) | |
| n:SetText("Classic") | |
| n:SetWidth(f-20) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)e.gameModeWindow.gameMode=true | |
| e.gameModeWindow:Hide() | |
| e.classicModeWindow:Show() | |
| end) | |
| t.buttonNormal=n | |
| local n=CreateFrame("Button","BejeweledGameModeTimed",n,"OptionsButtonTemplate")n:SetPoint("Bottom",0,-36) | |
| n:SetParent(t) | |
| n:SetText("Timed") | |
| n:SetWidth(f-20) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)e.gameModeWindow.gameMode=true | |
| e.gameModeWindow:Hide() | |
| e.timedWindow:Show() | |
| end) | |
| t.buttonTimed=n | |
| e.gameModeWindow=t | |
| end | |
| local function F()local t=CreateFrame("Frame","BejeweledClassicMenu",e.window) | |
| t:SetWidth(f) | |
| t:SetHeight(L-100) | |
| t:SetPoint("Center") | |
| t:EnableMouse(true) | |
| t:Hide() | |
| t:SetFrameLevel(e.window:GetFrameLevel()+33) | |
| local n=C() | |
| n.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"n.bgFile=l.."windowBackground" | |
| n.edgeSize=32 | |
| n.tileSize=128 | |
| n.insets.top=3 | |
| t:SetBackdrop(n) | |
| t:SetBackdropColor(.6,.6,.6,1) | |
| t:SetBackdropBorderColor(1,.8,.45) | |
| t:SetMovable(true) | |
| local n=CreateFrame("Button","",t,"UIPanelCloseButton")n:SetToplevel(true) | |
| n:SetPoint("Topright",t,"Topright",0,2)n:SetWidth(38) | |
| n:SetHeight(38) | |
| local n=t:CreateFontString(nil,"Overlay") | |
| n:SetFont(STANDARD_TEXT_FONT,16,"Outline") | |
| n:SetTextColor(1,1,1) | |
| n:SetPoint("Top",-10,-8) | |
| n:SetText("Classic Mode") | |
| n:Show() | |
| t:SetScript("OnShow",function(e)if(BejeweledProfile)and(BejeweledProfile.settings)and(BejeweledProfile.settings.savedState)and(BejeweledProfile.settings.savedState[1][1]~=0)then | |
| T(true) | |
| else | |
| e.gameMode=true | |
| e:Hide() | |
| j(c,0) | |
| end | |
| end) | |
| t:SetScript("OnHide",function(t)if(t.gameMode)then | |
| t.gameMode=nil | |
| T(false) | |
| else | |
| e.gameModeWindow:Show() | |
| end | |
| end) | |
| local n=CreateFrame("Button","BejeweledClassicNewGame",t,"OptionsButtonTemplate")n:SetPoint("Top",2,-30) | |
| n:SetText("Continue") | |
| n:SetWidth(f-20) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)j(c,0,true) | |
| e.classicModeWindow.gameMode=true | |
| e.classicModeWindow:Hide() | |
| end) | |
| t.buttonContinue=n | |
| local n=CreateFrame("Button","BejeweledClassicContinue",n,"OptionsButtonTemplate")n:SetPoint("Bottom",0,-36) | |
| n:SetParent(t) | |
| n:SetText("New Game") | |
| n:SetWidth(f-20) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)j(c,0) | |
| e.classicModeWindow.gameMode=true | |
| e.classicModeWindow:Hide() | |
| end) | |
| t.buttonNew=n | |
| e.classicModeWindow=t | |
| end | |
| local function D()local n=CreateFrame("Frame","BejeweledFlightOptionMenu",UIParent) | |
| n:SetWidth(f) | |
| n:SetHeight(L) | |
| n:SetToplevel(true) | |
| n:SetFrameStrata("High")n:SetPoint("Center") | |
| n:EnableMouse(true) | |
| n:Hide() | |
| n.pathArray={} | |
| local t=C() | |
| t.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"t.bgFile=l.."windowBackground" | |
| t.edgeSize=32 | |
| t.tileSize=128 | |
| t.insets.top=3 | |
| n:SetBackdrop(t) | |
| n:SetBackdropColor(.6,.6,.6,1) | |
| n:SetBackdropBorderColor(1,.8,.45) | |
| n:SetMovable(true) | |
| local t=CreateFrame("Button","",n,"UIPanelCloseButton")t:SetToplevel(true) | |
| t:SetPoint("Topright",n,"Topright",0,2)t:SetWidth(38) | |
| t:SetHeight(38) | |
| local t=n:CreateFontString(nil,"Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,16,"Outline") | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Top",-10,-8) | |
| t:SetText("Flight Path") | |
| t:Show() | |
| t=n:CreateFontString(nil,"Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,12,"Outline") | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Top",0,-38) | |
| t:SetText("Remaining path time") | |
| t:Show() | |
| n.timerRemainingCaption=t | |
| t=n:CreateFontString(nil,"Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,18,"Outline") | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Top",0,-54) | |
| t:SetText("0 min 0 sec") | |
| t:Show() | |
| n.timeRemainingValue=t | |
| t=n:CreateFontString(nil,"Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,12,"Outline") | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Top",0,-80) | |
| t:SetWidth(f-16) | |
| t:SetHeight(40) | |
| t:SetJustifyV("Top") | |
| t:SetJustifyH("Center") | |
| t:SetText("Games shorter than 60 seconds don't count.") | |
| t:Show() | |
| n:SetScript("OnShow",function(t)if not(t.timer.elapsed)then | |
| t.buttonGo.disabled=nil | |
| t.buttonGo:Enable() | |
| t.timer.elapsed=0 | |
| t.timer.timeElapsed=0 | |
| t.timer.timeRemaining=t.flightTime or 0 | |
| t.timer.legJourney=0 | |
| t.timer.learning=t.learning | |
| t.timer:Show() | |
| e.timedWindow.timeRemainingValue:SetFormattedText("%d min %d sec",e:SecondsConvert(t.flightTime)) | |
| if(e.timedWindow:IsVisible())then | |
| e.timedWindow:SetHeight(L-30) | |
| e.timedWindow.flightCheckbox:Show() | |
| e.timedWindow.flightCheckboxCaption:Hide() | |
| e.timedWindow.flightCheckbox:SetChecked(nil) | |
| e.timedWindow.flightCheckbox:Enable() | |
| e.timedWindow.flightCheckbox.disabled=nil | |
| e.timedWindow.timerRemainingCaption:Show() | |
| e.timedWindow.timeRemainingValue:Show() | |
| end | |
| if(t.learning)then | |
| e.timedWindow.timerRemainingCaption:SetText("Recording flight time") | |
| else | |
| e.timedWindow.timerRemainingCaption:SetText("Remaining flight time") | |
| end | |
| if(BejeweledProfile.settings.newGameFlight)and(e.window:IsVisible()or BejeweledProfile.settings.openFlightStart)then | |
| e.flightOptionWindow.buttonGo:OnClickScript() | |
| else | |
| t:Hide() | |
| end | |
| e.window:RegisterEvent("PLAYER_CONTROL_GAINED") | |
| e.window:RegisterEvent("PLAYER_LEAVING_WORLD") | |
| e.window.switchingZones=nil | |
| end | |
| t.timer.windowElapsed=0 | |
| end) | |
| local t=CreateFrame("Button","BejeweledFlightOptionGo",n,"OptionsButtonTemplate")t:SetPoint("Top",2,-120) | |
| t:SetText("Start") | |
| t:SetWidth(f-20) | |
| t:SetHeight(28) | |
| t.OnClickScript=function(t)if(e.flightOptionWindow.timer.learning)then | |
| j(k,e.flightOptionWindow.timer.timeElapsed) | |
| e.flightOptionWindow.learning=true | |
| else | |
| j(k,e.flightOptionWindow.timer.timeRemaining) | |
| end | |
| e.flightOptionWindow:Hide() | |
| e.timedWindow:Hide() | |
| e.gameModeWindow:Hide() | |
| e.menuWindow:Hide() | |
| e.featsOfSkillScreen:Hide() | |
| e.window:Show() | |
| end | |
| t:SetScript("OnClick",t.OnClickScript) | |
| n.buttonGo=t | |
| local t=CreateFrame("Frame","BejeweledFlightTimer",UIParent) | |
| t:SetPoint("Top") | |
| t:SetWidth(1) | |
| t:SetHeight(1) | |
| t:Hide() | |
| t.timeRemaining=0 | |
| t:SetScript("OnUpdate",Ne) | |
| n.timer=t | |
| e.flightOptionWindow=n | |
| end | |
| local function R()local o=CreateFrame("Frame","BejeweledTimedMenu",e.window) | |
| o:SetWidth(f) | |
| o:SetHeight(L-30) | |
| o:SetPoint("Center") | |
| o:EnableMouse(true) | |
| o:Hide() | |
| o:SetFrameLevel(e.window:GetFrameLevel()+33) | |
| local t=C() | |
| t.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"t.bgFile=l.."windowBackground" | |
| t.edgeSize=32 | |
| t.tileSize=128 | |
| t.insets.top=3 | |
| o:SetBackdrop(t) | |
| o:SetBackdropColor(.6,.6,.6,1) | |
| o:SetBackdropBorderColor(1,.8,.45) | |
| o:SetMovable(true) | |
| local t=CreateFrame("Button","",o,"UIPanelCloseButton")t:SetToplevel(true) | |
| t:SetPoint("Topright",o,"Topright",0,2)t:SetWidth(38) | |
| t:SetHeight(38) | |
| local t=o:CreateFontString(nil,"Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,16,"Outline") | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Top",-10,-8) | |
| t:SetText("Timed Mode") | |
| t:Show() | |
| o:SetScript("OnShow",function(t)T(true) | |
| t.flightCheckbox.disabled=nil | |
| t.flightCheckbox:Enable() | |
| t.flightCheckboxCaption:Hide() | |
| t.flightCheckbox:SetChecked(nil) | |
| if(e.flightOptionWindow.timer:IsVisible())then | |
| t:SetHeight(L-30) | |
| t.flightCheckbox:Show() | |
| t.timerRemainingCaption:Show() | |
| t.timeRemainingValue:Show() | |
| else | |
| t:SetHeight(L-80) | |
| t.flightCheckbox:Hide() | |
| t.timerRemainingCaption:Hide() | |
| t.timeRemainingValue:Hide() | |
| end | |
| end) | |
| o:SetScript("OnHide",function(t)if(t.newGame)then | |
| t.newGame=nil | |
| T(false) | |
| if(n.gameMode==ae)then | |
| e.levelBar:StopTimer() | |
| elseif(n.gameMode==k)then | |
| e.animator.countdownState=0 | |
| n.moveAllowed=nil | |
| end | |
| else | |
| if not o:IsShown()then | |
| e.gameModeWindow:Show() | |
| end | |
| end | |
| end) | |
| t=o:CreateFontString(nil,"Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,10,"Outline") | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Top",0,-28) | |
| t:SetText("Time") | |
| t:Show() | |
| t=o:CreateFontString("BejeweledTimeSliderValue","Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,10,"Outline") | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Top",0,-70) | |
| t:SetText("1 Minute") | |
| t:Show() | |
| local n=CreateFrame("Slider","BejeweledTimeSlider",o,"OptionsSliderTemplate") | |
| getglobal(n:GetName().."Thumb"):Show() | |
| getglobal(n:GetName().."Text"):SetText(objectText) | |
| getglobal(n:GetName().."Text"):SetVertexColor(NORMAL_FONT_COLOR.r,NORMAL_FONT_COLOR.g,NORMAL_FONT_COLOR.b) | |
| getglobal(n:GetName().."Low"):SetText("") | |
| getglobal(n:GetName().."Low"):SetVertexColor(HIGHLIGHT_FONT_COLOR.r,HIGHLIGHT_FONT_COLOR.g,HIGHLIGHT_FONT_COLOR.b) | |
| getglobal(n:GetName().."High"):SetText("") | |
| getglobal(n:GetName().."High"):SetVertexColor(HIGHLIGHT_FONT_COLOR.r,HIGHLIGHT_FONT_COLOR.g,HIGHLIGHT_FONT_COLOR.b) | |
| n:Show() | |
| n:SetMinMaxValues(2,10) | |
| n:SetValueStep(1) | |
| n:SetPoint("Top",0,-50) | |
| n:SetScript("OnValueChanged",function(e)getglobal(e:GetName().."Value"):SetText(e:GetValue().." Minute(s)")end) | |
| n:SetValue(5) | |
| local n=e:CreateCheckbox(14,-88,"Use flightpath time","useFlightpathTime",1,o,function()end) | |
| getglobal(n:GetName().."Text"):SetFont(STANDARD_TEXT_FONT,11) | |
| getglobal(n:GetName().."Text"):SetShadowOffset(1,-1) | |
| o.flightCheckbox=n | |
| t=o:CreateFontString(nil,"Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,11,"Outline") | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Top",0,-87) | |
| t:SetText("|cFFFF9922Flight time is too\nshort for a timed game.") | |
| t:Show() | |
| o.flightCheckboxCaption=t | |
| t=o:CreateFontString(nil,"Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,10,"Outline") | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Top",0,-118) | |
| t:SetText("Remaining flight time") | |
| t:Show() | |
| o.timerRemainingCaption=t | |
| t=o:CreateFontString(nil,"Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,10,"Outline") | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Top",0,-134) | |
| t:SetText("0s") | |
| t:Show() | |
| o.timeRemainingValue=t | |
| local t=CreateFrame("Button","BejeweledTimedButtonGo",o,"OptionsButtonTemplate")t:SetPoint("Bottom",1,10) | |
| t:SetText("Go!") | |
| t:SetWidth(f-20) | |
| t:SetHeight(28) | |
| t:SetScript("OnClick",function(t)if(e.timedWindow.flightCheckbox:IsVisible()and e.timedWindow.flightCheckbox:GetChecked())then | |
| e.flightOptionWindow.buttonGo:OnClickScript() | |
| else | |
| j(ae,getglobal("BejeweledTimeSlider"):GetValue()*60) | |
| end | |
| e.timedWindow.newGame=true | |
| e.timedWindow:Hide() | |
| end) | |
| e.timedWindow=o | |
| end | |
| local function M(t)e.window:RegisterEvent("UNIT_FLAGS") | |
| end | |
| local function y(t)local i=t:GetID() | |
| local h=GetNumRoutes(i) | |
| local C,w,p,f | |
| local g=TaxiRouteMap:GetWidth() | |
| local c=TaxiRouteMap:GetHeight() | |
| local n | |
| local o | |
| local a=0 | |
| local s=0 | |
| local S | |
| local r=e.flightOptionWindow.pathArray | |
| local t | |
| for e=1,#r do | |
| B(r,1) | |
| end | |
| SetMapToCurrentZone() | |
| local t=ge[GetCurrentMapContinent()]or BejeweledData.flightTimes[GetCurrentMapContinent()] | |
| if not(t)then | |
| BejeweledData.flightTimes[GetCurrentMapContinent()]={} | |
| t=BejeweledData.flightTimes[GetCurrentMapContinent()] | |
| end | |
| local m=TaxiNodeGetType(i) | |
| if(m=="REACHABLE")then | |
| TaxiNodeSetCurrent(i) | |
| if(h>NUM_TAXI_ROUTES)then | |
| NUM_TAXI_ROUTES=h | |
| end | |
| for l=1,NUM_TAXI_ROUTES do | |
| if(l<=h)then | |
| C=TaxiGetSrcX(i,l)*g | |
| w=TaxiGetSrcY(i,l)*c | |
| p=TaxiGetDestX(i,l)*g | |
| f=TaxiGetDestY(i,l)*c | |
| n=string.format("%d,%d",C,w) | |
| o=string.format("%d,%d",p,f) | |
| s=0 | |
| if not(t[n])then | |
| t=BejeweledData.flightTimes[GetCurrentMapContinent()] | |
| if not t[n]then | |
| t[n]={} | |
| end | |
| end | |
| if not(t[n][o])then | |
| t=BejeweledData.flightTimes[GetCurrentMapContinent()] | |
| if not t then | |
| BejeweledData.flightTimes[GetCurrentMapContinent()]={} | |
| t=BejeweledData.flightTimes[GetCurrentMapContinent()] | |
| end | |
| if not(t[n])then | |
| t=BejeweledData.flightTimes[GetCurrentMapContinent()] | |
| if not t[n]then | |
| t[n]={} | |
| end | |
| end | |
| end | |
| if(t==ge)then | |
| local e=BejeweledData.flightTimes[GetCurrentMapContinent()] | |
| if(e)then | |
| if(e[n])then | |
| if(e[n][o])then | |
| t=e | |
| end | |
| end | |
| end | |
| end | |
| t[n][o]=t[n][o]or 0 | |
| s=t[n][o] | |
| a=a+s | |
| if(l>2)then | |
| a=a-1.5 | |
| end | |
| if(s==0)then | |
| S=true | |
| end | |
| u(r,n) | |
| u(r,o) | |
| u(r,s) | |
| end | |
| end | |
| e.flightOptionWindow.flightTime=d(a) | |
| e.flightOptionWindow.learning=S | |
| if(BejeweledProfile.settings.showFlightTooltips)then | |
| if(S)then | |
| GameTooltip:AddLine("Travel time: Unknown (one or more") | |
| GameTooltip:AddLine("legs of the journey need to be timed)") | |
| else | |
| GameTooltip:AddLine("Travel time: "..e:TotalTime(d(a)),1,1,0) | |
| end | |
| end | |
| GameTooltip:Show() | |
| elseif(m=="CURRENT")then | |
| end | |
| end | |
| local function B()local n=e.window | |
| local o=CreateFrame("Frame","BejeweledSummaryScreen",getglobal("BejeweledGameBoardAnchor")) | |
| o:SetPoint("Top",0,-3)o:SetWidth(s+6) | |
| o:SetHeight(w+6) | |
| local a=C() | |
| a.bgFile=l.."windowBackground" | |
| a.tileSize=128 | |
| a.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"a.edgeSize=32 | |
| o:SetBackdrop(a) | |
| o:SetBackdropColor(.7,.7,.7,1) | |
| o:SetBackdropBorderColor(1,.8,.45) | |
| o:SetFrameLevel(n:GetFrameLevel()+20) | |
| o:Hide() | |
| e.summaryScreen=o | |
| local t=e:CreateCaption(0,0,"Game Over!",o,20,1,.85,.1,true) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-10) | |
| t:Show() | |
| local l=CreateFrame("Frame","",o) | |
| l:SetPoint("Top",0,-36)l:SetWidth(s+6-24) | |
| l:SetHeight(w+6-48) | |
| l:SetBackdrop(a) | |
| l:SetBackdropColor(.2,.2,.2,1) | |
| l:SetBackdropBorderColor(1,1,1) | |
| l:SetFrameLevel(n:GetFrameLevel()+21) | |
| l:Show() | |
| o.FillData=_t | |
| i=2 | |
| local n=42 | |
| local r=20 | |
| t=e:CreateCaption(0,0,"Final Score",l,14,1,1,0) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-20-i) | |
| i=i+r | |
| o.scoreCaption=t | |
| I=string.lower(G(t:GetText(),7)) | |
| t=e:CreateCaption(0,0,"0",l,20,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-20-i) | |
| i=i+n | |
| o.scoreValue=t | |
| t=e:CreateCaption(0,0,"Time",l,14,1,1,0) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-20-i) | |
| i=i+r | |
| o.timeCaption=t | |
| t=e:CreateCaption(0,0,"1 min 3 sec",l,20,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-20-i) | |
| i=i+n | |
| o.timeValue=t | |
| t=e:CreateCaption(0,0,"Level",l,14,1,.7,0) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-20-i) | |
| i=i+r | |
| o.levelCaption=t | |
| t=e:CreateCaption(0,0,"15",l,20,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-20-i) | |
| i=i+n | |
| o.levelValue=t | |
| t=e:CreateCaption(0,0,"Largest Cascade",l,14,1,.7,0) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-20-i) | |
| i=i+r | |
| o.cascadeCaption=t | |
| t=e:CreateCaption(0,0,"5",l,20,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-20-i) | |
| i=i+n | |
| o.cascadeValue=t | |
| t=e:CreateCaption(0,0,"Largest Combo",l,14,1,.7,0) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-20-i) | |
| i=i+r | |
| o.comboCaption=t | |
| t=e:CreateCaption(0,0,"12",l,20,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-20-i) | |
| i=i+n | |
| o.comboValue=t | |
| local n=CreateFrame("Button","BejeweledSummaryButtonPublish",l,"OptionsButtonTemplate")n:SetPoint("Bottomleft",8,10) | |
| n:SetText("Publish Scores") | |
| n:SetWidth(120) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)if(t.dataDump)then | |
| e.network:Send("HSPub",t.dataDump,"GUILD","") | |
| local o,n | |
| for o=1,GetNumFriends()do | |
| n,_,_,_,online=GetFriendInfo(o)if(online)then | |
| e.network:Send("HSPub",t.dataDump,"WHISPER",n) | |
| end | |
| end | |
| t.dataDump=nil | |
| t:Hide() | |
| e.menuWindow.buttonSkills:GetScript("OnClick")(e.menuWindow.buttonSkills) | |
| e.featsOfSkillScreen.tab3:GetScript("OnMouseDown")(e.featsOfSkillScreen.tab3) | |
| end | |
| e.popup:Hide() | |
| end) | |
| o.publishButton=n | |
| n=CreateFrame("Button","BejeweledSummaryButtonViewScores",l,"OptionsButtonTemplate")n:SetPoint("Bottom",0,10) | |
| n:SetText("See High Scores") | |
| n:SetWidth(128) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)e.menuWindow.buttonSkills:GetScript("OnClick")(e.menuWindow.buttonSkills) | |
| e.featsOfSkillScreen.tab3:GetScript("OnMouseDown")(e.featsOfSkillScreen.tab3) | |
| e.popup:Hide() | |
| end) | |
| o.seeScoresButton=n | |
| n=CreateFrame("Button","BejeweledSummaryButtonBrag",l,"OptionsButtonTemplate")n:SetPoint("Bottomright",-8,10) | |
| n:SetText("Brag!") | |
| n:SetWidth(120) | |
| n:SetHeight(28) | |
| n:SetScript("OnClick",function(t)local e=e.summaryScreen | |
| e.bragScreen:Show() | |
| e.publishButton:Disable() | |
| e.seeScoresButton:Disable() | |
| e.bragButton:Disable() | |
| end) | |
| o.bragButton=n | |
| e.Dropdown_Item_OnClick=function(t)local e=UIDROPDOWNMENU_OPEN_MENU | |
| UIDropDownMenu_SetText(e,t:GetText(),e) | |
| UIDropDownMenu_SetSelectedValue(e,t.value) | |
| BejeweledProfile.settings.defaultPublish=t.value | |
| end | |
| local i=function(i,o,r,n,l,s,a,d,s)local n=CreateFrame("Frame","BejeweledDropdown_"..n,a,"UIDropDownMenuTemplate") | |
| n:SetHitRectInsets(10,10,0,0) | |
| if(l)then | |
| n.text=e:CreateCaption(i,o,l,a,14,1,1,0) | |
| n.text:SetParent(n) | |
| n.text:ClearAllPoints() | |
| n.text:SetPoint("Bottom",n,"Top",0,4) | |
| o=o+16 | |
| end | |
| n.updateFunc=d | |
| n.menuWidth=r | |
| n.selectedValue=1 | |
| n.bejeweledMenu=true | |
| n.displayMode="MENU" | |
| getglobal(n:GetName().."Text"):SetFont(n.text:GetFont()) | |
| getglobal(n:GetName().."Text"):SetVertexColor(1,1,1) | |
| getglobal(n:GetName().."Text"):SetJustifyH("CENTER") | |
| n.InitializeFunc=function(i)if(UIDROPDOWNMENU_MENU_LEVEL==1)then | |
| local t | |
| local t | |
| local t=e.const.dropInfo | |
| if(i.publish)then | |
| table.wipe(t) | |
| local o=e.const.channels[1] | |
| for n=1,3 do | |
| table.wipe(t) | |
| t.text=e.const.channelNames[n] | |
| t.value=e.const.channels[n] | |
| if(BejeweledProfile.settings.defaultPublish==t.value)then | |
| o=t.value | |
| end | |
| t.arg1=1 | |
| t.func=e.Dropdown_Item_OnClick | |
| UIDropDownMenu_AddButton(t) | |
| end | |
| local l=string.lower(BejeweledProfile.settings.defaultPublish) | |
| local n=i:GetParent() | |
| n:refreshChannels(EnumerateServerChannels())for i=1,#n.channelNames do | |
| table.wipe(t) | |
| t.text=n.channelNames[i] | |
| if(l==string.lower(t.text))then | |
| o=t.text | |
| end | |
| t.value=t.text | |
| t.arg1=1 | |
| t.func=e.Dropdown_Item_OnClick | |
| UIDropDownMenu_AddButton(t) | |
| end | |
| BejeweledProfile.settings.defaultPublish=o | |
| end | |
| end | |
| end | |
| n:SetPoint("Topleft",i-16,-o) | |
| n:SetScript("OnShow",function(e)UIDropDownMenu_SetAnchor(e,0,0,"Top",e,"Bottom") | |
| UIDropDownMenu_Initialize(e,e.InitializeFunc) | |
| UIDropDownMenu_SetSelectedValue(e,BejeweledProfile.settings.defaultPublish)UIDropDownMenu_SetWidth(e,e.menuWidth) | |
| e.selectedValue=BejeweledProfile.settings.defaultPublish | |
| end) | |
| return n | |
| end | |
| t=CreateFrame("Frame","",o) | |
| t:SetPoint("Center") | |
| t:SetWidth(340) | |
| t:SetHeight(200) | |
| t:EnableMouse(true) | |
| t:SetFrameLevel(t:GetFrameLevel()+3) | |
| o.bragScreen=t | |
| t:Hide() | |
| t:SetBackdrop(a) | |
| t:SetBackdropColor(.7,.7,.7,1) | |
| t:SetBackdropBorderColor(1,.8,.45) | |
| t.serverChannels={} | |
| t.channelNames={} | |
| t.refreshChannels=function(e,...)table.wipe(e.serverChannels) | |
| local t | |
| for t=1,#(...)do | |
| u(e.serverChannels,(select(t,...))) | |
| end | |
| table.wipe(e.channelNames) | |
| local t,n | |
| for n=1,15 do | |
| _,t=GetChannelName(n) | |
| if(t)then | |
| for n=1,#e.serverChannels do | |
| if(string.find(t,e.serverChannels[n]))then | |
| t=nil | |
| break | |
| end | |
| end | |
| if(t)then | |
| u(e.channelNames,t)end | |
| end | |
| end | |
| end | |
| text=e:CreateCaption(0,0,"What channel would you like to brag to?",t,17,1,.82,0)text:ClearAllPoints() | |
| text:SetPoint("Top",0,-36) | |
| text:SetWidth(290) | |
| local o=i(40,72,240,"defaultPublish","",nil,t,nil) | |
| o.publish=true | |
| n=CreateFrame("Button","BejeweledBragScreenBrag",t,"OptionsButtonTemplate")n:SetText("Brag!") | |
| n:SetWidth(120) | |
| n:SetHeight(28) | |
| n:ClearAllPoints() | |
| n:SetPoint("Bottomleft",16,16) | |
| n:SetScript("OnClick",function(t)local e=e.summaryScreen | |
| local t=GetChannelName(BejeweledProfile.settings.defaultPublish) | |
| if(t>0)then | |
| SendChatMessage(e.bragString,"CHANNEL",nil,t) | |
| else | |
| SendChatMessage(e.bragString,BejeweledProfile.settings.defaultPublish) | |
| end | |
| e.bragString=nil | |
| e.bragScreen:Hide() | |
| e.bragButton:Hide() | |
| e.publishButton:Enable() | |
| e.seeScoresButton:Enable() | |
| e.bragButton:Enable() | |
| end) | |
| n=CreateFrame("Button","BejeweledBragScreenBack",t,"OptionsButtonTemplate")n:SetText("Back") | |
| n:SetWidth(120) | |
| n:SetHeight(28) | |
| n:ClearAllPoints() | |
| n:SetPoint("Bottomright",-16,16) | |
| n:SetScript("OnClick",function(t)t:GetParent():Hide() | |
| local e=e.summaryScreen | |
| e.publishButton:Enable() | |
| e.seeScoresButton:Enable() | |
| e.bragButton:Enable() | |
| end) | |
| end | |
| local function u()local o=e.window | |
| local t | |
| local t=getglobal("BejeweledGameBoard") | |
| local a=CreateFrame("Frame","BejeweledFeatsOfSkillScreen",t) | |
| a:SetPoint("Top",0,-3-22)a:SetWidth(s+6) | |
| a:SetHeight(w+6-22) | |
| a:EnableMouse(true) | |
| local d=C() | |
| d.bgFile=l.."windowBackground" | |
| d.tileSize=128 | |
| d.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"d.edgeSize=32 | |
| a:SetBackdrop(d) | |
| a:SetBackdropColor(.43,.43,.43,1) | |
| a:SetBackdropBorderColor(1,.8,.45) | |
| a:SetFrameLevel(o:GetFrameLevel()+25) | |
| a:Hide() | |
| a:SetScript("OnShow",function(t)T(true) | |
| t.tab1:Show() | |
| t.tab2:Show() | |
| t.tab3:Show() | |
| t.tab4:Show() | |
| getglobal("BejeweledGame"):SetAlpha(0) | |
| e.summaryScreen:SetAlpha(0) | |
| e.animator.hintObj:SetAlpha(0) | |
| end) | |
| a:SetScript("OnHide",function(t)getglobal("BejeweledGame"):SetAlpha(1) | |
| e.summaryScreen:SetAlpha(1) | |
| e.animator.hintObj:SetAlpha(1) | |
| end) | |
| e.featsOfSkillScreen=a | |
| local n=1.2 | |
| local t=CreateFrame("Frame","",a) | |
| t:SetPoint("Bottomleft",a,"Topleft",4,-14) | |
| t:SetWidth(88) | |
| t:SetHeight(32) | |
| t:SetScale(n)t:Show() | |
| t.texture=t:CreateTexture(nil,"ARTWORK")t.texture:SetPoint("Topleft") | |
| t.texture:SetWidth(88) | |
| t.texture:SetHeight(30) | |
| t.texture:SetTexture(l.."tabs") | |
| t.texture:SetTexCoord(0/256,86/256,0/256,31/256) | |
| t.texture:Show() | |
| t:EnableMouse(true) | |
| t:SetID(1) | |
| t:SetScript("OnMouseDown",U) | |
| a.tab1=t | |
| t=CreateFrame("Frame","",a) | |
| t:SetPoint("Topleft",a.tab1,"Topright") | |
| t:SetWidth(48) | |
| t:SetHeight(32) | |
| t:SetScale(n)t:Show() | |
| t.texture=t:CreateTexture(nil,"ARTWORK")t.texture:SetPoint("Topleft",a.tab1.texture,"Topright") | |
| t.texture:SetWidth(48) | |
| t.texture:SetHeight(30) | |
| t.texture:SetTexture(l.."tabs") | |
| t.texture:SetTexCoord(86/256,131/256,0/256,31/256) | |
| t.texture:Show() | |
| t.texture:SetVertexColor(.5,.5,.5) | |
| t:SetFrameLevel(o:GetFrameLevel()+24) | |
| t:EnableMouse(true) | |
| t:SetID(2) | |
| t:SetScript("OnMouseDown",U) | |
| a.tab2=t | |
| t=CreateFrame("Frame","",a) | |
| t:SetPoint("Topleft",a.tab2,"Topright") | |
| t:SetWidth(93) | |
| t:SetHeight(32) | |
| t:SetScale(n)t:Show() | |
| t.texture=t:CreateTexture(nil,"ARTWORK")t.texture:SetPoint("Topleft",a.tab2.texture,"Topright") | |
| t.texture:SetWidth(93) | |
| t.texture:SetHeight(30) | |
| t.texture:SetTexture(l.."tabs") | |
| t.texture:SetTexCoord(131/256,221/256,0/256,31/256) | |
| t.texture:Show() | |
| t.texture:SetVertexColor(.5,.5,.5) | |
| t:SetFrameLevel(o:GetFrameLevel()+24) | |
| t:EnableMouse(true) | |
| t:SetID(3) | |
| t:SetScript("OnMouseDown",U) | |
| a.tab3=t | |
| t=CreateFrame("Frame","",a) | |
| t:SetPoint("Topleft",a.tab3,"Topright") | |
| t:SetWidth(104) | |
| t:SetHeight(32) | |
| t:SetScale(n)t:Show() | |
| t.texture=t:CreateTexture(nil,"ARTWORK")t.texture:SetPoint("Topleft",a.tab3.texture,"Topright") | |
| t.texture:SetWidth(104) | |
| t.texture:SetHeight(30) | |
| t.texture:SetTexture(l.."tabs") | |
| t.texture:SetTexCoord(0/256,102/256,32/256,63/256) | |
| t.texture:Show() | |
| t.texture:SetVertexColor(.5,.5,.5) | |
| t:SetFrameLevel(o:GetFrameLevel()+24) | |
| t:EnableMouse(true) | |
| t:SetID(4) | |
| t:SetScript("OnMouseDown",U) | |
| a.tab4=t | |
| local i=CreateFrame("Frame","",a) | |
| i:SetPoint("Top",0,-10)i:SetWidth(s+6-24) | |
| i:SetHeight(w+6-68) | |
| a.tab1Content=i | |
| t=e:CreateCaption(0,0,"Bejeweling Skill Rank: ________",i,16,1,.85,.1,true) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-2) | |
| t:Show() | |
| i.title=t | |
| local n=CreateFrame("Frame","BejeweledSkillBar",i) | |
| n:SetPoint("Top",0,-20)n:SetWidth(s+6-24) | |
| n:SetHeight(32) | |
| d=C() | |
| d.edgeFile="Interface\\Buttons\\UI-SliderBar-Border"d.edgeSize=8 | |
| d.bgFile=l.."windowBackground" | |
| d.tileSize=64 | |
| d.insets.left=2 | |
| d.insets.right=2 | |
| n:SetBackdrop(d) | |
| n:SetBackdropColor(.1,.1,.1,0) | |
| n:SetFrameLevel(i:GetFrameLevel()+2) | |
| e.skillBar=n | |
| n.CheckSkill=function(o,t,n,S)local r=BejeweledProfile.skill.skillPoints | |
| local o=e.const.skillData | |
| local l | |
| local d | |
| local h | |
| local s | |
| local a=450 | |
| if(e.skillLimit)then | |
| a=375 | |
| end | |
| local c=(a==r) | |
| if(((r>=o[t][n][2])or(S))and(r<a))or((t>=6)and(r>=o[t][n][2]))then | |
| local i=0 | |
| while((i<3)and(r>=o[t][n][3+i]))do | |
| i=i+1 | |
| end | |
| if(t>=6)then | |
| i=0 | |
| end | |
| if(i<3)or(S)then | |
| if(i==0)then | |
| l=1 | |
| else | |
| if(m(1,100)<=(100-i*33))then | |
| l=1 | |
| end | |
| end | |
| if(S)then | |
| l=1 | |
| end | |
| if(l)then | |
| if(t<6)then | |
| BejeweledProfile.skill.skillPoints=BejeweledProfile.skill.skillPoints+1 | |
| else | |
| if(o[t][n][2]<=r)and(o[t][n][2]<(a-1))then | |
| h='[Bejeweled Addon] You just completed "'..o[t][n][1]..'."'if(t==e.const.SKILLTYPE_FUN)then | |
| BejeweledProfile.skill.skillPoints=BejeweledProfile.skill.skillPoints+3 | |
| BejeweledProfile.skill["gainFun"..n]=true | |
| d=e.animator:CreateFloatingText(50,0,"+3 Skill",3,true) | |
| s=3 | |
| if(n==14)then | |
| BejeweledData.gainFun14=true | |
| end | |
| elseif(t==e.const.SKILLTYPE_ACHIEVEMENT)then | |
| BejeweledProfile.skill.skillPoints=BejeweledProfile.skill.skillPoints+5 | |
| BejeweledProfile.skill["gainAchieve"..n]=true | |
| d=e.animator:CreateFloatingText(50,0,"+5 Skill",3,true) | |
| s=5 | |
| end | |
| if not BejeweledProfile.skill["gainAchieve"..e.const.SKILL_ACHIEVE6A]then | |
| local t,t | |
| local t=true | |
| for e=1,#o[e.const.SKILLTYPE_FUN]do | |
| if not BejeweledProfile.skill["gainFun"..e]then | |
| t=nil | |
| break | |
| end | |
| end | |
| if(t==true)then | |
| for n=1,#o[e.const.SKILLTYPE_ACHIEVEMENT]do | |
| if(n~=e.const.SKILL_ACHIEVE6A)then | |
| if not BejeweledProfile.skill["gainAchieve"..n]then | |
| t=nil | |
| break | |
| end | |
| end | |
| end | |
| end | |
| if(t)then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_ACHIEVEMENT,e.const.SKILL_ACHIEVE6A) | |
| end | |
| end | |
| else | |
| l=nil | |
| end | |
| end | |
| if(d)then | |
| d.fxType=te | |
| d:Show() | |
| e.animator:Add(d) | |
| end | |
| if(S)then | |
| BejeweledProfile.skill.skillPoints=BejeweledProfile.skill.skillPoints+4 | |
| end | |
| if(BejeweledProfile.skill.skillPoints>a)then | |
| BejeweledProfile.skill.skillPoints=a | |
| end | |
| if(l)and(s or(c~=true))then | |
| if(BejeweledProfile.settings.publishSkillGains)then | |
| if(s)then | |
| if(c)then | |
| e:Print(h,ChatTypeInfo["SKILL"].r,ChatTypeInfo["SKILL"].g,ChatTypeInfo["SKILL"].b) | |
| else | |
| e:Print(h.." +"..s.." Skill!",ChatTypeInfo["SKILL"].r,ChatTypeInfo["SKILL"].g,ChatTypeInfo["SKILL"].b) | |
| end | |
| else | |
| if(BejeweledProfile.settings.verboseSkills)then | |
| e:Print('[Bejeweled Addon] You just completed "'..o[t][n][1]..'."',ChatTypeInfo["SKILL"].r,ChatTypeInfo["SKILL"].g,ChatTypeInfo["SKILL"].b) | |
| end | |
| e:Print("Your skill in Bejeweling has increased to "..BejeweledProfile.skill.skillPoints..".",ChatTypeInfo["SKILL"].r,ChatTypeInfo["SKILL"].g,ChatTypeInfo["SKILL"].b) | |
| end | |
| end | |
| e.skillBar.bar:SetWidth((e.skillBar:GetWidth()-4)*((BejeweledProfile.skill.skillPoints-((BejeweledProfile.skill.rank-1)*75))/75)+.5) | |
| if(BejeweledProfile.skill.skillPoints>=BejeweledProfile.skill.rank*75)then | |
| if(BejeweledProfile.skill.rank<6)then | |
| if(a==450)or(BejeweledProfile.skill.rank<5)then | |
| BejeweledProfile.skill.rank=BejeweledProfile.skill.rank+1 | |
| if(BejeweledProfile.settings.publishSkillGains)then | |
| e:Print("Your Bejeweling skill is now of the "..e.const.skillDataRanks[BejeweledProfile.skill.rank].." rank.",ChatTypeInfo["SKILL"].r,ChatTypeInfo["SKILL"].g,ChatTypeInfo["SKILL"].b) | |
| end | |
| if(BejeweledProfile.settings.publishRankGains)and(IsInGuild())then | |
| local t="[Bejeweled Addon]: I have become a" | |
| local n=BejeweledProfile.skill.rank | |
| if(n==1)or(n==3)or(n==4)then | |
| t=t.."n " | |
| else | |
| t=t.." " | |
| end | |
| SendChatMessage(t..e.const.skillDataRanks[BejeweledProfile.skill.rank].." in Bejeweling Skill!","GUILD") | |
| end | |
| end | |
| else | |
| end | |
| e.skillBar.leftIcon:SetTexCoord(((BejeweledProfile.skill.rank-1)*16/128),(BejeweledProfile.skill.rank*16/128),0,1) | |
| e.skillBar.rightIcon:SetTexCoord((BejeweledProfile.skill.rank*16/128),((BejeweledProfile.skill.rank+1)*16/128),0,1) | |
| e.skillBar.bar:SetWidth(1) | |
| end | |
| end | |
| e.skillBar.text:SetFormattedText("%d / %d",BejeweledProfile.skill.skillPoints,(BejeweledProfile.skill.rank*75)) | |
| e.featsOfSkillScreen.tab1Content:UpdateSkillScreen() | |
| e.featsOfSkillScreen.tab4Content:UpdateSkillScreen() | |
| end | |
| end | |
| end | |
| return l or(0) | |
| end | |
| local o=CreateFrame("Frame","",i) | |
| o:SetPoint("Top",0,-20)o:SetWidth(s+6-24) | |
| o:SetHeight(32) | |
| d=C() | |
| d.bgFile=l.."windowBackground" | |
| d.tileSize=128 | |
| d.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"d.edgeSize=32 | |
| d.insets.left=2 | |
| d.insets.right=2 | |
| o:SetBackdrop(d) | |
| o:SetBackdropColor(.1,.1,.1) | |
| o:SetBackdropBorderColor(0,0,0,0) | |
| o:SetFrameLevel(i:GetFrameLevel()+1) | |
| local o=o:CreateTexture(nil,"OVERLAY") | |
| o:SetTexture(l.."barArt") | |
| o:SetVertexColor(0,.2,1)o:SetPoint("Topleft",2,-5) | |
| o:SetHeight(32) | |
| n.bar=o | |
| n.text=e:CreateCaption(0,0,"0 / 75",n,12,1,1,1,true) | |
| n.text:ClearAllPoints() | |
| n.text:SetPoint("Center",0,1) | |
| local o=n:CreateTexture(nil,"OVERLAY") | |
| o:SetTexture(l.."rankIcons") | |
| o:SetPoint("Topleft",3,-6) | |
| o:SetWidth(20) | |
| o:SetHeight(20) | |
| o:SetTexCoord(0,0,0,0) | |
| n.leftIcon=o | |
| o=n:CreateTexture(nil,"OVERLAY") | |
| o:SetTexture(l.."rankIcons") | |
| o:SetPoint("Topright",-3,-6) | |
| o:SetWidth(20) | |
| o:SetHeight(20) | |
| o:SetTexCoord(0,0,0,0) | |
| n.rightIcon=o | |
| local o=CreateFrame("Frame","",i) | |
| o:SetPoint("Top",0,-52)o:SetWidth(s+6-24) | |
| o:SetHeight(21*15) | |
| o:SetBackdrop(d) | |
| o:SetBackdropColor(.2,.2,.2,1) | |
| o:SetBackdropBorderColor(1,1,1) | |
| o:Show() | |
| local f=CreateFrame("ScrollFrame","BejeweledSkillListScroller",o,"UIPanelScrollFrameTemplate")f:SetPoint("Topleft",0,-9)f:SetPoint("Bottomright",-32,9)local S=CreateFrame("Frame","BejeweledSkillList",o) | |
| S:SetPoint("Top",0,-9)S:SetWidth(s+6-24) | |
| S:SetHeight(21*15*3) | |
| S:Show() | |
| f:SetScrollChild(S) | |
| o=S | |
| local n | |
| local c | |
| local r=function(e)e.text:SetVertexColor(1,1,1) | |
| end | |
| local p=function(e)e.text:SetVertexColor(1,.82,0) | |
| end | |
| local m=function(i)local t | |
| local t=e.featsOfSkillScreen.tab1Content | |
| local n=i:GetID() | |
| local o | |
| local a=e.const.skillData | |
| local l | |
| local l=e.featsOfSkillScreen.tab1Content.skillTextSize | |
| if(i.opened)then | |
| i.opened=nil | |
| for e=1,#a[n]do | |
| o=t["section"..n.."Item"..e] | |
| o:SetHeight(.01) | |
| o.text:Hide() | |
| if(o.hasData)then | |
| t.scrollHeight=t.scrollHeight-l | |
| end | |
| end | |
| if(n<5)then | |
| t["section"..Y(n+1).."Header"]:ClearAllPoints() | |
| t["section"..Y(n+1).."Header"]:SetPoint("Topleft",i,"Bottomleft",0,-2) | |
| end | |
| i.expander:SetTexture("Interface\\Buttons\\UI-PlusButton-UP") | |
| else | |
| i.opened=true | |
| local e | |
| for i=1,#a[n]do | |
| o=t["section"..n.."Item"..i] | |
| if(o.hasData)then | |
| o:SetHeight(l+1) | |
| o.text:Show() | |
| e=o | |
| t.scrollHeight=t.scrollHeight+l | |
| else | |
| break | |
| end | |
| end | |
| if(n<5)and(e)then | |
| t["section"..(n+1).."Header"]:ClearAllPoints() | |
| t["section"..(n+1).."Header"]:SetPoint("Topleft",e,"Bottomleft",0,-2) | |
| end | |
| i.expander:SetTexture("Interface\\Buttons\\UI-MinusButton-UP") | |
| end | |
| getglobal("BejeweledSkillList"):SetHeight(t.scrollHeight) | |
| end | |
| local h=13 | |
| i.skillTextSize=h | |
| for n=1,5 do | |
| t=CreateFrame("Frame","",o) | |
| t:SetWidth(o:GetWidth()) | |
| t:SetHeight(h+1) | |
| t:SetScript("OnEnter",r) | |
| t:SetScript("OnLeave",p) | |
| t:SetScript("OnMouseDown",m) | |
| t:SetID(n) | |
| t:EnableMouse(true) | |
| t.expander=t:CreateTexture(nil,"ARTWORK") | |
| t.expander:SetWidth(14) | |
| t.expander:SetHeight(14) | |
| t.expander:SetPoint("Topleft",10,0) | |
| t.expander:SetTexture("Interface\\Buttons\\UI-MinusButton-UP") | |
| t.opened=true | |
| if(n==1)then | |
| t:SetPoint("Topleft",0,-2) | |
| else | |
| t:SetPoint("Topleft",c,"Bottomleft",0,-2) | |
| end | |
| i["section"..n.."Header"]=t | |
| t.text=e:CreateCaption(27,0,e.const.skillDataNames[n],t,h,1,.82,0) | |
| c=t | |
| for l=1,#e.const.skillData[n]do | |
| t=CreateFrame("Frame","",o) | |
| t:SetWidth(o:GetWidth()) | |
| t:SetHeight(h+1) | |
| t:SetPoint("Topleft",c,"Bottomleft",0,-2) | |
| i["section"..n.."Item"..l]=t | |
| t.text=e:CreateCaption(32,0,"Item "..l,t,h,1,1,0) | |
| t.text:SetVertexColor(.5,.5,.5) | |
| t.hasData=true | |
| c=t | |
| end | |
| end | |
| i.UpdateSkillScreen=function(n)local t=BejeweledProfile.skill.rank | |
| local S=BejeweledProfile.skill.skillPoints | |
| n.title:SetFormattedText("Bejeweling Skill Rank: %s",e.const.skillDataRanks[t]) | |
| e.skillBar.text:SetFormattedText("%d / %d",BejeweledProfile.skill.skillPoints,(BejeweledProfile.skill.rank*75)) | |
| e.skillBar.bar:SetWidth((e.skillBar:GetWidth()-4)*((BejeweledProfile.skill.skillPoints-((BejeweledProfile.skill.rank-1)*75))/75)+1) | |
| e.skillBar.leftIcon:SetTexCoord(((BejeweledProfile.skill.rank-1)*16/128),(BejeweledProfile.skill.rank*16/128),0,1) | |
| e.skillBar.rightIcon:SetTexCoord((BejeweledProfile.skill.rank*16/128),((BejeweledProfile.skill.rank+1)*16/128),0,1) | |
| local t | |
| local l=1 | |
| local t,t,o,h,s | |
| local a=e.const.skillData | |
| local d=e.featsOfSkillScreen.tab1Content.skillTextSize | |
| local r=1 | |
| for e=1,5 do | |
| n["section"..e.."Header"].current=1 | |
| n["section"..e.."Header"]:SetHeight(.01) | |
| n["section"..e.."Header"]:Hide() | |
| for t=1,#a[e]do | |
| o=n["section"..e.."Item"..t]o.hasData=nil | |
| o.text:Hide() | |
| o:SetHeight(.01) | |
| end | |
| end | |
| for t=1,5 do | |
| if(t>1)and(h)then | |
| if(s)then | |
| n["section"..t.."Header"]:ClearAllPoints() | |
| n["section"..t.."Header"]:SetPoint("Topleft",s,"Bottomleft",0,-2) | |
| end | |
| end | |
| h=n["section"..t.."Header"].opened | |
| foundFeat=nil | |
| for i=#a[t],1,-1 do | |
| if(a[t][i])then | |
| if(S>=a[t][i][2])then | |
| l=1 | |
| while((l<4)and(S>=a[t][i][2+l]))do | |
| l=l+1 | |
| end | |
| if(l==4)then | |
| if(S>=a[t][i][5]+20)then | |
| l=nil | |
| end | |
| end | |
| if(l)then | |
| if not foundFeat then | |
| foundFeat=true | |
| s=nil | |
| end | |
| itemID=n["section"..t.."Header"].current | |
| n["section"..t.."Header"].current=itemID+1 | |
| o=n["section"..t.."Item"..itemID]o.hasData=true | |
| s=o | |
| r=r+d | |
| o.text:SetText(a[t][i][1]) | |
| o.text:SetVertexColor(unpack(e.const.skillDataColors[l])) | |
| if(h)then | |
| o:SetHeight(d+1) | |
| o.text:Show() | |
| end | |
| end | |
| end | |
| end | |
| end | |
| if(foundFeat)then | |
| n["section"..t.."Header"]:SetHeight(d+1) | |
| n["section"..t.."Header"]:Show() | |
| r=r+d | |
| end | |
| end | |
| e.featsOfSkillScreen.tab1Content.scrollHeight=r | |
| getglobal("BejeweledSkillList"):SetHeight(r) | |
| if not(BejeweledData.firstSkillShow)and(n:IsVisible())then | |
| BejeweledData.firstSkillShow=true | |
| e.popup.text:SetText(e.popup.text.tip4) | |
| e.popup:Hide() | |
| e.popup:SetFrameLevel(e.featsOfSkillScreen.tab1Content:GetFrameLevel()+5) | |
| e.popup:Show() | |
| e.popup.caption:SetText("Bejeweling Skill") | |
| end | |
| end | |
| i:SetScript("OnShow",i.UpdateSkillScreen) | |
| i=CreateFrame("Frame","",a) | |
| i:SetPoint("Top",0,-10) | |
| i:SetWidth(s+6-24) | |
| i:SetHeight(w+6-68) | |
| i:Hide() | |
| i:SetScript("OnShow",function(t)t.scoreClassic:SetText(e:NumberWithCommas(BejeweledProfile.stats.classic.score)) | |
| t.scoreTimed:SetFormattedText("%.2f",BejeweledProfile.stats.timed.score) | |
| t.highestLevel:SetText(BejeweledProfile.stats.classic.highestLevel) | |
| t.mostMoves:SetText(BejeweledProfile.stats.timed.mostMoves) | |
| t.largestCascade:SetText(BejeweledProfile.stats.largestCascade) | |
| t.largestCombo:SetText(BejeweledProfile.stats.largestCombo) | |
| t.totalPlayed:SetText(e:TotalTime(BejeweledProfile.stats.played)) | |
| t.classicPlayed:SetText(e:TotalTime(BejeweledProfile.stats.classic.played)) | |
| t.timedPlayed:SetText(e:TotalTime(BejeweledProfile.stats.timed.played)) | |
| t.combatPaused:SetText(BejeweledProfile.stats.combatPause) | |
| t.totalGems:SetText(BejeweledProfile.stats.totalGemsMatched) | |
| t.totalGames:SetText(K) | |
| t.totalHyper:SetText(BejeweledProfile.stats.totalHyperGems) | |
| t.totalPower:SetText(BejeweledProfile.stats.totalPowerGems) | |
| local e=1 | |
| local n | |
| for t=2,#BejeweledProfile.stats.gemMatch do | |
| if(BejeweledProfile.stats.gemMatch[t]>BejeweledProfile.stats.gemMatch[e])then | |
| e=t | |
| end | |
| end | |
| if(e==1)and(BejeweledProfile.stats.gemMatch[1]==BejeweledProfile.stats.gemMatch[2])then | |
| t.favoriteColor:SetText("|cFFFFFFFF"..NONE) | |
| else | |
| t.favoriteColor:SetText(ft[e]) | |
| end | |
| end) | |
| a.tab2Content=i | |
| t=e:CreateCaption(0,0,"Personal Bests",i,16,1,.85,.1,true) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-2) | |
| t:Show() | |
| o=CreateFrame("Frame","",i) | |
| o:SetPoint("Top",0,-26)o:SetWidth(s+6-24) | |
| o:SetHeight(6*20+6) | |
| o:SetBackdrop(d) | |
| o:SetBackdropColor(.2,.2,.2,1) | |
| o:SetBackdropBorderColor(1,1,1) | |
| o:Show() | |
| n=9 | |
| local r=16 | |
| t=e:CreateCaption(10,n,"Best Classic Mode Score |cFFFF9922(Points)",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"Best Timed Mode Score |cFFFF9922(PPS)",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"Highest Level |cFFFF9922(Classic)",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"Most Moves |cFFFF9922(Timed)",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"Largest Cascade",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"Largest Combo",o,r,1,.85,.1) | |
| n=n+18 | |
| n=9 | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.scoreClassic=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.scoreTimed=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.highestLevel=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.mostMoves=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.largestCascade=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.largestCombo=t | |
| t=e:CreateCaption(0,0,"Fun Statistics",i,16,1,.85,.1,true) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-24-132) | |
| t:Show() | |
| o=CreateFrame("Frame","",i) | |
| o:SetPoint("Top",0,-36-20-122)o:SetWidth(s+6-24) | |
| o:SetHeight(9*20+4) | |
| o:SetBackdrop(d) | |
| o:SetBackdropColor(.2,.2,.2,1) | |
| o:SetBackdropBorderColor(1,1,1) | |
| o:Show() | |
| n=11 | |
| t=e:CreateCaption(10,n,"Total Time /Played",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"Classic Mode /Played",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"Timed Mode /Played",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"Times Entered Combat While Playing",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"Favorite Color |cFFFF9922(Gem)",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"Total Gems Matched",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"Total Games Played",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"|cFFA335EE[Hyper Cube]|r Total",o,r,1,.85,.1) | |
| n=n+18 | |
| t=e:CreateCaption(10,n,"|cFF0070DD[Power Gem]|r Total",o,r,1,.85,.1) | |
| n=n+18 | |
| n=11 | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.totalPlayed=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.classicPlayed=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.timedPlayed=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.combatPaused=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.favoriteColor=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.totalGems=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.totalGames=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.totalHyper=t | |
| t=e:CreateCaption(10,n,"0",o,r,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("TopRight",-10,-n)n=n+18 | |
| i.totalPower=t | |
| i=CreateFrame("Frame","",a) | |
| i:SetPoint("Top",0,-10)i:SetWidth(s+6-24) | |
| i:SetHeight(w+6-68) | |
| i:Hide() | |
| i:SetID(3) | |
| i:SetScript("OnShow",function(e)local t=e:GetID() | |
| if(t==3)then | |
| e:PopulateScores("friends")elseif(t==4)then | |
| e:PopulateScores("guild")end | |
| end) | |
| i.PopulateScores=nt | |
| a.tab3Content=i | |
| local n=function(e)local t=string.match(e:GetName(),"BejeweledCheckBox(.*)") | |
| getglobal("BejeweledCheckBoxviewFriends"):SetChecked(nil) | |
| getglobal("BejeweledCheckBoxviewGuild"):SetChecked(nil) | |
| e:SetChecked(true) | |
| local t=e:GetParent() | |
| t:SetID(e:GetID()) | |
| t:Hide() | |
| t:Show() | |
| end | |
| t=e:CreateCheckbox(10,0,"Show Friends Scores","viewFriends",1,i,n,true) | |
| getglobal(t:GetName().."Text"):SetFont(l.."Contb___.ttf",12,"Outline") | |
| getglobal(t:GetName().."Text"):SetTextColor(1,.85,.1) | |
| getglobal(t:GetName().."Text"):SetText("Show Friends Scores") | |
| t:SetHitRectInsets(0,-130,0,0) | |
| t:SetID(3) | |
| t:SetChecked(true) | |
| i.friends=t | |
| t=e:CreateCheckbox(200,0,"Show Guild Scores","viewGuild",1,i,n,true) | |
| getglobal(t:GetName().."Text"):SetFont(l.."Contb___.ttf",12,"Outline") | |
| getglobal(t:GetName().."Text"):SetTextColor(1,.85,.1) | |
| getglobal(t:GetName().."Text"):SetText("Show Guild Scores") | |
| t:SetHitRectInsets(0,-130,0,0) | |
| t:SetID(4) | |
| i.guild=t | |
| t=e:CreateCaption(0,0,"Best Classic Mode Score |cFFFF9922(Points)",i,12,1,.85,.1,true) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-2-9-9-2) | |
| t:Show() | |
| o=CreateFrame("Frame","",i) | |
| o:SetPoint("Top",0,-26-9-2)o:SetWidth(s+6-24) | |
| o:SetHeight(150+6) | |
| o:SetBackdrop(d) | |
| o:SetBackdropColor(.2,.2,.2,1) | |
| o:SetBackdropBorderColor(1,1,1) | |
| o:Show() | |
| for n=1,10 do | |
| t=e:CreateCaption(10,n*14-7,(n.."."),o,12,1,.53,.13) | |
| t:ClearAllPoints() | |
| t:SetPoint("Topright",o,"Topleft",38,-(n*14-7)) | |
| t=o:CreateTexture(nil,"ARTWORK") | |
| t:SetTexture(l.."rankIcons") | |
| t:SetTexCoord(0,0,0,0) | |
| t:SetWidth(10) | |
| t:SetHeight(10) | |
| t:SetPoint("Topleft",40,-(n*14-6)) | |
| i["classicRank"..n]=t | |
| t=e:CreateCaption(54,n*14-7,"Moongaze",o,12,1,.85,.1) | |
| i["classicName"..n]=t | |
| t=e:CreateCaption(10,n*14-7,"9876543",o,12,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Topright",-10,-(n*14-7)) | |
| i["classicScore"..n]=t | |
| end | |
| t=e:CreateCaption(0,0,"Best Timed Mode Score |cFFFF8822(PPS)",i,12,1,.85,.1,true) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-26-154-4-9) | |
| t:Show() | |
| o=CreateFrame("Frame","",i) | |
| o:SetPoint("Top",0,-26-154-26)o:SetWidth(s+6-24) | |
| o:SetHeight(150+6) | |
| o:SetBackdrop(d) | |
| o:SetBackdropColor(.2,.2,.2,1) | |
| o:SetBackdropBorderColor(1,1,1) | |
| o:Show() | |
| for n=1,10 do | |
| t=e:CreateCaption(10,n*14-7,(n.."."),o,12,1,.53,.13) | |
| t:ClearAllPoints() | |
| t:SetPoint("Topright",o,"Topleft",38,-(n*14-7)) | |
| t=o:CreateTexture(nil,"ARTWORK") | |
| t:SetTexture(l.."rankIcons") | |
| t:SetTexCoord(0,0,0,0) | |
| t:SetWidth(10) | |
| t:SetHeight(10) | |
| t:SetPoint("Topleft",40,-(n*14-6)) | |
| i["timedRank"..n]=t | |
| t=e:CreateCaption(54,n*14-7,"Moongaze",o,12,1,.85,.1) | |
| i["timedName"..n]=t | |
| t=e:CreateCaption(10,n*14-7,"9876543",o,12,1,1,1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Topright",-10,-(n*14-7)) | |
| i["timedScore"..n]=t | |
| end | |
| i=CreateFrame("Frame","",a) | |
| i:SetPoint("Top",0,-10)i:SetWidth(s+6-24) | |
| i:SetHeight(w+6-68) | |
| i:Hide() | |
| i:SetID(4) | |
| i:SetScript("OnShow",function(e)local t=e:GetID() | |
| if(t==3)then | |
| e:PopulateScores("friends")elseif(t==4)then | |
| e:PopulateScores("guild")end | |
| end) | |
| a.tab4Content=i | |
| t=e:CreateCaption(0,0,"Achievements must be completed with the addon shown\nand a game in progress.\nAchievements Unlocked: 2 of 23\nAchievements Completed: 2",i,12,1,.85,.1,true) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,0) | |
| t:SetWidth(s+6-24) | |
| t:Show() | |
| t.caption="Achievements must be completed with the addon shown\nand a game in progress.\nAchievements Unlocked: %d of %d\nAchievements Completed: %d"i.title=t | |
| o=CreateFrame("Frame","",i) | |
| o:SetPoint("Top",0,-52)o:SetWidth(s+6-24) | |
| o:SetHeight(21*15) | |
| o:SetBackdrop(d) | |
| o:SetBackdropColor(.2,.2,.2,1) | |
| o:SetBackdropBorderColor(1,1,1) | |
| o:Show() | |
| f=CreateFrame("ScrollFrame","BejeweledAchievementListScroller",o,"UIPanelScrollFrameTemplate")f:SetPoint("Topleft",0,-9)f:SetPoint("Bottomright",-32,9)S=CreateFrame("Frame","BejeweledAchievementList",o) | |
| S:SetPoint("Top",0,-9)S:SetWidth(s+6-24) | |
| S:SetHeight(21*15*3) | |
| S:Show() | |
| f:SetScrollChild(S) | |
| o=S | |
| h=13 | |
| i.skillTextSize=h | |
| c=nil | |
| for n=6,7 do | |
| for a=1,#e.const.skillData[n]do | |
| t=CreateFrame("Frame","",o) | |
| t:SetWidth(387)t:SetHeight(59)t:SetScale(.87) | |
| if not c then | |
| t:SetPoint("Topleft",14,0) | |
| else | |
| t:SetPoint("Topleft",c,"Bottomleft",0,0) | |
| end | |
| i["section"..n.."Item"..a]=t | |
| t.title=e:CreateCaption(54,4,e.const.skillData[n][a][6],t,h,1,1,1,nil,true) | |
| t.title:SetVertexColor(1,1,1) | |
| t.title:SetWidth(280) | |
| t.title:SetJustifyH("Center") | |
| t.text=e:CreateCaption(54,22,e.const.skillData[n][a][1],t,h,1,1,1,nil,true) | |
| t.text:SetVertexColor(0,0,0) | |
| t.text:SetWidth(280) | |
| t.text:SetJustifyH("Center") | |
| t.texture=t:CreateTexture(nil,"ARTWORK") | |
| t.texture:SetAllPoints(t) | |
| t.texture:SetTexture(l.."achievementplates") | |
| t.texture:SetTexCoord(0,401/512,0,60/128) | |
| t.icon=t:CreateTexture(nil,"OVERLAY") | |
| t.icon:SetPoint("TopLeft",10,-10) | |
| t.icon:SetWidth(32) | |
| t.icon:SetHeight(32) | |
| t.icon:SetTexture(e.const.skillData[n][a][7]) | |
| t.icon:SetVertexColor(.5,.5,.5) | |
| t.hasData=true | |
| c=t | |
| end | |
| end | |
| i.UpdateSkillScreen=function(r)local t=BejeweledProfile.skill.rank | |
| local f=BejeweledProfile.skill.skillPoints | |
| local t | |
| local t=1 | |
| local n,n,t,n,n | |
| local n=e.const.skillData | |
| local o=e.featsOfSkillScreen.tab4Content.skillTextSize | |
| local d=1 | |
| local o | |
| local l,c,a | |
| local h=0 | |
| local s=0 | |
| local S=0 | |
| for e=#n,6,-1 do | |
| for n=#n[e],1,-1 do | |
| t=r["section"..e.."Item"..n]t.hasData=nil | |
| t.text:Hide() | |
| t.title:Hide() | |
| t.texture:Hide() | |
| t.icon:Hide() | |
| t:SetHeight(.01) | |
| s=s+1 | |
| end | |
| end | |
| for e=6,#n do | |
| for o=1,#n[e]do | |
| if(n[e][o])then | |
| if(f>=n[e][o][2])then | |
| h=h+1 | |
| t=r["section"..e.."Item"..o]t.hasData=true | |
| d=d+51 | |
| if((e==6)and(BejeweledProfile.skill["gainFun"..o]==true))or((e==7)and(BejeweledProfile.skill["gainAchieve"..o]==true))then | |
| S=S+1 | |
| if not l then | |
| t:SetPoint("Topleft",14,0) | |
| else | |
| t:SetPoint("Topleft",l,"Bottomleft",0,0) | |
| end | |
| l=t | |
| t.title:SetVertexColor(1,1,1) | |
| t.text:SetVertexColor(0,0,0) | |
| t.texture:SetTexCoord(0,401/512,0,60/128) | |
| t.icon:SetVertexColor(1,1,1) | |
| else | |
| if c then | |
| t:SetPoint("Topleft",c,"Bottomleft",0,0) | |
| else | |
| a=t | |
| end | |
| c=t | |
| t.title:SetVertexColor(.7,.7,.7) | |
| t.text:SetVertexColor(1,1,1) | |
| t.texture:SetTexCoord(0,401/512,60/128,120/128) | |
| t.icon:SetVertexColor(.5,.5,.5) | |
| end | |
| t.text:Show() | |
| t.title:Show() | |
| t.texture:Show() | |
| t.icon:Show() | |
| t:SetHeight(59) | |
| end | |
| end | |
| end | |
| end | |
| if l then | |
| if a then | |
| a:SetPoint("Topleft",l,"Bottomleft",0,0) | |
| end | |
| else | |
| if a then | |
| a:SetPoint("Topleft",14,0) | |
| end | |
| end | |
| r.title:SetFormattedText(r.title.caption,h,s,S) | |
| e.featsOfSkillScreen.tab4Content.scrollHeight=d | |
| getglobal("BejeweledAchievementList"):SetHeight(d) | |
| if not(BejeweledData.firstSkillShow)and(r:IsVisible())then | |
| BejeweledData.firstSkillShow=true | |
| e.popup.text:SetText(e.popup.text.tip4) | |
| e.popup:Hide() | |
| e.popup:SetFrameLevel(e.featsOfSkillScreen.tab1Content:GetFrameLevel()+5) | |
| e.popup:Show() | |
| e.popup.caption:SetText("Bejeweling Skill") | |
| end | |
| end | |
| i:SetScript("OnShow",i.UpdateSkillScreen) | |
| end | |
| local function m()local n=e.window | |
| local t | |
| local t=getglobal("BejeweledGameBoard") | |
| local i=CreateFrame("Frame","BejeweledAboutScreen",t) | |
| i:SetPoint("Top",0,-3-22)i:SetWidth(s+6) | |
| i:SetHeight(w+6-22) | |
| i:EnableMouse(true) | |
| local r=C() | |
| r.bgFile=l.."windowBackground" | |
| r.tileSize=128 | |
| r.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"r.edgeSize=32 | |
| i:SetBackdrop(r) | |
| i:SetBackdropColor(.43,.43,.43,1) | |
| i:SetBackdropBorderColor(1,.8,.45) | |
| i:SetFrameLevel(n:GetFrameLevel()+25) | |
| i:Hide() | |
| i:SetScript("OnShow",function(t)T(true) | |
| t.tab1:Show() | |
| t.tab2:Show() | |
| t.tab3:Show() | |
| getglobal("BejeweledGame"):SetAlpha(0) | |
| e.summaryScreen:SetAlpha(0) | |
| e.animator.hintObj:SetAlpha(0) | |
| end) | |
| i:SetScript("OnHide",function(t)getglobal("BejeweledGame"):SetAlpha(1) | |
| e.summaryScreen:SetAlpha(1) | |
| e.animator.hintObj:SetAlpha(1) | |
| end) | |
| e.aboutScreen=i | |
| local t=CreateFrame("Frame","",i) | |
| t:SetPoint("Bottomleft",i,"Topleft",5,-14) | |
| t:SetWidth(133) | |
| t:SetHeight(34) | |
| t:Show() | |
| t.texture=t:CreateTexture(nil,"ARTWORK")t.texture:SetPoint("Topleft") | |
| t.texture:SetWidth(133) | |
| t.texture:SetHeight(34) | |
| t.texture:SetTexture(l.."tabs") | |
| t.texture:SetTexCoord(0/255,111/255,64/255,95/255) | |
| t.texture:Show() | |
| t:EnableMouse(true) | |
| t:SetID(1) | |
| t:SetScript("OnMouseDown",U) | |
| i.tab1=t | |
| t=CreateFrame("Frame","",i) | |
| t:SetPoint("Bottomleft",i,"Topleft",139,-14) | |
| t:SetWidth(133) | |
| t:SetHeight(34) | |
| t:Show() | |
| t.texture=t:CreateTexture(nil,"ARTWORK")t.texture:SetPoint("Topleft") | |
| t.texture:SetWidth(133) | |
| t.texture:SetHeight(34) | |
| t.texture:SetTexture(l.."tabs") | |
| t.texture:SetTexCoord(112/255,223/255,64/255,95/255) | |
| t.texture:Show() | |
| t.texture:SetVertexColor(.5,.5,.5) | |
| t:SetFrameLevel(n:GetFrameLevel()+24) | |
| t:EnableMouse(true) | |
| t:SetID(2) | |
| t:SetScript("OnMouseDown",U) | |
| i.tab2=t | |
| t=CreateFrame("Frame","",i) | |
| t:SetPoint("Bottomright",i,"Topright",-2,-14) | |
| t:SetWidth(133) | |
| t:SetHeight(34) | |
| t:Show() | |
| t.texture=t:CreateTexture(nil,"ARTWORK")t.texture:SetPoint("Topleft") | |
| t.texture:SetWidth(133) | |
| t.texture:SetHeight(34) | |
| t.texture:SetTexture(l.."tabs") | |
| t.texture:SetTexCoord(0/255,111/255,96/255,127/255) | |
| t.texture:Show() | |
| t.texture:SetVertexColor(.5,.5,.5) | |
| t:SetFrameLevel(n:GetFrameLevel()+24) | |
| t:EnableMouse(true) | |
| t:SetID(3) | |
| t:SetScript("OnMouseDown",U) | |
| i.tab3=t | |
| local a=CreateFrame("Frame","",i) | |
| a:SetPoint("Top",0,-10)a:SetWidth(s+6-24) | |
| a:SetHeight(w+6-68) | |
| i.tab1Content=a | |
| local n=CreateFrame("Frame","",a) | |
| n:SetPoint("Topleft",5,-5)n:SetWidth(376) | |
| n:SetHeight(118) | |
| n:SetBackdrop(r) | |
| n:SetBackdropColor(.2,.2,.2,1) | |
| n:SetBackdropBorderColor(1,1,1) | |
| n:Show() | |
| local o=e.const.largeText["Tutorial_1"] | |
| t=n:CreateTexture(nil,"ARTWORK") | |
| t:SetTexture(l.."artPieces") | |
| t:SetTexCoord(o[3],o[4],o[5],o[6]) | |
| t:SetWidth(o[1]) | |
| t:SetHeight(o[2]) | |
| t:ClearAllPoints() | |
| t:SetPoint("Center",-85,0) | |
| t=e:CreateCaption(0,0,"|cFFFF9922Swap adjacent gems to make sets of 3!",n,14,1,.85,.1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Center",85,0) | |
| t:SetWidth(160) | |
| t:Show() | |
| n=CreateFrame("Frame","",a) | |
| n:SetPoint("Topleft",5,-5-118)n:SetWidth(376) | |
| n:SetHeight(118) | |
| n:SetBackdrop(r) | |
| n:SetBackdropColor(.2,.2,.2,1) | |
| n:SetBackdropBorderColor(1,1,1) | |
| n:Show() | |
| o=e.const.largeText["Tutorial_2"] | |
| t=n:CreateTexture(nil,"ARTWORK") | |
| t:SetTexture(l.."artPieces") | |
| t:SetTexCoord(o[3],o[4],o[5],o[6],o[7],o[8],o[9],o[10]) | |
| t:SetWidth(o[1]) | |
| t:SetHeight(o[2]) | |
| t:ClearAllPoints() | |
| t:SetPoint("Center",-85,0) | |
| t=e:CreateCaption(0,0,"|cFFFF99224 gems will create a |cFF0070DD[Power Gem]|r!",n,14,1,.85,.1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Center",85,0) | |
| t:SetWidth(140) | |
| t:Show() | |
| n=CreateFrame("Frame","",a) | |
| n:SetPoint("Topleft",5,-5-236)n:SetWidth(376) | |
| n:SetHeight(118) | |
| n:SetBackdrop(r) | |
| n:SetBackdropColor(.2,.2,.2,1) | |
| n:SetBackdropBorderColor(1,1,1) | |
| n:Show() | |
| o=e.const.largeText["Tutorial_3"] | |
| t=n:CreateTexture(nil,"ARTWORK") | |
| t:SetTexture(l.."artPieces") | |
| t:SetTexCoord(o[3],o[4],o[5],o[6]) | |
| t:SetWidth(o[1]) | |
| t:SetHeight(o[2]) | |
| t:ClearAllPoints() | |
| t:SetPoint("Center",-85,0) | |
| t=e:CreateCaption(0,0,"|cFFFF99225 gems will create a |cFFA335EE[Hyper Cube]|r!",n,14,1,.85,.1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Center",85,0) | |
| t:SetWidth(140) | |
| t:Show() | |
| a=CreateFrame("Frame","",i) | |
| a:SetPoint("Top",0,-10) | |
| a:SetWidth(s+6-24) | |
| a:SetHeight(w+6-86) | |
| a:Hide() | |
| i.tab2Content=a | |
| n=CreateFrame("Frame","",a) | |
| n:SetPoint("Topleft",10,-10)n:SetPoint("Bottomright",-10,-20) | |
| n:SetBackdrop(r) | |
| n:SetBackdropColor(.2,.2,.2,1) | |
| n:SetBackdropBorderColor(1,1,1) | |
| n:Show() | |
| o=e.const.largeText["Popcap"] | |
| t=n:CreateTexture(nil,"ARTWORK") | |
| t:SetTexture(l.."artPieces") | |
| t:SetTexCoord(o[3],o[4],o[5],o[6]) | |
| t:SetWidth(o[1]-20) | |
| t:SetHeight(o[2]-20) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",0,-10) | |
| t=e:CreateCaption(0,0,"",n,14,1,.85,.1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",12,-92) | |
| t:SetWidth(336) | |
| t:Show() | |
| t:SetJustifyH("LEFT") | |
| t:SetText("Why'd we do it? Many PopCap employees are also hardcore ".."WoW players, who alt-tab during long flights or queues ".."to kill time with Bejeweled.\n\n".."So when we learned we could actually implement Bejeweled ".."through an Add-On, we were intrigued. Soon the PopCap 'guild' ".."was figuring out ways to make the mod even cooler and more ".."comprehensive. And lots of work later...\n\n".."Now, we hope other WoW players will enjoy our 'game within a ".."game.' Happy Bejeweling!") | |
| t=n:CreateFontString(nil,"Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,11,"Outline") | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Bottom",0,12) | |
| t:SetText("For Customer Support, email wowaddons@popcap.com") | |
| t:Show() | |
| t=n:CreateFontString(nil,"Overlay") | |
| t:SetFont(STANDARD_TEXT_FONT,12,"Outline") | |
| t:SetTextColor(1,1,1) | |
| t:SetPoint("Topright",-12,-12) | |
| t:SetText(e.version) | |
| t:Show() | |
| t=e:CreateCaption(0,0,"",n,16,1,.4,.8) | |
| t:SetFont(STANDARD_TEXT_FONT,16) | |
| t:SetShadowColor(0,0,0) | |
| t:SetShadowOffset(1,-1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Top",n,"Bottom",0,-2) | |
| t:SetWidth(386) | |
| t:Show() | |
| t:SetJustifyH("CENTER") | |
| t:SetText("For the latest build, go to popcap.com/wow") | |
| a=CreateFrame("Frame","",i) | |
| a:SetPoint("Top",0,-10)a:SetWidth(s+6-24) | |
| a:SetHeight(w+6-68) | |
| a:Hide() | |
| i.tab3Content=a | |
| n=CreateFrame("Frame","",a) | |
| n:SetPoint("Topleft",10,-10)n:SetPoint("Bottomright",-10,-10) | |
| n:SetBackdrop(r) | |
| n:SetBackdropColor(.2,.2,.2,1) | |
| n:SetBackdropBorderColor(1,1,1) | |
| n:Show() | |
| t=e:CreateCaption(0,0,"",n,16,1,.85,.1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",12,-12) | |
| t:SetWidth(336) | |
| t:Show() | |
| t:SetText("Bejeweled Addon for WoW")t:SetJustifyH("CENTER") | |
| t=e:CreateCaption(0,0,"",n,14,1,.85,.1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",12,-42) | |
| t:SetWidth(336) | |
| t:Show() | |
| t:SetText("Programmer: |cFFFFFFFFMichael Fromwiller|r\n".."Artist: |cFFFFFFFFTysen Henderson|r\n".."Producer: |cFFFFFFFFT. Carl Kwoh|r\n".."PopCap QA: |cFFFFFFFFShawn Conard, Ryan Newitt,\nJonathan Green|r\n\n".."Original Bejeweled:\n|cFFFFFFFFJason Kapalka, Brian Fiete, John Vechey|r\n\n") | |
| t:SetJustifyH("CENTER") | |
| t=e:CreateCaption(0,0,"",n,13,1,.85,.1) | |
| t:ClearAllPoints() | |
| t:SetPoint("Topleft",17,-175) | |
| t:SetWidth(326) | |
| t:Show() | |
| t:SetText("Special Thanks:\n"..'|cFFFFFFFFMorphieus "Lothaer" (Spinebreaker-A), Eleya (Eredar-A), Anthony Coleman, Ben Lyon, and Jeff Weinstein.|r\n\n'.."Beta Testers:\n".."|cFFFFFFFFNaiad (Ysera-H), Nie (Ysera-H), BraveOne (Aerie Peak-A), Brutall (Ysera-H), AvaCam (Gurubashi-H), Kepec (Kael'thas-A), Eldurin (Dalaran-A), Fnear (Cenarius-A), Jonsnow (Kael'thas EU-A), Ed|r") | |
| t:SetJustifyH("LEFT") | |
| end | |
| function e:Initialize_OptionsScreen()local i=e.window | |
| i:SetAlpha(BejeweledProfile.settings.gameAlpha) | |
| e.const.windowFadeIn.startAlpha=BejeweledProfile.settings.mouseoffAlpha | |
| e.const.windowFadeIn.endAlpha=BejeweledProfile.settings.gameAlpha | |
| e.const.windowFadeOut.startAlpha=BejeweledProfile.settings.gameAlpha | |
| e.const.windowFadeOut.endAlpha=BejeweledProfile.settings.mouseoffAlpha | |
| local t=CreateFrame("Frame","BejeweledOptionsScreen",getglobal("BejeweledGameBoard")) | |
| t:SetPoint("Top",0,-3)t:SetWidth(s+6) | |
| t:SetHeight(w+6) | |
| t:EnableMouse(true) | |
| local a=C() | |
| a.bgFile=l.."windowBackground" | |
| a.tileSize=128 | |
| a.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"a.edgeSize=32 | |
| t:SetBackdrop(a) | |
| t:SetBackdropColor(.7,.7,.7,1) | |
| t:SetBackdropBorderColor(1,.8,.45) | |
| t:SetFrameLevel(i:GetFrameLevel()+25) | |
| t:SetScript("OnShow",function(t)T(true) | |
| getglobal("BejeweledGame"):SetAlpha(0) | |
| e.summaryScreen:SetAlpha(0) | |
| e.animator.hintObj:SetAlpha(0) | |
| end) | |
| t:SetScript("OnHide",function(t)getglobal("BejeweledGame"):SetAlpha(1) | |
| e.summaryScreen:SetAlpha(1) | |
| e.animator.hintObj:SetAlpha(1) | |
| end) | |
| t:Hide() | |
| e.optionsScreen=t | |
| local n=e:CreateCaption(0,0,"Options",t,20,1,.85,.1,true) | |
| n:ClearAllPoints() | |
| n:SetPoint("Top",0,-10) | |
| n:Show() | |
| local o=CreateFrame("Frame","",t) | |
| o:SetPoint("Top",0,-36)o:SetWidth(s+6-24) | |
| o:SetHeight(w+6-48) | |
| o:SetBackdrop(a) | |
| o:SetBackdropColor(.2,.2,.2,1) | |
| o:SetBackdropBorderColor(1,1,1) | |
| o:SetFrameLevel(i:GetFrameLevel()+26) | |
| o:Show() | |
| local a=5 | |
| n=e:CreateCaption(10,a+20,"|cFFFF9922".."Set Keybind for AddOn:",o,10,1,.85,.1,nil,true) | |
| n:ClearAllPoints()n:SetPoint("Topleft",16,-a-12) | |
| n:SetFont(STANDARD_TEXT_FONT,13) | |
| n:SetShadowOffset(1,-1) | |
| local l=CreateFrame("Button","BejeweledKeybindButton",o,"OptionsButtonTemplate")l:SetPoint("Topleft",190,-a-8) | |
| l:SetText(BejeweledProfile.settings.keybinding or("None")) | |
| l:SetWidth(180) | |
| l:SetHeight(20) | |
| l:SetScript("OnClick",function(t)if(t.savedText)then | |
| e.window:EnableKeyboard(false) | |
| e.window.newKeybindButton="" | |
| e.window.keybindModifier="" | |
| t:UnlockHighlight() | |
| t:SetText(t.savedText) | |
| t.savedText=nil | |
| else | |
| e.window:EnableKeyboard(true) | |
| e.window.newKeybindButton="" | |
| e.window.keybindModifier="" | |
| t:LockHighlight() | |
| t.savedText=t:GetText() | |
| t:SetText("Press key or ESC to clear") | |
| end | |
| end) | |
| i.keybindButton=l | |
| if(BejeweledProfile.settings.keybinding)then | |
| SetOverrideBindingClick(i,true,BejeweledProfile.settings.keybinding,"BejeweledShowHideButton") | |
| end | |
| e:CreateSlider(50,-a-45,250,"Game Transparency","gameAlpha",o,.2,1,.005,true,function(t)e.const.windowFadeIn.endAlpha=BejeweledProfile.settings.gameAlpha | |
| e.const.windowFadeOut.startAlpha=BejeweledProfile.settings.gameAlpha | |
| e.window:SetAlpha(t:GetValue()) | |
| end) | |
| e:CreateSlider(50,-a-76,250,"Mouse-off Transparency","mouseoffAlpha",o,0,1,.005,true,function()e.const.windowFadeIn.startAlpha=BejeweledProfile.settings.mouseoffAlpha | |
| e.const.windowFadeOut.endAlpha=BejeweledProfile.settings.mouseoffAlpha | |
| end) | |
| local t=100 | |
| e:CreateCaption(10,t+4,"Sounds:",o,12,1,.85,.1) | |
| local l=function(e)local t=string.match(e:GetName(),"BejeweledCheckBox(.*)") | |
| getglobal("BejeweledCheckBoxenableSounds"):SetChecked(nil) | |
| getglobal("BejeweledCheckBoxquietSounds"):SetChecked(nil) | |
| getglobal("BejeweledCheckBoxdisableSounds"):SetChecked(nil) | |
| BejeweledProfile.settings.enableSounds=nil | |
| BejeweledProfile.settings.quietSounds=nil | |
| BejeweledProfile.settings.disableSounds=nil | |
| BejeweledProfile.settings[t]=1 | |
| e:SetChecked(1) | |
| end | |
| n=e:CreateCheckbox(70,-t,"Normal","enableSounds",1,o,l,true) | |
| n:SetHitRectInsets(0,-70,0,0) | |
| n=e:CreateCheckbox(160,-t,"Quiet","quietSounds",1,o,l,true) | |
| n:SetHitRectInsets(0,-70,0,0) | |
| n=e:CreateCheckbox(250,-t,"Off","disableSounds",1,o,l,true) | |
| n:SetHitRectInsets(0,-70,0,0) | |
| t=t+17 | |
| n=e:CreateCheckbox(10,-t,"Hide Minimap Icon","hideMinimap",1,o,function(t)BejeweledProfile.settings[string.match(t:GetName(),"BejeweledCheckBox(.*)")]=t:GetChecked() | |
| if not BejeweledProfile.settings.hideMinimap then | |
| e.minimap:Show() | |
| else | |
| e.minimap:Hide() | |
| end | |
| end) | |
| n:SetHitRectInsets(0,-340,0,0) | |
| t=t+16 | |
| n=e:CreateCheckbox(10,-t,"Lock Window","lockWindow",1,o) | |
| n:SetHitRectInsets(0,-340,0,0) | |
| t=t+16 | |
| n=e:CreateCheckbox(10,-t,"Display skill gains in Chat Interface","publishSkillGains",1,o) | |
| n:SetHitRectInsets(0,-340,0,0) | |
| t=t+16 | |
| n=e:CreateCheckbox(30,-t,"Show full skill-up text","verboseSkills",1,o) | |
| n:SetHitRectInsets(0,-340,0,0) | |
| t=t+16 | |
| n=e:CreateCheckbox(10,-t,"Publish Bejeweling rank-ups to Guild Channel","publishRankGains",1,o) | |
| n:SetHitRectInsets(0,-340,0,0) | |
| t=t+16 | |
| n=e:CreateCheckbox(10,-t,"New Game on Flight Start","newGameFlight",1,o) | |
| n:SetHitRectInsets(0,-340,0,0) | |
| t=t+16 | |
| n=e:CreateCheckbox(10,-t,"Publish Scores","publishScores",1,o) | |
| n:SetHitRectInsets(0,-340,0,0) | |
| t=t+16 | |
| n=e:CreateCheckbox(10,-t,"One score per person on High Score lists","hideDuplicates",1,o) | |
| n:SetHitRectInsets(0,-340,0,0) | |
| t=t+16 | |
| n=e:CreateCheckbox(10,-t,"Disable Auto-Hint Arrows","disableHints",1,o,function(t)BejeweledProfile.settings[string.match(t:GetName(),"BejeweledCheckBox(.*)")]=t:GetChecked() | |
| if not BejeweledProfile.settings.disableHints then | |
| e.animator:Add(e.animator:CreateHint(Q())) | |
| else | |
| local e=e.animator.hintObj | |
| e.fxType=S | |
| e:SetAlpha(0) | |
| e:Hide() | |
| e.wasShown=nil | |
| e.oldAlpha=0 | |
| end | |
| end) | |
| n:SetHitRectInsets(0,-340,0,0) | |
| t=t+16 | |
| n=e:CreateCheckbox(10,-t,"Show Flight Times on Flight Window Tooltips","showFlightTooltips",1,o) | |
| n:SetHitRectInsets(0,-340,0,0) | |
| t=t+20 | |
| e:CreateCaption(40,t,"Auto-Open:",o,12,1,.85,.1) | |
| e:CreateCaption(170,t,"Auto-Close:",o,12,1,.85,.1) | |
| t=t+14 | |
| e:CreateCheckbox(60,-t,"On Flight Start","openFlightStart",1,o) | |
| e:CreateCheckbox(190,-t,"On Flight End","closeFlightEnd",1,o) | |
| t=t+16 | |
| e:CreateCheckbox(60,-t,"On Death","openOnDeath",1,o) | |
| e:CreateCheckbox(190,-t,"On Ready Check","closeReadyCheck",1,o) | |
| t=t+16 | |
| e:CreateCheckbox(60,-t,"On Log-In","openLogin",1,o) | |
| e:CreateCheckbox(190,-t,"On Enter Combat","closeCombat",1,o) | |
| t=t+16 | |
| i:SetScript("OnKeyUp",function(e,t)if(t=="LSHIFT"or t=="RSHIFT"or t=="LCTRL"or t=="RCTRL"or t=="LALT"or t=="RALT")then | |
| local t="" | |
| e.keybindModifier="" | |
| if(IsAltKeyDown())then | |
| e.keybindModifier="ALT" | |
| t="-" | |
| end | |
| if(IsControlKeyDown())then | |
| e.keybindModifier=e.keybindModifier..t.."CTRL" | |
| t="-" | |
| end | |
| if(IsShiftKeyDown())then | |
| e.keybindModifier=e.keybindModifier..t.."SHIFT" | |
| end | |
| end | |
| end) | |
| i:SetScript("OnKeyDown", function(e,t) | |
| if(t=="ESCAPE") then | |
| e:EnableKeyboard(false) | |
| e.keybindButton:SetText("None") | |
| e.keybindButton:UnlockHighlight() | |
| e.keybindButton.savedText=nil | |
| BejeweledProfile.settings.keybinding=nil | |
| ClearOverrideBindings(e) | |
| else | |
| if(GetBindingFromClick(t)=="SCREENSHOT") then | |
| RunBinding("SCREENSHOT") | |
| return | |
| end | |
| if(t=="UNKNOWN") then | |
| return | |
| end | |
| if(t=="LSHIFT" or t=="RSHIFT" or t=="LCTRL" or t=="RCTRL" or t=="LALT" or t=="RALT") then | |
| t=G(t,2) | |
| if(e.keybindModifier==nil or e.keybindModifier=="") then | |
| e.keybindModifier=t | |
| else | |
| if not string.find(e.keybindModifier,t) then | |
| e.keybindModifier=e.keybindModifier.."-"..t | |
| end | |
| end | |
| return | |
| elseif(e.newKeybindButton~="") then | |
| return | |
| end | |
| local n="" | |
| e.keybindModifier="" | |
| if(IsAltKeyDown()) then | |
| e.keybindModifier="ALT" | |
| n="-" | |
| end | |
| if(IsControlKeyDown()) then | |
| e.keybindModifier=e.keybindModifier..n.."CTRL" | |
| n="-" | |
| end | |
| if(IsShiftKeyDown()) then | |
| e.keybindModifier=e.keybindModifier..n.."SHIFT" | |
| end | |
| if(e.keybindModifier=="") then | |
| e.newKeybindButton=t | |
| else | |
| e.newKeybindButton=e.keybindModifier.."-"..t | |
| end | |
| e:EnableKeyboard(false) | |
| e.keybindButton:SetText(e.newKeybindButton) | |
| e.keybindButton:UnlockHighlight() | |
| e.keybindButton.savedText=nil | |
| SetOverrideBindingClick(e,true,e.newKeybindButton,"BejeweledShowHideButton") | |
| BejeweledProfile.settings.keybinding=e.newKeybindButton | |
| end | |
| end) | |
| end | |
| local function S(i,t,l,o)local o=e.flightOptionWindow | |
| if(t=="UNIT_FLAGS")and(l=="player")then | |
| if UnitOnTaxi("player")then | |
| e.window:UnregisterEvent("UNIT_FLAGS") | |
| e.flightOptionWindow:Show() | |
| if(BejeweledProfile.settings.openFlightStart)then | |
| e.window:Show() | |
| T(false) | |
| end | |
| end | |
| elseif(t=="FRIENDLIST_UPDATE")then | |
| e.network.friendUpdate=true | |
| elseif(t=="GUILD_ROSTER_UPDATE")then | |
| e.network.guildUpdate=true | |
| elseif(t=="PLAYER_CONTROL_GAINED")then | |
| if(i.switchingZones)then | |
| i.switchingZones=nil | |
| return | |
| end | |
| local t=(n.gameMode==k) | |
| if(o.timer.timeElapsed)then | |
| o.timer:Hide() | |
| if(e.timedWindow:IsVisible())then | |
| e.timedWindow:SetHeight(L-80) | |
| e.timedWindow.flightCheckbox:Hide() | |
| e.timedWindow.flightCheckboxCaption:Hide() | |
| e.timedWindow.flightCheckbox:SetChecked(nil) | |
| e.timedWindow.timerRemainingCaption:Hide() | |
| e.timedWindow.timeRemainingValue:Hide() | |
| end | |
| e:UpdateFlightTimes() | |
| e.window:UnregisterEvent("PLAYER_MONEY") | |
| e.window:UnregisterEvent("PLAYER_CONTROL_GAINED") | |
| e.window:UnregisterEvent("PLAYER_LEAVING_WORLD") | |
| if(n.gameMode==k)then | |
| if(e.levelBar.timer.timeElapsed)then | |
| if(o.timer.timeElapsed)then | |
| if(math.abs(o.timer.timeElapsed-e.levelBar.timer.timeElapsed)>1)then | |
| e.levelBar.timer.timeElapsed=o.timer.timeElapsed | |
| end | |
| end | |
| e.levelBar.timer:Hide() | |
| Me() | |
| end | |
| end | |
| o.timer.learnEvent=nil | |
| o.timer.elapsed=nil | |
| o.timer.timeElapsed=nil | |
| o.learning=nil | |
| if(BejeweledProfile.settings.closeFlightEnd)and e.window:IsShown()then | |
| if not e.popup:IsVisible()then | |
| e.const.windowGameOverFadeOut.fadeTimer=0 | |
| UIFrameFade(e.window,e.const.windowGameOverFadeOut)e.window.mouseOverScreen:Show() | |
| e.window.hiding=true | |
| end | |
| end | |
| end | |
| elseif(t=="PLAYER_MONEY")then | |
| e:UpdateFlightTimes() | |
| elseif(t=="VARIABLES_LOADED")then | |
| e:VariablesLoaded() | |
| elseif(t=="PLAYER_LEAVING_WORLD")then | |
| i.switchingZones=true | |
| elseif(t=="PLAYER_ENTERING_WORLD")and not e.loggedIn then | |
| e.loggedIn=true | |
| local a=BejeweledProfile.stats.classic | |
| local l=BejeweledProfile.stats.timed | |
| local i=a.score | |
| local o=d(l.score*100) | |
| local t=UnitName("player") | |
| local n=Y(BejeweledProfile.skill.rank)..t.."*" | |
| local t=H(t) | |
| i=a[v]or"" | |
| o=l[v]or"" | |
| local n=n..i.."*"..n..o | |
| if IsInGuild()then | |
| GuildRoster() | |
| end | |
| e.network:Send("LogSync","","GUILD","") | |
| e.network:Send("HSPub",n,"GUILD","") | |
| local o,t | |
| for o=1,GetNumFriends()do | |
| t,_,_,_,online=GetFriendInfo(o)if(online)then | |
| e.network:Send("LogSync","","WHISPER",t) | |
| e.network:Send("HSPub",n,"WHISPER",t) | |
| end | |
| end | |
| if not(BejeweledData.legalDisplayed)then | |
| e.window:Show() | |
| e:ShowLegal() | |
| else | |
| e.window.splash.elapsed=0 | |
| end | |
| e.ShowLegal=nil | |
| if(BejeweledProfile.settings.openLogin)then | |
| e.window:Show() | |
| end | |
| elseif(t=="PLAYER_DEAD")then | |
| if(BejeweledProfile.settings.openOnDeath)then | |
| e.window:Show() | |
| end | |
| elseif(t=="READY_CHECK")then | |
| if(BejeweledProfile.settings.closeReadyCheck)then | |
| if not e.popup:IsVisible()then | |
| e.window:Hide() | |
| end | |
| end | |
| elseif(t=="PLAYER_REGEN_DISABLED")then | |
| if(e.paused~=true)and(n.gameMode)then | |
| BejeweledProfile.stats.combatPause=BejeweledProfile.stats.combatPause+1 | |
| end | |
| if(BejeweledProfile.settings.closeCombat)then | |
| if not e.popup:IsVisible()then | |
| e.window:Hide() | |
| end | |
| end | |
| end | |
| end | |
| local function k()e.skillLimit=true | |
| if(select(4,GetMapContinents()))then | |
| e.skillLimit=nil | |
| end | |
| hooksecurefunc("TakeTaxiNode",M) | |
| hooksecurefunc("TaxiNodeOnButtonEnter",y)v=x(1378301,4) | |
| local x=A() | |
| local r=g() | |
| e.animator=x | |
| e.window=r | |
| P() | |
| R() | |
| W() | |
| F() | |
| D() | |
| V() | |
| O() | |
| N() | |
| E() | |
| r:SetClampedToScreen(true) | |
| r:RegisterEvent("VARIABLES_LOADED") | |
| r:RegisterEvent("PLAYER_ENTERING_WORLD") | |
| r:RegisterEvent("PLAYER_LEAVING_WORLD") | |
| r:RegisterEvent("PLAYER_DEAD") | |
| r:RegisterEvent("READY_CHECK") | |
| r:RegisterEvent("PLAYER_REGEN_DISABLED") | |
| r:RegisterEvent("FRIENDLIST_UPDATE") | |
| r:RegisterEvent("GUILD_ROSTER_UPDATE") | |
| r:SetScript("OnEvent",S) | |
| SLASH_BEJEWELED1="/bejeweled" | |
| SLASH_BEJEWELED2="/bej" | |
| SlashCmdList["BEJEWELED"]=Ze | |
| local t,h | |
| local t=0 | |
| local t=0 | |
| local t,t | |
| local t=CreateFrame("Frame","BejeweledGameBoardAnchor",r) | |
| t:SetPoint("Topleft",20,-60) | |
| t:SetPoint("Topright",-20,-60) | |
| t:SetHeight(w+12) | |
| gameBoard=CreateFrame("Frame","BejeweledGameBoard",t) | |
| gameBoard:SetPoint("Top")gameBoard:SetWidth(s+14) | |
| gameBoard:SetHeight(w+12) | |
| local t=C() | |
| t.edgeFile="Interface\\Glues\\Common\\TextPanel-Border"t.edgeSize=32 | |
| gameBoard:SetBackdrop(t) | |
| gameBoard:SetBackdropColor(0,0,0,0) | |
| gameBoard:SetFrameLevel(r:GetFrameLevel()+2) | |
| gameBoard:Show() | |
| e.gameBoard=gameBoard | |
| B() | |
| u() | |
| m() | |
| local S=CreateFrame("Frame","BejeweledGame",gameBoard) | |
| S:SetWidth(s) | |
| S:SetHeight(w) | |
| S:SetPoint("Topleft",8,-4) | |
| S:EnableMouse(true) | |
| S:SetFrameLevel(r:GetFrameLevel()+1) | |
| local a,a,i | |
| for t=0,3 do | |
| for e=0,3 do | |
| i=CreateFrame("Frame","",S) | |
| i:SetPoint("Topleft",(e*100),-(t*100)) | |
| i:SetWidth(s/4) | |
| i:SetHeight(w/4) | |
| i:Show() | |
| i.texture=i:CreateTexture(nil,"BACKGROUND") | |
| i.texture:SetWidth(s/4) | |
| i.texture:SetHeight(w/4) | |
| i.texture:SetPoint("Center") | |
| i.texture:Show() | |
| i.texture:SetTexture(l.."board") | |
| i.texture:SetTexCoord(.046875,.828125,.046875,.828125) | |
| i:SetAlpha(.8) | |
| i:SetFrameLevel(S:GetFrameLevel()) | |
| end | |
| end | |
| e.foreground=CreateFrame("Frame","BejeweledGame",gameBoard) | |
| e.foreground:SetWidth(s+14) | |
| e.foreground:SetHeight(w+12) | |
| e.foreground:SetPoint("Topleft",0,0) | |
| local a=CreateFrame("Frame","",e.foreground) | |
| local d=e.const.largeText["Strip"] | |
| a:ClearAllPoints() | |
| a:SetPoint("Center")a:SetWidth(1) | |
| a:SetHeight(1) | |
| a:Hide() | |
| a.text=a:CreateTexture(nil,"OVERLAY") | |
| a.text:SetTexture(l.."artPieces") | |
| a.text:ClearAllPoints() | |
| a.text:SetWidth(1) | |
| a.text:SetHeight(1) | |
| a.text:SetPoint("Center") | |
| a.text:SetTexCoord(0,0,0,0) | |
| a.text:Show() | |
| a.background=a:CreateTexture(nil,"ARTWORK") | |
| a.background:SetPoint("Center") | |
| a.background:SetPoint("Left",gameBoard,"Left",8,0) | |
| a.background:SetPoint("Right",gameBoard,"Right",-8,0) | |
| a.background:SetHeight(84) | |
| a.background:SetTexture(l.."artPieces") | |
| a.background:SetTexCoord(d[3],d[4],d[5],d[6]) | |
| a.background:Hide() | |
| e.gameStatusText=a | |
| e.gameStatusText.SetText=function(n,t)local t=e.const.largeText[t] | |
| if(t)then | |
| n.text:SetWidth(t[1]) | |
| n.text:SetHeight(t[2]) | |
| if(#t>9)then | |
| n.text:SetTexCoord(t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]) | |
| n.background:SetVertexColor(t[11],t[12],t[13]) | |
| else | |
| n.text:SetTexCoord(t[3],t[4],t[5],t[6]) | |
| n.background:SetVertexColor(t[7],t[8],t[9]) | |
| end | |
| end | |
| n:SetAlpha(1) | |
| e.gameStatusText.background:SetAlpha(1) | |
| end | |
| local d=CreateFrame("Frame","BejeweledStatusBar",r) | |
| d:SetPoint("Bottomleft",-10,10) | |
| d:SetPoint("Bottomright",-32,10) | |
| d:SetHeight(32) | |
| d:SetFrameLevel(r:GetFrameLevel()+2) | |
| e.statusBar=d | |
| local a=CreateFrame("Frame","BejeweledLevelBorder",d) | |
| a:SetPoint("Bottomleft",0,0) | |
| a:SetHeight(32) | |
| a:SetWidth(122) | |
| a:SetWidth(86) | |
| t=C() | |
| t.edgeFile=l.."levelBorder"t.edgeSize=32 | |
| t.insets.left=2 | |
| t.insets.right=2 | |
| a:SetBackdrop(t) | |
| a:SetBackdropColor(0,0,0,0) | |
| e.levelBorder=a | |
| e.levelText=e:CreateCaption(0,0,"",a,12,1,1,1,true) | |
| e.levelText:ClearAllPoints() | |
| e.levelText:SetPoint("Topleft",16,0) | |
| e.levelText:SetPoint("Bottomright",-46,1) | |
| e.levelText:SetJustifyH("RIGHT") | |
| e.levelTextCaption=e:CreateCaption(0,0,"",a,11,1,1,1,true) | |
| e.levelTextCaption:SetWidth(1) | |
| e.levelTextCaption:ClearAllPoints() | |
| e.levelTextCaption:SetJustifyH("LEFT") | |
| e.levelTextCaption:SetPoint("Topleft",e.levelText,"Topright",-5,0) | |
| e.levelTextCaption:SetPoint("Bottomright",-16,1) | |
| local s=CreateFrame("Frame","BejeweledDataBorder",d) | |
| s:SetPoint("Bottomleft",a,"Bottomright",-40,0) | |
| s:SetHeight(32) | |
| s:SetWidth(72) | |
| s:SetWidth(128) | |
| s:SetBackdrop(t) | |
| s:SetBackdropColor(0,0,0,0) | |
| e.dataBorder=s | |
| e.dataText=e:CreateCaption(0,0,"",s,10,1,1,1,true) | |
| e.dataText:ClearAllPoints() | |
| e.dataText:SetPoint("Center",0,1) | |
| local a=CreateFrame("Frame","BejeweledLevelBar",d) | |
| a:SetPoint("Left",s,"Right",-18,0) | |
| a:SetPoint("Bottomright",d,"Bottomright",0,0) | |
| a:SetHeight(32) | |
| t=C() | |
| t.edgeFile="Interface\\Buttons\\UI-SliderBar-Border"t.edgeSize=8 | |
| t.bgFile=l.."windowBackground" | |
| t.tileSize=64 | |
| t.insets.left=2 | |
| t.insets.right=2 | |
| a:SetBackdrop(t) | |
| a:SetBackdropColor(.1,.1,.1,0) | |
| a:SetFrameLevel(d:GetFrameLevel()+2) | |
| e.levelBar=a | |
| local f=CreateFrame("Frame","",d) | |
| f:SetPoint("Left",s,"Right",-18,0) | |
| f:SetPoint("Bottomright",d,"Bottomright",0,0) | |
| f:SetHeight(32) | |
| t=C() | |
| t.edgeFile="Interface\\Buttons\\UI-SliderBar-Border"t.edgeSize=8 | |
| t.bgFile=l.."windowBackground" | |
| t.tileSize=64 | |
| t.insets.left=2 | |
| t.insets.right=2 | |
| f:SetBackdrop(t) | |
| f:SetBackdropColor(.1,.1,.1) | |
| f:SetBackdropBorderColor(0,0,0,0) | |
| f:SetFrameLevel(d:GetFrameLevel()+1) | |
| local s=f:CreateTexture(nil,"OVERLAY") | |
| s:SetTexture(l.."barArt") | |
| s:SetVertexColor(0,.2,1)s:SetPoint("Topleft",2,-5) | |
| s:SetHeight(32) | |
| s:SetWidth(.01) | |
| a.bar=s | |
| a.text=e:CreateCaption(0,0,"",a,12,1,1,1,true) | |
| a.text:ClearAllPoints() | |
| a.text:SetPoint("Center",0,1) | |
| a.SetScore=ht | |
| a.SetMinMaxScore=Bt | |
| a.AddScore=xt | |
| a.SetMode=rt | |
| a.UpdateBar=Tt | |
| a.SetTimer=kt | |
| a.StartTimer=Ft | |
| a.StopTimer=Pt | |
| a.timer=CreateFrame("Frame","",r) | |
| a.timer:SetWidth(1) | |
| a.timer:SetHeight(1) | |
| a.timer:SetPoint("Top") | |
| a.timer:Hide() | |
| a.timer:SetScript("OnUpdate",fe) | |
| local a=CreateFrame("Frame","BejeweledLevelBarButton",r) | |
| a:SetPoint("Topleft",d,"Topleft",50,0) | |
| a:SetPoint("Bottomright",d,"Bottomright") | |
| a:EnableMouse(true) | |
| a:Hide() | |
| a:SetFrameLevel(r:GetFrameLevel()+2) | |
| a:SetID(2) | |
| a:SetScript("OnShow",function(t)e.statusBar:SetAlpha(0) | |
| end) | |
| a:SetScript("OnHide",function(t)e.statusBar:SetAlpha(1) | |
| end) | |
| a:SetScript("OnEnter",function(e)e.bar:SetVertexColor(1,0,0) | |
| end) | |
| a:SetScript("OnLeave",function(e)e.bar:SetVertexColor(.6,0,0) | |
| end) | |
| a:SetScript("OnMouseDown",function(t)e.menuWindow.keepScreen=nil | |
| e.menuWindow:Show() | |
| e.menuWindow:Hide() | |
| if(t:GetID()==1)then | |
| e.featsOfSkillScreen:Hide() | |
| e.optionsScreen:Hide() | |
| e.aboutScreen:Hide() | |
| t:SetID(0) | |
| t:Hide() | |
| elseif(t:GetID()==2)then | |
| local n=n.lastGameMode | |
| if(n==ae)then | |
| e.timedWindow:Show() | |
| elseif(n==c)then | |
| j(n,0) | |
| t:SetID(0) | |
| t:Hide() | |
| else | |
| e.gameModeWindow:Show() | |
| end | |
| end | |
| end) | |
| t=C() | |
| t.edgeFile="Interface\\Buttons\\UI-SliderBar-Border"t.edgeSize=8 | |
| t.bgFile=l.."windowBackground" | |
| t.tileSize=64 | |
| t.insets.left=2 | |
| t.insets.right=2 | |
| a:SetBackdrop(t) | |
| a:SetBackdropColor(.1,.1,.1,0) | |
| a:SetFrameLevel(d:GetFrameLevel()+4) | |
| e.levelBarButton=a | |
| local f=CreateFrame("Frame","",a) | |
| f:SetPoint("Topleft") | |
| f:SetPoint("Bottomright") | |
| f:SetHeight(32) | |
| t=C() | |
| t.edgeFile="Interface\\Buttons\\UI-SliderBar-Border"t.edgeSize=8 | |
| t.bgFile=l.."windowBackground" | |
| t.tileSize=64 | |
| t.insets.left=2 | |
| t.insets.right=2 | |
| f:SetBackdrop(t) | |
| f:SetBackdropColor(.1,.1,.1) | |
| f:SetBackdropBorderColor(0,0,0,0) | |
| f:SetFrameLevel(d:GetFrameLevel()+3) | |
| s=f:CreateTexture(nil,"OVERLAY") | |
| s:SetTexture(l.."barArt") | |
| s:SetVertexColor(.6,0,0)s:SetPoint("Topleft",2,-5) | |
| s:SetPoint("Bottomright",-2,-5) | |
| s:SetHeight(32) | |
| a.bar=s | |
| a.text=e:CreateCaption(0,0,"New Game",a,12,1,.85,0) | |
| a.text:ClearAllPoints() | |
| a.text:SetPoint("Center",0,1) | |
| local d=CreateFrame("Frame","",a) | |
| d:SetPoint("Topright",a,"Topleft",20,0) | |
| d:SetHeight(32) | |
| d:SetWidth(70) | |
| d.art=d:CreateTexture(nil,"ARTWORK") | |
| d.art:SetTexture("Interface\\CharacterFrame\\UI-StateIcon") | |
| d.art:SetPoint("Center",-1,0) | |
| d.art:SetWidth(28) | |
| d.art:SetHeight(28) | |
| d.art:SetTexCoord(0,.49,0,.49) | |
| t=C() | |
| t.edgeFile=l.."levelBorder"t.edgeSize=32 | |
| t.insets.left=2 | |
| t.insets.right=2 | |
| d:SetBackdrop(t) | |
| d:SetBackdropColor(0,0,0,0) | |
| i=CreateFrame("Frame","",gameBoard) | |
| i:SetPoint("Center") | |
| i:SetWidth(64) | |
| i:SetHeight(64) | |
| i.text=e:CreateCaption(0,0,"Paused",i,40,1,.85,0,true) | |
| i.text:ClearAllPoints() | |
| i.text:SetPoint("Center",0,1) | |
| i:SetScale(3) | |
| i:Hide() | |
| e.pausedText=i | |
| i=CreateFrame("Frame","BejeweledSplash",gameBoard)i:SetPoint("Topleft") | |
| i:SetPoint("Bottomright") | |
| i.art=i:CreateTexture(nil,"ARTWORK") | |
| i.art:SetPoint("Topleft",gameBoard,"Topleft",12,-7) | |
| i.art:SetPoint("Bottomright",gameBoard,"Bottomright",-7,10) | |
| i.art:SetTexture(l.."bejeweled_splash") | |
| i.text=e:CreateCaption(0,0,"(c) 2000, 2008 PopCap Games Inc. All right reserved",i,12,1,1,1) | |
| i.text:ClearAllPoints() | |
| i.text:SetPoint("Bottomleft",i,"Bottomleft",14,14) | |
| i:SetScript("OnHide",function(t)if(K>1e3)and not BejeweledProfile.skill.gainAchieve7 then | |
| e.skillBar:CheckSkill(e.const.SKILLTYPE_ACHIEVEMENT,e.const.SKILL_ACHIEVE4B) | |
| end | |
| end) | |
| i:SetScript("OnUpdate",function(t,o)if(t.elapsed)then | |
| if(o>.1)then | |
| o=.1 | |
| end | |
| t.elapsed=t.elapsed+o | |
| if(t.elapsed>=e.splashDisplayTime)then | |
| t.elapsed=nil | |
| local e={mode="OUT",timeToFade=1,startAlpha=1,endAlpha=0,finishedFunc=function()e.window.splash:Hide()local o=e.paused | |
| e.window.menuButton:Enable() | |
| if(t.firstGame)then | |
| j(c,120) | |
| else | |
| if not n.gameMode then | |
| if(BejeweledProfile.settings.classicInProgress and BejeweledProfile.settings.savedState)then | |
| j(c,120,true) | |
| T(false) | |
| if o then | |
| T(true) | |
| end | |
| else | |
| BejeweledProfile.settings.classicInProgress=nil | |
| e.menuWindow:Show() | |
| end | |
| end | |
| end | |
| end,} | |
| UIFrameFade(t,e) | |
| end | |
| end | |
| end) | |
| i:SetFrameLevel(r:GetFrameLevel()+5) | |
| r.splash=i | |
| i:Show() | |
| e.window.menuButton:Disable() | |
| Be=(S:GetFrameLevel()+2) | |
| FRAME_LEVEL_JEWEL_SWAP=(S:GetFrameLevel()+3) | |
| Ie=(S:GetFrameLevel()+4) | |
| Ge=(S:GetFrameLevel()+5) | |
| Ae=(S:GetFrameLevel()+6)for t=0,7 do | |
| for e=0,7 do | |
| h=tt(e*b,t*p,S,1)h:EnableMouse(true) | |
| h:RegisterForDrag("LeftButton") | |
| h:SetScript("OnEnter",Ye) | |
| h:SetScript("OnLeave",ce) | |
| h:SetScript("OnMouseDown",Z) | |
| h:SetScript("OnDragStart",ee) | |
| h:SetFrameLevel(Be) | |
| o[t+1][e+1]=h | |
| h.gridX=e+1 | |
| h.gridY=t+1 | |
| end | |
| end | |
| x:CreateHint() | |
| tt=nil | |
| A=nil | |
| g=nil | |
| P=nil | |
| B=nil | |
| u=nil | |
| m=nil | |
| Initialize_OptionsScreen=nil | |
| F=nil | |
| k=nil | |
| end | |
| k() | |
| local e |