function initSplash(){gameState="splash",resizeCanvas(),splash=new Elements.Splash(assetLib.getData("splash"),canvas.width,canvas.height),userInput.addHitArea("moreGames",butEventHandler,null,{type:"rect",aRect:[0,0,canvas.width,canvas.height]},!0),previousTime=(new Date).getTime(),updateSplashScreenEvent()}function initStartScreen(){gameState="start",level=1,userInput.removeHitArea("moreGames"),userInput.addHitArea("mute",butEventHandler,null,{type:"rect",aRect:[437,0,canvas.width,40]},!0);var a=new Array(canvas.width/2,265);screens=new Elements.Screens({startImageData:assetLib.getData("background1")},{play:{imageData:assetLib.getData("playBut"),pos:a}},assetLib.getData("title1"),assetLib.getData("title2"),canvas.width,canvas.height),screens.setRenderFunc("start"),userInput.addHitArea("startGame",butEventHandler,null,{type:"rect",aRect:[90,225,245,290]},!0),userInput.addHitArea("moreGames",butEventHandler,null,{type:"rect",aRect:[245,225,385,290]}),userInput.addHitArea("moreGames",butEventHandler,null,{type:"rect",aRect:[170,0,320,80]}),previousTime=(new Date).getTime(),updateStartScreenEvent()}function initPreGame(){gameState="tutorial",background=new Elements.Background(assetLib.getData("background1"),canvas.width,canvas.height),userInput.addHitArea("continue",butEventHandler,null,{type:"rect",aRect:[160,240,320,310]}),userInput.addHitArea("moreGames",butEventHandler,null,{type:"rect",aRect:[0,0,82,55]}),background.render(ctx),panel=new Elements.Panel(assetLib.getData("panels"),assetLib.getData("numbers"),canvas.width,canvas.height),panel.renderPanel(ctx,null,"tutorial"),renderMuteBut()}function initGame(){gameState="game",allowSound&&music.volume(.5),levelScore=0,Math.seedrandom(level+10),squirrel=new Elements.Squirrel(assetLib.getData("squirrel"),canvas.width,canvas.height,squirrelCallback),background=new Elements.Background(assetLib.getData("background"+((level-1)%3+1)),canvas.width,canvas.height),userInput.addHitArea("pause",butEventHandler,null,{type:"rect",aRect:[400,0,437,40]},!0),userInput.addHitArea("jump",butEventHandler,{allowUpState:!0},{type:"rect",aRect:[0,40,canvas.width,canvas.height]},!0),userInput.addHitArea("moreGames",butEventHandler,null,{type:"rect",aRect:[0,0,82,55]}),hud=new Elements.Hud(assetLib.getData("hud"),assetLib.getData("numbers"),level,canvas.width,canvas.height,levelScore),targSpeedX=180*Math.min(1+level/10,2),speedX=0,speedY=0,flipPosX=100,isRight=!0,nextBranchWidthGap=aBranchWidthGaps[0],branchId=0,aBranches=new Array,aAcorns=new Array,aLeaves=new Array,addStartBranch(),stumpDist=5,branchFloors=0,acornScore=0,leafDropInc=0,previousTime=(new Date).getTime(),updateGameEvent()}function butEventHandler(a,b){switch(a){case"langSelect":curLang=b.lang,ctx.clearRect(0,0,canvas.width,canvas.height),userInput.removeHitArea("langSelect"),initLoadAssets();break;case"startGame":playSound("click"),userInput.removeHitArea("startGame"),userInput.removeHitArea("moreGames"),1==level?initPreGame():initGame();break;case"continue":playSound("click"),userInput.removeHitArea("continue"),initGame();break;case"jump":"down"==b.hitState?squirrel.jump():squirrel.jumpReleased();break;case"moreGames":window.open("http://game.ikongzhong.cn/");break;case"mute":playSound("click"),toggleMute();break;case"pause":case"resumeFromPause":playSound("click"),toggleManualPause();break;case"nextLevel":playSound("click"),userInput.removeHitArea("nextLevel"),userInput.removeHitArea("moreGames"),level++,initGame(),0==level%3&&(spilAPI.GameBreak.request(toggleManualPause,toggleManualPause),console.log("ad"));break;case"retryLevel":playSound("click"),userInput.removeHitArea("retryLevel"),userInput.removeHitArea("quitFromEnd"),userInput.removeHitArea("moreGames"),initGame(),spilAPI.GameBreak.request(toggleManualPause,toggleManualPause);break;case"quitFromEnd":playSound("click"),userInput.removeHitArea("pause"),userInput.removeHitArea("retryLevel"),userInput.removeHitArea("quitFromEnd"),userInput.removeHitArea("moreGames"),totalScore=0,level=0,initStartScreen();break;case"quitFromPause":playSound("click"),toggleManualPause(),userInput.removeHitArea("pause"),userInput.removeHitArea("jump"),userInput.removeHitArea("quitFromPause"),userInput.removeHitArea("resumeFromPause"),userInput.removeHitArea("moreGames"),levelScore=0,totalScore=0,initStartScreen()}}function renderMuteBut(){if(allowSound){var a=assetLib.getData("muteBut"),b=0;muted&&(b=1);var c=b*a.oData.spriteWidth%a.img.width,d=Math.floor(b/(a.img.width/a.oData.spriteWidth))*a.oData.spriteHeight;ctx.drawImage(a.img,c,d,a.oData.spriteWidth,a.oData.spriteHeight,438,2,a.oData.spriteWidth,a.oData.spriteHeight)}}function addStartBranch(){for(var b,a=6,c=canvas.height/2,d=0;a>d;d++){b=1==a?6:0==d?0:d==a-1?5:Math.ceil(4*Math.random());var e=new Elements.Branch(assetLib.getData("branch"),branchId++,b,"branch",isRight,canvas.width,canvas.height);e.x=d*e.spriteWidth,e.y=c,aBranches.push(e)}}function addHome(){var a;if(isRight)a=new Elements.Branch(assetLib.getData("branch"),branchId++,9,"home",!isRight,canvas.width,canvas.height),a.y=aBranches[aBranches.length-1].y-50,aBranches.push(a),a.x=canvas.width+50;else{var a=new Elements.Branch(assetLib.getData("branch"),branchId++,10,"home",!isRight,canvas.width,canvas.height);a.y=aBranches[aBranches.length-1].y-50,aBranches.push(a),a.x=-50}}function addStump(){var a,c,b=4;if(stumpDist=5,++branchFloors>=level)return addHome(),void 0;if(isRight){c=new Elements.Branch(assetLib.getData("branch"),branchId++,7,"stump",!isRight,canvas.width,canvas.height),c.y=aBranches[aBranches.length-1].y-50,aBranches.push(c),c.x=canvas.width+50;for(var d=0;b>d;d++){a=1==b?6:0==d?5:d==b-1?0:Math.ceil(4*Math.random());var e=new Elements.Branch(assetLib.getData("branch"),branchId++,a,"branch",!isRight,canvas.width,canvas.height);e.x=c.x-e.spriteWidth-d*e.spriteWidth,e.y=c.y-300,aBranches.push(e)}}else{c=new Elements.Branch(assetLib.getData("branch"),branchId++,8,"stump",!isRight,canvas.width,canvas.height),c.y=aBranches[aBranches.length-1].y-50,aBranches.push(c),c.x=-50;for(var d=0;b>d;d++){a=1==b?6:0==d?0:d==b-1?5:Math.ceil(4*Math.random());var e=new Elements.Branch(assetLib.getData("branch"),branchId++,a,"branch",!isRight,canvas.width,canvas.height);e.x=c.x+e.spriteWidth+d*e.spriteWidth,e.y=c.y-300,aBranches.push(e)}}}function addBranch(){updateScore(100);for(var b,c,a=Math.ceil(4*Math.random()),d="branch",c=aBranches[aBranches.length-1].y+aBranchHeightGaps[Math.floor(Math.random()*aBranchHeightGaps.length)];c==aBranches[aBranches.length-1].y;)c=aBranches[aBranches.length-1].y+aBranchHeightGaps[Math.floor(Math.random()*aBranchHeightGaps.length)];for(var e=aBranches[aBranches.length-1].x,f=0;a>f;f++){if(isRight){b=1==a?6:0==f?0:f==a-1?5:Math.ceil(4*Math.random());var g=new Elements.Branch(assetLib.getData("branch"),branchId++,b,d,isRight,canvas.width,canvas.height);g.x=e+nextBranchWidthGap+f*g.spriteWidth}else{b=1==a?6:0==f?5:f==a-1?0:Math.ceil(4*Math.random());var g=new Elements.Branch(assetLib.getData("branch"),branchId++,b,d,isRight,canvas.width,canvas.height);g.x=e-nextBranchWidthGap-f*g.spriteWidth}g.y=lastBranchY=c,aBranches.push(g),Math.random()>.5&&addAcorn(g.x,g.y)}}function addAcorn(a,b){var c=new Elements.Acorn(assetLib.getData("acorn"),isRight,Math.floor(4*Math.random()),canvas.width,canvas.height);c.x=a,c.y=b+aAcornHeights[Math.floor(Math.random()*aAcornHeights.length)],aAcorns.push(c)}function addLeaf(){var a=new Elements.Leaf(assetLib.getData("leaf"),isRight,canvas.width,canvas.height);a.x=isRight?canvas.width+50+200*Math.random():-50-200*Math.random(),a.y=500*Math.random()-200,aLeaves.push(a)}function updateScore(a){levelScore+=a,hud.updateScore(levelScore)}function updateAcornScore(a){acornScore+=a,hud.updateAcornScore(acornScore)}function squirrelCallback(a,b){switch(a){case"flip":isRight=b.isRight,isRight?(targSpeedX=180*Math.min(1+level/10,2),flipPosX=100):(targSpeedX=-180*Math.min(1+level/10,2),flipPosX=canvas.width-100),nextBranchWidthGap=aBranchWidthGaps[Math.floor(Math.random()*Math.min(level,aBranchWidthGaps.length))];break;case"endGame":initGameEndFail();break;case"home":initLevelComplete()}}function isWideForBranch(){return isRight?aBranches[aBranches.length-1].xnextBranchWidthGap-50?!0:!1}function initLevelComplete(){gameState="levelComplete",allowSound&&music.volume(.25),playSound("home"),userInput.removeHitArea("jump"),userInput.removeHitArea("moreGames"),userInput.removeHitArea("pause"),userInput.addHitArea("nextLevel",butEventHandler,null,{type:"rect",aRect:[160,240,320,310]}),userInput.addHitArea("moreGames",butEventHandler,null,{type:"rect",aRect:[0,0,82,55]}),userInput.addHitArea("moreGames",butEventHandler,null,{type:"rect",aRect:[0,255,120,canvas.height]}),panel=new Elements.Panel(assetLib.getData("panels"),assetLib.getData("numbers"),canvas.width,canvas.height),panel.startTween(),totalScore+=100*acornScore+levelScore,dp_submitScore(level,totalScore);panel.oScoreData={acornScore:100*acornScore,levelScore:levelScore,totalScore:totalScore},previousTime=(new Date).getTime(),updateLevelComplete()}function initGameEndFail(){gameState="gameEndFail",allowSound&&music.volume(.25),playSound("fall"),userInput.removeHitArea("jump"),userInput.removeHitArea("moreGames"),userInput.removeHitArea("pause"),userInput.addHitArea("retryLevel",butEventHandler,null,{type:"rect",aRect:[240,240,410,310]}),userInput.addHitArea("quitFromEnd",butEventHandler,null,{type:"rect",aRect:[70,240,240,310]}),userInput.addHitArea("moreGames",butEventHandler,null,{type:"rect",aRect:[0,0,130,100]}),background.render(ctx),panel=new Elements.Panel(assetLib.getData("panels"),assetLib.getData("numbers"),canvas.width,canvas.height),panel.oScoreData={totalScore:levelScore+totalScore},panel.startTween(),previousTime=(new Date).getTime(),updateGameEndFail()}function updateLevelComplete(){if(!rotatePause&&"levelComplete"==gameState){var a=getDelta();background.render(ctx),panel.renderPanel(ctx,a,"levelComplete"),renderMuteBut(),requestAnimFrame(updateLevelComplete)}}function updateGameEndFail(){if(!rotatePause&&"gameEndFail"==gameState){var a=getDelta();background.render(ctx),panel.renderPanel(ctx,a,"gameEndFail"),renderMuteBut(),requestAnimFrame(updateGameEndFail)}}function updateGameEvent(){if(!manualPause&&!rotatePause&&"game"==gameState){var a=getDelta();speedX+=5*(targSpeedX-speedX)*a,trackY=3*(canvas.height/2-squirrel.y-25),trackX=1*(flipPosX-squirrel.x),background.update(a,speedX-trackX,speedY+trackY),background.render(ctx),(leafDropInc+=a)>.7&&(addLeaf(),leafDropInc=0);for(var c,b=!0,d=0;dsquirrel.x-60&&aBranches[d].xsquirrel.y&&aBranches[d].y>squirrel.y&&aBranches[d].y-squirrel.y0?(addBranch(),nextBranchWidthGap=aBranchWidthGaps[Math.floor(Math.random()*Math.min(level,aBranchWidthGaps.length))]):0==stumpDist?nextBranchWidthGap=aBranchWidthGaps[2]:(addStump(),nextBranchWidthGap=1e4)),renderMuteBut(),requestAnimFrame(updateGameEvent)}}function updateSplashScreenEvent(){if(!rotatePause&&"splash"==gameState){var a=getDelta();if(splashTimer+=a,splashTimer>2.5)return allowSound&&!muted&&music.play(),initStartScreen(),void 0;splash.render(ctx,a),requestAnimFrame(updateSplashScreenEvent)}}function updateStartScreenEvent(){if(!rotatePause&&"start"==gameState){var a=getDelta();screens.render(ctx,a),renderMuteBut(),requestAnimFrame(updateStartScreenEvent)}}function getDelta(){var a=(new Date).getTime(),b=(a-previousTime)/1e3;return previousTime=a,b>.5&&(b=0),b}function checkSpriteCollision(a,b){var c=(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y),d=(a.radius+b.radius)*(a.radius+b.radius);return d>c?!0:!1}function renderSprite(a){ctx.save(),ctx.translate(a.x,a.y),ctx.rotate(a.rotation),ctx.scale(a.scaleX,a.scaleY),a.render(ctx),ctx.restore()}function loadPreAssets(){aLangs.length>1?(preAssetLib=new Utils.AssetLoader(curLang,[{id:"langSelect",file:"images/langSelect.jpg"},{id:"preloadImage",file:"images/preloadImage.jpg"}],ctx,canvas.width,canvas.height,!1),preAssetLib.onReady(initLangSelect)):(curLang=aLangs[0],preAssetLib=new Utils.AssetLoader(curLang,[{id:"preloadImage",file:"images/preloadImage.jpg"}],ctx,canvas.width,canvas.height,!1),preAssetLib.onReady(initLoadAssets))}function initLangSelect(){var a=preAssetLib.getData("langSelect");ctx.drawImage(a.img,canvas.width/2-a.img.width/2,canvas.height/2-a.img.height/2);for(var b=140,c=0;c480&&(a-=1,b-=1),window.innerWidththis.maxIdx){this.fixedFrame=this.oAnims[this.animId][b-1],this.animId=null,this.animEndedFunc();var e=this.fixedFrame*this.oImgData.oData.spriteWidth%this.oImgData.img.width,f=Math.floor(this.fixedFrame/(this.oImgData.img.width/this.oImgData.oData.spriteWidth))*this.oImgData.oData.spriteHeight}}else var e=this.fixedFrame*this.oImgData.oData.spriteWidth%this.oImgData.img.width,f=Math.floor(this.fixedFrame/(this.oImgData.img.width/this.oImgData.oData.spriteWidth))*this.oImgData.oData.spriteHeight;a.drawImage(this.oImgData.img,e,f,this.oImgData.oData.spriteWidth,this.oImgData.oData.spriteHeight,-this.oImgData.oData.spriteWidth/2+this.offsetX,-this.oImgData.oData.spriteHeight/2+this.offsetY,this.oImgData.oData.spriteWidth,this.oImgData.oData.spriteHeight)},a}();a.AnimSprite=b}(Utils||(Utils={}));var Utils;!function(a){var b=function(){function a(a,b){this.x=0,this.y=0,this.rotation=0,this.radius=10,this.removeMe=!1,this.oImgData=a,this.radius=b}return a.prototype.setFrame=function(a){this.frameNum=a},a.prototype.render=function(a){var b=this.frameNum*this.oImgData.oData.spriteWidth%this.oImgData.img.width,c=Math.floor(this.frameNum/(this.oImgData.img.width/this.oImgData.oData.spriteWidth))*this.oImgData.oData.spriteHeight;a.drawImage(this.oImgData.img,b,c,this.oImgData.oData.spriteWidth,this.oImgData.oData.spriteHeight,-this.oImgData.oData.spriteWidth/2,-this.oImgData.oData.spriteHeight/2,this.oImgData.oData.spriteWidth,this.oImgData.oData.spriteHeight)},a}();a.BasicSprite=b}(Utils||(Utils={}));var Utils;!function(a){var b=function(){function a(a,b){var c=this;this.isDown=!1,this.canvasX=0,this.canvasY=0,this.canvasScaleX=1,this.canvasScaleY=1,this.prevHitTime=0,this.pauseIsOn=!1,this.isBugBrowser=b,a.addEventListener("touchstart",function(a){c.hitDown(a,a.touches[0].pageX,a.touches[0].pageY)},!1),a.addEventListener("touchend",function(a){c.hitUp(a,a.changedTouches[0].pageX,a.changedTouches[0].pageY)},!1),a.addEventListener("mousedown",function(a){c.hitDown(a,a.pageX,a.pageY)},!1),a.addEventListener("mouseup",function(a){c.hitUp(a,a.pageX,a.pageY)},!1),this.aHitAreas=new Array}return a.prototype.setCanvas=function(a,b,c,d){this.canvasX=a,this.canvasY=b,this.canvasScaleX=c,this.canvasScaleY=d},a.prototype.hitDown=function(a,b,c){if(!this.pauseIsOn){var d=(new Date).getTime();if(!(d-this.prevHitTime<500&&isBugBrowser)){this.prevHitTime=d,a.preventDefault(),a.stopPropagation(),b=(b-this.canvasX)*this.canvasScaleX,c=(c-this.canvasY)*this.canvasScaleY;for(var e=0;ethis.aHitAreas[e].area[0]&&c>this.aHitAreas[e].area[1]&&bthis.aHitAreas[d].area[0]&&c>this.aHitAreas[d].area[1]&&b=this.updateFreq&&(this.updateInc=0,this.display=this.frameAverage,this.frameAverage=0),a.textAlign="left",ctx.font="10px Helvetica",a.fillStyle="#333333",a.beginPath(),a.rect(0,this.canvasHeight-15,40,15),a.closePath(),a.fill(),a.fillStyle="#ffffff",a.fillText(Math.round(1e3/(1e3*this.display))+" fps "+this.log,5,this.canvasHeight-5)},this.canvasHeight=a}return a.prototype.update=function(a){this.delta=a},a}();a.FpsMeter=b}(Utils||(Utils={}));var Elements;!function(a){var b=function(){function a(a,b,c){this.offsetX=0,this.offsetY=0,this.oImgData=a,this.canvasWidth=b,this.canvasHeight=c}return a.prototype.update=function(a,b,c){this.offsetX+=b/2*a,this.offsetY-=c/2*a},a.prototype.render=function(a){var b=this.offsetX%this.canvasWidth,c=this.offsetY%this.canvasHeight;0>b&&(b+=this.canvasWidth),0>c&&(c+=this.canvasHeight),a.drawImage(this.oImgData.img,b,c,this.canvasWidth,this.canvasHeight,0,0,this.canvasWidth,this.canvasHeight)},a}();a.Background=b}(Elements||(Elements={}));var Elements;!function(a){var b=function(){function a(a,b,c,d,e,f){this.incY=0,this.score=0,this.highestScore=0,this.posY=0,this.bgX=0,this.bgY=0,this.oScreens=a,this.oButs=b,this.oTitle1ImgData=c,this.oTitle2ImgData=d,this.canvasWidth=e,this.canvasHeight=f,this.posY=-this.canvasHeight,this.posX=100}return a.prototype.setRenderFunc=function(a){switch(this.posY=-this.canvasHeight,a){case"start":this.renderFunc=this.renderStartScreen,TweenLite.to(this,1,{posX:0,ease:"Back.easeOut"}),TweenLite.to(this,.5,{posY:0});break;case"help":break;case"end":}},a.prototype.render=function(a,b){this.renderFunc(a,b)},a.prototype.renderStartScreen=function(a,b){this.incY+=5*b,this.bgX+=50*b,this.bgY-=50*Math.sin(this.incY/5)*b;var c=this.bgX%this.canvasWidth,d=this.bgY%this.canvasHeight;0>c&&(c+=this.canvasWidth),0>d&&(d+=this.canvasHeight),a.drawImage(this.oScreens.startImageData.img,c,d,this.canvasWidth,this.canvasHeight,0,0,this.canvasWidth,this.canvasHeight),a.drawImage(this.oTitle2ImgData.img,this.canvasWidth/2-this.oTitle2ImgData.img.width/2-this.posX,-12),a.drawImage(this.oTitle1ImgData.img,this.canvasWidth/2-this.oTitle2ImgData.img.width/2+this.posX,-12),a.drawImage(this.oButs.play.imageData.img,this.oButs.play.pos[0]-this.oButs.play.imageData.img.width/2,this.oButs.play.pos[1]-this.oButs.play.imageData.img.height/2-5*Math.sin(this.incY)-this.posY)},a}();a.Screens=b}(Elements||(Elements={}));var Elements;!function(a){var b=function(){function a(a,b,c){this.inc=0,this.oSplashScreenImgData=a,this.canvasWidth=b,this.canvasHeight=c,this.posY=-this.canvasHeight,TweenLite.to(this,.5,{posY:0})}return a.prototype.render=function(a,b){this.inc+=5*b,a.drawImage(this.oSplashScreenImgData.img,0,0-this.posY)},a}();a.Splash=b}(Elements||(Elements={}));var Elements;!function(a){var b=function(){function a(a,b,c,d){this.timer=.3,this.endTime=0,this.oPanelsImgData=a,this.oNumbersImgData=b,this.canvasWidth=c,this.canvasHeight=d}return a.prototype.update=function(){},a.prototype.startTween=function(){this.posY=320,TweenLite.to(this,.8,{posY:0,ease:"Back.easeOut"})},a.prototype.renderPanel=function(a,b,c){switch(c){case"levelComplete":var d=1,e=d*this.oPanelsImgData.oData.spriteWidth%this.oPanelsImgData.img.width,f=Math.floor(d/(this.oPanelsImgData.img.width/this.oPanelsImgData.oData.spriteWidth))*this.oPanelsImgData.oData.spriteHeight;a.drawImage(this.oPanelsImgData.img,e,f,this.oPanelsImgData.oData.spriteWidth,this.oPanelsImgData.oData.spriteHeight,this.canvasWidth/2-this.oPanelsImgData.oData.spriteWidth/2,this.canvasHeight/2-this.oPanelsImgData.oData.spriteHeight/2+this.posY,this.oPanelsImgData.oData.spriteWidth,this.oPanelsImgData.oData.spriteHeight);for(var g=this.oScoreData.acornScore,h=0;h1.5*this.canvasHeight||this.x<0-this.spriteWidth&&this.isRight||this.x>this.canvasWidth+this.spriteWidth&&!this.isRight)&&(this.removeMe=!0)},a.prototype.render=function(a){var b=this.frameNum*this.oImgData.oData.spriteWidth%this.oImgData.img.width,c=Math.floor(this.frameNum/(this.oImgData.img.width/this.oImgData.oData.spriteWidth))*this.oImgData.oData.spriteHeight;a.drawImage(this.oImgData.img,b,c,this.oImgData.oData.spriteWidth,this.oImgData.oData.spriteHeight,this.x-5-this.oImgData.oData.spriteWidth/2,this.y-115,this.oImgData.oData.spriteWidth,this.oImgData.oData.spriteHeight)},a}();a.Branch=b}(Elements||(Elements={}));var __extends=this.__extends||function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c},Elements;!function(a){var b=function(a){function b(b,c,d,e){a.call(this,b,20,25,"falling"),this.fallInc=0,this.oBranchData=new Object,this.jumpOn=!1,this.isRight=!0,this.canvasWidth=c,this.canvasHeight=d,this.callback=e,this.state="falling",this.offsetY=-12,this.updateFunc=this.falling}return __extends(b,a),b.prototype.setNearestBranch=function(a,b,c){c>this.y&&(this.oBranchData.lastNearestUnderId=a),this.oBranchData.curNearestId=a,this.oBranchData.curNearestY=c,this.oBranchData.curNearestType=b},b.prototype.changeState=function(a){switch(this.state=a,this.state){case"running":this.setAnimType("loop",this.state),this.jumpOn&&(this.fallRate=450,this.changeState("jumping"));break;case"falling":"running"==this.animId&&(this.animEndedFunc=function(){this.setAnimType("loop","falling")},this.setAnimType("once","running",!1)),this.fallInc=100;break;case"jumping":"running"==this.animId&&(this.animEndedFunc=function(){this.setAnimType("loop","falling")},this.setAnimType("once",this.state),this.fallInc=-300);break;case"flipping":this.isRight?(this.isRight=!1,this.scaleX=-1):(this.isRight=!0,this.scaleX=1),this.fallInc=-725,this.animEndedFunc=function(){this.setAnimType("loop","falling")},this.setAnimType("once","jumping"),this.callback("flip",{isRight:this.isRight});break;case"home":this.callback("home"),this.setAnimType("loop","hide")}this.updateFunc=this[this.state]},b.prototype.jump=function(){"running"==this.state&&(this.fallRate=450,this.changeState("jumping"),playSound("jump")),this.jumpOn=!0},b.prototype.jumpReleased=function(){"jumping"==this.state&&(this.fallRate=800),this.jumpOn=!1},b.prototype.update=function(b,c,d){a.prototype.updateAnimation.call(this,b),this.x+=c*b,this.y+=d*b,this.updateFunc(b)},b.prototype.running=function(){(null==this.oBranchData.curNearestId||this.oBranchData.curNearestY!=this.y)&&this.changeState("falling")},b.prototype.falling=function(a){this.fallInc+=800*a,this.y+=this.fallInc*a,this.oBranchData.curNearestY1.5*this.canvasHeight&&this.callback("endGame")},b.prototype.home=function(){},b.prototype.jumping=function(a){this.fallInc>0&&(this.fallRate=800),this.fallInc+=this.fallRate*a,this.y+=this.fallInc*a,this.oBranchData.curNearestY1.5*this.canvasHeight&&this.callback("endGame")},b.prototype.flipping=function(a){this.fallInc+=800*a,this.y+=this.fallInc*a,this.oBranchData.curNearestY2*this.canvasHeight||this.x<0-this.spriteWidth&&this.isRight||this.x>this.canvasWidth+this.spriteWidth&&!this.isRight)&&(this.removeMe=!0)},b.prototype.hit=function(){this.canHit=!1,this.setAnimType("once","bursting")},b.prototype.burst=function(){this.removeMe=!0},b}(Utils.AnimSprite);a.Acorn=b}(Elements||(Elements={}));var Elements;!function(a){var b=function(a){function b(b,c,d,e){a.call(this,b,20,0,"falling"),this.oImgData=b,this.isRight=c,this.canvasWidth=d,this.canvasHeight=e,this.spriteWidth=100,this.frameInc=Math.floor(38*Math.random())}return __extends(b,a),b.prototype.update=function(b,c,d){a.prototype.updateAnimation.call(this,b),this.x-=2*c*b,this.y+=(2*d+100)*b,(this.y>2*this.canvasHeight||this.x<0-this.spriteWidth&&this.isRight||this.x>this.canvasWidth+this.spriteWidth&&!this.isRight)&&(this.removeMe=!0)},b}(Utils.AnimSprite);a.Leaf=b}(Elements||(Elements={}));var requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,1e3/60,(new Date).getTime())}}(),previousTime,canvas=document.getElementById("canvas"),ctx=canvas.getContext("2d");canvas.width=480,canvas.height=320;var canvasX,canvasY,canvasScaleX,canvasScaleY,div=document.getElementById("viewporter"),sound,music,allowSound=!1,muted=!1,splash,splashTimer=0,screens,assetLib,preAssetLib,rotatePause=!1,manualPause=!1,isMobile=!1,gameState="loading",aLangs=new Array("EN"),curLang="",isBugBrowser=!1,spilAPI,deviceAgent=navigator.userAgent.toLowerCase();(deviceAgent.match(/(iphone|ipod|ipad)/)||deviceAgent.match(/(android)/)||deviceAgent.match(/(iemobile)/)||deviceAgent.match(/iphone/i)||deviceAgent.match(/ipad/i)||deviceAgent.match(/ipod/i)||deviceAgent.match(/blackberry/i)||deviceAgent.match(/bada/i))&&(isMobile=!0,deviceAgent.match(/(android)/)&&!/Chrome/.test(navigator.userAgent)&&(isBugBrowser=!0));var userInput=new Utils.UserInput(canvas,isBugBrowser);resizeCanvas(),window.onresize=function(){setTimeout(function(){resizeCanvas()},1)},window.addEventListener("load",function(){setTimeout(function(){resizeCanvas()},0),window.addEventListener("orientationchange",function(){resizeCanvas()},!1),console.log("game loaded"),GameAPI.loadAPI(function(a){spilAPI=a,console.log("spilAPI loaded")})}),("undefined"!=typeof window.AudioContext||"undefined"!=typeof window.webkitAudioContext||-1==navigator.userAgent.indexOf("Android"))&&(allowSound=!0,sound=new Howl({urls:["audio/sound.ogg","audio/sound.m4a"],sprite:{click:[0,150],bounce:[250,1e3],home:[1500,1e3],jump:[3e3,300],land:[3500,300],nut:[4e3,500],fall:[5e3,1200]}}),music=new Howl({urls:["audio/music.ogg","audio/music.m4a"],volume:.25,loop:!0}));var panel,hud,background,totalScore=0,levelScore=0,acornScore,aBranches,aAcorns,aLeaves,targSpeedX,speedX=0,speedY=0,aBranchWidthGaps=new Array(100,150,200,250),aBranchHeightGaps=new Array(0,50,-50),aAcornHeights=new Array(0,-60),nextBranchWidthGap=aBranchWidthGaps[0],squirrel,branchId,stumpDist,flipPosX,isRight=!0,lastBranchY,trackX,trackY,level,branchFloors,leafDropInc;loadPreAssets();