var Phaser;(function(Phaser){var Basic=(function(){function Basic(game){this.name="";this._game=game;this.ID=-1;this.exists=true;this.active=true;this.visible=true;this.alive=true;this.isGroup=false;this.ignoreDrawDebug=false}Basic.prototype.destroy=function(){};Basic.prototype.preUpdate=function(){};Basic.prototype.update=function(){};Basic.prototype.postUpdate=function(){};Basic.prototype.render=function(camera,cameraOffsetX,cameraOffsetY){};Basic.prototype.kill=function(){this.alive=false;this.exists=false};Basic.prototype.revive=function(){this.alive=true;this.exists=true};Basic.prototype.toString=function(){return""};return Basic})();Phaser.Basic=Basic})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var SignalBinding=(function(){function SignalBinding(signal,listener,isOnce,listenerContext,priority){if(typeof priority==="undefined"){priority=0}this.active=true;this.params=null;this._listener=listener;this._isOnce=isOnce;this.context=listenerContext;this._signal=signal;this.priority=priority||0}SignalBinding.prototype.execute=function(paramsArr){var handlerReturn;var params;if(this.active&&!!this._listener){params=this.params?this.params.concat(paramsArr):paramsArr;handlerReturn=this._listener.apply(this.context,params);if(this._isOnce){this.detach()}}return handlerReturn};SignalBinding.prototype.detach=function(){return this.isBound()?this._signal.remove(this._listener,this.context):null};SignalBinding.prototype.isBound=function(){return(!!this._signal&&!!this._listener)};SignalBinding.prototype.isOnce=function(){return this._isOnce};SignalBinding.prototype.getListener=function(){return this._listener};SignalBinding.prototype.getSignal=function(){return this._signal};SignalBinding.prototype._destroy=function(){delete this._signal;delete this._listener;delete this.context};SignalBinding.prototype.toString=function(){return"[SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"};return SignalBinding})();Phaser.SignalBinding=SignalBinding})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Signal=(function(){function Signal(){this._bindings=[];this._prevParams=null;this.memorize=false;this._shouldPropagate=true;this.active=true}Signal.VERSION="1.0.0";Signal.prototype.validateListener=function(listener,fnName){if(typeof listener!=="function"){throw new Error("listener is a required param of {fn}() and should be a Function.".replace("{fn}",fnName))}};Signal.prototype._registerListener=function(listener,isOnce,listenerContext,priority){var prevIndex=this._indexOfListener(listener,listenerContext);var binding;if(prevIndex!==-1){binding=this._bindings[prevIndex];if(binding.isOnce()!==isOnce){throw new Error("You cannot add"+(isOnce?"":"Once")+"() then add"+(!isOnce?"":"Once")+"() the same listener without removing the relationship first.")}}else{binding=new Phaser.SignalBinding(this,listener,isOnce,listenerContext,priority);this._addBinding(binding)}if(this.memorize&&this._prevParams){binding.execute(this._prevParams)}return binding};Signal.prototype._addBinding=function(binding){var n=this._bindings.length;do{--n}while(this._bindings[n]&&binding.priority<=this._bindings[n].priority);this._bindings.splice(n+1,0,binding)};Signal.prototype._indexOfListener=function(listener,context){var n=this._bindings.length;var cur;while(n--){cur=this._bindings[n];if(cur.getListener()===listener&&cur.context===context){return n}}return -1};Signal.prototype.has=function(listener,context){if(typeof context==="undefined"){context=null}return this._indexOfListener(listener,context)!==-1};Signal.prototype.add=function(listener,listenerContext,priority){if(typeof listenerContext==="undefined"){listenerContext=null}if(typeof priority==="undefined"){priority=0}this.validateListener(listener,"add");return this._registerListener(listener,false,listenerContext,priority)};Signal.prototype.addOnce=function(listener,listenerContext,priority){if(typeof listenerContext==="undefined"){listenerContext=null}if(typeof priority==="undefined"){priority=0}this.validateListener(listener,"addOnce");return this._registerListener(listener,true,listenerContext,priority)};Signal.prototype.remove=function(listener,context){if(typeof context==="undefined"){context=null}this.validateListener(listener,"remove");var i=this._indexOfListener(listener,context);if(i!==-1){this._bindings[i]._destroy();this._bindings.splice(i,1)}return listener};Signal.prototype.removeAll=function(){var n=this._bindings.length;while(n--){this._bindings[n]._destroy()}this._bindings.length=0};Signal.prototype.getNumListeners=function(){return this._bindings.length};Signal.prototype.halt=function(){this._shouldPropagate=false};Signal.prototype.dispatch=function(){var paramsArr=[];for(var _i=0;_i<(arguments.length-0);_i++){paramsArr[_i]=arguments[_i+0]}if(!this.active){return}var n=this._bindings.length;var bindings;if(this.memorize){this._prevParams=paramsArr}if(!n){return}bindings=this._bindings.slice(0);this._shouldPropagate=true;do{n--}while(bindings[n]&&this._shouldPropagate&&bindings[n].execute(paramsArr)!==false)};Signal.prototype.forget=function(){this._prevParams=null};Signal.prototype.dispose=function(){this.removeAll();delete this._bindings;delete this._prevParams};Signal.prototype.toString=function(){return"[Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"};return Signal})();Phaser.Signal=Signal})(Phaser||(Phaser={}));var __extends=this.__extends||function(d,b){function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __()};var Phaser;(function(Phaser){var GameObject=(function(_super){__extends(GameObject,_super);function GameObject(game,x,y,width,height){if(typeof x==="undefined"){x=0}if(typeof y==="undefined"){y=0}if(typeof width==="undefined"){width=16}if(typeof height==="undefined"){height=16}_super.call(this,game);this._angle=0;this.z=0;this.moves=true;this.inputEnabled=false;this._inputOver=false;this.bounds=new Phaser.Rectangle(x,y,width,height);this.exists=true;this.active=true;this.visible=true;this.alive=true;this.isGroup=false;this.alpha=1;this.scale=new Phaser.Point(1,1);this.last=new Phaser.Point(x,y);this.origin=new Phaser.Point(this.bounds.halfWidth,this.bounds.halfHeight);this.mass=1;this.elasticity=0;this.health=1;this.immovable=false;this.moves=true;this.touching=Phaser.Collision.NONE;this.wasTouching=Phaser.Collision.NONE;this.allowCollisions=Phaser.Collision.ANY;this.velocity=new Phaser.Point();this.acceleration=new Phaser.Point();this.drag=new Phaser.Point();this.maxVelocity=new Phaser.Point(10000,10000);this.angle=0;this.angularVelocity=0;this.angularAcceleration=0;this.angularDrag=0;this.maxAngular=10000;this.scrollFactor=new Phaser.Point(1,1)}GameObject.prototype.preUpdate=function(){this.last.x=this.bounds.x;this.last.y=this.bounds.y};GameObject.prototype.update=function(){};GameObject.prototype.postUpdate=function(){if(this.moves){this.updateMotion()}if(this.inputEnabled){this.updateInput()}this.wasTouching=this.touching;this.touching=Phaser.Collision.NONE};GameObject.prototype.updateInput=function(){};GameObject.prototype.updateMotion=function(){var delta;var velocityDelta;velocityDelta=(this._game.motion.computeVelocity(this.angularVelocity,this.angularAcceleration,this.angularDrag,this.maxAngular)-this.angularVelocity)/2;this.angularVelocity+=velocityDelta;this._angle+=this.angularVelocity*this._game.time.elapsed;this.angularVelocity+=velocityDelta;velocityDelta=(this._game.motion.computeVelocity(this.velocity.x,this.acceleration.x,this.drag.x,this.maxVelocity.x)-this.velocity.x)/2;this.velocity.x+=velocityDelta;delta=this.velocity.x*this._game.time.elapsed;this.velocity.x+=velocityDelta;this.bounds.x+=delta;velocityDelta=(this._game.motion.computeVelocity(this.velocity.y,this.acceleration.y,this.drag.y,this.maxVelocity.y)-this.velocity.y)/2;this.velocity.y+=velocityDelta;delta=this.velocity.y*this._game.time.elapsed;this.velocity.y+=velocityDelta;this.bounds.y+=delta};GameObject.prototype.overlaps=function(ObjectOrGroup,InScreenSpace,Camera){if(typeof InScreenSpace==="undefined"){InScreenSpace=false}if(typeof Camera==="undefined"){Camera=null}if(ObjectOrGroup.isGroup){var results=false;var i=0;var members=ObjectOrGroup.members;while(ithis.x)&&(ObjectOrGroup.xthis.y)&&(ObjectOrGroup.ythis._point.x)&&(objectScreenPos.xthis._point.y)&&(objectScreenPos.yX)&&(ObjectOrGroup.xY)&&(ObjectOrGroup.y0)?1e-7:-1e-7;this._point.y+=(this._point.y>0)?1e-7:-1e-7;return(objectScreenPos.x+ObjectOrGroup.width>this._point.x)&&(objectScreenPos.xthis._point.y)&&(objectScreenPos.ythis.x)&&(point.xthis.y)&&(point.ythis._point.x)&&(Xthis._point.y)&&(Y0)&&(this._point.x0)&&(this._point.y0)?1e-7:-1e-7;point.y+=(point.y>0)?1e-7:-1e-7;return point};Object.defineProperty(GameObject.prototype,"solid",{get:function(){return(this.allowCollisions&Phaser.Collision.ANY)>Phaser.Collision.NONE},set:function(Solid){if(Solid){this.allowCollisions=Phaser.Collision.ANY}else{this.allowCollisions=Phaser.Collision.NONE}},enumerable:true,configurable:true});GameObject.prototype.getMidpoint=function(point){if(typeof point==="undefined"){point=null}if(point==null){point=new Phaser.Point()}point.x=this.x+this.width*0.5;point.y=this.y+this.height*0.5;return point};GameObject.prototype.reset=function(X,Y){this.revive();this.touching=Phaser.Collision.NONE;this.wasTouching=Phaser.Collision.NONE;this.x=X;this.y=Y;this.last.x=X;this.last.y=Y;this.velocity.x=0;this.velocity.y=0};GameObject.prototype.isTouching=function(Direction){return(this.touching&Direction)>Phaser.Collision.NONE};GameObject.prototype.justTouched=function(Direction){return((this.touching&Direction)>Phaser.Collision.NONE)&&((this.wasTouching&Direction)<=Phaser.Collision.NONE)};GameObject.prototype.hurt=function(Damage){this.health=this.health-Damage;if(this.health<=0){this.kill()}};GameObject.prototype.destroy=function(){};Object.defineProperty(GameObject.prototype,"x",{get:function(){return this.bounds.x},set:function(value){this.bounds.x=value},enumerable:true,configurable:true});Object.defineProperty(GameObject.prototype,"y",{get:function(){return this.bounds.y},set:function(value){this.bounds.y=value},enumerable:true,configurable:true});Object.defineProperty(GameObject.prototype,"rotation",{get:function(){return this._angle},set:function(value){this._angle=this._game.math.wrap(value,360,0)},enumerable:true,configurable:true});Object.defineProperty(GameObject.prototype,"angle",{get:function(){return this._angle},set:function(value){this._angle=this._game.math.wrap(value,360,0)},enumerable:true,configurable:true});Object.defineProperty(GameObject.prototype,"width",{get:function(){return this.bounds.width},enumerable:true,configurable:true});Object.defineProperty(GameObject.prototype,"height",{get:function(){return this.bounds.height},enumerable:true,configurable:true});return GameObject})(Phaser.Basic);Phaser.GameObject=GameObject})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Sprite=(function(_super){__extends(Sprite,_super);function Sprite(game,x,y,key){if(typeof x==="undefined"){x=0}if(typeof y==="undefined"){y=0}if(typeof key==="undefined"){key=null}_super.call(this,game,x,y);this._dynamicTexture=false;this._sx=0;this._sy=0;this._sw=0;this._sh=0;this._dx=0;this._dy=0;this._dw=0;this._dh=0;this._texture=null;this.animations=new Phaser.AnimationManager(this._game,this);if(key!==null){this.loadGraphic(key)}else{this.bounds.width=16;this.bounds.height=16}}Sprite.prototype.loadGraphic=function(key){if(this._game.cache.getImage(key)!==null){if(this._game.cache.isSpriteSheet(key)==false){this._texture=this._game.cache.getImage(key);this.bounds.width=this._texture.width;this.bounds.height=this._texture.height}else{this._texture=this._game.cache.getImage(key);this.animations.loadFrameData(this._game.cache.getFrameData(key))}this._dynamicTexture=false}return this};Sprite.prototype.loadDynamicTexture=function(texture){this._texture=texture;this.bounds.width=this._texture.width;this.bounds.height=this._texture.height;this._dynamicTexture=true;return this};Sprite.prototype.makeGraphic=function(width,height,color){if(typeof color==="undefined"){color=4294967295}this._texture=null;this.width=width;this.height=height;this._dynamicTexture=false;return this};Sprite.prototype.inCamera=function(camera){if(this.scrollFactor.x!==1||this.scrollFactor.y!==1){this._dx=this.bounds.x-(camera.x*this.scrollFactor.x);this._dy=this.bounds.y-(camera.y*this.scrollFactor.x);this._dw=this.bounds.width*this.scale.x;this._dh=this.bounds.height*this.scale.y;return(camera.right>this._dx)&&(camera.xthis._dy)&&(camera.y-1){this._game.stage.context.globalAlpha=globalAlpha}return true};Sprite.prototype.renderDebugInfo=function(x,y,color){if(typeof color==="undefined"){color="rgb(255,255,255)"}this._game.stage.context.fillStyle=color;this._game.stage.context.fillText("Sprite: "+this.name+" ("+this.bounds.width+" x "+this.bounds.height+")",x,y);this._game.stage.context.fillText("x: "+this.bounds.x.toFixed(1)+" y: "+this.bounds.y.toFixed(1)+" rotation: "+this.angle.toFixed(1),x,y+14);this._game.stage.context.fillText("dx: "+this._dx.toFixed(1)+" dy: "+this._dy.toFixed(1)+" dw: "+this._dw.toFixed(1)+" dh: "+this._dh.toFixed(1),x,y+28);this._game.stage.context.fillText("sx: "+this._sx.toFixed(1)+" sy: "+this._sy.toFixed(1)+" sw: "+this._sw.toFixed(1)+" sh: "+this._sh.toFixed(1),x,y+42)};return Sprite})(Phaser.GameObject);Phaser.Sprite=Sprite})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Animation=(function(){function Animation(game,parent,frameData,name,frames,delay,looped){this._game=game;this._parent=parent;this._frames=frames;this._frameData=frameData;this.name=name;this.delay=1000/delay;this.looped=looped;this.isFinished=false;this.isPlaying=false}Object.defineProperty(Animation.prototype,"frameTotal",{get:function(){return this._frames.length},enumerable:true,configurable:true});Object.defineProperty(Animation.prototype,"frame",{get:function(){return this._frameIndex},set:function(value){this.currentFrame=this._frameData.getFrame(value);if(this.currentFrame!==null){this._parent.bounds.width=this.currentFrame.width;this._parent.bounds.height=this.currentFrame.height;this._frameIndex=value}},enumerable:true,configurable:true});Animation.prototype.play=function(frameRate,loop){if(typeof frameRate==="undefined"){frameRate=null}if(frameRate!==null){this.delay=1000/frameRate}if(loop!==undefined){this.looped=loop}this.isPlaying=true;this.isFinished=false;this._timeLastFrame=this._game.time.now;this._timeNextFrame=this._game.time.now+this.delay;this._frameIndex=0;this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex])};Animation.prototype.onComplete=function(){this.isPlaying=false;this.isFinished=true};Animation.prototype.stop=function(){this.isPlaying=false;this.isFinished=true};Animation.prototype.update=function(){if(this.isPlaying==true&&this._game.time.now>=this._timeNextFrame){this._frameIndex++;if(this._frameIndex==this._frames.length){if(this.looped){this._frameIndex=0;this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex])}else{this.onComplete()}}else{this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex])}this._timeLastFrame=this._game.time.now;this._timeNextFrame=this._game.time.now+this.delay;return true}return false};Animation.prototype.destroy=function(){this._game=null;this._parent=null;this._frames=null;this._frameData=null;this.currentFrame=null;this.isPlaying=false};return Animation})();Phaser.Animation=Animation})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var AnimationLoader=(function(){function AnimationLoader(){}AnimationLoader.parseSpriteSheet=function parseSpriteSheet(game,key,frameWidth,frameHeight,frameMax){var img=game.cache.getImage(key);if(img==null){return null}var width=img.width;var height=img.height;var row=Math.round(width/frameWidth);var column=Math.round(height/frameHeight);var total=row*column;if(frameMax!==-1){total=frameMax}if(width==0||height==0||width=0){return this._frames[this._frameNames[name]]}return null};FrameData.prototype.checkFrameName=function(name){if(this._frameNames[name]>=0){return true}return false};FrameData.prototype.getFrameRange=function(start,end,output){if(typeof output==="undefined"){output=[]}for(var i=start;i<=end;i++){output.push(this._frames[i])}return output};FrameData.prototype.getFrameIndexes=function(output){if(typeof output==="undefined"){output=[]}output.length=0;for(var i=0;ithis._frameData.total){return false}}else{if(this._frameData.checkFrameName(frames[i])==false){return false}}}return true};AnimationManager.prototype.play=function(name,frameRate,loop){if(typeof frameRate==="undefined"){frameRate=null}if(this._anims[name]){this.currentAnim=this._anims[name];this.currentAnim.play(frameRate,loop)}};AnimationManager.prototype.stop=function(name){if(this._anims[name]){this.currentAnim=this._anims[name];this.currentAnim.stop()}};AnimationManager.prototype.update=function(){if(this.currentAnim&&this.currentAnim.update()==true){this.currentFrame=this.currentAnim.currentFrame;this._parent.bounds.width=this.currentFrame.width;this._parent.bounds.height=this.currentFrame.height}};Object.defineProperty(AnimationManager.prototype,"frameData",{get:function(){return this._frameData},enumerable:true,configurable:true});Object.defineProperty(AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total},enumerable:true,configurable:true});Object.defineProperty(AnimationManager.prototype,"frame",{get:function(){return this._frameIndex},set:function(value){this.currentFrame=this._frameData.getFrame(value);if(this.currentFrame!==null){this._parent.bounds.width=this.currentFrame.width;this._parent.bounds.height=this.currentFrame.height;this._frameIndex=value}},enumerable:true,configurable:true});Object.defineProperty(AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame.name},set:function(value){this.currentFrame=this._frameData.getFrameByName(value);if(this.currentFrame!==null){this._parent.bounds.width=this.currentFrame.width;this._parent.bounds.height=this.currentFrame.height;this._frameIndex=this.currentFrame.index}},enumerable:true,configurable:true});return AnimationManager})();Phaser.AnimationManager=AnimationManager})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Cache=(function(){function Cache(game){this._game=game;this._canvases={};this._images={};this._sounds={};this._text={}}Cache.prototype.addCanvas=function(key,canvas,context){this._canvases[key]={canvas:canvas,context:context}};Cache.prototype.addSpriteSheet=function(key,url,data,frameWidth,frameHeight,frameMax){this._images[key]={url:url,data:data,spriteSheet:true,frameWidth:frameWidth,frameHeight:frameHeight};this._images[key].frameData=Phaser.AnimationLoader.parseSpriteSheet(this._game,key,frameWidth,frameHeight,frameMax)};Cache.prototype.addTextureAtlas=function(key,url,data,jsonData){this._images[key]={url:url,data:data,spriteSheet:true};this._images[key].frameData=Phaser.AnimationLoader.parseJSONData(this._game,jsonData)};Cache.prototype.addImage=function(key,url,data){this._images[key]={url:url,data:data,spriteSheet:false}};Cache.prototype.addSound=function(key,url,data){this._sounds[key]={url:url,data:data,decoded:false}};Cache.prototype.decodedSound=function(key,data){this._sounds[key].data=data;this._sounds[key].decoded=true};Cache.prototype.addText=function(key,url,data){this._text[key]={url:url,data:data}};Cache.prototype.getCanvas=function(key){if(this._canvases[key]){return this._canvases[key].canvas}return null};Cache.prototype.getImage=function(key){if(this._images[key]){return this._images[key].data}return null};Cache.prototype.getFrameData=function(key){if(this._images[key]&&this._images[key].spriteSheet==true){return this._images[key].frameData}return null};Cache.prototype.getSound=function(key){if(this._sounds[key]){return this._sounds[key].data}return null};Cache.prototype.isSoundDecoded=function(key){if(this._sounds[key]){return this._sounds[key].decoded}};Cache.prototype.isSpriteSheet=function(key){if(this._images[key]){return this._images[key].spriteSheet}};Cache.prototype.getText=function(key){if(this._text[key]){return this._text[key].data}return null};Cache.prototype.destroy=function(){for(var item in this._canvases){delete this._canvases[item.key]}for(var item in this._images){delete this._images[item.key]}for(var item in this._sounds){delete this._sounds[item.key]}for(var item in this._text){delete this._text[item.key]}};return Cache})();Phaser.Cache=Cache})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Camera=(function(){function Camera(game,id,x,y,width,height){this._clip=false;this._rotation=0;this._target=null;this._sx=0;this._sy=0;this._fxFlashComplete=null;this._fxFlashDuration=0;this._fxFlashAlpha=0;this._fxFadeComplete=null;this._fxFadeDuration=0;this._fxFadeAlpha=0;this._fxShakeIntensity=0;this._fxShakeDuration=0;this._fxShakeComplete=null;this._fxShakeOffset=new Phaser.Point(0,0);this._fxShakeDirection=0;this._fxShakePrevX=0;this._fxShakePrevY=0;this.scale=new Phaser.Point(1,1);this.scroll=new Phaser.Point(0,0);this.bounds=null;this.deadzone=null;this.showBorder=false;this.borderColor="rgb(255,255,255)";this.opaque=true;this._bgColor="rgb(0,0,0)";this._bgTextureRepeat="repeat";this.showShadow=false;this.shadowColor="rgb(0,0,0)";this.shadowBlur=10;this.shadowOffset=new Phaser.Point(4,4);this.visible=true;this.alpha=1;this.inputX=0;this.inputY=0;this._game=game;this.ID=id;this._stageX=x;this._stageY=y;this.worldView=new Phaser.Rectangle(0,0,width,height);this.checkClip()}Camera.STYLE_LOCKON=0;Camera.STYLE_PLATFORMER=1;Camera.STYLE_TOPDOWN=2;Camera.STYLE_TOPDOWN_TIGHT=3;Camera.SHAKE_BOTH_AXES=0;Camera.SHAKE_HORIZONTAL_ONLY=1;Camera.SHAKE_VERTICAL_ONLY=2;Camera.prototype.flash=function(color,duration,onComplete,force){if(typeof color==="undefined"){color=16777215}if(typeof duration==="undefined"){duration=1}if(typeof onComplete==="undefined"){onComplete=null}if(typeof force==="undefined"){force=false}if(force===false&&this._fxFlashAlpha>0){return}if(duration<=0){duration=1}var red=color>>16&255;var green=color>>8&255;var blue=color&255;this._fxFlashColor="rgba("+red+","+green+","+blue+",";this._fxFlashDuration=duration;this._fxFlashAlpha=1;this._fxFlashComplete=onComplete};Camera.prototype.fade=function(color,duration,onComplete,force){if(typeof color==="undefined"){color=0}if(typeof duration==="undefined"){duration=1}if(typeof onComplete==="undefined"){onComplete=null}if(typeof force==="undefined"){force=false}if(force===false&&this._fxFadeAlpha>0){return}if(duration<=0){duration=1}var red=color>>16&255;var green=color>>8&255;var blue=color&255;this._fxFadeColor="rgba("+red+","+green+","+blue+",";this._fxFadeDuration=duration;this._fxFadeAlpha=0.01;this._fxFadeComplete=onComplete};Camera.prototype.shake=function(intensity,duration,onComplete,force,direction){if(typeof intensity==="undefined"){intensity=0.05}if(typeof duration==="undefined"){duration=0.5}if(typeof onComplete==="undefined"){onComplete=null}if(typeof force==="undefined"){force=true}if(typeof direction==="undefined"){direction=Camera.SHAKE_BOTH_AXES}if(!force&&((this._fxShakeOffset.x!=0)||(this._fxShakeOffset.y!=0))){return}if(this._fxShakeOffset.x==0&&this._fxShakeOffset.y==0){this._fxShakePrevX=this._stageX;this._fxShakePrevY=this._stageY}this._fxShakeIntensity=intensity;this._fxShakeDuration=duration;this._fxShakeComplete=onComplete;this._fxShakeDirection=direction;this._fxShakeOffset.setTo(0,0)};Camera.prototype.stopFX=function(){this._fxFlashAlpha=0;this._fxFadeAlpha=0;if(this._fxShakeDuration!==0){this._fxShakeDuration=0;this._fxShakeOffset.setTo(0,0);this._stageX=this._fxShakePrevX;this._stageY=this._fxShakePrevY}};Camera.prototype.follow=function(target,style){if(typeof style==="undefined"){style=Camera.STYLE_LOCKON}this._target=target;var helper;switch(style){case Camera.STYLE_PLATFORMER:var w=this.width/8;var h=this.height/3;this.deadzone=new Phaser.Rectangle((this.width-w)/2,(this.height-h)/2-h*0.25,w,h);break;case Camera.STYLE_TOPDOWN:helper=Math.max(this.width,this.height)/4;this.deadzone=new Phaser.Rectangle((this.width-helper)/2,(this.height-helper)/2,helper,helper);break;case Camera.STYLE_TOPDOWN_TIGHT:helper=Math.max(this.width,this.height)/8;this.deadzone=new Phaser.Rectangle((this.width-helper)/2,(this.height-helper)/2,helper,helper);break;case Camera.STYLE_LOCKON:default:this.deadzone=null;break}};Camera.prototype.focusOnXY=function(x,y){x+=(x>0)?1e-7:-1e-7;y+=(y>0)?1e-7:-1e-7;this.scroll.x=Math.round(x-this.worldView.halfWidth);this.scroll.y=Math.round(y-this.worldView.halfHeight)};Camera.prototype.focusOn=function(point){point.x+=(point.x>0)?1e-7:-1e-7;point.y+=(point.y>0)?1e-7:-1e-7;this.scroll.x=Math.round(point.x-this.worldView.halfWidth);this.scroll.y=Math.round(point.y-this.worldView.halfHeight)};Camera.prototype.setBounds=function(X,Y,Width,Height,UpdateWorld){if(typeof X==="undefined"){X=0}if(typeof Y==="undefined"){Y=0}if(typeof Width==="undefined"){Width=0}if(typeof Height==="undefined"){Height=0}if(typeof UpdateWorld==="undefined"){UpdateWorld=false}if(this.bounds==null){this.bounds=new Phaser.Rectangle()}this.bounds.setTo(X,Y,Width,Height);this.update()};Camera.prototype.update=function(){if(this._target!==null){if(this.deadzone==null){this.focusOnXY(this._target.x+this._target.origin.x,this._target.y+this._target.origin.y)}else{var edge;var targetX=this._target.x+((this._target.x>0)?1e-7:-1e-7);var targetY=this._target.y+((this._target.y>0)?1e-7:-1e-7);edge=targetX-this.deadzone.x;if(this.scroll.x>edge){this.scroll.x=edge}edge=targetX+this._target.width-this.deadzone.x-this.deadzone.width;if(this.scroll.xedge){this.scroll.y=edge}edge=targetY+this._target.height-this.deadzone.y-this.deadzone.height;if(this.scroll.ythis.bounds.right-this.width){this.scroll.x=this.bounds.right-this.width}if(this.scroll.ythis.bounds.bottom-this.height){this.scroll.y=this.bounds.bottom-this.height}}this.worldView.x=this.scroll.x;this.worldView.y=this.scroll.y;this.inputX=this.worldView.x+this._game.input.x;this.inputY=this.worldView.y+this._game.input.y;if(this._fxFlashAlpha>0){this._fxFlashAlpha-=this._game.time.elapsed/this._fxFlashDuration;this._fxFlashAlpha=this._game.math.roundTo(this._fxFlashAlpha,-2);if(this._fxFlashAlpha<=0){this._fxFlashAlpha=0;if(this._fxFlashComplete!==null){this._fxFlashComplete()}}}if(this._fxFadeAlpha>0){this._fxFadeAlpha+=this._game.time.elapsed/this._fxFadeDuration;this._fxFadeAlpha=this._game.math.roundTo(this._fxFadeAlpha,-2);if(this._fxFadeAlpha>=1){this._fxFadeAlpha=1;if(this._fxFadeComplete!==null){this._fxFadeComplete()}}}if(this._fxShakeDuration>0){this._fxShakeDuration-=this._game.time.elapsed;this._fxShakeDuration=this._game.math.roundTo(this._fxShakeDuration,-2);if(this._fxShakeDuration<=0){this._fxShakeDuration=0;this._fxShakeOffset.setTo(0,0);this._stageX=this._fxShakePrevX;this._stageY=this._fxShakePrevY;if(this._fxShakeComplete!=null){this._fxShakeComplete()}}else{if((this._fxShakeDirection==Camera.SHAKE_BOTH_AXES)||(this._fxShakeDirection==Camera.SHAKE_HORIZONTAL_ONLY)){this._fxShakeOffset.x=(this._game.math.random()*this._fxShakeIntensity*this.worldView.width*2-this._fxShakeIntensity*this.worldView.width)}if((this._fxShakeDirection==Camera.SHAKE_BOTH_AXES)||(this._fxShakeDirection==Camera.SHAKE_VERTICAL_ONLY)){this._fxShakeOffset.y=(this._game.math.random()*this._fxShakeIntensity*this.worldView.height*2-this._fxShakeIntensity*this.worldView.height)}}}};Camera.prototype.render=function(){if(this.visible===false&&this.alpha<0.1){return}if((this._fxShakeOffset.x!=0)||(this._fxShakeOffset.y!=0)){this._stageX=this._fxShakePrevX+(this.worldView.halfWidth)+this._fxShakeOffset.x;this._stageY=this._fxShakePrevY+(this.worldView.halfHeight)+this._fxShakeOffset.y}this._game.stage.context.save();if(this.alpha!==1){this._game.stage.context.globalAlpha=this.alpha}this._sx=this._stageX;this._sy=this._stageY;if(this.showShadow){this._game.stage.context.shadowColor=this.shadowColor;this._game.stage.context.shadowBlur=this.shadowBlur;this._game.stage.context.shadowOffsetX=this.shadowOffset.x;this._game.stage.context.shadowOffsetY=this.shadowOffset.y}if(this.scale.x!==1||this.scale.y!==1){this._game.stage.context.scale(this.scale.x,this.scale.y);this._sx=this._sx/this.scale.x;this._sy=this._sy/this.scale.y}if(this._rotation!==0){this._game.stage.context.translate(this._sx+this.worldView.halfWidth,this._sy+this.worldView.halfHeight);this._game.stage.context.rotate(this._rotation*(Math.PI/180));this._game.stage.context.translate(-(this._sx+this.worldView.halfWidth),-(this._sy+this.worldView.halfHeight))}if(this.opaque==true){if(this._bgTexture){this._game.stage.context.fillStyle=this._bgTexture;this._game.stage.context.fillRect(this._sx,this._sy,this.worldView.width,this.worldView.height)}else{this._game.stage.context.fillStyle=this._bgColor;this._game.stage.context.fillRect(this._sx,this._sy,this.worldView.width,this.worldView.height)}}if(this.showShadow){this._game.stage.context.shadowBlur=0;this._game.stage.context.shadowOffsetX=0;this._game.stage.context.shadowOffsetY=0}if(this._clip){this._game.stage.context.beginPath();this._game.stage.context.rect(this._sx,this._sy,this.worldView.width,this.worldView.height);this._game.stage.context.closePath();this._game.stage.context.clip()}this._game.world.group.render(this,this._sx,this._sy);if(this.showBorder){this._game.stage.context.strokeStyle=this.borderColor;this._game.stage.context.lineWidth=1;this._game.stage.context.rect(this._sx,this._sy,this.worldView.width,this.worldView.height);this._game.stage.context.stroke()}if(this._fxFlashAlpha>0){this._game.stage.context.fillStyle=this._fxFlashColor+this._fxFlashAlpha+")";this._game.stage.context.fillRect(this._sx,this._sy,this.worldView.width,this.worldView.height)}if(this._fxFadeAlpha>0){this._game.stage.context.fillStyle=this._fxFadeColor+this._fxFadeAlpha+")";this._game.stage.context.fillRect(this._sx,this._sy,this.worldView.width,this.worldView.height)}if(this.scale.x!==1||this.scale.y!==1){this._game.stage.context.scale(1,1)}if(this._rotation!==0||this._clip){this._game.stage.context.translate(0,0)}this._game.stage.context.restore();if(this.alpha!==1){this._game.stage.context.globalAlpha=1}};Object.defineProperty(Camera.prototype,"backgroundColor",{get:function(){return this._bgColor},set:function(color){this._bgColor=color},enumerable:true,configurable:true});Camera.prototype.setTexture=function(key,repeat){if(typeof repeat==="undefined"){repeat="repeat"}this._bgTexture=this._game.stage.context.createPattern(this._game.cache.getImage(key),repeat);this._bgTextureRepeat=repeat};Camera.prototype.setPosition=function(x,y){this._stageX=x;this._stageY=y;this.checkClip()};Camera.prototype.setSize=function(width,height){this.worldView.width=width;this.worldView.height=height;this.checkClip()};Camera.prototype.renderDebugInfo=function(x,y,color){if(typeof color==="undefined"){color="rgb(255,255,255)"}this._game.stage.context.fillStyle=color;this._game.stage.context.fillText("Camera ID: "+this.ID+" ("+this.worldView.width+" x "+this.worldView.height+")",x,y);this._game.stage.context.fillText("X: "+this._stageX+" Y: "+this._stageY+" Rotation: "+this._rotation,x,y+14);this._game.stage.context.fillText("World X: "+this.scroll.x.toFixed(1)+" World Y: "+this.scroll.y.toFixed(1),x,y+28);if(this.bounds){this._game.stage.context.fillText("Bounds: "+this.bounds.width+" x "+this.bounds.height,x,y+56)}};Object.defineProperty(Camera.prototype,"x",{get:function(){return this._stageX},set:function(value){this._stageX=value;this.checkClip()},enumerable:true,configurable:true});Object.defineProperty(Camera.prototype,"y",{get:function(){return this._stageY},set:function(value){this._stageY=value;this.checkClip()},enumerable:true,configurable:true});Object.defineProperty(Camera.prototype,"width",{get:function(){return this.worldView.width},set:function(value){this.worldView.width=value;this.checkClip()},enumerable:true,configurable:true});Object.defineProperty(Camera.prototype,"height",{get:function(){return this.worldView.height},set:function(value){this.worldView.height=value;this.checkClip()},enumerable:true,configurable:true});Object.defineProperty(Camera.prototype,"rotation",{get:function(){return this._rotation},set:function(value){this._rotation=this._game.math.wrap(value,360,0)},enumerable:true,configurable:true});Camera.prototype.checkClip=function(){if(this._stageX!==0||this._stageY!==0||this.worldView.width=distance){return true}else{return false}};Point.prototype.equals=function(toCompare){if(this.x===toCompare.x&&this.y===toCompare.y){return true}else{return false}};Point.prototype.interpolate=function(pointA,pointB,f){};Point.prototype.offset=function(dx,dy){this.x+=dx;this.y+=dy;return this};Point.prototype.polar=function(length,angle){};Point.prototype.setTo=function(x,y){this.x=x;this.y=y;return this};Point.prototype.subtract=function(point,output){if(typeof output==="undefined"){output=new Point()}return output.setTo(this.x-point.x,this.y-point.y)};Point.prototype.toString=function(){return"[{Point (x="+this.x+" y="+this.y+")}]"};return Point})();Phaser.Point=Point})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Rectangle=(function(){function Rectangle(x,y,width,height){if(typeof x==="undefined"){x=0}if(typeof y==="undefined"){y=0}if(typeof width==="undefined"){width=0}if(typeof height==="undefined"){height=0}this.x=0;this.y=0;this.width=0;this.height=0;this.setTo(x,y,width,height)}Object.defineProperty(Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)},enumerable:true,configurable:true});Object.defineProperty(Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)},enumerable:true,configurable:true});Object.defineProperty(Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(value){if(value=this.x&&x<=this.right&&y>=this.y&&y<=this.bottom){return true}return false};Rectangle.prototype.containsPoint=function(point){return this.contains(point.x,point.y)};Rectangle.prototype.containsRect=function(rect){if(rect.volume>this.volume){return false}if(rect.x>=this.x&&rect.y>=this.y&&rect.right<=this.right&&rect.bottom<=this.bottom){return true}return false};Rectangle.prototype.copyFrom=function(source){return this.setTo(source.x,source.y,source.width,source.height)};Rectangle.prototype.copyTo=function(target){return target.copyFrom(this)};Rectangle.prototype.equals=function(toCompare){if(this.x===toCompare.x&&this.y===toCompare.y&&this.width===toCompare.width&&this.height===toCompare.height){return true}return false};Rectangle.prototype.inflate=function(dx,dy){if(!isNaN(dx)&&!isNaN(dy)){this.x-=dx;this.width+=2*dx;this.y-=dy;this.height+=2*dy}return this};Rectangle.prototype.inflatePoint=function(point){return this.inflate(point.x,point.y)};Rectangle.prototype.intersection=function(toIntersect,output){if(typeof output==="undefined"){output=new Rectangle()}if(this.intersects(toIntersect)===true){output.x=Math.max(toIntersect.x,this.x);output.y=Math.max(toIntersect.y,this.y);output.width=Math.min(toIntersect.right,this.right)-output.x;output.height=Math.min(toIntersect.bottom,this.bottom)-output.y}return output};Rectangle.prototype.intersects=function(toIntersect){if(toIntersect.x>=this.right){return false}if(toIntersect.right<=this.x){return false}if(toIntersect.bottom<=this.y){return false}if(toIntersect.y>=this.bottom){return false}return true};Rectangle.prototype.overlap=function(rect){return(rect.x+rect.width>this.x)&&(rect.xthis.y)&&(rect.y0){this.width=width}if(height>0){this.height=height}}return this};Rectangle.prototype.union=function(toUnion,output){if(typeof output==="undefined"){output=new Rectangle()}return output.setTo(Math.min(toUnion.x,this.x),Math.min(toUnion.y,this.y),Math.max(toUnion.right,this.right),Math.max(toUnion.bottom,this.bottom))};Rectangle.prototype.toString=function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.isEmpty+")}]"};return Rectangle})();Phaser.Rectangle=Rectangle})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Circle=(function(){function Circle(x,y,diameter){if(typeof x==="undefined"){x=0}if(typeof y==="undefined"){y=0}if(typeof diameter==="undefined"){diameter=0}this._diameter=0;this._radius=0;this.x=0;this.y=0;this.setTo(x,y,diameter)}Object.defineProperty(Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(value){if(value>0){this._diameter=value;this._radius=value*0.5}},enumerable:true,configurable:true});Object.defineProperty(Circle.prototype,"radius",{get:function(){return this._radius},set:function(value){if(value>0){this._radius=value;this._diameter=value*2}},enumerable:true,configurable:true});Circle.prototype.circumference=function(){return 2*(Math.PI*this._radius)};Object.defineProperty(Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(value){if(!isNaN(value)){if(valuethis.x){this.radius=value-this.x}else{this._radius=0;this._diameter=0}}},enumerable:true,configurable:true});Object.defineProperty(Circle.prototype,"top",{get:function(){return this.y-this._radius},set:function(value){if(!isNaN(value)){if(value>this.y){this._radius=0;this._diameter=0}else{this.radius=this.y-value}}},enumerable:true,configurable:true});Object.defineProperty(Circle.prototype,"area",{get:function(){if(this._radius>0){return Math.PI*this._radius*this._radius}else{return 0}},enumerable:true,configurable:true});Object.defineProperty(Circle.prototype,"isEmpty",{get:function(){if(this._diameter<1){return true}return false},enumerable:true,configurable:true});Circle.prototype.intersectCircleLine=function(line){return Phaser.Collision.lineToCircle(line,this).result};Circle.prototype.clone=function(output){if(typeof output==="undefined"){output=new Circle()}return output.setTo(this.x,this.y,this._diameter)};Circle.prototype.contains=function(x,y){return Phaser.Collision.circleContainsPoint(this,{x:x,y:y}).result};Circle.prototype.containsPoint=function(point){return Phaser.Collision.circleContainsPoint(this,point).result};Circle.prototype.containsCircle=function(circle){return Phaser.Collision.circleToCircle(this,circle).result};Circle.prototype.copyFrom=function(source){return this.setTo(source.x,source.y,source.diameter)};Circle.prototype.copyTo=function(target){return target.copyFrom(this)};Circle.prototype.distanceTo=function(target,round){if(typeof round==="undefined"){round=false}var dx=this.x-target.x;var dy=this.y-target.y;if(round===true){return Math.round(Math.sqrt(dx*dx+dy*dy))}else{return Math.sqrt(dx*dx+dy*dy)}};Circle.prototype.equals=function(toCompare){if(this.x===toCompare.x&&this.y===toCompare.y&&this.diameter===toCompare.diameter){return true}return false};Circle.prototype.intersects=function(toIntersect){if(this.distanceTo(toIntersect,false)<(this._radius+toIntersect._radius)){return true}return false};Circle.prototype.circumferencePoint=function(angle,asDegrees,output){if(typeof asDegrees==="undefined"){asDegrees=false}if(typeof output==="undefined"){output=new Phaser.Point()}if(asDegrees===true){angle=angle*Phaser.GameMath.DEG_TO_RAD}output.x=this.x+this._radius*Math.cos(angle);output.y=this.y+this._radius*Math.sin(angle);return output};Circle.prototype.offset=function(dx,dy){if(!isNaN(dx)&&!isNaN(dy)){this.x+=dx;this.y+=dy}return this};Circle.prototype.offsetPoint=function(point){return this.offset(point.x,point.y)};Circle.prototype.setTo=function(x,y,diameter){this.x=x;this.y=y;this._diameter=diameter;this._radius=diameter*0.5;return this};Circle.prototype.toString=function(){return"[{Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"};return Circle})();Phaser.Circle=Circle})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Line=(function(){function Line(x1,y1,x2,y2){if(typeof x1==="undefined"){x1=0}if(typeof y1==="undefined"){y1=0}if(typeof x2==="undefined"){x2=0}if(typeof y2==="undefined"){y2=0}this.x1=0;this.y1=0;this.x2=0;this.y2=0;this.setTo(x1,y1,x2,y2)}Line.prototype.clone=function(output){if(typeof output==="undefined"){output=new Line()}return output.setTo(this.x1,this.y1,this.x2,this.y2)};Line.prototype.copyFrom=function(source){return this.setTo(source.x1,source.y1,source.x2,source.y2)};Line.prototype.copyTo=function(target){return target.copyFrom(this)};Line.prototype.setTo=function(x1,y1,x2,y2){if(typeof x1==="undefined"){x1=0}if(typeof y1==="undefined"){y1=0}if(typeof x2==="undefined"){x2=0}if(typeof y2==="undefined"){y2=0}this.x1=x1;this.y1=y1;this.x2=x2;this.y2=y2;return this};Object.defineProperty(Line.prototype,"width",{get:function(){return Math.max(this.x1,this.x2)-Math.min(this.x1,this.x2)},enumerable:true,configurable:true});Object.defineProperty(Line.prototype,"height",{get:function(){return Math.max(this.y1,this.y2)-Math.min(this.y1,this.y2)},enumerable:true,configurable:true});Object.defineProperty(Line.prototype,"length",{get:function(){return Math.sqrt((this.x2-this.x1)*(this.x2-this.x1)+(this.y2-this.y1)*(this.y2-this.y1))},enumerable:true,configurable:true});Line.prototype.getY=function(x){return this.slope*x+this.yIntercept};Object.defineProperty(Line.prototype,"angle",{get:function(){return Math.atan2(this.x2-this.x1,this.y2-this.y1)},enumerable:true,configurable:true});Object.defineProperty(Line.prototype,"slope",{get:function(){return(this.y2-this.y1)/(this.x2-this.x1)},enumerable:true,configurable:true});Object.defineProperty(Line.prototype,"perpSlope",{get:function(){return -((this.x2-this.x1)/(this.y2-this.y1))},enumerable:true,configurable:true});Object.defineProperty(Line.prototype,"yIntercept",{get:function(){return(this.y1-this.slope*this.x1)},enumerable:true,configurable:true});Line.prototype.isPointOnLine=function(x,y){if((x-this.x1)*(this.y2-this.y1)===(this.x2-this.x1)*(y-this.y1)){return true}else{return false}};Line.prototype.isPointOnLineSegment=function(x,y){var xMin=Math.min(this.x1,this.x2);var xMax=Math.max(this.x1,this.x2);var yMin=Math.min(this.y1,this.y2);var yMax=Math.max(this.y1,this.y2);if(this.isPointOnLine(x,y)&&(x>=xMin&&x<=xMax)&&(y>=yMin&&y<=yMax)){return true}else{return false}};Line.prototype.intersectLineLine=function(line){};Line.prototype.perp=function(x,y,output){if(this.y1===this.y2){if(output){output.setTo(x,y,x,this.y1)}else{return new Line(x,y,x,this.y1)}}var yInt=(y-this.perpSlope*x);var pt=this.intersectLineLine({x1:x,y1:y,x2:0,y2:yInt});if(output){output.setTo(x,y,pt.x,pt.y)}else{return new Line(x,y,pt.x,pt.y)}};Line.prototype.toString=function(){return"[{Line (x1="+this.x1+" y1="+this.y1+" x2="+this.x2+" y2="+this.y2+")}]"};return Line})();Phaser.Line=Line})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var IntersectResult=(function(){function IntersectResult(){this.result=false}IntersectResult.prototype.setTo=function(x1,y1,x2,y2,width,height){if(typeof x2==="undefined"){x2=0}if(typeof y2==="undefined"){y2=0}if(typeof width==="undefined"){width=0}if(typeof height==="undefined"){height=0}this.x=x1;this.y=y1;this.x1=x1;this.y1=y1;this.x2=x2;this.y2=y2;this.width=width;this.height=height};return IntersectResult})();Phaser.IntersectResult=IntersectResult})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var LinkedList=(function(){function LinkedList(){this.object=null;this.next=null}LinkedList.prototype.destroy=function(){this.object=null;if(this.next!=null){this.next.destroy()}this.next=null};return LinkedList})();Phaser.LinkedList=LinkedList})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var QuadTree=(function(_super){__extends(QuadTree,_super);function QuadTree(X,Y,Width,Height,Parent){if(typeof Parent==="undefined"){Parent=null}_super.call(this,X,Y,Width,Height);this._headA=this._tailA=new Phaser.LinkedList();this._headB=this._tailB=new Phaser.LinkedList();if(Parent!=null){var iterator;var ot;if(Parent._headA.object!=null){iterator=Parent._headA;while(iterator!=null){if(this._tailA.object!=null){ot=this._tailA;this._tailA=new Phaser.LinkedList();ot.next=this._tailA}this._tailA.object=iterator.object;iterator=iterator.next}}if(Parent._headB.object!=null){iterator=Parent._headB;while(iterator!=null){if(this._tailB.object!=null){ot=this._tailB;this._tailB=new Phaser.LinkedList();ot.next=this._tailB}this._tailB.object=iterator.object;iterator=iterator.next}}}else{QuadTree._min=(this.width+this.height)/(2*QuadTree.divisions)}this._canSubdivide=(this.width>QuadTree._min)||(this.height>QuadTree._min);this._northWestTree=null;this._northEastTree=null;this._southEastTree=null;this._southWestTree=null;this._leftEdge=this.x;this._rightEdge=this.x+this.width;this._halfWidth=this.width/2;this._midpointX=this._leftEdge+this._halfWidth;this._topEdge=this.y;this._bottomEdge=this.y+this.height;this._halfHeight=this.height/2;this._midpointY=this._topEdge+this._halfHeight}QuadTree.A_LIST=0;QuadTree.B_LIST=1;QuadTree.prototype.destroy=function(){this._tailA.destroy();this._tailB.destroy();this._headA.destroy();this._headB.destroy();this._tailA=null;this._tailB=null;this._headA=null;this._headB=null;if(this._northWestTree!=null){this._northWestTree.destroy()}if(this._northEastTree!=null){this._northEastTree.destroy()}if(this._southEastTree!=null){this._southEastTree.destroy()}if(this._southWestTree!=null){this._southWestTree.destroy()}this._northWestTree=null;this._northEastTree=null;this._southEastTree=null;this._southWestTree=null;QuadTree._object=null;QuadTree._processingCallback=null;QuadTree._notifyCallback=null};QuadTree.prototype.load=function(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback,ProcessCallback){if(typeof ObjectOrGroup2==="undefined"){ObjectOrGroup2=null}if(typeof NotifyCallback==="undefined"){NotifyCallback=null}if(typeof ProcessCallback==="undefined"){ProcessCallback=null}this.add(ObjectOrGroup1,QuadTree.A_LIST);if(ObjectOrGroup2!=null){this.add(ObjectOrGroup2,QuadTree.B_LIST);QuadTree._useBothLists=true}else{QuadTree._useBothLists=false}QuadTree._notifyCallback=NotifyCallback;QuadTree._processingCallback=ProcessCallback};QuadTree.prototype.add=function(ObjectOrGroup,List){QuadTree._list=List;if(ObjectOrGroup.isGroup==true){var i=0;var basic;var members=ObjectOrGroup.members;var l=ObjectOrGroup.length;while(i=QuadTree._objectLeftEdge)&&(this._rightEdge<=QuadTree._objectRightEdge)&&(this._topEdge>=QuadTree._objectTopEdge)&&(this._bottomEdge<=QuadTree._objectBottomEdge))){this.addToList();return}if((QuadTree._objectLeftEdge>this._leftEdge)&&(QuadTree._objectRightEdgethis._topEdge)&&(QuadTree._objectBottomEdgethis._midpointY)&&(QuadTree._objectBottomEdgethis._midpointX)&&(QuadTree._objectRightEdgethis._topEdge)&&(QuadTree._objectBottomEdgethis._midpointY)&&(QuadTree._objectBottomEdgethis._leftEdge)&&(QuadTree._objectLeftEdgethis._topEdge)&&(QuadTree._objectTopEdgethis._midpointX)&&(QuadTree._objectLeftEdgethis._topEdge)&&(QuadTree._objectTopEdgethis._midpointX)&&(QuadTree._objectLeftEdgethis._midpointY)&&(QuadTree._objectTopEdgethis._leftEdge)&&(QuadTree._objectLeftEdgethis._midpointY)&&(QuadTree._objectTopEdge0)&&(QuadTree._iterator!=null)&&(QuadTree._iterator.object!=null)&&QuadTree._iterator.object.exists&&this.overlapNode()){overlapProcessed=true}iterator=iterator.next}}if((this._northWestTree!=null)&&this._northWestTree.execute()){overlapProcessed=true}if((this._northEastTree!=null)&&this._northEastTree.execute()){overlapProcessed=true}if((this._southEastTree!=null)&&this._southEastTree.execute()){overlapProcessed=true}if((this._southWestTree!=null)&&this._southWestTree.execute()){overlapProcessed=true}return overlapProcessed};QuadTree.prototype.overlapNode=function(){var overlapProcessed=false;var checkObject;while(QuadTree._iterator!=null){if(!QuadTree._object.exists||(QuadTree._object.allowCollisions<=0)){break}checkObject=QuadTree._iterator.object;if((QuadTree._object===checkObject)||!checkObject.exists||(checkObject.allowCollisions<=0)){QuadTree._iterator=QuadTree._iterator.next;continue}QuadTree._objectHullX=(QuadTree._object.x0)?QuadTree._objectHullWidth:-QuadTree._objectHullWidth);QuadTree._objectHullHeight=QuadTree._object.y-QuadTree._object.last.y;QuadTree._objectHullHeight=QuadTree._object.height+((QuadTree._objectHullHeight>0)?QuadTree._objectHullHeight:-QuadTree._objectHullHeight);QuadTree._checkObjectHullX=(checkObject.x0)?QuadTree._checkObjectHullWidth:-QuadTree._checkObjectHullWidth);QuadTree._checkObjectHullHeight=checkObject.y-checkObject.last.y;QuadTree._checkObjectHullHeight=checkObject.height+((QuadTree._checkObjectHullHeight>0)?QuadTree._checkObjectHullHeight:-QuadTree._checkObjectHullHeight);if((QuadTree._objectHullX+QuadTree._objectHullWidth>QuadTree._checkObjectHullX)&&(QuadTree._objectHullXQuadTree._checkObjectHullY)&&(QuadTree._objectHullY=minX)===true||(output.y<=maxY&&output.y>=minY)===true){output.result=true}}return output};Collision.lineToRawSegment=function lineToRawSegment(line,x1,y1,x2,y2,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}var denom=(line.x1-line.x2)*(y1-y2)-(line.y1-line.y2)*(x1-x2);if(denom!==0){output.x=((line.x1*line.y2-line.y1*line.x2)*(x1-x2)-(line.x1-line.x2)*(x1*y2-y1*x2))/denom;output.y=((line.x1*line.y2-line.y1*line.x2)*(y1-y2)-(line.y1-line.y2)*(x1*y2-y1*x2))/denom;var maxX=Math.max(x1,x2);var minX=Math.min(x1,x2);var maxY=Math.max(y1,y2);var minY=Math.min(y1,y2);if((output.x<=maxX&&output.x>=minX)===true||(output.y<=maxY&&output.y>=minY)===true){output.result=true}}return output};Collision.lineToRay=function lineToRay(line1,ray,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}var denom=(line1.x1-line1.x2)*(ray.y1-ray.y2)-(line1.y1-line1.y2)*(ray.x1-ray.x2);if(denom!==0){output.x=((line1.x1*line1.y2-line1.y1*line1.x2)*(ray.x1-ray.x2)-(line1.x1-line1.x2)*(ray.x1*ray.y2-ray.y1*ray.x2))/denom;output.y=((line1.x1*line1.y2-line1.y1*line1.x2)*(ray.y1-ray.y2)-(line1.y1-line1.y2)*(ray.x1*ray.y2-ray.y1*ray.x2))/denom;output.result=true;if(!(ray.x1>=ray.x2)&&output.x=ray.y2)&&output.y=Math.min(line1.x1,line1.x2)&&output.x<=Math.max(line1.x1,line1.x2)&&output.y>=Math.min(line1.y1,line1.y2)&&output.y<=Math.max(line1.y1,line1.y2))){output.result=false}}return output};Collision.lineSegmentToRay=function lineSegmentToRay(line1,ray,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}this.lineToRay(line1,ray,output);if(output.result===true){if(!(output.x>=Math.min(line1.x1,line1.x2)&&output.x<=Math.max(line1.x1,line1.x2)&&output.y>=Math.min(line1.y1,line1.y2)&&output.y<=Math.max(line1.y1,line1.y2))){output.result=false}}return output};Collision.lineSegmentToCircle=function lineSegmentToCircle(seg,circle,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}var perp=seg.perp(circle.x,circle.y);if(perp.length<=circle.radius){var maxX=Math.max(seg.x1,seg.x2);var minX=Math.min(seg.x1,seg.x2);var maxY=Math.max(seg.y1,seg.y2);var minY=Math.min(seg.y1,seg.y2);if((perp.x2<=maxX&&perp.x2>=minX)&&(perp.y2<=maxY&&perp.y2>=minY)){output.result=true}else{if(this.circleContainsPoint(circle,{x:seg.x1,y:seg.y1})||this.circleContainsPoint(circle,{x:seg.x2,y:seg.y2})){output.result=true}}}return output};Collision.lineSegmentToRectangle=function lineSegmentToRectangle(seg,rect,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}if(rect.contains(seg.x1,seg.y1)&&rect.contains(seg.x2,seg.y2)){output.result=true}else{this.lineToRawSegment(seg,rect.x,rect.y,rect.right,rect.bottom,output);if(output.result===true){return output}this.lineToRawSegment(seg,rect.x,rect.y,rect.x,rect.bottom,output);if(output.result===true){return output}this.lineToRawSegment(seg,rect.x,rect.bottom,rect.right,rect.bottom,output);if(output.result===true){return output}this.lineToRawSegment(seg,rect.right,rect.y,rect.right,rect.bottom,output);return output}return output};Collision.rayToRectangle=function rayToRectangle(ray,rect,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}this.lineToRectangle(ray,rect,output);return output};Collision.rayToLineSegment=function rayToLineSegment(rayx1,rayy1,rayx2,rayy2,linex1,liney1,linex2,liney2,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}var r,s,d;if((rayy2-rayy1)/(rayx2-rayx1)!=(liney2-liney1)/(linex2-linex1)){d=(((rayx2-rayx1)*(liney2-liney1))-(rayy2-rayy1)*(linex2-linex1));if(d!=0){r=(((rayy1-liney1)*(linex2-linex1))-(rayx1-linex1)*(liney2-liney1))/d;s=(((rayy1-liney1)*(rayx2-rayx1))-(rayx1-linex1)*(rayy2-rayy1))/d;if(r>=0){if(s>=0&&s<=1){output.result=true;output.x=rayx1+r*(rayx2-rayx1),rayy1+r*(rayy2-rayy1)}}}}return output};Collision.pointToRectangle=function pointToRectangle(point,rect,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}output.setTo(point.x,point.y);output.result=rect.containsPoint(point);return output};Collision.rectangleToRectangle=function rectangleToRectangle(rect1,rect2,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}var leftX=Math.max(rect1.x,rect2.x);var rightX=Math.min(rect1.right,rect2.right);var topY=Math.max(rect1.y,rect2.y);var bottomY=Math.min(rect1.bottom,rect2.bottom);output.setTo(leftX,topY,rightX-leftX,bottomY-topY,rightX-leftX,bottomY-topY);var cx=output.x+output.width*0.5;var cy=output.y+output.height*0.5;if((cx>rect1.x&&cxrect1.y&&cy=this.distanceSquared(circle1.x,circle1.y,circle2.x,circle2.y);return output};Collision.circleToRectangle=function circleToRectangle(circle,rect,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}var inflatedRect=rect.clone();inflatedRect.inflate(circle.radius,circle.radius);output.result=inflatedRect.contains(circle.x,circle.y);return output};Collision.circleContainsPoint=function circleContainsPoint(circle,point,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}output.result=circle.radius*circle.radius>=this.distanceSquared(circle.x,circle.y,point.x,point.y);return output};Collision.prototype.overlap=function(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback,ProcessCallback){if(typeof ObjectOrGroup1==="undefined"){ObjectOrGroup1=null}if(typeof ObjectOrGroup2==="undefined"){ObjectOrGroup2=null}if(typeof NotifyCallback==="undefined"){NotifyCallback=null}if(typeof ProcessCallback==="undefined"){ProcessCallback=null}if(ObjectOrGroup1==null){ObjectOrGroup1=this._game.world.group}if(ObjectOrGroup2==ObjectOrGroup1){ObjectOrGroup2=null}Phaser.QuadTree.divisions=this._game.world.worldDivisions;var quadTree=new Phaser.QuadTree(this._game.world.bounds.x,this._game.world.bounds.y,this._game.world.bounds.width,this._game.world.bounds.height);quadTree.load(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback,ProcessCallback);var result=quadTree.execute();quadTree.destroy();quadTree=null;return result};Collision.separate=function separate(Object1,Object2){var separatedX=Collision.separateX(Object1,Object2);var separatedY=Collision.separateY(Object1,Object2);return separatedX||separatedY};Collision.separateX=function separateX(Object1,Object2){var obj1immovable=Object1.immovable;var obj2immovable=Object2.immovable;if(obj1immovable&&obj2immovable){return false}var overlap=0;var obj1delta=Object1.x-Object1.last.x;var obj2delta=Object2.x-Object2.last.x;if(obj1delta!=obj2delta){var obj1deltaAbs=(obj1delta>0)?obj1delta:-obj1delta;var obj2deltaAbs=(obj2delta>0)?obj2delta:-obj2delta;var obj1rect=new Phaser.Rectangle(Object1.x-((obj1delta>0)?obj1delta:0),Object1.last.y,Object1.width+((obj1delta>0)?obj1delta:-obj1delta),Object1.height);var obj2rect=new Phaser.Rectangle(Object2.x-((obj2delta>0)?obj2delta:0),Object2.last.y,Object2.width+((obj2delta>0)?obj2delta:-obj2delta),Object2.height);if((obj1rect.x+obj1rect.width>obj2rect.x)&&(obj1rect.xobj2rect.y)&&(obj1rect.yobj2delta){overlap=Object1.x+Object1.width-Object2.x;if((overlap>maxOverlap)||!(Object1.allowCollisions&Collision.RIGHT)||!(Object2.allowCollisions&Collision.LEFT)){overlap=0}else{Object1.touching|=Collision.RIGHT;Object2.touching|=Collision.LEFT}}else{if(obj1deltamaxOverlap)||!(Object1.allowCollisions&Collision.LEFT)||!(Object2.allowCollisions&Collision.RIGHT)){overlap=0}else{Object1.touching|=Collision.LEFT;Object2.touching|=Collision.RIGHT}}}}}if(overlap!=0){var obj1v=Object1.velocity.x;var obj2v=Object2.velocity.x;if(!obj1immovable&&!obj2immovable){overlap*=0.5;Object1.x=Object1.x-overlap;Object2.x+=overlap;var obj1velocity=Math.sqrt((obj2v*obj2v*Object2.mass)/Object1.mass)*((obj2v>0)?1:-1);var obj2velocity=Math.sqrt((obj1v*obj1v*Object1.mass)/Object2.mass)*((obj1v>0)?1:-1);var average=(obj1velocity+obj2velocity)*0.5;obj1velocity-=average;obj2velocity-=average;Object1.velocity.x=average+obj1velocity*Object1.elasticity;Object2.velocity.x=average+obj2velocity*Object2.elasticity}else{if(!obj1immovable){Object1.x=Object1.x-overlap;Object1.velocity.x=obj2v-obj1v*Object1.elasticity}else{if(!obj2immovable){Object2.x+=overlap;Object2.velocity.x=obj1v-obj2v*Object2.elasticity}}}return true}else{return false}};Collision.separateY=function separateY(Object1,Object2){var obj1immovable=Object1.immovable;var obj2immovable=Object2.immovable;if(obj1immovable&&obj2immovable){return false}var overlap=0;var obj1delta=Object1.y-Object1.last.y;var obj2delta=Object2.y-Object2.last.y;if(obj1delta!=obj2delta){var obj1deltaAbs=(obj1delta>0)?obj1delta:-obj1delta;var obj2deltaAbs=(obj2delta>0)?obj2delta:-obj2delta;var obj1rect=new Phaser.Rectangle(Object1.x,Object1.y-((obj1delta>0)?obj1delta:0),Object1.width,Object1.height+obj1deltaAbs);var obj2rect=new Phaser.Rectangle(Object2.x,Object2.y-((obj2delta>0)?obj2delta:0),Object2.width,Object2.height+obj2deltaAbs);if((obj1rect.x+obj1rect.width>obj2rect.x)&&(obj1rect.xobj2rect.y)&&(obj1rect.yobj2delta){overlap=Object1.y+Object1.height-Object2.y;if((overlap>maxOverlap)||!(Object1.allowCollisions&Collision.DOWN)||!(Object2.allowCollisions&Collision.UP)){overlap=0}else{Object1.touching|=Collision.DOWN;Object2.touching|=Collision.UP}}else{if(obj1deltamaxOverlap)||!(Object1.allowCollisions&Collision.UP)||!(Object2.allowCollisions&Collision.DOWN)){overlap=0}else{Object1.touching|=Collision.UP;Object2.touching|=Collision.DOWN}}}}}if(overlap!=0){var obj1v=Object1.velocity.y;var obj2v=Object2.velocity.y;if(!obj1immovable&&!obj2immovable){overlap*=0.5;Object1.y=Object1.y-overlap;Object2.y+=overlap;var obj1velocity=Math.sqrt((obj2v*obj2v*Object2.mass)/Object1.mass)*((obj2v>0)?1:-1);var obj2velocity=Math.sqrt((obj1v*obj1v*Object1.mass)/Object2.mass)*((obj1v>0)?1:-1);var average=(obj1velocity+obj2velocity)*0.5;obj1velocity-=average;obj2velocity-=average;Object1.velocity.y=average+obj1velocity*Object1.elasticity;Object2.velocity.y=average+obj2velocity*Object2.elasticity}else{if(!obj1immovable){Object1.y=Object1.y-overlap;Object1.velocity.y=obj2v-obj1v*Object1.elasticity;if(Object2.active&&Object2.moves&&(obj1delta>obj2delta)){Object1.x+=Object2.x-Object2.last.x}}else{if(!obj2immovable){Object2.y+=overlap;Object2.velocity.y=obj1v-obj2v*Object2.elasticity;if(Object1.active&&Object1.moves&&(obj1delta-1){}else{texture=this._game.cache.getImage(key);this._sw=texture.width;this._sh=texture.height;this._dw=texture.width;this._dh=texture.height}if(destWidth!==null){this._dw=destWidth}if(destHeight!==null){this._dh=destHeight}if(texture!=null){this.context.drawImage(texture,this._sx,this._sy,this._sw,this._sh,this._dx,this._dy,this._dw,this._dh)}};DynamicTexture.prototype.copyPixels=function(sourceTexture,sourceRect,destPoint){if(sourceRect.equals(this.bounds)==true){this.context.drawImage(sourceTexture.canvas,destPoint.x,destPoint.y)}else{this.context.putImageData(sourceTexture.getPixels(sourceRect),destPoint.x,destPoint.y)}};DynamicTexture.prototype.clear=function(){this.context.clearRect(0,0,this.bounds.width,this.bounds.height)};Object.defineProperty(DynamicTexture.prototype,"width",{get:function(){return this.bounds.width},enumerable:true,configurable:true});Object.defineProperty(DynamicTexture.prototype,"height",{get:function(){return this.bounds.height},enumerable:true,configurable:true});DynamicTexture.prototype.getColor32=function(alpha,red,green,blue){return alpha<<24|red<<16|green<<8|blue};DynamicTexture.prototype.getColor=function(red,green,blue){return red<<16|green<<8|blue};return DynamicTexture})();Phaser.DynamicTexture=DynamicTexture})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var GameMath=(function(){function GameMath(game){this.cosTable=[];this.sinTable=[];this.globalSeed=Math.random();this._game=game}GameMath.PI=3.141592653589793;GameMath.PI_2=1.5707963267948966;GameMath.PI_4=0.7853981633974483;GameMath.PI_8=0.39269908169872414;GameMath.PI_16=0.19634954084936207;GameMath.TWO_PI=6.283185307179586;GameMath.THREE_PI_2=4.71238898038469;GameMath.E=2.71828182845905;GameMath.LN10=2.302585092994046;GameMath.LN2=0.6931471805599453;GameMath.LOG10E=0.4342944819032518;GameMath.LOG2E=1.4426950408889634;GameMath.SQRT1_2=0.7071067811865476;GameMath.SQRT2=1.4142135623730951;GameMath.DEG_TO_RAD=0.017453292519943295;GameMath.RAD_TO_DEG=57.29577951308232;GameMath.B_16=65536;GameMath.B_31=2147483648;GameMath.B_32=4294967296;GameMath.B_48=281474976710656;GameMath.B_53=9007199254740992;GameMath.B_64=18446744073709552000;GameMath.ONE_THIRD=0.3333333333333333;GameMath.TWO_THIRDS=0.6666666666666666;GameMath.ONE_SIXTH=0.16666666666666666;GameMath.COS_PI_3=0.8660254037844386;GameMath.SIN_2PI_3=0.03654595;GameMath.CIRCLE_ALPHA=0.5522847498307935;GameMath.ON=true;GameMath.OFF=false;GameMath.SHORT_EPSILON=0.1;GameMath.PERC_EPSILON=0.001;GameMath.EPSILON=0.0001;GameMath.LONG_EPSILON=1e-8;GameMath.prototype.fuzzyEqual=function(a,b,epsilon){if(typeof epsilon==="undefined"){epsilon=0.0001}return Math.abs(a-b)b-epsilon};GameMath.prototype.fuzzyCeil=function(val,epsilon){if(typeof epsilon==="undefined"){epsilon=0.0001}return Math.ceil(val-epsilon)};GameMath.prototype.fuzzyFloor=function(val,epsilon){if(typeof epsilon==="undefined"){epsilon=0.0001}return Math.floor(val+epsilon)};GameMath.prototype.average=function(){var args=[];for(var _i=0;_i<(arguments.length-0);_i++){args[_i]=arguments[_i+0]}var avg=0;for(var i=0;i0)?Math.floor(n):Math.ceil(n)};GameMath.prototype.shear=function(n){return n%1};GameMath.prototype.wrap=function(val,max,min){if(typeof min==="undefined"){min=0}val-=min;max-=min;if(max==0){return min}val%=max;val+=min;while(valrd/2){a1+=rd*2}if(a2<-rd/2&&a1>rd/2){a2+=rd*2}return a2-a1};GameMath.prototype.normalizeAngleToAnother=function(dep,ind,radians){if(typeof radians==="undefined"){radians=true}return ind+this.nearestAngleBetween(ind,dep,radians)};GameMath.prototype.normalizeAngleAfterAnother=function(dep,ind,radians){if(typeof radians==="undefined"){radians=true}dep=this.normalizeAngle(dep-ind,radians);return ind+dep};GameMath.prototype.normalizeAngleBeforeAnother=function(dep,ind,radians){if(typeof radians==="undefined"){radians=true}dep=this.normalizeAngle(ind-dep,radians);return ind-dep};GameMath.prototype.interpolateAngles=function(a1,a2,weight,radians,ease){if(typeof radians==="undefined"){radians=true}if(typeof ease==="undefined"){ease=null}a1=this.normalizeAngle(a1,radians);a2=this.normalizeAngleToAnother(a2,a1,radians);return(typeof ease==="function")?ease(weight,a1,a2-a1,1):this.interpolateFloat(a1,a2,weight)};GameMath.prototype.logBaseOf=function(value,base){return Math.log(value)/Math.log(base)};GameMath.prototype.GCD=function(m,n){var r;m=Math.abs(m);n=Math.abs(n);if(m=100){return true}else{if(Math.random()*100>=chance){return false}else{return true}}}};GameMath.prototype.maxAdd=function(value,amount,max){value+=amount;if(value>max){value=max}return value};GameMath.prototype.minSub=function(value,amount,min){value-=amount;if(value0.5)?1:-1};GameMath.prototype.isOdd=function(n){if(n&1){return true}else{return false}};GameMath.prototype.isEven=function(n){if(n&1){return false}else{return true}};GameMath.prototype.wrapAngle=function(angle){var result=angle;if(angle>=-180&&angle<=180){return angle}result=(angle+180)%360;if(result<0){result+=360}return result-180};GameMath.prototype.angleLimit=function(angle,min,max){var result=angle;if(angle>max){result=max}else{if(angle1){return this.linear(v[m],v[m-1],m-f)}return this.linear(v[i],v[i+1>m?m:i+1],f-i)};GameMath.prototype.bezierInterpolation=function(v,k){var b=0;var n=v.length-1;for(var i=0;i<=n;i++){b+=Math.pow(1-k,n-i)*Math.pow(k,i)*v[i]*this.bernstein(n,i)}return b};GameMath.prototype.catmullRomInterpolation=function(v,k){var m=v.length-1;var f=m*k;var i=Math.floor(f);if(v[0]===v[m]){if(k<0){i=Math.floor(f=m*(1+k))}return this.catmullRom(v[(i-1+m)%m],v[i],v[(i+1)%m],v[(i+2)%m],f-i)}else{if(k<0){return v[0]-(this.catmullRom(v[0],v[0],v[1],v[1],-f)-v[0])}if(k>1){return v[m]-(this.catmullRom(v[m],v[m],v[m-1],v[m-1],f-m)-v[m])}return this.catmullRom(v[i?i-1:0],v[i],v[mObjects.length-StartIndex)){l=Objects.length-StartIndex}if(l>0){return Objects[StartIndex+Math.floor(Math.random()*l)]}}return null};GameMath.prototype.floor=function(Value){var n=Value|0;return(Value>0)?(n):((n!=Value)?(n-1):(n))};GameMath.prototype.ceil=function(Value){var n=Value|0;return(Value>0)?((n!=Value)?(n+1):(n)):(n)};GameMath.prototype.sinCosGenerator=function(length,sinAmplitude,cosAmplitude,frequency){if(typeof sinAmplitude==="undefined"){sinAmplitude=1}if(typeof cosAmplitude==="undefined"){cosAmplitude=1}if(typeof frequency==="undefined"){frequency=1}var sin=sinAmplitude;var cos=cosAmplitude;var frq=frequency*Math.PI/length;this.cosTable=[];this.sinTable=[];for(var c=0;c=this._maxSize){this._marker=0}if((this._maxSize==0)||(this.members==null)||(this._maxSize>=this.members.length)){return}var basic;var i=this._maxSize;var l=this.members.length;while(i=0){return Object}var i=0;var l=this.members.length;while(i=this.length){this.length=i+1}return Object}i++}if(this._maxSize>0){if(this.members.length>=this._maxSize){return Object}else{if(this.members.length*2<=this._maxSize){this.members.length*=2}else{this.members.length=this._maxSize}}}else{this.members.length*=2}this.members[i]=Object;this.length=i+1;return Object};Group.prototype.recycle=function(ObjectClass){if(typeof ObjectClass==="undefined"){ObjectClass=null}var basic;if(this._maxSize>0){if(this.length=this._maxSize){this._marker=0}return basic}}else{basic=this.getFirstAvailable(ObjectClass);if(basic!=null){return basic}if(ObjectClass==null){return null}return this.add(new ObjectClass())}};Group.prototype.remove=function(Object,Splice){if(typeof Splice==="undefined"){Splice=false}var index=this.members.indexOf(Object);if((index<0)||(index>=this.members.length)){return null}if(Splice){this.members.splice(index,1);this.length--}else{this.members[index]=null}return Object};Group.prototype.replace=function(OldObject,NewObject){var index=this.members.indexOf(OldObject);if((index<0)||(index>=this.members.length)){return null}this.members[index]=NewObject;return NewObject};Group.prototype.sort=function(Index,Order){if(typeof Index==="undefined"){Index="y"}if(typeof Order==="undefined"){Order=Group.ASCENDING}this._sortIndex=Index;this._sortOrder=Order;this.members.sort(this.sortHandler)};Group.prototype.setAll=function(VariableName,Value,Recurse){if(typeof Recurse==="undefined"){Recurse=true}var basic;var i=0;while(iObj2[this._sortIndex]){return -this._sortOrder}}return 0};return Group})(Phaser.Basic);Phaser.Group=Group})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Loader=(function(){function Loader(game,callback){this._game=game;this._gameCreateComplete=callback;this._keys=[];this._fileList={};this._xhr=new XMLHttpRequest()}Loader.prototype.checkKeyExists=function(key){if(this._fileList[key]){return true}else{return false}};Loader.prototype.addImageFile=function(key,url){if(this.checkKeyExists(key)===false){this._fileList[key]={type:"image",key:key,url:url,data:null,error:false,loaded:false};this._keys.push(key)}};Loader.prototype.addSpriteSheet=function(key,url,frameWidth,frameHeight,frameMax){if(typeof frameMax==="undefined"){frameMax=-1}if(this.checkKeyExists(key)===false){this._fileList[key]={type:"spritesheet",key:key,url:url,data:null,frameWidth:frameWidth,frameHeight:frameHeight,frameMax:frameMax,error:false,loaded:false};this._keys.push(key)}};Loader.prototype.addTextureAtlas=function(key,url,jsonURL,jsonData){if(typeof jsonURL==="undefined"){jsonURL=null}if(typeof jsonData==="undefined"){jsonData=null}if(this.checkKeyExists(key)===false){if(jsonURL!==null){this._fileList[key]={type:"textureatlas",key:key,url:url,data:null,jsonURL:jsonURL,jsonData:null,error:false,loaded:false};this._keys.push(key)}else{if(typeof jsonData==="string"){var data=JSON.parse(jsonData);if(data.frames){this._fileList[key]={type:"textureatlas",key:key,url:url,data:null,jsonURL:null,jsonData:data.frames,error:false,loaded:false};this._keys.push(key)}}else{if(jsonData.frames){this._fileList[key]={type:"textureatlas",key:key,url:url,data:null,jsonURL:null,jsonData:jsonData.frames,error:false,loaded:false};this._keys.push(key)}}}}};Loader.prototype.addAudioFile=function(key,url){if(this.checkKeyExists(key)===false){this._fileList[key]={type:"audio",key:key,url:url,data:null,buffer:null,error:false,loaded:false};this._keys.push(key)}};Loader.prototype.addTextFile=function(key,url){if(this.checkKeyExists(key)===false){this._fileList[key]={type:"text",key:key,url:url,data:null,error:false,loaded:false};this._keys.push(key)}};Loader.prototype.removeFile=function(key){delete this._fileList[key]};Loader.prototype.removeAll=function(){this._fileList={}};Loader.prototype.load=function(onFileLoadCallback,onCompleteCallback){if(typeof onFileLoadCallback==="undefined"){onFileLoadCallback=null}if(typeof onCompleteCallback==="undefined"){onCompleteCallback=null}this.progress=0;this.hasLoaded=false;this._onComplete=onCompleteCallback;if(onCompleteCallback==null){this._onComplete=this._game.onCreateCallback}this._onFileLoad=onFileLoadCallback;if(this._keys.length>0){this._progressChunk=100/this._keys.length;this.loadFile()}else{this.progress=1;this.hasLoaded=true;this._gameCreateComplete.call(this._game);if(this._onComplete!==null){this._onComplete.call(this._game.callbackContext)}}};Loader.prototype.loadFile=function(){var _this=this;var file=this._fileList[this._keys.pop()];switch(file.type){case"image":case"spritesheet":case"textureatlas":file.data=new Image();file.data.name=file.key;file.data.onload=function(){return _this.fileComplete(file.key)};file.data.onerror=function(){return _this.fileError(file.key)};file.data.src=file.url;break;case"audio":this._xhr.open("GET",file.url,true);this._xhr.responseType="arraybuffer";this._xhr.onload=function(){return _this.fileComplete(file.key)};this._xhr.onerror=function(){return _this.fileError(file.key)};this._xhr.send();break;case"text":this._xhr.open("GET",file.url,true);this._xhr.responseType="text";this._xhr.onload=function(){return _this.fileComplete(file.key)};this._xhr.onerror=function(){return _this.fileError(file.key)};this._xhr.send();break}};Loader.prototype.fileError=function(key){this._fileList[key].loaded=true;this._fileList[key].error=true;this.nextFile(key,false)};Loader.prototype.fileComplete=function(key){var _this=this;this._fileList[key].loaded=true;var file=this._fileList[key];var loadNext=true;switch(file.type){case"image":this._game.cache.addImage(file.key,file.url,file.data);break;case"spritesheet":this._game.cache.addSpriteSheet(file.key,file.url,file.data,file.frameWidth,file.frameHeight,file.frameMax);break;case"textureatlas":if(file.jsonURL==null){this._game.cache.addTextureAtlas(file.key,file.url,file.data,file.jsonData)}else{loadNext=false;this._xhr.open("GET",file.jsonURL,true);this._xhr.responseType="text";this._xhr.onload=function(){return _this.jsonLoadComplete(file.key)};this._xhr.onerror=function(){return _this.jsonLoadError(file.key)};this._xhr.send()}break;case"audio":file.data=this._xhr.response;this._game.cache.addSound(file.key,file.url,file.data);break;case"text":file.data=this._xhr.response;this._game.cache.addText(file.key,file.url,file.data);break}if(loadNext){this.nextFile(key,true)}};Loader.prototype.jsonLoadComplete=function(key){var data=JSON.parse(this._xhr.response);if(data.frames){var file=this._fileList[key];this._game.cache.addTextureAtlas(file.key,file.url,file.data,data.frames)}this.nextFile(key,true)};Loader.prototype.jsonLoadError=function(key){var file=this._fileList[key];file.error=true;this.nextFile(key,true)};Loader.prototype.nextFile=function(previousKey,success){this.progress=Math.round(this.progress+this._progressChunk);if(this._onFileLoad){this._onFileLoad.call(this._game.callbackContext,this.progress,previousKey,success)}if(this._keys.length>0){this.loadFile()}else{this.hasLoaded=true;this.removeAll();this._gameCreateComplete.call(this._game);if(this._onComplete!==null){this._onComplete.call(this._game.callbackContext)}}};return Loader})();Phaser.Loader=Loader})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Motion=(function(){function Motion(game){this._game=game}Motion.prototype.computeVelocity=function(Velocity,Acceleration,Drag,Max){if(typeof Acceleration==="undefined"){Acceleration=0}if(typeof Drag==="undefined"){Drag=0}if(typeof Max==="undefined"){Max=10000}if(Acceleration!==0){Velocity+=Acceleration*this._game.time.elapsed}else{if(Drag!==0){var drag=Drag*this._game.time.elapsed;if(Velocity-drag>0){Velocity=Velocity-drag}else{if(Velocity+drag<0){Velocity+=drag}else{Velocity=0}}}}if((Velocity!=0)&&(Max!=10000)){if(Velocity>Max){Velocity=Max}else{if(Velocity<-Max){Velocity=-Max}}}return Velocity};Motion.prototype.velocityFromAngle=function(angle,speed){var a=this._game.math.degreesToRadians(angle);return new Phaser.Point((Math.cos(a)*speed),(Math.sin(a)*speed))};Motion.prototype.moveTowardsObject=function(source,dest,speed,maxTime){if(typeof speed==="undefined"){speed=60}if(typeof maxTime==="undefined"){maxTime=0}var a=this.angleBetween(source,dest);if(maxTime>0){var d=this.distanceBetween(source,dest);speed=d/(maxTime/1000)}source.velocity.x=Math.cos(a)*speed;source.velocity.y=Math.sin(a)*speed};Motion.prototype.accelerateTowardsObject=function(source,dest,speed,xSpeedMax,ySpeedMax){var a=this.angleBetween(source,dest);source.velocity.x=0;source.velocity.y=0;source.acceleration.x=Math.cos(a)*speed;source.acceleration.y=Math.sin(a)*speed;source.maxVelocity.x=xSpeedMax;source.maxVelocity.y=ySpeedMax};Motion.prototype.moveTowardsMouse=function(source,speed,maxTime){if(typeof speed==="undefined"){speed=60}if(typeof maxTime==="undefined"){maxTime=0}var a=this.angleBetweenMouse(source);if(maxTime>0){var d=this.distanceToMouse(source);speed=d/(maxTime/1000)}source.velocity.x=Math.cos(a)*speed;source.velocity.y=Math.sin(a)*speed};Motion.prototype.accelerateTowardsMouse=function(source,speed,xSpeedMax,ySpeedMax){var a=this.angleBetweenMouse(source);source.velocity.x=0;source.velocity.y=0;source.acceleration.x=Math.cos(a)*speed;source.acceleration.y=Math.sin(a)*speed;source.maxVelocity.x=xSpeedMax;source.maxVelocity.y=ySpeedMax};Motion.prototype.moveTowardsPoint=function(source,target,speed,maxTime){if(typeof speed==="undefined"){speed=60}if(typeof maxTime==="undefined"){maxTime=0}var a=this.angleBetweenPoint(source,target);if(maxTime>0){var d=this.distanceToPoint(source,target);speed=d/(maxTime/1000)}source.velocity.x=Math.cos(a)*speed;source.velocity.y=Math.sin(a)*speed};Motion.prototype.accelerateTowardsPoint=function(source,target,speed,xSpeedMax,ySpeedMax){var a=this.angleBetweenPoint(source,target);source.velocity.x=0;source.velocity.y=0;source.acceleration.x=Math.cos(a)*speed;source.acceleration.y=Math.sin(a)*speed;source.maxVelocity.x=xSpeedMax;source.maxVelocity.y=ySpeedMax};Motion.prototype.distanceBetween=function(a,b){var dx=(a.x+a.origin.x)-(b.x+b.origin.x);var dy=(a.y+a.origin.y)-(b.y+b.origin.y);return this._game.math.vectorLength(dx,dy)};Motion.prototype.distanceToPoint=function(a,target){var dx=(a.x+a.origin.x)-(target.x);var dy=(a.y+a.origin.y)-(target.y);return this._game.math.vectorLength(dx,dy)};Motion.prototype.distanceToMouse=function(a){var dx=(a.x+a.origin.x)-this._game.input.x;var dy=(a.y+a.origin.y)-this._game.input.y;return this._game.math.vectorLength(dx,dy)};Motion.prototype.angleBetweenPoint=function(a,target,asDegrees){if(typeof asDegrees==="undefined"){asDegrees=false}var dx=(target.x)-(a.x+a.origin.x);var dy=(target.y)-(a.y+a.origin.y);if(asDegrees){return this._game.math.radiansToDegrees(Math.atan2(dy,dx))}else{return Math.atan2(dy,dx)}};Motion.prototype.angleBetween=function(a,b,asDegrees){if(typeof asDegrees==="undefined"){asDegrees=false}var dx=(b.x+b.origin.x)-(a.x+a.origin.x);var dy=(b.y+b.origin.y)-(a.y+a.origin.y);if(asDegrees){return this._game.math.radiansToDegrees(Math.atan2(dy,dx))}else{return Math.atan2(dy,dx)}};Motion.prototype.velocityFromFacing=function(parent,speed){var a;if(parent.facing==Phaser.Collision.LEFT){a=this._game.math.degreesToRadians(180)}else{if(parent.facing==Phaser.Collision.RIGHT){a=this._game.math.degreesToRadians(0)}else{if(parent.facing==Phaser.Collision.UP){a=this._game.math.degreesToRadians(-90)}else{if(parent.facing==Phaser.Collision.DOWN){a=this._game.math.degreesToRadians(90)}}}}return new Phaser.Point(Math.cos(a)*speed,Math.sin(a)*speed)};Motion.prototype.angleBetweenMouse=function(a,asDegrees){if(typeof asDegrees==="undefined"){asDegrees=false}var p=a.getScreenXY();var dx=a._game.input.x-p.x;var dy=a._game.input.y-p.y;if(asDegrees){return this._game.math.radiansToDegrees(Math.atan2(dy,dx))}else{return Math.atan2(dy,dx)}};return Motion})();Phaser.Motion=Motion})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var SoundManager=(function(){function SoundManager(game){this._context=null;this._game=game;if(game.device.webaudio==true){if(!!window.AudioContext){this._context=new window.AudioContext()}else{if(!!window.webkitAudioContext){this._context=new window.webkitAudioContext()}}if(this._context!==null){this._gainNode=this._context.createGainNode();this._gainNode.connect(this._context.destination);this._volume=1}}}SoundManager.prototype.mute=function(){this._gainNode.gain.value=0};SoundManager.prototype.unmute=function(){this._gainNode.gain.value=this._volume};Object.defineProperty(SoundManager.prototype,"volume",{get:function(){return this._volume},set:function(value){this._volume=value;this._gainNode.gain.value=this._volume},enumerable:true,configurable:true});SoundManager.prototype.decode=function(key,callback,sound){if(typeof callback==="undefined"){callback=null}if(typeof sound==="undefined"){sound=null}var soundData=this._game.cache.getSound(key);if(soundData){if(this._game.cache.isSoundDecoded(key)===false){var that=this;this._context.decodeAudioData(soundData,function(buffer){that._game.cache.decodedSound(key,buffer);if(sound){sound.setDecodedBuffer(buffer)}callback()})}}};SoundManager.prototype.play=function(key,volume,loop){if(typeof volume==="undefined"){volume=1}if(typeof loop==="undefined"){loop=false}var _this=this;if(this._context===null){return}var soundData=this._game.cache.getSound(key);if(soundData){if(this._game.cache.isSoundDecoded(key)===true){return new Phaser.Sound(this._context,this._gainNode,soundData,volume,loop)}else{var tempSound=new Phaser.Sound(this._context,this._gainNode,null,volume,loop);this.decode(key,function(){return _this.play(key)},tempSound);return tempSound}}};return SoundManager})();Phaser.SoundManager=SoundManager})(Phaser||(Phaser={}));var Phaser;(function(Phaser){Phaser.VERSION="Phaser version 0.9"})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var StageScaleMode=(function(){function StageScaleMode(game){var _this=this;this._startHeight=0;this.width=0;this.height=0;this._game=game;this.orientation=window.orientation;window.addEventListener("orientationchange",function(event){return _this.checkOrientation(event)},false)}StageScaleMode.EXACT_FIT=0;StageScaleMode.NO_SCALE=1;StageScaleMode.SHOW_ALL=2;StageScaleMode.prototype.update=function(){if(this._game.stage.scaleMode!==StageScaleMode.NO_SCALE&&(window.innerWidth!==this.width||window.innerHeight!==this.height)){this.refresh()}};Object.defineProperty(StageScaleMode.prototype,"isLandscape",{get:function(){return window.orientation===90||window.orientation===-90},enumerable:true,configurable:true});StageScaleMode.prototype.checkOrientation=function(event){if(window.orientation!==this.orientation){this.refresh();this.orientation=window.orientation}};StageScaleMode.prototype.refresh=function(){var _this=this;if(this._game.device.iPad==false&&this._game.device.webApp==false&&this._game.device.desktop==false){document.documentElement.style.minHeight="5000px";this._startHeight=window.innerHeight;if(this._game.device.android&&this._game.device.chrome==false){window.scrollTo(0,1)}else{window.scrollTo(0,0)}}if(this._check==null){this._iterations=40;this._check=window.setInterval(function(){return _this.setScreenSize()},10)}};StageScaleMode.prototype.setScreenSize=function(){if(this._game.device.iPad==false&&this._game.device.webApp==false&&this._game.device.desktop==false){if(this._game.device.android&&this._game.device.chrome==false){window.scrollTo(0,1)}else{window.scrollTo(0,0)}}this._iterations--;if(window.innerHeight>this._startHeight||this._iterations<0){document.documentElement.style.minHeight=window.innerHeight+"px";if(this._game.stage.scaleMode==StageScaleMode.EXACT_FIT){if(this._game.stage.maxScaleX&&window.innerWidth>this._game.stage.maxScaleX){this.width=this._game.stage.maxScaleX}else{this.width=window.innerWidth}if(this._game.stage.maxScaleY&&window.innerHeight>this._game.stage.maxScaleY){this.height=this._game.stage.maxScaleY}else{this.height=window.innerHeight}}else{if(this._game.stage.scaleMode==StageScaleMode.SHOW_ALL){var multiplier=Math.min((window.innerHeight/this._game.stage.height),(window.innerWidth/this._game.stage.width));this.width=Math.round(this._game.stage.width*multiplier);this.height=Math.round(this._game.stage.height*multiplier);if(this._game.stage.maxScaleX&&this.width>this._game.stage.maxScaleX){this.width=this._game.stage.maxScaleX}if(this._game.stage.maxScaleY&&this.height>this._game.stage.maxScaleY){this.height=this._game.stage.maxScaleY}}}this._game.stage.canvas.style.width=this.width+"px";this._game.stage.canvas.style.height=this.height+"px";this._game.input.scaleX=this._game.stage.width/this.width;this._game.input.scaleY=this._game.stage.height/this.height;clearInterval(this._check);this._check=null}};return StageScaleMode})();Phaser.StageScaleMode=StageScaleMode})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Stage=(function(){function Stage(game,parent,width,height){var _this=this;this.clear=true;this.minScaleX=null;this.maxScaleX=null;this.minScaleY=null;this.maxScaleY=null;this._logo="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO1JREFUeNpi/P//PwM6YGRkxBQEAqBaRnQxFmwa10d6MAjrMqMofHv5L1we2SBGmAtAktg0ogOQQYHLd8ANYYFpPtTmzUAMAFmwnsEDrAdkCAvMZlIAsiFMMAEYsKvaSrQhIMCELkGsV2AAbIC8gCQYgwKIUABiNYBf9yoYH7n7n6CzN274g2IYEyFbsNmKLIaSkHpP7WSwUfbA0ASzFQRslBlxp0RcAF0TRhggA3zhAJIDpUKU5A9KyshpHDkjFZu5g2nJMFcwXVJSgqIGnBKx5bKenh4w/XzVbgbPtlIUcVgSxuoCUgHIIIAAAwArtXwJBABO6QAAAABJRU5ErkJggg==";this._game=game;this.canvas=document.createElement("canvas");this.canvas.width=width;this.canvas.height=height;if(document.getElementById(parent)){document.getElementById(parent).appendChild(this.canvas);document.getElementById(parent).style.overflow="hidden"}else{document.body.appendChild(this.canvas)}this.context=this.canvas.getContext("2d");this.offset=this.getOffset(this.canvas);this.bounds=new Phaser.Rectangle(this.offset.x,this.offset.y,width,height);this.aspectRatio=width/height;this.scaleMode=Phaser.StageScaleMode.NO_SCALE;this.scale=new Phaser.StageScaleMode(this._game);window.onblur=function(event){return _this.visibilityChange(event)};window.onfocus=function(event){return _this.visibilityChange(event)}}Stage.ORIENTATION_LANDSCAPE=0;Stage.ORIENTATION_PORTRAIT=1;Stage.prototype.update=function(){this.scale.update();if(this.clear){this.context.clearRect(0,0,this.width,this.height)}};Stage.prototype.renderDebugInfo=function(){this.context.fillStyle="rgb(255,255,255)";this.context.fillText(Phaser.VERSION,10,20);this.context.fillText("Game Size: "+this.width+" x "+this.height,10,40);this.context.fillText("x: "+this.x+" y: "+this.y,10,60)};Stage.prototype.visibilityChange=function(event){if(event.type=="blur"&&this._game.paused==false&&this._game.isBooted==true){this._game.paused=true;this.drawPauseScreen()}else{if(event.type=="focus"){this._game.paused=false}}};Stage.prototype.drawInitScreen=function(){this.context.fillStyle="rgb(40, 40, 40)";this.context.fillRect(0,0,this.width,this.height);this.context.fillStyle="rgb(255,255,255)";this.context.font="bold 18px Arial";this.context.textBaseline="top";this.context.fillText(Phaser.VERSION,54,32);this.context.fillText("Game Size: "+this.width+" x "+this.height,32,64);this.context.fillText("www.photonstorm.com",32,96);this.context.font="16px Arial";this.context.fillText("You are seeing this screen because you didn't specify any default",32,160);this.context.fillText("functions in the Game constructor, or use Game.loadState()",32,184);var image=new Image();var that=this;image.onload=function(){that.context.drawImage(image,32,32)};image.src=this._logo};Stage.prototype.drawPauseScreen=function(){this.saveCanvasValues();this.context.fillStyle="rgba(0, 0, 0, 0.4)";this.context.fillRect(0,0,this.width,this.height);var arrowWidth=Math.round(this.width/2);var arrowHeight=Math.round(this.height/2);var sx=this.centerX-arrowWidth/2;var sy=this.centerY-arrowHeight/2;this.context.beginPath();this.context.moveTo(sx,sy);this.context.lineTo(sx,sy+arrowHeight);this.context.lineTo(sx+arrowWidth,this.centerY);this.context.fillStyle="rgba(255, 255, 255, 0.8)";this.context.fill();this.context.closePath();this.restoreCanvasValues()};Stage.prototype.getOffset=function(element){var box=element.getBoundingClientRect();var clientTop=element.clientTop||document.body.clientTop||0;var clientLeft=element.clientLeft||document.body.clientLeft||0;var scrollTop=window.pageYOffset||element.scrollTop||document.body.scrollTop;var scrollLeft=window.pageXOffset||element.scrollLeft||document.body.scrollLeft;return new Phaser.Point(box.left+scrollLeft-clientLeft,box.top+scrollTop-clientTop)};Stage.prototype.saveCanvasValues=function(){this.strokeStyle=this.context.strokeStyle;this.lineWidth=this.context.lineWidth;this.fillStyle=this.context.fillStyle};Stage.prototype.restoreCanvasValues=function(){this.context.strokeStyle=this.strokeStyle;this.context.lineWidth=this.lineWidth;this.context.fillStyle=this.fillStyle};Object.defineProperty(Stage.prototype,"backgroundColor",{get:function(){return this._bgColor},set:function(color){this.canvas.style.backgroundColor=color},enumerable:true,configurable:true});Object.defineProperty(Stage.prototype,"x",{get:function(){return this.bounds.x},enumerable:true,configurable:true});Object.defineProperty(Stage.prototype,"y",{get:function(){return this.bounds.y},enumerable:true,configurable:true});Object.defineProperty(Stage.prototype,"width",{get:function(){return this.bounds.width},enumerable:true,configurable:true});Object.defineProperty(Stage.prototype,"height",{get:function(){return this.bounds.height},enumerable:true,configurable:true});Object.defineProperty(Stage.prototype,"centerX",{get:function(){return this.bounds.halfWidth},enumerable:true,configurable:true});Object.defineProperty(Stage.prototype,"centerY",{get:function(){return this.bounds.halfHeight},enumerable:true,configurable:true});Object.defineProperty(Stage.prototype,"randomX",{get:function(){return Math.round(Math.random()*this.bounds.width)},enumerable:true,configurable:true});Object.defineProperty(Stage.prototype,"randomY",{get:function(){return Math.round(Math.random()*this.bounds.height)},enumerable:true,configurable:true});return Stage})();Phaser.Stage=Stage})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Time=(function(){function Time(game){this.timeScale=1;this.elapsed=0;this.time=0;this.now=0;this.delta=0;this.fps=0;this.fpsMin=1000;this.fpsMax=0;this.msMin=1000;this.msMax=0;this.frames=0;this._timeLastSecond=0;this._started=Date.now();this._timeLastSecond=this._started;this.time=this._started}Object.defineProperty(Time.prototype,"totalElapsedSeconds",{get:function(){return(this.now-this._started)*0.001},enumerable:true,configurable:true});Time.prototype.update=function(){this.now=Date.now();this.delta=this.now-this.time;this.msMin=Math.min(this.msMin,this.delta);this.msMax=Math.max(this.msMax,this.delta);this.frames++;if(this.now>this._timeLastSecond+1000){this.fps=Math.round((this.frames*1000)/(this.now-this._timeLastSecond));this.fpsMin=Math.min(this.fpsMin,this.fps);this.fpsMax=Math.max(this.fpsMax,this.fps);this._timeLastSecond=this.now;this.frames=0}this.time=this.now};Time.prototype.elapsedSince=function(since){return this.now-since};Time.prototype.elapsedSecondsSince=function(since){return(this.now-since)*0.001};Time.prototype.reset=function(){this._started=this.now};return Time})();Phaser.Time=Time})(Phaser||(Phaser={}));var Phaser;(function(Phaser){(function(Easing){var Back=(function(){function Back(){}Back.In=function In(k){var s=1.70158;return k*k*((s+1)*k-s)};Back.Out=function Out(k){var s=1.70158;return --k*k*((s+1)*k+s)+1};Back.InOut=function InOut(k){var s=1.70158*1.525;if((k*=2)<1){return 0.5*(k*k*((s+1)*k-s))}return 0.5*((k-=2)*k*((s+1)*k+s)+2)};return Back})();Easing.Back=Back})(Phaser.Easing||(Phaser.Easing={}));var Easing=Phaser.Easing})(Phaser||(Phaser={}));var Phaser;(function(Phaser){(function(Easing){var Bounce=(function(){function Bounce(){}Bounce.In=function In(k){return 1-Phaser.Easing.Bounce.Out(1-k)};Bounce.Out=function Out(k){if(k<(1/2.75)){return 7.5625*k*k}else{if(k<(2/2.75)){return 7.5625*(k-=(1.5/2.75))*k+0.75}else{if(k<(2.5/2.75)){return 7.5625*(k-=(2.25/2.75))*k+0.9375}else{return 7.5625*(k-=(2.625/2.75))*k+0.984375}}}};Bounce.InOut=function InOut(k){if(k<0.5){return Phaser.Easing.Bounce.In(k*2)*0.5}return Phaser.Easing.Bounce.Out(k*2-1)*0.5+0.5};return Bounce})();Easing.Bounce=Bounce})(Phaser.Easing||(Phaser.Easing={}));var Easing=Phaser.Easing})(Phaser||(Phaser={}));var Phaser;(function(Phaser){(function(Easing){var Circular=(function(){function Circular(){}Circular.In=function In(k){return 1-Math.sqrt(1-k*k)};Circular.Out=function Out(k){return Math.sqrt(1-(--k*k))};Circular.InOut=function InOut(k){if((k*=2)<1){return -0.5*(Math.sqrt(1-k*k)-1)}return 0.5*(Math.sqrt(1-(k-=2)*k)+1)};return Circular})();Easing.Circular=Circular})(Phaser.Easing||(Phaser.Easing={}));var Easing=Phaser.Easing})(Phaser||(Phaser={}));var Phaser;(function(Phaser){(function(Easing){var Cubic=(function(){function Cubic(){}Cubic.In=function In(k){return k*k*k};Cubic.Out=function Out(k){return --k*k*k+1};Cubic.InOut=function InOut(k){if((k*=2)<1){return 0.5*k*k*k}return 0.5*((k-=2)*k*k+2)};return Cubic})();Easing.Cubic=Cubic})(Phaser.Easing||(Phaser.Easing={}));var Easing=Phaser.Easing})(Phaser||(Phaser={}));var Phaser;(function(Phaser){(function(Easing){var Elastic=(function(){function Elastic(){}Elastic.In=function In(k){var s,a=0.1,p=0.4;if(k===0){return 0}if(k===1){return 1}if(!a||a<1){a=1;s=p/4}else{s=p*Math.asin(1/a)/(2*Math.PI)}return -(a*Math.pow(2,10*(k-=1))*Math.sin((k-s)*(2*Math.PI)/p))};Elastic.Out=function Out(k){var s,a=0.1,p=0.4;if(k===0){return 0}if(k===1){return 1}if(!a||a<1){a=1;s=p/4}else{s=p*Math.asin(1/a)/(2*Math.PI)}return(a*Math.pow(2,-10*k)*Math.sin((k-s)*(2*Math.PI)/p)+1)};Elastic.InOut=function InOut(k){var s,a=0.1,p=0.4;if(k===0){return 0}if(k===1){return 1}if(!a||a<1){a=1;s=p/4}else{s=p*Math.asin(1/a)/(2*Math.PI)}if((k*=2)<1){return -0.5*(a*Math.pow(2,10*(k-=1))*Math.sin((k-s)*(2*Math.PI)/p))}return a*Math.pow(2,-10*(k-=1))*Math.sin((k-s)*(2*Math.PI)/p)*0.5+1};return Elastic})();Easing.Elastic=Elastic})(Phaser.Easing||(Phaser.Easing={}));var Easing=Phaser.Easing})(Phaser||(Phaser={}));var Phaser;(function(Phaser){(function(Easing){var Exponential=(function(){function Exponential(){}Exponential.In=function In(k){return k===0?0:Math.pow(1024,k-1)};Exponential.Out=function Out(k){return k===1?1:1-Math.pow(2,-10*k)};Exponential.InOut=function InOut(k){if(k===0){return 0}if(k===1){return 1}if((k*=2)<1){return 0.5*Math.pow(1024,k-1)}return 0.5*(-Math.pow(2,-10*(k-1))+2)};return Exponential})();Easing.Exponential=Exponential})(Phaser.Easing||(Phaser.Easing={}));var Easing=Phaser.Easing})(Phaser||(Phaser={}));var Phaser;(function(Phaser){(function(Easing){var Linear=(function(){function Linear(){}Linear.None=function None(k){return k};return Linear})();Easing.Linear=Linear})(Phaser.Easing||(Phaser.Easing={}));var Easing=Phaser.Easing})(Phaser||(Phaser={}));var Phaser;(function(Phaser){(function(Easing){var Quadratic=(function(){function Quadratic(){}Quadratic.In=function In(k){return k*k};Quadratic.Out=function Out(k){return k*(2-k)};Quadratic.InOut=function InOut(k){if((k*=2)<1){return 0.5*k*k}return -0.5*(--k*(k-2)-1)};return Quadratic})();Easing.Quadratic=Quadratic})(Phaser.Easing||(Phaser.Easing={}));var Easing=Phaser.Easing})(Phaser||(Phaser={}));var Phaser;(function(Phaser){(function(Easing){var Quartic=(function(){function Quartic(){}Quartic.In=function In(k){return k*k*k*k};Quartic.Out=function Out(k){return 1-(--k*k*k*k)};Quartic.InOut=function InOut(k){if((k*=2)<1){return 0.5*k*k*k*k}return -0.5*((k-=2)*k*k*k-2)};return Quartic})();Easing.Quartic=Quartic})(Phaser.Easing||(Phaser.Easing={}));var Easing=Phaser.Easing})(Phaser||(Phaser={}));var Phaser;(function(Phaser){(function(Easing){var Quintic=(function(){function Quintic(){}Quintic.In=function In(k){return k*k*k*k*k};Quintic.Out=function Out(k){return --k*k*k*k*k+1};Quintic.InOut=function InOut(k){if((k*=2)<1){return 0.5*k*k*k*k*k}return 0.5*((k-=2)*k*k*k*k+2)};return Quintic})();Easing.Quintic=Quintic})(Phaser.Easing||(Phaser.Easing={}));var Easing=Phaser.Easing})(Phaser||(Phaser={}));var Phaser;(function(Phaser){(function(Easing){var Sinusoidal=(function(){function Sinusoidal(){}Sinusoidal.In=function In(k){return 1-Math.cos(k*Math.PI/2)};Sinusoidal.Out=function Out(k){return Math.sin(k*Math.PI/2)};Sinusoidal.InOut=function InOut(k){return 0.5*(1-Math.cos(Math.PI*k))};return Sinusoidal})();Easing.Sinusoidal=Sinusoidal})(Phaser.Easing||(Phaser.Easing={}));var Easing=Phaser.Easing})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Tween=(function(){function Tween(object,game){this._object=null;this._pausedTime=0;this._valuesStart={};this._valuesEnd={};this._duration=1000;this._delayTime=0;this._startTime=null;this._chainedTweens=[];this._object=object;this._game=game;this._manager=this._game.tweens;this._interpolationFunction=this._game.math.linearInterpolation;this._easingFunction=Phaser.Easing.Linear.None;this.onStart=new Phaser.Signal();this.onUpdate=new Phaser.Signal();this.onComplete=new Phaser.Signal()}Tween.prototype.to=function(properties,duration,ease,autoStart){if(typeof duration==="undefined"){duration=1000}if(typeof ease==="undefined"){ease=null}if(typeof autoStart==="undefined"){autoStart=false}this._duration=duration;this._valuesEnd=properties;if(ease!==null){this._easingFunction=ease}if(autoStart===true){return this.start()}else{return this}};Tween.prototype.start=function(){if(this._game===null||this._object===null){return}this._manager.add(this);this.onStart.dispatch(this._object);this._startTime=this._game.time.now+this._delayTime;for(var property in this._valuesEnd){if(this._object[property]===null||!(property in this._object)){throw Error("Phaser.Tween interpolation of null value of non-existing property");continue}if(this._valuesEnd[property] instanceof Array){if(this._valuesEnd[property].length===0){continue}this._valuesEnd[property]=[this._object[property]].concat(this._valuesEnd[property])}this._valuesStart[property]=this._object[property]}return this};Tween.prototype.stop=function(){if(this._manager!==null){this._manager.remove(this)}return this};Object.defineProperty(Tween.prototype,"parent",{set:function(value){this._game=value;this._manager=this._game.tweens},enumerable:true,configurable:true});Object.defineProperty(Tween.prototype,"delay",{get:function(){return this._delayTime},set:function(amount){this._delayTime=amount},enumerable:true,configurable:true});Object.defineProperty(Tween.prototype,"easing",{get:function(){return this._easingFunction},set:function(easing){this._easingFunction=easing},enumerable:true,configurable:true});Object.defineProperty(Tween.prototype,"interpolation",{get:function(){return this._interpolationFunction},set:function(interpolation){this._interpolationFunction=interpolation},enumerable:true,configurable:true});Tween.prototype.chain=function(tween){this._chainedTweens.push(tween);return this};Tween.prototype.update=function(time){if(this._game.paused==true){if(this._pausedTime==0){this._pausedTime=time}}else{if(this._pausedTime>0){this._startTime+=(time-this._pausedTime);this._pausedTime=0}}if(time1?1:elapsed;var value=this._easingFunction(elapsed);for(var property in this._valuesStart){if(this._valuesEnd[property] instanceof Array){this._object[property]=this._interpolationFunction(this._valuesEnd[property],value)}else{this._object[property]=this._valuesStart[property]+(this._valuesEnd[property]-this._valuesStart[property])*value}}this.onUpdate.dispatch(this._object,value);if(elapsed==1){this.onComplete.dispatch(this._object);for(var i=0;i0&&has3d!=="none")};Device.prototype.getAll=function(){var output="";output=output.concat("Device\n");output=output.concat("iPhone : "+this.iPhone+"\n");output=output.concat("iPhone4 : "+this.iPhone4+"\n");output=output.concat("iPad : "+this.iPad+"\n");output=output.concat("\n");output=output.concat("Operating System\n");output=output.concat("iOS: "+this.iOS+"\n");output=output.concat("Android: "+this.android+"\n");output=output.concat("ChromeOS: "+this.chromeOS+"\n");output=output.concat("Linux: "+this.linux+"\n");output=output.concat("MacOS: "+this.macOS+"\n");output=output.concat("Windows: "+this.windows+"\n");output=output.concat("\n");output=output.concat("Browser\n");output=output.concat("Arora: "+this.arora+"\n");output=output.concat("Chrome: "+this.chrome+"\n");output=output.concat("Epiphany: "+this.epiphany+"\n");output=output.concat("Firefox: "+this.firefox+"\n");output=output.concat("Internet Explorer: "+this.ie+" ("+this.ieVersion+")\n");output=output.concat("Mobile Safari: "+this.mobileSafari+"\n");output=output.concat("Midori: "+this.midori+"\n");output=output.concat("Opera: "+this.opera+"\n");output=output.concat("Safari: "+this.safari+"\n");output=output.concat("\n");output=output.concat("Features\n");output=output.concat("Canvas: "+this.canvas+"\n");output=output.concat("File: "+this.file+"\n");output=output.concat("FileSystem: "+this.fileSystem+"\n");output=output.concat("LocalStorage: "+this.localStorage+"\n");output=output.concat("WebGL: "+this.webGL+"\n");output=output.concat("Worker: "+this.worker+"\n");output=output.concat("Touch: "+this.touch+"\n");output=output.concat("CSS 3D: "+this.css3D+"\n");output=output.concat("\n");output=output.concat("Audio\n");output=output.concat("Audio Data: "+this.canvas+"\n");output=output.concat("Web Audio: "+this.canvas+"\n");output=output.concat("Can play OGG: "+this.canvas+"\n");output=output.concat("Can play MP3: "+this.canvas+"\n");output=output.concat("Can play M4A: "+this.canvas+"\n");output=output.concat("Can play WAV: "+this.canvas+"\n");return output};return Device})();Phaser.Device=Device})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var RandomDataGenerator=(function(){function RandomDataGenerator(seeds){if(typeof seeds==="undefined"){seeds=[]}this.c=1;this.sow(seeds)}RandomDataGenerator.prototype.uint32=function(){return this.rnd.apply(this)*4294967296};RandomDataGenerator.prototype.fract32=function(){return this.rnd.apply(this)+(this.rnd.apply(this)*2097152|0)*1.1102230246251565e-16};RandomDataGenerator.prototype.rnd=function(){var t=2091639*this.s0+this.c*2.3283064365386963e-10;this.c=t|0;this.s0=this.s1;this.s1=this.s2;this.s2=t-this.c;return this.s2};RandomDataGenerator.prototype.hash=function(data){var h,i,n;n=4022871197;data=data.toString();for(i=0;i>>0;h-=n;h*=n;n=h>>>0;h-=n;n+=h*4294967296}return(n>>>0)*2.3283064365386963e-10};RandomDataGenerator.prototype.sow=function(seeds){if(typeof seeds==="undefined"){seeds=[]}this.s0=this.hash(" ");this.s1=this.hash(this.s0);this.s2=this.hash(this.s1);var seed;for(var i=0;seed=seeds[i++];){this.s0-=this.hash(seed);this.s0+=~~(this.s0<0);this.s1-=this.hash(seed);this.s1+=~~(this.s1<0);this.s2-=this.hash(seed);this.s2+=~~(this.s2<0)}};Object.defineProperty(RandomDataGenerator.prototype,"integer",{get:function(){return this.uint32()},enumerable:true,configurable:true});Object.defineProperty(RandomDataGenerator.prototype,"frac",{get:function(){return this.fract32()},enumerable:true,configurable:true});Object.defineProperty(RandomDataGenerator.prototype,"real",{get:function(){return this.uint32()+this.fract32()},enumerable:true,configurable:true});RandomDataGenerator.prototype.integerInRange=function(min,max){return Math.floor(this.realInRange(min,max))};RandomDataGenerator.prototype.realInRange=function(min,max){min=min||0;max=max||0;return this.frac*(max-min)+min};Object.defineProperty(RandomDataGenerator.prototype,"normal",{get:function(){return 1-2*this.frac},enumerable:true,configurable:true});Object.defineProperty(RandomDataGenerator.prototype,"uuid",{get:function(){var a,b;for(b=a="";a++<36;b+=~a%5|a*3&4?(a^15?8^this.frac*(a^20?16:4):4).toString(16):"-"){}return b},enumerable:true,configurable:true});RandomDataGenerator.prototype.pick=function(array){return array[this.integerInRange(0,array.length)]};RandomDataGenerator.prototype.weightedPick=function(array){return array[~~(Math.pow(this.frac,2)*array.length)]};RandomDataGenerator.prototype.timestamp=function(min,max){if(typeof min==="undefined"){min=946684800000}if(typeof max==="undefined"){max=1577862000000}return this.realInRange(min,max)};Object.defineProperty(RandomDataGenerator.prototype,"angle",{get:function(){return this.integerInRange(-180,180)},enumerable:true,configurable:true});return RandomDataGenerator})();Phaser.RandomDataGenerator=RandomDataGenerator})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var RequestAnimationFrame=(function(){function RequestAnimationFrame(callback,callbackContext){this._isSetTimeOut=false;this.lastTime=0;this.currentTime=0;this.isRunning=false;this._callback=callback;this._callbackContext=callbackContext;var vendors=["ms","moz","webkit","o"];for(var x=0;xthis._game.time.now){return true}else{return false}};Finger.prototype.justReleased=function(duration){if(typeof duration==="undefined"){duration=this.justReleasedRate}if(this.isUp===true&&(this.timeUp+duration)>this._game.time.now){return true}else{return false}};Finger.prototype.toString=function(){return"[{Finger (identifer="+this.identifier+" active="+this.active+" duration="+this.duration+" withinGame="+this.withinGame+" x="+this.x+" y="+this.y+" clientX="+this.clientX+" clientY="+this.clientY+" screenX="+this.screenX+" screenY="+this.screenY+" pageX="+this.pageX+" pageY="+this.pageY+")}]"};return Finger})();Phaser.Finger=Finger})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Touch=(function(){function Touch(game){this.x=0;this.y=0;this.isDown=false;this.isUp=true;this._game=game;this.finger1=new Phaser.Finger(this._game);this.finger2=new Phaser.Finger(this._game);this.finger3=new Phaser.Finger(this._game);this.finger4=new Phaser.Finger(this._game);this.finger5=new Phaser.Finger(this._game);this.finger6=new Phaser.Finger(this._game);this.finger7=new Phaser.Finger(this._game);this.finger8=new Phaser.Finger(this._game);this.finger9=new Phaser.Finger(this._game);this.finger10=new Phaser.Finger(this._game);this._fingers=[this.finger1,this.finger2,this.finger3,this.finger4,this.finger5,this.finger6,this.finger7,this.finger8,this.finger9,this.finger10];this.touchDown=new Phaser.Signal();this.touchUp=new Phaser.Signal();this.start()}Touch.prototype.start=function(){var _this=this;this._game.stage.canvas.addEventListener("touchstart",function(event){return _this.onTouchStart(event)},false);this._game.stage.canvas.addEventListener("touchmove",function(event){return _this.onTouchMove(event)},false);this._game.stage.canvas.addEventListener("touchend",function(event){return _this.onTouchEnd(event)},false);this._game.stage.canvas.addEventListener("touchenter",function(event){return _this.onTouchEnter(event)},false);this._game.stage.canvas.addEventListener("touchleave",function(event){return _this.onTouchLeave(event)},false);this._game.stage.canvas.addEventListener("touchcancel",function(event){return _this.onTouchCancel(event)},false);document.addEventListener("touchmove",function(event){return _this.consumeTouchMove(event)},false)};Touch.prototype.consumeTouchMove=function(event){event.preventDefault()};Touch.prototype.onTouchStart=function(event){event.preventDefault();for(var i=0;i0){particle.width*=Collide;particle.height*=Collide}else{particle.allowCollisions=Phaser.Collision.NONE}particle.exists=false;this.add(particle);i++}return this};Emitter.prototype.update=function(){if(this.on){if(this._explode){this.on=false;var i=0;var l=this._quantity;if((l<=0)||(l>this.length)){l=this.length}while(i0)&&(this._timer>this.frequency)&&this.on){this._timer-=this.frequency;this.emitParticle();if((this._quantity>0)&&(++this._counter>=this._quantity)){this.on=false;this._quantity=0}}}}_super.prototype.update.call(this)};Emitter.prototype.kill=function(){this.on=false;_super.prototype.kill.call(this)};Emitter.prototype.start=function(Explode,Lifespan,Frequency,Quantity){if(typeof Explode==="undefined"){Explode=true}if(typeof Lifespan==="undefined"){Lifespan=0}if(typeof Frequency==="undefined"){Frequency=0.1}if(typeof Quantity==="undefined"){Quantity=0}this.revive();this.visible=true;this.on=true;this._explode=Explode;this.lifespan=Lifespan;this.frequency=Frequency;this._quantity+=Quantity;this._counter=0;this._timer=0};Emitter.prototype.emitParticle=function(){var particle=this.recycle(Phaser.Particle);particle.lifespan=this.lifespan;particle.elasticity=this.bounce;particle.reset(this.x-(particle.width>>1)+this._game.math.random()*this.width,this.y-(particle.height>>1)+this._game.math.random()*this.height);particle.visible=true;if(this.minParticleSpeed.x!=this.maxParticleSpeed.x){particle.velocity.x=this.minParticleSpeed.x+this._game.math.random()*(this.maxParticleSpeed.x-this.minParticleSpeed.x)}else{particle.velocity.x=this.minParticleSpeed.x}if(this.minParticleSpeed.y!=this.maxParticleSpeed.y){particle.velocity.y=this.minParticleSpeed.y+this._game.math.random()*(this.maxParticleSpeed.y-this.minParticleSpeed.y)}else{particle.velocity.y=this.minParticleSpeed.y}particle.acceleration.y=this.gravity;if(this.minRotation!=this.maxRotation){particle.angularVelocity=this.minRotation+this._game.math.random()*(this.maxRotation-this.minRotation)}else{particle.angularVelocity=this.minRotation}if(particle.angularVelocity!=0){particle.angle=this._game.math.random()*360-180}particle.drag.x=this.particleDrag.x;particle.drag.y=this.particleDrag.y;particle.onEmit()};Emitter.prototype.setSize=function(Width,Height){this.width=Width;this.height=Height};Emitter.prototype.setXSpeed=function(Min,Max){if(typeof Min==="undefined"){Min=0}if(typeof Max==="undefined"){Max=0}this.minParticleSpeed.x=Min;this.maxParticleSpeed.x=Max};Emitter.prototype.setYSpeed=function(Min,Max){if(typeof Min==="undefined"){Min=0}if(typeof Max==="undefined"){Max=0}this.minParticleSpeed.y=Min;this.maxParticleSpeed.y=Max};Emitter.prototype.setRotation=function(Min,Max){if(typeof Min==="undefined"){Min=0}if(typeof Max==="undefined"){Max=0}this.minRotation=Min;this.maxRotation=Max};Emitter.prototype.at=function(Object){Object.getMidpoint(this._point);this.x=this._point.x-(this.width>>1);this.y=this._point.y-(this.height>>1)};return Emitter})(Phaser.Group);Phaser.Emitter=Emitter})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var GeomSprite=(function(_super){__extends(GeomSprite,_super);function GeomSprite(game,x,y){if(typeof x==="undefined"){x=0}if(typeof y==="undefined"){y=0}_super.call(this,game,x,y);this._dx=0;this._dy=0;this._dw=0;this._dh=0;this.type=0;this.renderOutline=true;this.renderFill=true;this.lineWidth=1;this.lineColor="rgb(0,255,0)";this.fillColor="rgb(0,100,0)";this.type=GeomSprite.UNASSIGNED;return this}GeomSprite.UNASSIGNED=0;GeomSprite.CIRCLE=1;GeomSprite.LINE=2;GeomSprite.POINT=3;GeomSprite.RECTANGLE=4;GeomSprite.prototype.loadCircle=function(circle){this.refresh();this.circle=circle;this.type=GeomSprite.CIRCLE;return this};GeomSprite.prototype.loadLine=function(line){this.refresh();this.line=line;this.type=GeomSprite.LINE;return this};GeomSprite.prototype.loadPoint=function(point){this.refresh();this.point=point;this.type=GeomSprite.POINT;return this};GeomSprite.prototype.loadRectangle=function(rect){this.refresh();this.rect=rect;this.type=GeomSprite.RECTANGLE;return this};GeomSprite.prototype.createCircle=function(diameter){this.refresh();this.circle=new Phaser.Circle(this.x,this.y,diameter);this.type=GeomSprite.CIRCLE;this.bounds.setTo(this.circle.x-this.circle.radius,this.circle.y-this.circle.radius,this.circle.diameter,this.circle.diameter);return this};GeomSprite.prototype.createLine=function(x,y){this.refresh();this.line=new Phaser.Line(this.x,this.y,x,y);this.type=GeomSprite.LINE;this.bounds.setTo(this.x,this.y,this.line.width,this.line.height);return this};GeomSprite.prototype.createPoint=function(){this.refresh();this.point=new Phaser.Point(this.x,this.y);this.type=GeomSprite.POINT;this.bounds.width=1;this.bounds.height=1;return this};GeomSprite.prototype.createRectangle=function(width,height){this.refresh();this.rect=new Phaser.Rectangle(this.x,this.y,width,height);this.type=GeomSprite.RECTANGLE;this.bounds.copyFrom(this.rect);return this};GeomSprite.prototype.refresh=function(){this.circle=null;this.line=null;this.point=null;this.rect=null};GeomSprite.prototype.update=function(){if(this.type==GeomSprite.UNASSIGNED){return}else{if(this.type==GeomSprite.CIRCLE){this.circle.x=this.x;this.circle.y=this.y;this.bounds.width=this.circle.diameter;this.bounds.height=this.circle.diameter}else{if(this.type==GeomSprite.LINE){this.line.x1=this.x;this.line.y1=this.y;this.bounds.setTo(this.x,this.y,this.line.width,this.line.height)}else{if(this.type==GeomSprite.POINT){this.point.x=this.x;this.point.y=this.y}else{if(this.type==GeomSprite.RECTANGLE){this.rect.x=this.x;this.rect.y=this.y;this.bounds.copyFrom(this.rect)}}}}}};GeomSprite.prototype.inCamera=function(camera){if(this.scrollFactor.x!==1||this.scrollFactor.y!==1){this._dx=this.bounds.x-(camera.x*this.scrollFactor.x);this._dy=this.bounds.y-(camera.y*this.scrollFactor.x);this._dw=this.bounds.width*this.scale.x;this._dh=this.bounds.height*this.scale.y;return(camera.right>this._dx)&&(camera.xthis._dy)&&(camera.y-1){this._game.stage.context.globalAlpha=globalAlpha}return true};GeomSprite.prototype.renderDebugInfo=function(x,y,color){if(typeof color==="undefined"){color="rgb(255,255,255)"}};GeomSprite.prototype.collide=function(source){if(this.type==GeomSprite.CIRCLE&&source.type==GeomSprite.CIRCLE){return Phaser.Collision.circleToCircle(this.circle,source.circle).result}if(this.type==GeomSprite.CIRCLE&&source.type==GeomSprite.RECTANGLE){return Phaser.Collision.circleToRectangle(this.circle,source.rect).result}if(this.type==GeomSprite.CIRCLE&&source.type==GeomSprite.POINT){return Phaser.Collision.circleContainsPoint(this.circle,source.point).result}if(this.type==GeomSprite.CIRCLE&&source.type==GeomSprite.LINE){return Phaser.Collision.lineToCircle(source.line,this.circle).result}if(this.type==GeomSprite.RECTANGLE&&source.type==GeomSprite.RECTANGLE){return Phaser.Collision.rectangleToRectangle(this.rect,source.rect).result}if(this.type==GeomSprite.RECTANGLE&&source.type==GeomSprite.CIRCLE){return Phaser.Collision.circleToRectangle(source.circle,this.rect).result}if(this.type==GeomSprite.RECTANGLE&&source.type==GeomSprite.POINT){return Phaser.Collision.pointToRectangle(source.point,this.rect).result}if(this.type==GeomSprite.RECTANGLE&&source.type==GeomSprite.LINE){return Phaser.Collision.lineToRectangle(source.line,this.rect).result}if(this.type==GeomSprite.POINT&&source.type==GeomSprite.POINT){return this.point.equals(source.point)}if(this.type==GeomSprite.POINT&&source.type==GeomSprite.CIRCLE){return Phaser.Collision.circleContainsPoint(source.circle,this.point).result}if(this.type==GeomSprite.POINT&&source.type==GeomSprite.RECTANGLE){return Phaser.Collision.pointToRectangle(this.point,source.rect).result}if(this.type==GeomSprite.POINT&&source.type==GeomSprite.LINE){return source.line.isPointOnLine(this.point.x,this.point.y)}if(this.type==GeomSprite.LINE&&source.type==GeomSprite.LINE){return Phaser.Collision.lineSegmentToLineSegment(this.line,source.line).result}if(this.type==GeomSprite.LINE&&source.type==GeomSprite.LINE){return Phaser.Collision.lineToCircle(this.line,source.circle).result}if(this.type==GeomSprite.LINE&&source.type==GeomSprite.RECTANGLE){return Phaser.Collision.lineSegmentToRectangle(this.line,source.rect).result}if(this.type==GeomSprite.LINE&&source.type==GeomSprite.LINE){return this.line.isPointOnLine(source.point.x,source.point.y)}return false};return GeomSprite})(Phaser.GameObject);Phaser.GeomSprite=GeomSprite})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Particle=(function(_super){__extends(Particle,_super);function Particle(game){_super.call(this,game);this.lifespan=0;this.friction=500}Particle.prototype.update=function(){if(this.lifespan<=0){return}this.lifespan-=this._game.time.elapsed;if(this.lifespan<=0){this.kill()}if(this.touching){if(this.angularVelocity!=0){this.angularVelocity=-this.angularVelocity}}if(this.acceleration.y>0){if(this.touching&Phaser.Collision.FLOOR){this.drag.x=this.friction;if(!(this.wasTouching&Phaser.Collision.FLOOR)){if(this.velocity.y<-this.elasticity*10){if(this.angularVelocity!=0){this.angularVelocity*=-this.elasticity}}else{this.velocity.y=0;this.angularVelocity=0}}}else{this.drag.x=0}}};Particle.prototype.onEmit=function(){};return Particle})(Phaser.Sprite);Phaser.Particle=Particle})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Tile=(function(_super){__extends(Tile,_super);function Tile(game,Tilemap,Index,Width,Height,Visible,AllowCollisions){_super.call(this,game,0,0,Width,Height);this.immovable=true;this.moves=false;this.callback=null;this.filter=null;this.tilemap=Tilemap;this.index=Index;this.visible=Visible;this.allowCollisions=AllowCollisions;this.mapIndex=0}Tile.prototype.destroy=function(){_super.prototype.destroy.call(this);this.callback=null;this.tilemap=null};return Tile})(Phaser.GameObject);Phaser.Tile=Tile})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var TilemapBuffer=(function(){function TilemapBuffer(game,camera,tilemap,texture,tileOffsets){this._startX=0;this._maxX=0;this._startY=0;this._maxY=0;this._tx=0;this._ty=0;this._dx=0;this._dy=0;this._oldCameraX=0;this._oldCameraY=0;this._dirty=true;this._game=game;this.camera=camera;this._tilemap=tilemap;this._texture=texture;this._tileOffsets=tileOffsets}TilemapBuffer.prototype.createCanvas=function(){this.canvas=document.createElement("canvas");this.canvas.width=this._game.stage.width;this.canvas.height=this._game.stage.height;this.context=this.canvas.getContext("2d")};TilemapBuffer.prototype.update=function(){};TilemapBuffer.prototype.renderDebugInfo=function(x,y,color){if(typeof color==="undefined"){color="rgb(255,255,255)"}this._game.stage.context.fillStyle=color;this._game.stage.context.fillText("TilemapBuffer",x,y);this._game.stage.context.fillText("startX: "+this._startX+" endX: "+this._maxX,x,y+14);this._game.stage.context.fillText("startY: "+this._startY+" endY: "+this._maxY,x,y+28);this._game.stage.context.fillText("dx: "+this._dx+" dy: "+this._dy,x,y+42);this._game.stage.context.fillText("Dirty: "+this._dirty,x,y+56)};TilemapBuffer.prototype.render=function(dx,dy){this._maxX=this._game.math.ceil(this.camera.width/this._tilemap.tileWidth)+1;this._maxY=this._game.math.ceil(this.camera.height/this._tilemap.tileHeight)+1;this._startX=this._game.math.floor(this.camera.worldView.x/this._tilemap.tileWidth);this._startY=this._game.math.floor(this.camera.worldView.y/this._tilemap.tileHeight);if(this._startX<0){this._startX=0}if(this._startY<0){this._startY=0}if(this._startX+this._maxX>this._tilemap.widthInTiles){this._startX=this._tilemap.widthInTiles-this._maxX}if(this._startY+this._maxY>this._tilemap.heightInTiles){this._startY=this._tilemap.heightInTiles-this._maxY}this._dx=dx;this._dy=dy;this._dx+=-(this.camera.worldView.x-(this._startX*this._tilemap.tileWidth));this._dy+=-(this.camera.worldView.y-(this._startY*this._tilemap.tileHeight));this._tx=this._dx;this._ty=this._dy;for(var row=this._startY;row0){if(this.widthInTiles==0){this.widthInTiles=column.length}this.heightInTiles++;for(var c=0;c0){this.widthInPixels=this.tileWidth*this.widthInTiles}if(this.heightInTiles>0){this.heightInPixels=this.tileHeight*this.heightInTiles}this.boundsInTiles.setTo(0,0,this.widthInTiles,this.heightInTiles)};Tilemap.prototype.parseTiledJSON=function(data){this.mapData=[];data=data.trim();var json=JSON.parse(data);this.tileWidth=json.tilewidth;this.tileHeight=json.tileheight;this.widthInTiles=json.layers[0].width;this.heightInTiles=json.layers[0].height;this.widthInPixels=this.widthInTiles*this.tileWidth;this.heightInPixels=this.heightInTiles*this.tileHeight;this.boundsInTiles.setTo(0,0,this.widthInTiles,this.heightInTiles);var c=0;var row;for(var i=0;ithis._maxAccumulation){this._accumulator=this._maxAccumulation}while(this._accumulator>=this._step){this.time.elapsed=this.time.timeScale*(this._step/1000);this.world.update();this._accumulator=this._accumulator-this._step}if(this._loadComplete&&this.onUpdateCallback){this.onUpdateCallback.call(this.callbackContext)}this.world.render();if(this._loadComplete&&this.onRenderCallback){this.onRenderCallback.call(this.callbackContext)}};Game.prototype.startState=function(){if(this.onInitCallback!==null){this.onInitCallback.call(this.callbackContext)}else{if(this.onCreateCallback!==null){this.onCreateCallback.call(this.callbackContext)}this._loadComplete=true}};Game.prototype.setCallbacks=function(initCallback,createCallback,updateCallback,renderCallback){if(typeof initCallback==="undefined"){initCallback=null}if(typeof createCallback==="undefined"){createCallback=null}if(typeof updateCallback==="undefined"){updateCallback=null}if(typeof renderCallback==="undefined"){renderCallback=null}this.onInitCallback=initCallback;this.onCreateCallback=createCallback;this.onUpdateCallback=updateCallback;this.onRenderCallback=renderCallback};Game.prototype.switchState=function(state,clearWorld,clearCache){if(typeof clearWorld==="undefined"){clearWorld=true}if(typeof clearCache==="undefined"){clearCache=false}if(this.isBooted==false){this._pendingState=state;return}if(typeof state==="function"){state=new state(this)}if(state.create||state.update){this.callbackContext=state;this.onInitCallback=null;this.onCreateCallback=null;this.onUpdateCallback=null;this.onRenderCallback=null;this.onPausedCallback=null;if(state.init){this.onInitCallback=state.init}if(state.create){this.onCreateCallback=state.create}if(state.update){this.onUpdateCallback=state.update}if(state.render){this.onRenderCallback=state.render}if(state.paused){this.onPausedCallback=state.paused}if(clearWorld){this.world.destroy();if(clearCache==true){this.cache.destroy()}}this._loadComplete=false;this.startState()}else{throw Error("Invalid State object given. Must contain at least a create or update function.");return}};Game.prototype.destroy=function(){this.callbackContext=null;this.onInitCallback=null;this.onCreateCallback=null;this.onUpdateCallback=null;this.onRenderCallback=null;this.onPausedCallback=null;this.camera=null;this.cache=null;this.input=null;this.loader=null;this.sound=null;this.stage=null;this.time=null;this.world=null;this.isBooted=false};Object.defineProperty(Game.prototype,"paused",{get:function(){return this._paused},set:function(value){if(value==true&&this._paused==false){this._paused=true}else{if(value==false&&this._paused==true){this._paused=false;this.time.time=Date.now();this.input.reset()}}},enumerable:true,configurable:true});Object.defineProperty(Game.prototype,"framerate",{get:function(){return 1000/this._step},set:function(value){this._step=1000/value;if(this._maxAccumulation