mirror of
https://github.com/photonstorm/phaser
synced 2024-11-30 00:21:04 +00:00
1 line
No EOL
197 KiB
JavaScript
1 line
No EOL
197 KiB
JavaScript
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.MicroPoint(1,1);this.last=new Phaser.MicroPoint(x,y);this.origin=new Phaser.MicroPoint(this.bounds.halfWidth,this.bounds.halfHeight);this.align=GameObject.ALIGN_TOP_LEFT;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.MicroPoint();this.acceleration=new Phaser.MicroPoint();this.drag=new Phaser.MicroPoint();this.maxVelocity=new Phaser.MicroPoint(10000,10000);this.angle=0;this.angularVelocity=0;this.angularAcceleration=0;this.angularDrag=0;this.maxAngular=10000;this.scrollFactor=new Phaser.MicroPoint(1,1)}GameObject.ALIGN_TOP_LEFT=0;GameObject.ALIGN_TOP_CENTER=1;GameObject.ALIGN_TOP_RIGHT=2;GameObject.ALIGN_CENTER_LEFT=3;GameObject.ALIGN_CENTER=4;GameObject.ALIGN_CENTER_RIGHT=5;GameObject.ALIGN_BOTTOM_LEFT=6;GameObject.ALIGN_BOTTOM_CENTER=7;GameObject.ALIGN_BOTTOM_RIGHT=8;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(i<length){if(this.overlaps(members[i++],InScreenSpace,Camera)){results=true}}return results}if(!InScreenSpace){return(ObjectOrGroup.x+ObjectOrGroup.width>this.x)&&(ObjectOrGroup.x<this.x+this.width)&&(ObjectOrGroup.y+ObjectOrGroup.height>this.y)&&(ObjectOrGroup.y<this.y+this.height)}if(Camera==null){Camera=this._game.camera}var objectScreenPos=ObjectOrGroup.getScreenXY(null,Camera);this.getScreenXY(this._point,Camera);return(objectScreenPos.x+ObjectOrGroup.width>this._point.x)&&(objectScreenPos.x<this._point.x+this.width)&&(objectScreenPos.y+ObjectOrGroup.height>this._point.y)&&(objectScreenPos.y<this._point.y+this.height)};GameObject.prototype.overlapsAt=function(X,Y,ObjectOrGroup,InScreenSpace,Camera){if(typeof InScreenSpace==="undefined"){InScreenSpace=false}if(typeof Camera==="undefined"){Camera=null}if(ObjectOrGroup.isGroup){var results=false;var basic;var i=0;var members=ObjectOrGroup.members;while(i<length){if(this.overlapsAt(X,Y,members[i++],InScreenSpace,Camera)){results=true}}return results}if(!InScreenSpace){return(ObjectOrGroup.x+ObjectOrGroup.width>X)&&(ObjectOrGroup.x<X+this.width)&&(ObjectOrGroup.y+ObjectOrGroup.height>Y)&&(ObjectOrGroup.y<Y+this.height)}if(Camera==null){Camera=this._game.camera}var objectScreenPos=ObjectOrGroup.getScreenXY(null,Camera);this._point.x=X-Camera.scroll.x*this.scrollFactor.x;this._point.y=Y-Camera.scroll.y*this.scrollFactor.y;this._point.x+=(this._point.x>0)?1e-7:-1e-7;this._point.y+=(this._point.y>0)?1e-7:-1e-7;return(objectScreenPos.x+ObjectOrGroup.width>this._point.x)&&(objectScreenPos.x<this._point.x+this.width)&&(objectScreenPos.y+ObjectOrGroup.height>this._point.y)&&(objectScreenPos.y<this._point.y+this.height)};GameObject.prototype.overlapsPoint=function(point,InScreenSpace,Camera){if(typeof InScreenSpace==="undefined"){InScreenSpace=false}if(typeof Camera==="undefined"){Camera=null}if(!InScreenSpace){return(point.x>this.x)&&(point.x<this.x+this.width)&&(point.y>this.y)&&(point.y<this.y+this.height)}if(Camera==null){Camera=this._game.camera}var X=point.x-Camera.scroll.x;var Y=point.y-Camera.scroll.y;this.getScreenXY(this._point,Camera);return(X>this._point.x)&&(X<this._point.x+this.width)&&(Y>this._point.y)&&(Y<this._point.y+this.height)};GameObject.prototype.onScreen=function(Camera){if(typeof Camera==="undefined"){Camera=null}if(Camera==null){Camera=this._game.camera}this.getScreenXY(this._point,Camera);return(this._point.x+this.width>0)&&(this._point.x<Camera.width)&&(this._point.y+this.height>0)&&(this._point.y<Camera.height)};GameObject.prototype.getScreenXY=function(point,Camera){if(typeof point==="undefined"){point=null}if(typeof Camera==="undefined"){Camera=null}if(point==null){point=new Phaser.MicroPoint()}if(Camera==null){Camera=this._game.camera}point.x=this.x-Camera.scroll.x*this.scrollFactor.x;point.y=this.y-Camera.scroll.y*this.scrollFactor.y;point.x+=(point.x>0)?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.MicroPoint()}point.copyFrom(this.bounds.center);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},set:function(value){this.bounds.width=value},enumerable:true,configurable:true});Object.defineProperty(GameObject.prototype,"height",{get:function(){return this.bounds.height},set:function(value){this.bounds.height=value},enumerable:true,configurable:true});return GameObject})(Phaser.Basic);Phaser.GameObject=GameObject})(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.x<edge){this.scroll.x=edge}edge=targetY-this.deadzone.y;if(this.scroll.y>edge){this.scroll.y=edge}edge=targetY+this._target.height-this.deadzone.y-this.deadzone.height;if(this.scroll.y<edge){this.scroll.y=edge}}}if(this.bounds!==null){if(this.scroll.x<this.bounds.left){this.scroll.x=this.bounds.left}if(this.scroll.x>this.bounds.right-this.width){this.scroll.x=this.bounds.right-this.width}if(this.scroll.y<this.bounds.top){this.scroll.y=this.bounds.top}if(this.scroll.y>this.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<this._game.stage.width||this.worldView.height<this._game.stage.height){this._clip=true}else{this._clip=false}};return Camera})();Phaser.Camera=Camera})(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.renderDebug=false;this.renderDebugColor="rgba(0,255,0,0.5)";this.renderDebugPointColor="rgba(255,255,255,1)";this.flipped=false;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.x<this._dx+this._dw)&&(camera.bottom>this._dy)&&(camera.y<this._dy+this._dh)}else{return camera.intersects(this.bounds,this.bounds.length)}};Sprite.prototype.postUpdate=function(){this.animations.update();_super.prototype.postUpdate.call(this)};Object.defineProperty(Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(value){this.animations.frame=value},enumerable:true,configurable:true});Object.defineProperty(Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(value){this.animations.frameName=value},enumerable:true,configurable:true});Sprite.prototype.render=function(camera,cameraOffsetX,cameraOffsetY){if(this.visible===false||this.scale.x==0||this.scale.y==0||this.alpha<0.1||this.inCamera(camera.worldView)==false){return false}if(this.alpha!==1){var globalAlpha=this._game.stage.context.globalAlpha;this._game.stage.context.globalAlpha=this.alpha}this._sx=0;this._sy=0;this._sw=this.bounds.width;this._sh=this.bounds.height;this._dx=cameraOffsetX+(this.bounds.topLeft.x-camera.worldView.x);this._dy=cameraOffsetY+(this.bounds.topLeft.y-camera.worldView.y);this._dw=this.bounds.width*this.scale.x;this._dh=this.bounds.height*this.scale.y;if(this.align==Phaser.GameObject.ALIGN_TOP_CENTER){this._dx-=this.bounds.halfWidth*this.scale.x}else{if(this.align==Phaser.GameObject.ALIGN_TOP_RIGHT){this._dx-=this.bounds.width*this.scale.x}else{if(this.align==Phaser.GameObject.ALIGN_CENTER_LEFT){this._dy-=this.bounds.halfHeight*this.scale.y}else{if(this.align==Phaser.GameObject.ALIGN_CENTER){this._dx-=this.bounds.halfWidth*this.scale.x;this._dy-=this.bounds.halfHeight*this.scale.y}else{if(this.align==Phaser.GameObject.ALIGN_CENTER_RIGHT){this._dx-=this.bounds.width*this.scale.x;this._dy-=this.bounds.halfHeight*this.scale.y}else{if(this.align==Phaser.GameObject.ALIGN_BOTTOM_LEFT){this._dy-=this.bounds.height*this.scale.y}else{if(this.align==Phaser.GameObject.ALIGN_BOTTOM_CENTER){this._dx-=this.bounds.halfWidth*this.scale.x;this._dy-=this.bounds.height*this.scale.y}else{if(this.align==Phaser.GameObject.ALIGN_BOTTOM_RIGHT){this._dx-=this.bounds.width*this.scale.x;this._dy-=this.bounds.height*this.scale.y}}}}}}}}if(this._dynamicTexture==false&&this.animations.currentFrame!==null){this._sx=this.animations.currentFrame.x;this._sy=this.animations.currentFrame.y;if(this.animations.currentFrame.trimmed){this._dx+=this.animations.currentFrame.spriteSourceSizeX;this._dy+=this.animations.currentFrame.spriteSourceSizeY}}if(this.scrollFactor.x!==1||this.scrollFactor.y!==1){this._dx-=(camera.worldView.x*this.scrollFactor.x);this._dy-=(camera.worldView.y*this.scrollFactor.y)}if(this.angle!==0||this.flipped==true){this._game.stage.context.save();this._game.stage.context.translate(this._dx+(this._dw/2),this._dy+(this._dh/2));if(this.angle!==0){this._game.stage.context.rotate(this.angle*(Math.PI/180))}this._dx=-(this._dw/2);this._dy=-(this._dh/2);if(this.flipped==true){this._game.stage.context.scale(-1,1)}}this._sx=Math.round(this._sx);this._sy=Math.round(this._sy);this._sw=Math.round(this._sw);this._sh=Math.round(this._sh);this._dx=Math.round(this._dx);this._dy=Math.round(this._dy);this._dw=Math.round(this._dw);this._dh=Math.round(this._dh);if(this._texture!=null){if(this._dynamicTexture){this._game.stage.context.drawImage(this._texture.canvas,this._sx,this._sy,this._sw,this._sh,this._dx,this._dy,this._dw,this._dh)}else{this._game.stage.context.drawImage(this._texture,this._sx,this._sy,this._sw,this._sh,this._dx,this._dy,this._dw,this._dh)}}else{this._game.stage.context.fillStyle="rgb(255,255,255)";this._game.stage.context.fillRect(this._dx,this._dy,this._dw,this._dh)}if(this.flipped===true||this.rotation!==0){this._game.stage.context.restore()}if(this.renderDebug){this.renderBounds(camera,cameraOffsetX,cameraOffsetY)}if(globalAlpha>-1){this._game.stage.context.globalAlpha=globalAlpha}return true};Sprite.prototype.renderBounds=function(camera,cameraOffsetX,cameraOffsetY){this._dx=cameraOffsetX+(this.bounds.topLeft.x-camera.worldView.x);this._dy=cameraOffsetY+(this.bounds.topLeft.y-camera.worldView.y);this._game.stage.context.fillStyle=this.renderDebugColor;this._game.stage.context.fillRect(this._dx,this._dy,this._dw,this._dh);this._game.stage.context.fillStyle=this.renderDebugPointColor;var hw=this.bounds.halfWidth*this.scale.x;var hh=this.bounds.halfHeight*this.scale.y;var sw=(this.bounds.width*this.scale.x)-1;var sh=(this.bounds.height*this.scale.y)-1;this._game.stage.context.fillRect(this._dx,this._dy,1,1);this._game.stage.context.fillRect(this._dx+hw,this._dy,1,1);this._game.stage.context.fillRect(this._dx+sw,this._dy,1,1);this._game.stage.context.fillRect(this._dx,this._dy+hh,1,1);this._game.stage.context.fillRect(this._dx+hw,this._dy+hh,1,1);this._game.stage.context.fillRect(this._dx+sw,this._dy+hh,1,1);this._game.stage.context.fillRect(this._dx,this._dy+sh,1,1);this._game.stage.context.fillRect(this._dx+hw,this._dy+sh,1,1);this._game.stage.context.fillRect(this._dx+sw,this._dy+sh,1,1)};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.restart=function(){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.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};Animation.prototype.onComplete=function(){this.isPlaying=false;this.isFinished=true};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<frameWidth||height<frameHeight||total===0){return null}var data=new Phaser.FrameData();var x=0;var y=0;for(var i=0;i<total;i++){data.addFrame(new Phaser.Frame(x,y,frameWidth,frameHeight,""));x+=frameWidth;if(x===width){x=0;y+=frameHeight}}return data};AnimationLoader.parseJSONData=function parseJSONData(game,json){var data=new Phaser.FrameData();var frames=json;var newFrame;for(var i=0;i<frames.length;i++){newFrame=data.addFrame(new Phaser.Frame(frames[i].frame.x,frames[i].frame.y,frames[i].frame.w,frames[i].frame.h,frames[i].filename));newFrame.setTrim(frames[i].trimmed,frames[i].sourceSize.w,frames[i].sourceSize.h,frames[i].spriteSourceSize.x,frames[i].spriteSourceSize.y,frames[i].spriteSourceSize.w,frames[i].spriteSourceSize.h)}return data};return AnimationLoader})();Phaser.AnimationLoader=AnimationLoader})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Frame=(function(){function Frame(x,y,width,height,name){this.name="";this.rotated=false;this.rotationDirection="cw";this.x=x;this.y=y;this.width=width;this.height=height;this.name=name;this.rotated=false;this.trimmed=false}Frame.prototype.setRotation=function(rotated,rotationDirection){};Frame.prototype.setTrim=function(trimmed,actualWidth,actualHeight,destX,destY,destWidth,destHeight){this.trimmed=trimmed;this.sourceSizeW=actualWidth;this.sourceSizeH=actualHeight;this.spriteSourceSizeX=destX;this.spriteSourceSizeY=destY;this.spriteSourceSizeW=destWidth;this.spriteSourceSizeH=destHeight};return Frame})();Phaser.Frame=Frame})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var FrameData=(function(){function FrameData(){this._frames=[];this._frameNames=[]}Object.defineProperty(FrameData.prototype,"total",{get:function(){return this._frames.length},enumerable:true,configurable:true});FrameData.prototype.addFrame=function(frame){frame.index=this._frames.length;this._frames.push(frame);if(frame.name!==""){this._frameNames[frame.name]=frame.index}return frame};FrameData.prototype.getFrame=function(index){if(this._frames[index]){return this._frames[index]}return null};FrameData.prototype.getFrameByName=function(name){if(this._frameNames[name]>=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;i<this._frames.length;i++){output.push(i)}return output};FrameData.prototype.getFrameIndexesByName=function(input){var output=[];for(var i=0;i<input.length;i++){if(this.getFrameByName(input[i])){output.push(this.getFrameByName(input[i]).index)}}return output};FrameData.prototype.getAllFrames=function(){return this._frames};FrameData.prototype.getFrames=function(range){var output=[];for(var i=0;i<range.length;i++){output.push(this._frames[i])}return output};return FrameData})();Phaser.FrameData=FrameData})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var AnimationManager=(function(){function AnimationManager(game,parent){this._frameData=null;this.currentFrame=null;this._game=game;this._parent=parent;this._anims={}}AnimationManager.prototype.loadFrameData=function(frameData){this._frameData=frameData;this.frame=0};AnimationManager.prototype.add=function(name,frames,frameRate,loop,useNumericIndex){if(typeof frames==="undefined"){frames=null}if(typeof frameRate==="undefined"){frameRate=60}if(typeof loop==="undefined"){loop=false}if(typeof useNumericIndex==="undefined"){useNumericIndex=true}if(this._frameData==null){return}if(frames==null){frames=this._frameData.getFrameIndexes()}else{if(this.validateFrames(frames,useNumericIndex)==false){return}}if(useNumericIndex==false){frames=this._frameData.getFrameIndexesByName(frames)}this._anims[name]=new Phaser.Animation(this._game,this._parent,this._frameData,name,frames,frameRate,loop);this.currentAnim=this._anims[name]};AnimationManager.prototype.validateFrames=function(frames,useNumericIndex){for(var i=0;i<frames.length;i++){if(useNumericIndex==true){if(frames[i]>this._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]){if(this.currentAnim==this._anims[name]){if(this.currentAnim.isPlaying==false){this.currentAnim.play(frameRate,loop)}}else{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 CameraManager=(function(){function CameraManager(game,x,y,width,height){this._game=game;this._cameras=[];this.current=this.addCamera(x,y,width,height)}CameraManager.prototype.getAll=function(){return this._cameras};CameraManager.prototype.update=function(){this._cameras.forEach(function(camera){return camera.update()})};CameraManager.prototype.render=function(){this._cameras.forEach(function(camera){return camera.render()})};CameraManager.prototype.addCamera=function(x,y,width,height){var newCam=new Phaser.Camera(this._game,this._cameras.length,x,y,width,height);this._cameras.push(newCam);return newCam};CameraManager.prototype.removeCamera=function(id){if(this._cameras[id]){if(this.current===this._cameras[id]){this.current=null}this._cameras.splice(id,1);return true}else{return false}};CameraManager.prototype.destroy=function(){this._cameras.length=0;this.current=this.addCamera(0,0,this._game.stage.width,this._game.stage.height)};return CameraManager})();Phaser.CameraManager=CameraManager})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Point=(function(){function Point(x,y){if(typeof x==="undefined"){x=0}if(typeof y==="undefined"){y=0}this.setTo(x,y)}Point.prototype.add=function(toAdd,output){if(typeof output==="undefined"){output=new Point()}return output.setTo(this.x+toAdd.x,this.y+toAdd.y)};Point.prototype.addTo=function(x,y){if(typeof x==="undefined"){x=0}if(typeof y==="undefined"){y=0}return this.setTo(this.x+x,this.y+y)};Point.prototype.subtractFrom=function(x,y){if(typeof x==="undefined"){x=0}if(typeof y==="undefined"){y=0}return this.setTo(this.x-x,this.y-y)};Point.prototype.invert=function(){return this.setTo(this.y,this.x)};Point.prototype.clamp=function(min,max){this.clampX(min,max);this.clampY(min,max);return this};Point.prototype.clampX=function(min,max){this.x=Math.max(Math.min(this.x,max),min);return this};Point.prototype.clampY=function(min,max){this.x=Math.max(Math.min(this.x,max),min);this.y=Math.max(Math.min(this.y,max),min);return this};Point.prototype.clone=function(output){if(typeof output==="undefined"){output=new Point()}return output.setTo(this.x,this.y)};Point.prototype.copyFrom=function(source){return this.setTo(source.x,source.y)};Point.prototype.copyTo=function(target){return target.setTo(this.x,this.y)};Point.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)}};Point.distanceBetween=function distanceBetween(pointA,pointB,round){if(typeof round==="undefined"){round=false}var dx=pointA.x-pointB.x;var dy=pointA.y-pointB.y;if(round===true){return Math.round(Math.sqrt(dx*dx+dy*dy))}else{return Math.sqrt(dx*dx+dy*dy)}};Point.prototype.distanceCompare=function(target,distance){if(this.distanceTo(target)>=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._tempX=null;this._tempY=null;this._tempWidth=null;this._tempHeight=null;this._width=0;this._height=0;this._halfWidth=0;this._halfHeight=0;this.length=0;this._width=width;if(width>0){this._halfWidth=Math.round(width/2)}this._height=height;if(height>0){this._halfHeight=Math.round(height/2)}this.length=Math.max(this._width,this._height);this.topLeft=new Phaser.MicroPoint(x,y,this);this.topCenter=new Phaser.MicroPoint(x+this._halfWidth,y,this);this.topRight=new Phaser.MicroPoint(x+this._width-1,y,this);this.leftCenter=new Phaser.MicroPoint(x,y+this._halfHeight,this);this.center=new Phaser.MicroPoint(x+this._halfWidth,y+this._halfHeight,this);this.rightCenter=new Phaser.MicroPoint(x+this._width-1,y+this._halfHeight,this);this.bottomLeft=new Phaser.MicroPoint(x,y+this._height-1,this);this.bottomCenter=new Phaser.MicroPoint(x+this._halfWidth,y+this._height-1,this);this.bottomRight=new Phaser.MicroPoint(x+this._width-1,y+this._height-1,this)}Object.defineProperty(Rectangle.prototype,"x",{get:function(){return this.topLeft.x},set:function(value){this.topLeft.x=value},enumerable:true,configurable:true});Object.defineProperty(Rectangle.prototype,"y",{get:function(){return this.topLeft.y},set:function(value){this.topLeft.y=value},enumerable:true,configurable:true});Rectangle.prototype.updateBounds=function(){if(this._tempWidth!==null){this._width=this._tempWidth;this._halfWidth=0;if(this._width>0){this._halfWidth=Math.round(this._width/2)}}if(this._tempHeight!==null){this._height=this._tempHeight;this._halfHeight=0;if(this._height>0){this._halfHeight=Math.round(this._height/2)}}this.length=Math.max(this._width,this._height);if(this._tempX!==null&&this._tempY!==null){this.topLeft.setTo(this._tempX,this._tempY,false)}else{if(this._tempX!==null&&this._tempY==null){this.topLeft.setTo(this._tempX,this.topLeft.y,false)}else{if(this._tempX==null&&this._tempY!==null){this.topLeft.setTo(this.topLeft.x,this._tempY,false)}else{this.topLeft.setTo(this.x,this.y,false)}}}this.topCenter.setTo(this.x+this._halfWidth,this.y,false);this.topRight.setTo(this.x+this._width-1,this.y,false);this.leftCenter.setTo(this.x,this.y+this._halfHeight,false);this.center.setTo(this.x+this._halfWidth,this.y+this._halfHeight,false);this.rightCenter.setTo(this.x+this._width-1,this.y+this._halfHeight,false);this.bottomLeft.setTo(this.x,this.y+this._height-1,false);this.bottomCenter.setTo(this.x+this._halfWidth,this.y+this._height-1,false);this.bottomRight.setTo(this.x+this._width-1,this.y+this._height-1,false);this._tempX=null;this._tempY=null;this._tempWidth=null;this._tempHeight=null};Object.defineProperty(Rectangle.prototype,"width",{get:function(){return this._width},set:function(value){this._width=value;this._halfWidth=Math.round(value/2);this.updateBounds()},enumerable:true,configurable:true});Object.defineProperty(Rectangle.prototype,"height",{get:function(){return this._height},set:function(value){this._height=value;this._halfHeight=Math.round(value/2);this.updateBounds()},enumerable:true,configurable:true});Object.defineProperty(Rectangle.prototype,"halfWidth",{get:function(){return this._halfWidth},enumerable:true,configurable:true});Object.defineProperty(Rectangle.prototype,"halfHeight",{get:function(){return this._halfHeight},enumerable:true,configurable:true});Object.defineProperty(Rectangle.prototype,"bottom",{get:function(){return this.bottomCenter.y},set:function(value){if(value<this.y){this._tempHeight=0}else{this._tempHeight=this.y+value}this.updateBounds()},enumerable:true,configurable:true});Object.defineProperty(Rectangle.prototype,"left",{get:function(){return this.x},set:function(value){var diff=this.x-value;if(this._width+diff<0){this._tempWidth=0;this._tempX=value}else{this._tempWidth=this._width+diff;this._tempX=value}this.updateBounds()},enumerable:true,configurable:true});Object.defineProperty(Rectangle.prototype,"right",{get:function(){return this.rightCenter.x},set:function(value){if(value<this.topLeft.x){this._tempWidth=0}else{this._tempWidth=(value-this.topLeft.x)}this.updateBounds()},enumerable:true,configurable:true});Rectangle.prototype.size=function(output){if(typeof output==="undefined"){output=new Phaser.Point()}return output.setTo(this._width,this._height)};Object.defineProperty(Rectangle.prototype,"volume",{get:function(){return this._width*this._height},enumerable:true,configurable:true});Object.defineProperty(Rectangle.prototype,"perimeter",{get:function(){return(this._width*2)+(this._height*2)},enumerable:true,configurable:true});Object.defineProperty(Rectangle.prototype,"top",{get:function(){return this.topCenter.y},set:function(value){var diff=this.topCenter.y-value;if(this._height+diff<0){this._tempHeight=0;this._tempY=value}else{this._tempHeight=this._height+diff;this._tempY=value}this.updateBounds()},enumerable:true,configurable:true});Rectangle.prototype.clone=function(output){if(typeof output==="undefined"){output=new Rectangle()}return output.setTo(this.x,this.y,this.width,this.height)};Rectangle.prototype.contains=function(x,y){if(x>=this.topLeft.x&&x<=this.topRight.x&&y>=this.topLeft.y&&y<=this.bottomRight.y){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.topLeft.x&&rect.y>=this.topLeft.y&&rect.rightCenter.x<=this.rightCenter.x&&rect.bottomCenter.y<=this.bottomCenter.y){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.topLeft.equals(toCompare.topLeft)&&this.bottomRight.equals(toCompare.bottomRight)){return true}return false};Rectangle.prototype.inflate=function(dx,dy){this._tempX=this.topLeft.x-dx;this._tempWidth=this._width+(2*dx);this._tempY=this.topLeft.y-dy;this._tempHeight=this._height+(2*dy);this.updateBounds();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.topLeft.x,this.topLeft.x);output.y=Math.max(toIntersect.topLeft.y,this.topLeft.y);output.width=Math.min(toIntersect.rightCenter.x,this.rightCenter.x)-output.x;output.height=Math.min(toIntersect.bottomCenter.y,this.bottomCenter.y)-output.y}return output};Rectangle.prototype.intersects=function(r2,t){if(typeof t==="undefined"){t=0}return !(r2.left>this.right+t||r2.right<this.left-t||r2.top>this.bottom+t||r2.bottom<this.top-t)};Object.defineProperty(Rectangle.prototype,"isEmpty",{get:function(){if(this.width<1||this.height<1){return true}return false},enumerable:true,configurable:true});Rectangle.prototype.offset=function(dx,dy){if(!isNaN(dx)&&!isNaN(dy)){this.x+=dx;this.y+=dy}return this};Rectangle.prototype.offsetPoint=function(point){return this.offset(point.x,point.y)};Rectangle.prototype.setEmpty=function(){return this.setTo(0,0,0,0)};Rectangle.prototype.setTo=function(x,y,width,height){this._tempX=x;this._tempY=y;this._tempWidth=width;this._tempHeight=height;this.updateBounds();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(value<this.y){this._radius=0;this._diameter=0}else{this.radius=value-this.y}}},enumerable:true,configurable:true});Object.defineProperty(Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(value){if(!isNaN(value)){if(value<this.x){this.radius=this.x-value}else{this._radius=0;this._diameter=0}}},enumerable:true,configurable:true});Object.defineProperty(Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(value){if(!isNaN(value)){if(value>this.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<l){basic=members[i++];if((basic!=null)&&basic.exists){if(basic.isGroup){this.add(basic,List)}else{QuadTree._object=basic;if(QuadTree._object.exists&&QuadTree._object.allowCollisions){QuadTree._objectLeftEdge=QuadTree._object.x;QuadTree._objectTopEdge=QuadTree._object.y;QuadTree._objectRightEdge=QuadTree._object.x+QuadTree._object.width;QuadTree._objectBottomEdge=QuadTree._object.y+QuadTree._object.height;this.addObject()}}}}}else{QuadTree._object=ObjectOrGroup;if(QuadTree._object.exists&&QuadTree._object.allowCollisions){QuadTree._objectLeftEdge=QuadTree._object.x;QuadTree._objectTopEdge=QuadTree._object.y;QuadTree._objectRightEdge=QuadTree._object.x+QuadTree._object.width;QuadTree._objectBottomEdge=QuadTree._object.y+QuadTree._object.height;this.addObject()}}};QuadTree.prototype.addObject=function(){if(!this._canSubdivide||((this._leftEdge>=QuadTree._objectLeftEdge)&&(this._rightEdge<=QuadTree._objectRightEdge)&&(this._topEdge>=QuadTree._objectTopEdge)&&(this._bottomEdge<=QuadTree._objectBottomEdge))){this.addToList();return}if((QuadTree._objectLeftEdge>this._leftEdge)&&(QuadTree._objectRightEdge<this._midpointX)){if((QuadTree._objectTopEdge>this._topEdge)&&(QuadTree._objectBottomEdge<this._midpointY)){if(this._northWestTree==null){this._northWestTree=new QuadTree(this._leftEdge,this._topEdge,this._halfWidth,this._halfHeight,this)}this._northWestTree.addObject();return}if((QuadTree._objectTopEdge>this._midpointY)&&(QuadTree._objectBottomEdge<this._bottomEdge)){if(this._southWestTree==null){this._southWestTree=new QuadTree(this._leftEdge,this._midpointY,this._halfWidth,this._halfHeight,this)}this._southWestTree.addObject();return}}if((QuadTree._objectLeftEdge>this._midpointX)&&(QuadTree._objectRightEdge<this._rightEdge)){if((QuadTree._objectTopEdge>this._topEdge)&&(QuadTree._objectBottomEdge<this._midpointY)){if(this._northEastTree==null){this._northEastTree=new QuadTree(this._midpointX,this._topEdge,this._halfWidth,this._halfHeight,this)}this._northEastTree.addObject();return}if((QuadTree._objectTopEdge>this._midpointY)&&(QuadTree._objectBottomEdge<this._bottomEdge)){if(this._southEastTree==null){this._southEastTree=new QuadTree(this._midpointX,this._midpointY,this._halfWidth,this._halfHeight,this)}this._southEastTree.addObject();return}}if((QuadTree._objectRightEdge>this._leftEdge)&&(QuadTree._objectLeftEdge<this._midpointX)&&(QuadTree._objectBottomEdge>this._topEdge)&&(QuadTree._objectTopEdge<this._midpointY)){if(this._northWestTree==null){this._northWestTree=new QuadTree(this._leftEdge,this._topEdge,this._halfWidth,this._halfHeight,this)}this._northWestTree.addObject()}if((QuadTree._objectRightEdge>this._midpointX)&&(QuadTree._objectLeftEdge<this._rightEdge)&&(QuadTree._objectBottomEdge>this._topEdge)&&(QuadTree._objectTopEdge<this._midpointY)){if(this._northEastTree==null){this._northEastTree=new QuadTree(this._midpointX,this._topEdge,this._halfWidth,this._halfHeight,this)}this._northEastTree.addObject()}if((QuadTree._objectRightEdge>this._midpointX)&&(QuadTree._objectLeftEdge<this._rightEdge)&&(QuadTree._objectBottomEdge>this._midpointY)&&(QuadTree._objectTopEdge<this._bottomEdge)){if(this._southEastTree==null){this._southEastTree=new QuadTree(this._midpointX,this._midpointY,this._halfWidth,this._halfHeight,this)}this._southEastTree.addObject()}if((QuadTree._objectRightEdge>this._leftEdge)&&(QuadTree._objectLeftEdge<this._midpointX)&&(QuadTree._objectBottomEdge>this._midpointY)&&(QuadTree._objectTopEdge<this._bottomEdge)){if(this._southWestTree==null){this._southWestTree=new QuadTree(this._leftEdge,this._midpointY,this._halfWidth,this._halfHeight,this)}this._southWestTree.addObject()}};QuadTree.prototype.addToList=function(){var ot;if(QuadTree._list==QuadTree.A_LIST){if(this._tailA.object!=null){ot=this._tailA;this._tailA=new Phaser.LinkedList();ot.next=this._tailA}this._tailA.object=QuadTree._object}else{if(this._tailB.object!=null){ot=this._tailB;this._tailB=new Phaser.LinkedList();ot.next=this._tailB}this._tailB.object=QuadTree._object}if(!this._canSubdivide){return}if(this._northWestTree!=null){this._northWestTree.addToList()}if(this._northEastTree!=null){this._northEastTree.addToList()}if(this._southEastTree!=null){this._southEastTree.addToList()}if(this._southWestTree!=null){this._southWestTree.addToList()}};QuadTree.prototype.execute=function(){var overlapProcessed=false;var iterator;if(this._headA.object!=null){iterator=this._headA;while(iterator!=null){QuadTree._object=iterator.object;if(QuadTree._useBothLists){QuadTree._iterator=this._headB}else{QuadTree._iterator=iterator.next}if(QuadTree._object.exists&&(QuadTree._object.allowCollisions>0)&&(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.x<QuadTree._object.last.x)?QuadTree._object.x:QuadTree._object.last.x;QuadTree._objectHullY=(QuadTree._object.y<QuadTree._object.last.y)?QuadTree._object.y:QuadTree._object.last.y;QuadTree._objectHullWidth=QuadTree._object.x-QuadTree._object.last.x;QuadTree._objectHullWidth=QuadTree._object.width+((QuadTree._objectHullWidth>0)?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.x<checkObject.last.x)?checkObject.x:checkObject.last.x;QuadTree._checkObjectHullY=(checkObject.y<checkObject.last.y)?checkObject.y:checkObject.last.y;QuadTree._checkObjectHullWidth=checkObject.x-checkObject.last.x;QuadTree._checkObjectHullWidth=checkObject.width+((QuadTree._checkObjectHullWidth>0)?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._objectHullX<QuadTree._checkObjectHullX+QuadTree._checkObjectHullWidth)&&(QuadTree._objectHullY+QuadTree._objectHullHeight>QuadTree._checkObjectHullY)&&(QuadTree._objectHullY<QuadTree._checkObjectHullY+QuadTree._checkObjectHullHeight)){if((QuadTree._processingCallback==null)||QuadTree._processingCallback(QuadTree._object,checkObject)){overlapProcessed=true}if(overlapProcessed&&(QuadTree._notifyCallback!=null)){QuadTree._notifyCallback(QuadTree._object,checkObject)}}QuadTree._iterator=QuadTree._iterator.next}return overlapProcessed};return QuadTree})(Phaser.Rectangle);Phaser.QuadTree=QuadTree})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Collision=(function(){function Collision(game){this._game=game}Collision.LEFT=1;Collision.RIGHT=16;Collision.UP=256;Collision.DOWN=4096;Collision.NONE=0;Collision.CEILING=Collision.UP;Collision.FLOOR=Collision.DOWN;Collision.WALL=Collision.LEFT|Collision.RIGHT;Collision.ANY=Collision.LEFT|Collision.RIGHT|Collision.UP|Collision.DOWN;Collision.OVERLAP_BIAS=4;Collision.lineToLine=function lineToLine(line1,line2,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}var denom=(line1.x1-line1.x2)*(line2.y1-line2.y2)-(line1.y1-line1.y2)*(line2.x1-line2.x2);if(denom!==0){output.result=true;output.x=((line1.x1*line1.y2-line1.y1*line1.x2)*(line2.x1-line2.x2)-(line1.x1-line1.x2)*(line2.x1*line2.y2-line2.y1*line2.x2))/denom;output.y=((line1.x1*line1.y2-line1.y1*line1.x2)*(line2.y1-line2.y2)-(line1.y1-line1.y2)*(line2.x1*line2.y2-line2.y1*line2.x2))/denom}return output};Collision.lineToLineSegment=function lineToLineSegment(line1,seg,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}var denom=(line1.x1-line1.x2)*(seg.y1-seg.y2)-(line1.y1-line1.y2)*(seg.x1-seg.x2);if(denom!==0){output.x=((line1.x1*line1.y2-line1.y1*line1.x2)*(seg.x1-seg.x2)-(line1.x1-line1.x2)*(seg.x1*seg.y2-seg.y1*seg.x2))/denom;output.y=((line1.x1*line1.y2-line1.y1*line1.x2)*(seg.y1-seg.y2)-(line1.y1-line1.y2)*(seg.x1*seg.y2-seg.y1*seg.x2))/denom;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((output.x<=maxX&&output.x>=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.x1){output.result=false}if(!(ray.y1>=ray.y2)&&output.y<ray.y1){output.result=false}}return output};Collision.lineToCircle=function lineToCircle(line,circle,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}if(line.perp(circle.x,circle.y).length<=circle.radius){output.result=true}return output};Collision.lineToRectangle=function lineToRectangle(line,rect,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}this.lineToRawSegment(line,rect.x,rect.y,rect.right,rect.y,output);if(output.result===true){return output}this.lineToRawSegment(line,rect.x,rect.y,rect.x,rect.bottom,output);if(output.result===true){return output}this.lineToRawSegment(line,rect.x,rect.bottom,rect.right,rect.bottom,output);if(output.result===true){return output}this.lineToRawSegment(line,rect.right,rect.y,rect.right,rect.bottom,output);return output};Collision.lineSegmentToLineSegment=function lineSegmentToLineSegment(line1,line2,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}this.lineToLineSegment(line1,line2,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.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&&cx<rect1.right)&&(cy>rect1.y&&cy<rect1.bottom)){output.result=true}return output};Collision.rectangleToCircle=function rectangleToCircle(rect,circle,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}return this.circleToRectangle(circle,rect,output)};Collision.circleToCircle=function circleToCircle(circle1,circle2,output){if(typeof output==="undefined"){output=new Phaser.IntersectResult()}output.result=((circle1.radius+circle2.radius)*(circle1.radius+circle2.radius))>=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.x<obj2rect.x+obj2rect.width)&&(obj1rect.y+obj1rect.height>obj2rect.y)&&(obj1rect.y<obj2rect.y+obj2rect.height)){var maxOverlap=obj1deltaAbs+obj2deltaAbs+Collision.OVERLAP_BIAS;if(obj1delta>obj2delta){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(obj1delta<obj2delta){overlap=Object1.x-Object2.width-Object2.x;if((-overlap>maxOverlap)||!(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.x<obj2rect.x+obj2rect.width)&&(obj1rect.y+obj1rect.height>obj2rect.y)&&(obj1rect.y<obj2rect.y+obj2rect.height)){var maxOverlap=obj1deltaAbs+obj2deltaAbs+Collision.OVERLAP_BIAS;if(obj1delta>obj2delta){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(obj1delta<obj2delta){overlap=Object1.y-Object2.height-Object2.y;if((-overlap>maxOverlap)||!(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<obj2delta)){Object2.x+=Object1.x-Object1.last.x}}}}return true}else{return false}};Collision.distance=function distance(x1,y1,x2,y2){return Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))};Collision.distanceSquared=function distanceSquared(x1,y1,x2,y2){return(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)};return Collision})();Phaser.Collision=Collision})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var DynamicTexture=(function(){function DynamicTexture(game,key,width,height){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._game=game;this.canvas=document.createElement("canvas");this.canvas.width=width;this.canvas.height=height;this.context=this.canvas.getContext("2d");this.bounds=new Phaser.Rectangle(0,0,width,height)}DynamicTexture.prototype.getPixel=function(x,y){var imageData=this.context.getImageData(x,y,1,1);return this.getColor(imageData.data[0],imageData.data[1],imageData.data[2])};DynamicTexture.prototype.getPixel32=function(x,y){var imageData=this.context.getImageData(x,y,1,1);return this.getColor32(imageData.data[3],imageData.data[0],imageData.data[1],imageData.data[2])};DynamicTexture.prototype.getPixels=function(rect){return this.context.getImageData(rect.x,rect.y,rect.width,rect.height)};DynamicTexture.prototype.setPixel=function(x,y,color){this.context.fillStyle=color;this.context.fillRect(x,y,1,1)};DynamicTexture.prototype.setPixel32=function(x,y,color){this.context.fillStyle=color;this.context.fillRect(x,y,1,1)};DynamicTexture.prototype.setPixels=function(rect,input){this.context.putImageData(input,rect.x,rect.y)};DynamicTexture.prototype.fillRect=function(rect,color){this.context.fillStyle=color;this.context.fillRect(rect.x,rect.y,rect.width,rect.height)};DynamicTexture.prototype.pasteImage=function(key,frame,destX,destY,destWidth,destHeight){if(typeof frame==="undefined"){frame=-1}if(typeof destX==="undefined"){destX=0}if(typeof destY==="undefined"){destY=0}if(typeof destWidth==="undefined"){destWidth=null}if(typeof destHeight==="undefined"){destHeight=null}var texture=null;var frameData;this._sx=0;this._sy=0;this._dx=destX;this._dy=destY;if(frame>-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)<epsilon};GameMath.prototype.fuzzyLessThan=function(a,b,epsilon){if(typeof epsilon==="undefined"){epsilon=0.0001}return a<b+epsilon};GameMath.prototype.fuzzyGreaterThan=function(a,b,epsilon){if(typeof epsilon==="undefined"){epsilon=0.0001}return a>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;i<args.length;i++){avg+=args[i]}return avg/args.length};GameMath.prototype.slam=function(value,target,epsilon){if(typeof epsilon==="undefined"){epsilon=0.0001}return(Math.abs(value-target)<epsilon)?target:value};GameMath.prototype.percentageMinMax=function(val,max,min){if(typeof min==="undefined"){min=0}val-=min;max-=min;if(!max){return 0}else{return val/max}};GameMath.prototype.sign=function(n){if(n){return n/Math.abs(n)}else{return 0}};GameMath.prototype.truncate=function(n){return(n>0)?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(val<min){val+=max}return val};GameMath.prototype.arithWrap=function(value,max,min){if(typeof min==="undefined"){min=0}max-=min;if(max==0){return min}return value-max*Math.floor((value-min)/max)};GameMath.prototype.clamp=function(input,max,min){if(typeof min==="undefined"){min=0}return Math.max(min,Math.min(max,input))};GameMath.prototype.snapTo=function(input,gap,start){if(typeof start==="undefined"){start=0}if(gap==0){return input}input-=start;input=gap*Math.round(input/gap);return start+input};GameMath.prototype.snapToFloor=function(input,gap,start){if(typeof start==="undefined"){start=0}if(gap==0){return input}input-=start;input=gap*Math.floor(input/gap);return start+input};GameMath.prototype.snapToCeil=function(input,gap,start){if(typeof start==="undefined"){start=0}if(gap==0){return input}input-=start;input=gap*Math.ceil(input/gap);return start+input};GameMath.prototype.snapToInArray=function(input,arr,sort){if(typeof sort==="undefined"){sort=true}if(sort){arr.sort()}if(input<arr[0]){return arr[0]}var i=1;while(arr[i]<input){i++}var low=arr[i-1];var high=(i<arr.length)?arr[i]:Number.POSITIVE_INFINITY;return((high-input)<=(input-low))?high:low};GameMath.prototype.roundTo=function(value,place,base){if(typeof place==="undefined"){place=0}if(typeof base==="undefined"){base=10}var p=Math.pow(base,-place);return Math.round(value*p)/p};GameMath.prototype.floorTo=function(value,place,base){if(typeof place==="undefined"){place=0}if(typeof base==="undefined"){base=10}var p=Math.pow(base,-place);return Math.floor(value*p)/p};GameMath.prototype.ceilTo=function(value,place,base){if(typeof place==="undefined"){place=0}if(typeof base==="undefined"){base=10}var p=Math.pow(base,-place);return Math.ceil(value*p)/p};GameMath.prototype.interpolateFloat=function(a,b,weight){return(b-a)*weight+a};GameMath.prototype.radiansToDegrees=function(angle){return angle*GameMath.RAD_TO_DEG};GameMath.prototype.degreesToRadians=function(angle){return angle*GameMath.DEG_TO_RAD};GameMath.prototype.angleBetween=function(x1,y1,x2,y2){return Math.atan2(y2-y1,x2-x1)};GameMath.prototype.normalizeAngle=function(angle,radians){if(typeof radians==="undefined"){radians=true}var rd=(radians)?GameMath.PI:180;return this.wrap(angle,rd,-rd)};GameMath.prototype.nearestAngleBetween=function(a1,a2,radians){if(typeof radians==="undefined"){radians=true}var rd=(radians)?GameMath.PI:180;a1=this.normalizeAngle(a1,radians);a2=this.normalizeAngle(a2,radians);if(a1<-rd/2&&a2>rd/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<n){r=m;m=n;n=r}while(true){r=m%n;if(!r){return n}m=n;n=r}return 1};GameMath.prototype.LCM=function(m,n){return(m*n)/this.GCD(m,n)};GameMath.prototype.factorial=function(value){if(value==0){return 1}var res=value;while(--value){res*=value}return res};GameMath.prototype.gammaFunction=function(value){return this.factorial(value-1)};GameMath.prototype.fallingFactorial=function(base,exp){return this.factorial(base)/this.factorial(base-exp)};GameMath.prototype.risingFactorial=function(base,exp){return this.factorial(base+exp-1)/this.factorial(base-1)};GameMath.prototype.binCoef=function(n,k){return this.fallingFactorial(n,k)/this.factorial(k)};GameMath.prototype.risingBinCoef=function(n,k){return this.risingFactorial(n,k)/this.factorial(k)};GameMath.prototype.chanceRoll=function(chance){if(typeof chance==="undefined"){chance=50}if(chance<=0){return false}else{if(chance>=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(value<min){value=min}return value};GameMath.prototype.wrapValue=function(value,amount,max){var diff;value=Math.abs(value);amount=Math.abs(amount);max=Math.abs(max);diff=(value+amount)%max;return diff};GameMath.prototype.randomSign=function(){return(Math.random()>0.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(angle<min){result=min}}return result};GameMath.prototype.linearInterpolation=function(v,k){var m=v.length-1;var f=m*k;var i=Math.floor(f);if(k<0){return this.linear(v[0],v[1],f)}if(k>1){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[m<i+1?m:i+1],v[m<i+2?m:i+2],f-i)}};GameMath.prototype.linear=function(p0,p1,t){return(p1-p0)*t+p0};GameMath.prototype.bernstein=function(n,i){return this.factorial(n)/this.factorial(i)/this.factorial(n-i)};GameMath.prototype.catmullRom=function(p0,p1,p2,p3,t){var v0=(p2-p0)*0.5,v1=(p3-p1)*0.5,t2=t*t,t3=t*t2;return(2*p1-2*p2+v0+v1)*t3+(-3*p1+3*p2-2*v0-v1)*t2+v0*t+p1};GameMath.prototype.difference=function(a,b){return Math.abs(a-b)};GameMath.prototype.random=function(){return this.globalSeed=this.srand(this.globalSeed)};GameMath.prototype.srand=function(Seed){return((69621*(Seed*2147483647))%2147483647)/2147483647};GameMath.prototype.getRandom=function(Objects,StartIndex,Length){if(typeof StartIndex==="undefined"){StartIndex=0}if(typeof Length==="undefined"){Length=0}if(Objects!=null){var l=Length;if((l==0)||(l>Objects.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<length;c++){cos-=sin*frq;sin+=cos*frq;this.cosTable[c]=cos;this.sinTable[c]=sin}return this.sinTable};GameMath.prototype.vectorLength=function(dx,dy){return Math.sqrt(dx*dx+dy*dy)};GameMath.prototype.dotProduct=function(ax,ay,bx,by){return ax*bx+ay*by};return GameMath})();Phaser.GameMath=GameMath})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Group=(function(_super){__extends(Group,_super);function Group(game,MaxSize){if(typeof MaxSize==="undefined"){MaxSize=0}_super.call(this,game);this.isGroup=true;this.members=[];this.length=0;this._maxSize=MaxSize;this._marker=0;this._sortIndex=null}Group.ASCENDING=-1;Group.DESCENDING=1;Group.prototype.destroy=function(){if(this.members!=null){var basic;var i=0;while(i<this.length){basic=this.members[i++];if(basic!=null){basic.destroy()}}this.members.length=0}this._sortIndex=null};Group.prototype.update=function(){var basic;var i=0;while(i<this.length){basic=this.members[i++];if((basic!=null)&&basic.exists&&basic.active){basic.preUpdate();basic.update();basic.postUpdate()}}};Group.prototype.render=function(camera,cameraOffsetX,cameraOffsetY){var basic;var i=0;while(i<this.length){basic=this.members[i++];if((basic!=null)&&basic.exists&&basic.visible){basic.render(camera,cameraOffsetX,cameraOffsetY)}}};Object.defineProperty(Group.prototype,"maxSize",{get:function(){return this._maxSize},set:function(Size){this._maxSize=Size;if(this._marker>=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<l){basic=this.members[i++];if(basic!=null){basic.destroy()}}this.length=this.members.length=this._maxSize},enumerable:true,configurable:true});Group.prototype.add=function(Object){if(this.members.indexOf(Object)>=0){return Object}var i=0;var l=this.members.length;while(i<l){if(this.members[i]==null){this.members[i]=Object;if(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){if(ObjectClass==null){return null}return this.add(new ObjectClass())}else{basic=this.members[this._marker++];if(this._marker>=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(i<length){basic=this.members[i++];if(basic!=null){if(Recurse&&(basic.isGroup==true)){basic.setAll(VariableName,Value,Recurse)}else{basic[VariableName]=Value}}}};Group.prototype.callAll=function(FunctionName,Recurse){if(typeof Recurse==="undefined"){Recurse=true}var basic;var i=0;while(i<this.length){basic=this.members[i++];if(basic!=null){if(Recurse&&(basic.isGroup==true)){basic.callAll(FunctionName,Recurse)}else{basic[FunctionName]()}}}};Group.prototype.forEach=function(callback,Recurse){if(typeof Recurse==="undefined"){Recurse=false}var basic;var i=0;while(i<this.length){basic=this.members[i++];if(basic!=null){if(Recurse&&(basic.isGroup==true)){basic.forEach(callback,true)}else{callback.call(this,basic)}}}};Group.prototype.getFirstAvailable=function(ObjectClass){if(typeof ObjectClass==="undefined"){ObjectClass=null}var basic;var i=0;while(i<this.length){basic=this.members[i++];if((basic!=null)&&!basic.exists&&((ObjectClass==null)||(typeof basic===ObjectClass))){return basic}}return null};Group.prototype.getFirstNull=function(){var basic;var i=0;var l=this.members.length;while(i<l){if(this.members[i]==null){return i}else{i++}}return -1};Group.prototype.getFirstExtant=function(){var basic;var i=0;while(i<length){basic=this.members[i++];if((basic!=null)&&basic.exists){return basic}}return null};Group.prototype.getFirstAlive=function(){var basic;var i=0;while(i<this.length){basic=this.members[i++];if((basic!=null)&&basic.exists&&basic.alive){return basic}}return null};Group.prototype.getFirstDead=function(){var basic;var i=0;while(i<this.length){basic=this.members[i++];if((basic!=null)&&!basic.alive){return basic}}return null};Group.prototype.countLiving=function(){var count=-1;var basic;var i=0;while(i<this.length){basic=this.members[i++];if(basic!=null){if(count<0){count=0}if(basic.exists&&basic.alive){count++}}}return count};Group.prototype.countDead=function(){var count=-1;var basic;var i=0;while(i<this.length){basic=this.members[i++];if(basic!=null){if(count<0){count=0}if(!basic.alive){count++}}}return count};Group.prototype.getRandom=function(StartIndex,Length){if(typeof StartIndex==="undefined"){StartIndex=0}if(typeof Length==="undefined"){Length=0}if(Length==0){Length=this.length}return this._game.math.getRandom(this.members,StartIndex,Length)};Group.prototype.clear=function(){this.length=this.members.length=0};Group.prototype.kill=function(){var basic;var i=0;while(i<this.length){basic=this.members[i++];if((basic!=null)&&basic.exists){basic.kill()}}};Group.prototype.sortHandler=function(Obj1,Obj2){if(Obj1[this._sortIndex]<Obj2[this._sortIndex]){return this._sortOrder}else{if(Obj1[this._sortIndex]>Obj2[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();this._queueSize=0}Loader.prototype.reset=function(){this._queueSize=0};Object.defineProperty(Loader.prototype,"queueSize",{get:function(){return this._queueSize},enumerable:true,configurable:true});Loader.prototype.addImageFile=function(key,url){if(this.checkKeyExists(key)===false){this._queueSize++;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._queueSize++;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._queueSize++;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._queueSize++;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._queueSize++;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._queueSize++;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._queueSize++;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.progress>1){this.progress=1}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)}}};Loader.prototype.checkKeyExists=function(key){if(this._fileList[key]){return true}else{return false}};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 Sound=(function(){function Sound(context,gainNode,data,volume,loop){if(typeof volume==="undefined"){volume=1}if(typeof loop==="undefined"){loop=false}this.loop=false;this.isPlaying=false;this.isDecoding=false;this._context=context;this._gainNode=gainNode;this._buffer=data;this._volume=volume;this.loop=loop;if(this._context!==null){this._localGainNode=this._context.createGainNode();this._localGainNode.connect(this._gainNode);this._localGainNode.gain.value=this._volume}if(this._buffer===null){this.isDecoding=true}else{this.play()}}Sound.prototype.setDecodedBuffer=function(data){this._buffer=data;this.isDecoding=false;this.play()};Sound.prototype.play=function(){if(this._buffer===null||this.isDecoding===true){return}this._sound=this._context.createBufferSource();this._sound.buffer=this._buffer;this._sound.connect(this._localGainNode);if(this.loop){this._sound.loop=true}this._sound.noteOn(0);this.duration=this._sound.buffer.duration;this.isPlaying=true};Sound.prototype.stop=function(){if(this.isPlaying===true){this.isPlaying=false;this._sound.noteOff(0)}};Sound.prototype.mute=function(){this._localGainNode.gain.value=0};Sound.prototype.unmute=function(){this._localGainNode.gain.value=this._volume};Object.defineProperty(Sound.prototype,"volume",{get:function(){return this._volume},set:function(value){this._volume=value;this._localGainNode.gain.value=this._volume},enumerable:true,configurable:true});return Sound})();Phaser.Sound=Sound})(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.2"})(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.disablePauseScreen=false;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.canvas.style.msTouchAction="none";this.canvas.style["touch-action"]="none";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(this.disablePauseScreen){return}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(time<this._startTime){return true}var elapsed=(time-this._startTime)/this._duration;elapsed=elapsed>1?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;i<this._chainedTweens.length;i++){this._chainedTweens[i].start()}return false}return true};return Tween})();Phaser.Tween=Tween})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var TweenManager=(function(){function TweenManager(game){this._game=game;this._tweens=[]}TweenManager.prototype.getAll=function(){return this._tweens};TweenManager.prototype.removeAll=function(){this._tweens.length=0};TweenManager.prototype.create=function(object){return new Phaser.Tween(object,this._game)};TweenManager.prototype.add=function(tween){tween.parent=this._game;this._tweens.push(tween);return tween};TweenManager.prototype.remove=function(tween){var i=this._tweens.indexOf(tween);if(i!==-1){this._tweens.splice(i,1)}};TweenManager.prototype.update=function(){if(this._tweens.length===0){return false}var i=0;var numTweens=this._tweens.length;while(i<numTweens){if(this._tweens[i].update(this._game.time.now)){i++}else{this._tweens.splice(i,1);numTweens--}}return true};return TweenManager})();Phaser.TweenManager=TweenManager})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var World=(function(){function World(game,width,height){this._game=game;this._cameras=new Phaser.CameraManager(this._game,0,0,width,height);this._game.camera=this._cameras.current;this.group=new Phaser.Group(this._game,0);this.bounds=new Phaser.Rectangle(0,0,width,height);this.worldDivisions=6}World.prototype.update=function(){this.group.preUpdate();this.group.update();this.group.postUpdate();this._cameras.update()};World.prototype.render=function(){this._cameras.render()};World.prototype.destroy=function(){this.group.destroy();this._cameras.destroy()};World.prototype.setSize=function(width,height,updateCameraBounds){if(typeof updateCameraBounds==="undefined"){updateCameraBounds=true}this.bounds.width=width;this.bounds.height=height;if(updateCameraBounds==true){this._game.camera.setBounds(0,0,width,height)}};Object.defineProperty(World.prototype,"width",{get:function(){return this.bounds.width},set:function(value){this.bounds.width=value},enumerable:true,configurable:true});Object.defineProperty(World.prototype,"height",{get:function(){return this.bounds.height},set:function(value){this.bounds.height=value},enumerable:true,configurable:true});Object.defineProperty(World.prototype,"centerX",{get:function(){return this.bounds.halfWidth},enumerable:true,configurable:true});Object.defineProperty(World.prototype,"centerY",{get:function(){return this.bounds.halfHeight},enumerable:true,configurable:true});Object.defineProperty(World.prototype,"randomX",{get:function(){return Math.round(Math.random()*this.bounds.width)},enumerable:true,configurable:true});Object.defineProperty(World.prototype,"randomY",{get:function(){return Math.round(Math.random()*this.bounds.height)},enumerable:true,configurable:true});World.prototype.addExistingCamera=function(cam){return cam};World.prototype.createCamera=function(x,y,width,height){return this._cameras.addCamera(x,y,width,height)};World.prototype.removeCamera=function(id){return this._cameras.removeCamera(id)};World.prototype.getAllCameras=function(){return this._cameras.getAll()};World.prototype.addExistingSprite=function(sprite){return this.group.add(sprite)};World.prototype.createSprite=function(x,y,key){if(typeof key==="undefined"){key=""}return this.group.add(new Phaser.Sprite(this._game,x,y,key))};World.prototype.createGeomSprite=function(x,y){return this.group.add(new Phaser.GeomSprite(this._game,x,y))};World.prototype.createDynamicTexture=function(key,width,height){return new Phaser.DynamicTexture(this._game,key,width,height)};World.prototype.createGroup=function(MaxSize){if(typeof MaxSize==="undefined"){MaxSize=0}return this.group.add(new Phaser.Group(this._game,MaxSize))};World.prototype.createTilemap=function(key,mapData,format,tileWidth,tileHeight){return this.group.add(new Phaser.Tilemap(this._game,key,mapData,format,tileWidth,tileHeight))};World.prototype.createParticle=function(){return new Phaser.Particle(this._game)};World.prototype.createEmitter=function(x,y,size){if(typeof x==="undefined"){x=0}if(typeof y==="undefined"){y=0}if(typeof size==="undefined"){size=0}return this.group.add(new Phaser.Emitter(this._game,x,y,size))};return World})();Phaser.World=World})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Device=(function(){function Device(){this.desktop=false;this.iOS=false;this.android=false;this.chromeOS=false;this.linux=false;this.macOS=false;this.windows=false;this.canvas=false;this.file=false;this.fileSystem=false;this.localStorage=false;this.webGL=false;this.worker=false;this.touch=false;this.css3D=false;this.arora=false;this.chrome=false;this.epiphany=false;this.firefox=false;this.ie=false;this.ieVersion=0;this.mobileSafari=false;this.midori=false;this.opera=false;this.safari=false;this.webApp=false;this.audioData=false;this.webaudio=false;this.ogg=false;this.mp3=false;this.wav=false;this.m4a=false;this.iPhone=false;this.iPhone4=false;this.iPad=false;this.pixelRatio=0;this._checkAudio();this._checkBrowser();this._checkCSS3D();this._checkDevice();this._checkFeatures();this._checkOS()}Device.prototype._checkOS=function(){var ua=navigator.userAgent;if(/Android/.test(ua)){this.android=true}else{if(/CrOS/.test(ua)){this.chromeOS=true}else{if(/iP[ao]d|iPhone/i.test(ua)){this.iOS=true}else{if(/Linux/.test(ua)){this.linux=true}else{if(/Mac OS/.test(ua)){this.macOS=true}else{if(/Windows/.test(ua)){this.windows=true}}}}}}if(this.windows||this.macOS||this.linux){this.desktop=true}};Device.prototype._checkFeatures=function(){this.canvas=!!window.CanvasRenderingContext2D;try{this.localStorage=!!localStorage.getItem}catch(error){this.localStorage=false}this.file=!!window.File&&!!window.FileReader&&!!window.FileList&&!!window.Blob;this.fileSystem=!!window.requestFileSystem;this.webGL=!!window.WebGLRenderingContext;this.worker=!!window.Worker;if("ontouchstart" in document.documentElement||window.navigator.msPointerEnabled){this.touch=true}};Device.prototype._checkBrowser=function(){var ua=navigator.userAgent;if(/Arora/.test(ua)){this.arora=true}else{if(/Chrome/.test(ua)){this.chrome=true}else{if(/Epiphany/.test(ua)){this.epiphany=true}else{if(/Firefox/.test(ua)){this.firefox=true}else{if(/Mobile Safari/.test(ua)){this.mobileSafari=true}else{if(/MSIE (\d+\.\d+);/.test(ua)){this.ie=true;this.ieVersion=parseInt(RegExp.$1)}else{if(/Midori/.test(ua)){this.midori=true}else{if(/Opera/.test(ua)){this.opera=true}else{if(/Safari/.test(ua)){this.safari=true}}}}}}}}}if(navigator.standalone){this.webApp=true}};Device.prototype._checkAudio=function(){this.audioData=!!(window.Audio);this.webaudio=!!(window.webkitAudioContext||window.AudioContext);var audioElement=document.createElement("audio");var result=false;try{if(result=!!audioElement.canPlayType){if(audioElement.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,"")){this.ogg=true}if(audioElement.canPlayType("audio/mpeg;").replace(/^no$/,"")){this.mp3=true}if(audioElement.canPlayType('audio/wav; codecs="1"').replace(/^no$/,"")){this.wav=true}if(audioElement.canPlayType("audio/x-m4a;")||audioElement.canPlayType("audio/aac;").replace(/^no$/,"")){this.m4a=true}}}catch(e){}};Device.prototype._checkDevice=function(){this.pixelRatio=window.devicePixelRatio||1;this.iPhone=navigator.userAgent.toLowerCase().indexOf("iphone")!=-1;this.iPhone4=(this.pixelRatio==2&&this.iPhone);this.iPad=navigator.userAgent.toLowerCase().indexOf("ipad")!=-1};Device.prototype._checkCSS3D=function(){var el=document.createElement("p");var has3d;var transforms={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(el,null);for(var t in transforms){if(el.style[t]!==undefined){el.style[t]="translate3d(1px,1px,1px)";has3d=window.getComputedStyle(el).getPropertyValue(transforms[t])}}document.body.removeChild(el);this.css3D=(has3d!==undefined&&has3d.length>0&&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<data.length;i++){n+=data.charCodeAt(i);h=0.02519603282416938*n;n=h>>>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;x<vendors.length&&!window.requestAnimationFrame;x++){window.requestAnimationFrame=window[vendors[x]+"RequestAnimationFrame"];window.cancelAnimationFrame=window[vendors[x]+"CancelAnimationFrame"]}this.start()}RequestAnimationFrame.prototype.setCallback=function(callback){this._callback=callback};RequestAnimationFrame.prototype.isUsingSetTimeOut=function(){return this._isSetTimeOut};RequestAnimationFrame.prototype.isUsingRAF=function(){if(this._isSetTimeOut===true){return false}else{return true}};RequestAnimationFrame.prototype.start=function(callback){if(typeof callback==="undefined"){callback=null}var _this=this;if(callback){this._callback=callback}if(!window.requestAnimationFrame){this._isSetTimeOut=true;this._timeOutID=window.setTimeout(function(){return _this.SetTimeoutUpdate()},0)}else{this._isSetTimeOut=false;window.requestAnimationFrame(function(){return _this.RAFUpdate()})}this.isRunning=true};RequestAnimationFrame.prototype.stop=function(){if(this._isSetTimeOut){clearTimeout(this._timeOutID)}else{window.cancelAnimationFrame}this.isRunning=false};RequestAnimationFrame.prototype.RAFUpdate=function(){var _this=this;this.currentTime=Date.now();if(this._callback){this._callback.call(this._callbackContext)}var timeToCall=Math.max(0,16-(this.currentTime-this.lastTime));window.requestAnimationFrame(function(){return _this.RAFUpdate()});this.lastTime=this.currentTime+timeToCall};RequestAnimationFrame.prototype.SetTimeoutUpdate=function(){var _this=this;this.currentTime=Date.now();if(this._callback){this._callback.call(this._callbackContext)}var timeToCall=Math.max(0,16-(this.currentTime-this.lastTime));this._timeOutID=window.setTimeout(function(){return _this.SetTimeoutUpdate()},timeToCall);this.lastTime=this.currentTime+timeToCall};return RequestAnimationFrame})();Phaser.RequestAnimationFrame=RequestAnimationFrame})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Input=(function(){function Input(game){this.x=0;this.y=0;this.scaleX=1;this.scaleY=1;this.worldX=0;this.worldY=0;this._game=game;this.mouse=new Phaser.Mouse(this._game);this.keyboard=new Phaser.Keyboard(this._game);this.touch=new Phaser.Touch(this._game);this.onDown=new Phaser.Signal();this.onUp=new Phaser.Signal()}Input.prototype.update=function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.worldX=this._game.camera.worldView.x+this.x;this.worldY=this._game.camera.worldView.y+this.y;this.mouse.update();this.touch.update()};Input.prototype.reset=function(){this.mouse.reset();this.keyboard.reset();this.touch.reset()};Input.prototype.getWorldX=function(camera){if(typeof camera==="undefined"){camera=this._game.camera}return camera.worldView.x+this.x};Input.prototype.getWorldY=function(camera){if(typeof camera==="undefined"){camera=this._game.camera}return camera.worldView.y+this.y};Input.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("Input",x,y);this._game.stage.context.fillText("Screen X: "+this.x+" Screen Y: "+this.y,x,y+14);this._game.stage.context.fillText("World X: "+this.worldX+" World Y: "+this.worldY,x,y+28);this._game.stage.context.fillText("Scale X: "+this.scaleX.toFixed(1)+" Scale Y: "+this.scaleY.toFixed(1),x,y+42)};return Input})();Phaser.Input=Input})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Keyboard=(function(){function Keyboard(game){this._keys={};this._capture={};this._game=game;this.start()}Keyboard.prototype.start=function(){var _this=this;document.body.addEventListener("keydown",function(event){return _this.onKeyDown(event)},false);document.body.addEventListener("keyup",function(event){return _this.onKeyUp(event)},false)};Keyboard.prototype.addKeyCapture=function(keycode){this._capture[keycode]=true};Keyboard.prototype.removeKeyCapture=function(keycode){delete this._capture[keycode]};Keyboard.prototype.clearCaptures=function(){this._capture={}};Keyboard.prototype.onKeyDown=function(event){if(this._capture[event.keyCode]){event.preventDefault()}if(!this._keys[event.keyCode]){this._keys[event.keyCode]={isDown:true,timeDown:this._game.time.now,timeUp:0}}else{this._keys[event.keyCode].isDown=true;this._keys[event.keyCode].timeDown=this._game.time.now}};Keyboard.prototype.onKeyUp=function(event){if(this._capture[event.keyCode]){event.preventDefault()}if(!this._keys[event.keyCode]){this._keys[event.keyCode]={isDown:false,timeDown:0,timeUp:this._game.time.now}}else{this._keys[event.keyCode].isDown=false;this._keys[event.keyCode].timeUp=this._game.time.now}};Keyboard.prototype.reset=function(){for(var key in this._keys){this._keys[key].isDown=false}};Keyboard.prototype.justPressed=function(keycode,duration){if(typeof duration==="undefined"){duration=250}if(this._keys[keycode]&&this._keys[keycode].isDown===true&&(this._game.time.now-this._keys[keycode].timeDown<duration)){return true}else{return false}};Keyboard.prototype.justReleased=function(keycode,duration){if(typeof duration==="undefined"){duration=250}if(this._keys[keycode]&&this._keys[keycode].isDown===false&&(this._game.time.now-this._keys[keycode].timeUp<duration)){return true}else{return false}};Keyboard.prototype.isDown=function(keycode){if(this._keys[keycode]){return this._keys[keycode].isDown}else{return false}};Keyboard.A="A".charCodeAt(0);Keyboard.B="B".charCodeAt(0);Keyboard.C="C".charCodeAt(0);Keyboard.D="D".charCodeAt(0);Keyboard.E="E".charCodeAt(0);Keyboard.F="F".charCodeAt(0);Keyboard.G="G".charCodeAt(0);Keyboard.H="H".charCodeAt(0);Keyboard.I="I".charCodeAt(0);Keyboard.J="J".charCodeAt(0);Keyboard.K="K".charCodeAt(0);Keyboard.L="L".charCodeAt(0);Keyboard.M="M".charCodeAt(0);Keyboard.N="N".charCodeAt(0);Keyboard.O="O".charCodeAt(0);Keyboard.P="P".charCodeAt(0);Keyboard.Q="Q".charCodeAt(0);Keyboard.R="R".charCodeAt(0);Keyboard.S="S".charCodeAt(0);Keyboard.T="T".charCodeAt(0);Keyboard.U="U".charCodeAt(0);Keyboard.V="V".charCodeAt(0);Keyboard.W="W".charCodeAt(0);Keyboard.X="X".charCodeAt(0);Keyboard.Y="Y".charCodeAt(0);Keyboard.Z="Z".charCodeAt(0);Keyboard.ZERO="0".charCodeAt(0);Keyboard.ONE="1".charCodeAt(0);Keyboard.TWO="2".charCodeAt(0);Keyboard.THREE="3".charCodeAt(0);Keyboard.FOUR="4".charCodeAt(0);Keyboard.FIVE="5".charCodeAt(0);Keyboard.SIX="6".charCodeAt(0);Keyboard.SEVEN="7".charCodeAt(0);Keyboard.EIGHT="8".charCodeAt(0);Keyboard.NINE="9".charCodeAt(0);Keyboard.NUMPAD_0=96;Keyboard.NUMPAD_1=97;Keyboard.NUMPAD_2=98;Keyboard.NUMPAD_3=99;Keyboard.NUMPAD_4=100;Keyboard.NUMPAD_5=101;Keyboard.NUMPAD_6=102;Keyboard.NUMPAD_7=103;Keyboard.NUMPAD_8=104;Keyboard.NUMPAD_9=105;Keyboard.NUMPAD_MULTIPLY=106;Keyboard.NUMPAD_ADD=107;Keyboard.NUMPAD_ENTER=108;Keyboard.NUMPAD_SUBTRACT=109;Keyboard.NUMPAD_DECIMAL=110;Keyboard.NUMPAD_DIVIDE=111;Keyboard.F1=112;Keyboard.F2=113;Keyboard.F3=114;Keyboard.F4=115;Keyboard.F5=116;Keyboard.F6=117;Keyboard.F7=118;Keyboard.F8=119;Keyboard.F9=120;Keyboard.F10=121;Keyboard.F11=122;Keyboard.F12=123;Keyboard.F13=124;Keyboard.F14=125;Keyboard.F15=126;Keyboard.COLON=186;Keyboard.EQUALS=187;Keyboard.UNDERSCORE=189;Keyboard.QUESTION_MARK=191;Keyboard.TILDE=192;Keyboard.OPEN_BRACKET=219;Keyboard.BACKWARD_SLASH=220;Keyboard.CLOSED_BRACKET=221;Keyboard.QUOTES=222;Keyboard.BACKSPACE=8;Keyboard.TAB=9;Keyboard.CLEAR=12;Keyboard.ENTER=13;Keyboard.SHIFT=16;Keyboard.CONTROL=17;Keyboard.ALT=18;Keyboard.CAPS_LOCK=20;Keyboard.ESC=27;Keyboard.SPACEBAR=32;Keyboard.PAGE_UP=33;Keyboard.PAGE_DOWN=34;Keyboard.END=35;Keyboard.HOME=36;Keyboard.LEFT=37;Keyboard.UP=38;Keyboard.RIGHT=39;Keyboard.DOWN=40;Keyboard.INSERT=45;Keyboard.DELETE=46;Keyboard.HELP=47;Keyboard.NUM_LOCK=144;return Keyboard})();Phaser.Keyboard=Keyboard})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Mouse=(function(){function Mouse(game){this._x=0;this._y=0;this.isDown=false;this.isUp=true;this.timeDown=0;this.duration=0;this.timeUp=0;this._game=game;this.start()}Mouse.LEFT_BUTTON=0;Mouse.MIDDLE_BUTTON=1;Mouse.RIGHT_BUTTON=2;Mouse.prototype.start=function(){var _this=this;this._game.stage.canvas.addEventListener("mousedown",function(event){return _this.onMouseDown(event)},true);this._game.stage.canvas.addEventListener("mousemove",function(event){return _this.onMouseMove(event)},true);this._game.stage.canvas.addEventListener("mouseup",function(event){return _this.onMouseUp(event)},true)};Mouse.prototype.reset=function(){this.isDown=false;this.isUp=true};Mouse.prototype.onMouseDown=function(event){this.button=event.button;this._x=event.clientX-this._game.stage.x;this._y=event.clientY-this._game.stage.y;this._game.input.x=this._x*this._game.input.scaleX;this._game.input.y=this._y*this._game.input.scaleY;this.isDown=true;this.isUp=false;this.timeDown=this._game.time.now;this._game.input.onDown.dispatch(this._game.input.x,this._game.input.y,this.timeDown)};Mouse.prototype.update=function(){if(this.isDown){this.duration=this._game.time.now-this.timeDown}};Mouse.prototype.onMouseMove=function(event){this.button=event.button;this._x=event.clientX-this._game.stage.x;this._y=event.clientY-this._game.stage.y;this._game.input.x=this._x*this._game.input.scaleX;this._game.input.y=this._y*this._game.input.scaleY};Mouse.prototype.onMouseUp=function(event){this.button=event.button;this.isDown=false;this.isUp=true;this.timeUp=this._game.time.now;this.duration=this.timeUp-this.timeDown;this._x=event.clientX-this._game.stage.x;this._y=event.clientY-this._game.stage.y;this._game.input.x=this._x*this._game.input.scaleX;this._game.input.y=this._y*this._game.input.scaleY;this._game.input.onUp.dispatch(this._game.input.x,this._game.input.y,this.timeDown)};return Mouse})();Phaser.Mouse=Mouse})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Finger=(function(){function Finger(game){this.point=null;this.circle=null;this.withinGame=false;this.clientX=-1;this.clientY=-1;this.pageX=-1;this.pageY=-1;this.screenX=-1;this.screenY=-1;this.x=-1;this.y=-1;this.isDown=false;this.isUp=false;this.timeDown=0;this.duration=0;this.timeUp=0;this.justPressedRate=200;this.justReleasedRate=200;this._game=game;this.active=false}Finger.prototype.start=function(event){this.identifier=event.identifier;this.target=event.target;if(this.point===null){this.point=new Phaser.Point()}if(this.circle===null){this.circle=new Phaser.Circle(0,0,44)}this.move(event);this.active=true;this.withinGame=true;this.isDown=true;this.isUp=false;this.timeDown=this._game.time.now};Finger.prototype.move=function(event){this.clientX=event.clientX;this.clientY=event.clientY;this.pageX=event.pageX;this.pageY=event.pageY;this.screenX=event.screenX;this.screenY=event.screenY;this.x=this.pageX-this._game.stage.offset.x;this.y=this.pageY-this._game.stage.offset.y;this.point.setTo(this.x,this.y);this.circle.setTo(this.x,this.y,44);this.duration=this._game.time.now-this.timeDown};Finger.prototype.leave=function(event){this.withinGame=false;this.move(event)};Finger.prototype.stop=function(event){this.active=false;this.withinGame=false;this.isDown=false;this.isUp=true;this.timeUp=this._game.time.now;this.duration=this.timeUp-this.timeDown};Finger.prototype.justPressed=function(duration){if(typeof duration==="undefined"){duration=this.justPressedRate}if(this.isDown===true&&(this.timeDown+duration)>this._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;i<event.changedTouches.length;i++){for(var f=0;f<this._fingers.length;f++){if(this._fingers[f].active===false){this._fingers[f].start(event.changedTouches[i]);this.x=this._fingers[f].x;this.y=this._fingers[f].y;this._game.input.x=this.x*this._game.input.scaleX;this._game.input.y=this.y*this._game.input.scaleY;this.touchDown.dispatch(this._fingers[f].x,this._fingers[f].y,this._fingers[f].timeDown,this._fingers[f].timeUp,this._fingers[f].duration);this._game.input.onDown.dispatch(this._game.input.x,this._game.input.y,this._fingers[f].timeDown);this.isDown=true;this.isUp=false;break}}}};Touch.prototype.onTouchCancel=function(event){event.preventDefault();for(var i=0;i<event.changedTouches.length;i++){for(var f=0;f<this._fingers.length;f++){if(this._fingers[f].identifier===event.changedTouches[i].identifier){this._fingers[f].stop(event.changedTouches[i]);break}}}};Touch.prototype.onTouchEnter=function(event){event.preventDefault();for(var i=0;i<event.changedTouches.length;i++){for(var f=0;f<this._fingers.length;f++){if(this._fingers[f].active===false){this._fingers[f].start(event.changedTouches[i]);break}}}};Touch.prototype.onTouchLeave=function(event){event.preventDefault();for(var i=0;i<event.changedTouches.length;i++){for(var f=0;f<this._fingers.length;f++){if(this._fingers[f].identifier===event.changedTouches[i].identifier){this._fingers[f].leave(event.changedTouches[i]);break}}}};Touch.prototype.onTouchMove=function(event){event.preventDefault();for(var i=0;i<event.changedTouches.length;i++){for(var f=0;f<this._fingers.length;f++){if(this._fingers[f].identifier===event.changedTouches[i].identifier){this._fingers[f].move(event.changedTouches[i]);this.x=this._fingers[f].x;this.y=this._fingers[f].y;this._game.input.x=this.x*this._game.input.scaleX;this._game.input.y=this.y*this._game.input.scaleY;break}}}};Touch.prototype.onTouchEnd=function(event){event.preventDefault();for(var i=0;i<event.changedTouches.length;i++){for(var f=0;f<this._fingers.length;f++){if(this._fingers[f].identifier===event.changedTouches[i].identifier){this._fingers[f].stop(event.changedTouches[i]);this.x=this._fingers[f].x;this.y=this._fingers[f].y;this._game.input.x=this.x*this._game.input.scaleX;this._game.input.y=this.y*this._game.input.scaleY;this.touchUp.dispatch(this._fingers[f].x,this._fingers[f].y,this._fingers[f].timeDown,this._fingers[f].timeUp,this._fingers[f].duration);this._game.input.onUp.dispatch(this._game.input.x,this._game.input.y,this._fingers[f].timeUp);this.isDown=false;this.isUp=true;break}}}};Touch.prototype.calculateDistance=function(finger1,finger2){};Touch.prototype.calculateAngle=function(finger1,finger2){};Touch.prototype.checkOverlap=function(finger1,finger2){};Touch.prototype.update=function(){};Touch.prototype.stop=function(){};Touch.prototype.reset=function(){this.isDown=false;this.isUp=false};return Touch})();Phaser.Touch=Touch})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Emitter=(function(_super){__extends(Emitter,_super);function Emitter(game,X,Y,Size){if(typeof X==="undefined"){X=0}if(typeof Y==="undefined"){Y=0}if(typeof Size==="undefined"){Size=0}_super.call(this,game,Size);this.x=X;this.y=Y;this.width=0;this.height=0;this.minParticleSpeed=new Phaser.Point(-100,-100);this.maxParticleSpeed=new Phaser.Point(100,100);this.minRotation=-360;this.maxRotation=360;this.gravity=0;this.particleClass=null;this.particleDrag=new Phaser.Point();this.frequency=0.1;this.lifespan=3;this.bounce=0;this._quantity=0;this._counter=0;this._explode=true;this.on=false;this._point=new Phaser.Point()}Emitter.prototype.destroy=function(){this.minParticleSpeed=null;this.maxParticleSpeed=null;this.particleDrag=null;this.particleClass=null;this._point=null;_super.prototype.destroy.call(this)};Emitter.prototype.makeParticles=function(Graphics,Quantity,BakedRotations,Multiple,Collide){if(typeof Quantity==="undefined"){Quantity=50}if(typeof BakedRotations==="undefined"){BakedRotations=16}if(typeof Multiple==="undefined"){Multiple=false}if(typeof Collide==="undefined"){Collide=0.8}this.maxSize=Quantity;var totalFrames=1;var randomFrame;var particle;var i=0;while(i<Quantity){if(this.particleClass==null){particle=new Phaser.Particle(this._game)}else{particle=new this.particleClass(this._game)}if(Multiple){}else{if(Graphics){particle.loadGraphic(Graphics)}}if(Collide>0){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(i<l){this.emitParticle();i++}this._quantity=0}else{this._timer+=this._game.time.elapsed;while((this.frequency>0)&&(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.x<this._dx+this._dw)&&(camera.bottom>this._dy)&&(camera.y<this._dy+this._dh)}else{return camera.intersects(this.bounds)}};GeomSprite.prototype.render=function(camera,cameraOffsetX,cameraOffsetY){if(this.type==GeomSprite.UNASSIGNED||this.visible===false||this.scale.x==0||this.scale.y==0||this.alpha<0.1||this.inCamera(camera.worldView)==false){return false}if(this.alpha!==1){var globalAlpha=this._game.stage.context.globalAlpha;this._game.stage.context.globalAlpha=this.alpha}this._dx=cameraOffsetX+(this.bounds.x-camera.worldView.x);this._dy=cameraOffsetY+(this.bounds.y-camera.worldView.y);this._dw=this.bounds.width*this.scale.x;this._dh=this.bounds.height*this.scale.y;if(this.type==GeomSprite.CIRCLE){this._dx+=this.circle.radius;this._dy+=this.circle.radius}if(this.scrollFactor.x!==1||this.scrollFactor.y!==1){this._dx-=(camera.worldView.x*this.scrollFactor.x);this._dy-=(camera.worldView.y*this.scrollFactor.y)}this._dx=Math.round(this._dx);this._dy=Math.round(this._dy);this._dw=Math.round(this._dw);this._dh=Math.round(this._dh);this._game.stage.saveCanvasValues();this._game.stage.context.lineWidth=this.lineWidth;this._game.stage.context.strokeStyle=this.lineColor;this._game.stage.context.fillStyle=this.fillColor;if(this._game.stage.fillStyle!==this.fillColor){}if(this.type==GeomSprite.CIRCLE){this._game.stage.context.beginPath();this._game.stage.context.arc(this._dx,this._dy,this.circle.radius,0,Math.PI*2);this._game.stage.context.stroke();if(this.renderFill){this._game.stage.context.fill()}this._game.stage.context.closePath()}else{if(this.type==GeomSprite.LINE){this._game.stage.context.beginPath();this._game.stage.context.moveTo(this._dx,this._dy);this._game.stage.context.lineTo(this.line.x2,this.line.y2);this._game.stage.context.stroke();this._game.stage.context.closePath()}else{if(this.type==GeomSprite.POINT){this._game.stage.context.fillRect(this._dx,this._dy,2,2)}else{if(this.type==GeomSprite.RECTANGLE){if(this.renderOutline==false){this._game.stage.context.fillRect(this._dx,this._dy,this.rect.width,this.rect.height)}else{this._game.stage.context.beginPath();this._game.stage.context.rect(this._dx,this._dy,this.rect.width,this.rect.height);this._game.stage.context.stroke();if(this.renderFill){this._game.stage.context.fill()}this._game.stage.context.closePath()}this._game.stage.context.fillStyle="rgb(255,255,255)";this.renderPoint(this._dx,this._dy,this.rect.topLeft,2);this.renderPoint(this._dx,this._dy,this.rect.topCenter,2);this.renderPoint(this._dx,this._dy,this.rect.topRight,2);this.renderPoint(this._dx,this._dy,this.rect.leftCenter,2);this.renderPoint(this._dx,this._dy,this.rect.center,2);this.renderPoint(this._dx,this._dy,this.rect.rightCenter,2);this.renderPoint(this._dx,this._dy,this.rect.bottomLeft,2);this.renderPoint(this._dx,this._dy,this.rect.bottomCenter,2);this.renderPoint(this._dx,this._dy,this.rect.bottomRight,2)}}}}this._game.stage.restoreCanvasValues();if(this.rotation!==0){this._game.stage.context.translate(0,0);this._game.stage.context.restore()}if(globalAlpha>-1){this._game.stage.context.globalAlpha=globalAlpha}return true};GeomSprite.prototype.renderPoint=function(offsetX,offsetY,point,size){offsetX=0;offsetY=0;this._game.stage.context.fillRect(offsetX+point.x,offsetY+point.y,1,1)};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.CIRCLE){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.POINT){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;row<this._startY+this._maxY;row++){this._columnData=this._tilemap.mapData[row];for(var tile=this._startX;tile<this._startX+this._maxX;tile++){if(this._tileOffsets[this._columnData[tile]]){this._game.stage.context.drawImage(this._texture,this._tileOffsets[this._columnData[tile]].x,this._tileOffsets[this._columnData[tile]].y,this._tilemap.tileWidth,this._tilemap.tileHeight,this._tx,this._ty,this._tilemap.tileWidth,this._tilemap.tileHeight);this._tx+=this._tilemap.tileWidth}}this._tx=this._dx;this._ty+=this._tilemap.tileHeight}return true};return TilemapBuffer})();Phaser.TilemapBuffer=TilemapBuffer})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Tilemap=(function(_super){__extends(Tilemap,_super);function Tilemap(game,key,mapData,format,tileWidth,tileHeight){if(typeof tileWidth==="undefined"){tileWidth=0}if(typeof tileHeight==="undefined"){tileHeight=0}_super.call(this,game);this._dx=0;this._dy=0;this.widthInTiles=0;this.heightInTiles=0;this.widthInPixels=0;this.heightInPixels=0;this.tileBoundary=10;this._texture=this._game.cache.getImage(key);this._tilemapBuffers=[];this.isGroup=false;this.tileWidth=tileWidth;this.tileHeight=tileHeight;this.boundsInTiles=new Phaser.Rectangle();this.mapFormat=format;switch(format){case Tilemap.FORMAT_CSV:this.parseCSV(game.cache.getText(mapData));break;case Tilemap.FORMAT_TILED_JSON:this.parseTiledJSON(game.cache.getText(mapData));break}this.parseTileOffsets();this.createTilemapBuffers()}Tilemap.FORMAT_CSV=0;Tilemap.FORMAT_TILED_JSON=1;Tilemap.prototype.parseCSV=function(data){this.mapData=[];data=data.trim();var rows=data.split("\n");for(var i=0;i<rows.length;i++){var column=rows[i].split(",");var output=[];if(column.length>0){if(this.widthInTiles==0){this.widthInTiles=column.length}this.heightInTiles++;for(var c=0;c<column.length;c++){output[c]=parseInt(column[c])}this.mapData.push(output)}}if(this.widthInTiles>0){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;i<json.layers[0].data.length;i++){if(c==0){row=[]}row.push(json.layers[0].data[i]);c++;if(c==this.widthInTiles){this.mapData.push(row);c=0}}};Tilemap.prototype.getMapSegment=function(area){};Tilemap.prototype.createTilemapBuffers=function(){var cams=this._game.world.getAllCameras();for(var i=0;i<cams.length;i++){this._tilemapBuffers[cams[i].ID]=new Phaser.TilemapBuffer(this._game,cams[i],this,this._texture,this._tileOffsets)}};Tilemap.prototype.parseTileOffsets=function(){this._tileOffsets=[];var i=0;if(this.mapFormat==Tilemap.FORMAT_TILED_JSON){this._tileOffsets[0]=null;i=1}for(var ty=0;ty<this._texture.height;ty+=this.tileHeight){for(var tx=0;tx<this._texture.width;tx+=this.tileWidth){this._tileOffsets[i]={x:tx,y:ty};i++}}};Tilemap.prototype.update=function(){this._tilemapBuffers[0].update()};Tilemap.prototype.renderDebugInfo=function(x,y,color){if(typeof color==="undefined"){color="rgb(255,255,255)"}this._tilemapBuffers[0].renderDebugInfo(x,y,color)};Tilemap.prototype.render=function(camera,cameraOffsetX,cameraOffsetY){if(this.visible===false||this.scale.x==0||this.scale.y==0||this.alpha<0.1){return false}this._dx=cameraOffsetX+(this.bounds.x-camera.worldView.x);this._dy=cameraOffsetY+(this.bounds.y-camera.worldView.y);this._dx=Math.round(this._dx);this._dy=Math.round(this._dy);if(this._tilemapBuffers[camera.ID]){this._tilemapBuffers[camera.ID].render(cameraOffsetX,cameraOffsetY)}return true};return Tilemap})(Phaser.GameObject);Phaser.Tilemap=Tilemap})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var Game=(function(){function Game(callbackContext,parent,width,height,initCallback,createCallback,updateCallback,renderCallback){if(typeof parent==="undefined"){parent=""}if(typeof width==="undefined"){width=800}if(typeof height==="undefined"){height=600}if(typeof initCallback==="undefined"){initCallback=null}if(typeof createCallback==="undefined"){createCallback=null}if(typeof updateCallback==="undefined"){updateCallback=null}if(typeof renderCallback==="undefined"){renderCallback=null}var _this=this;this._maxAccumulation=32;this._accumulator=0;this._step=0;this._loadComplete=false;this._paused=false;this._pendingState=null;this.onInitCallback=null;this.onCreateCallback=null;this.onUpdateCallback=null;this.onRenderCallback=null;this.onPausedCallback=null;this.isBooted=false;this.callbackContext=callbackContext;this.onInitCallback=initCallback;this.onCreateCallback=createCallback;this.onUpdateCallback=updateCallback;this.onRenderCallback=renderCallback;if(document.readyState==="complete"||document.readyState==="interactive"){this.boot(parent,width,height)}else{document.addEventListener("DOMContentLoaded",function(){return _this.boot(parent,width,height)},false)}}Game.prototype.boot=function(parent,width,height){var _this=this;if(!document.body){window.setTimeout(function(){return _this.boot(parent,width,height)},13)}else{this.device=new Phaser.Device();this.motion=new Phaser.Motion(this);this.math=new Phaser.GameMath(this);this.stage=new Phaser.Stage(this,parent,width,height);this.world=new Phaser.World(this,width,height);this.sound=new Phaser.SoundManager(this);this.cache=new Phaser.Cache(this);this.collision=new Phaser.Collision(this);this.loader=new Phaser.Loader(this,this.loadComplete);this.time=new Phaser.Time(this);this.tweens=new Phaser.TweenManager(this);this.input=new Phaser.Input(this);this.rnd=new Phaser.RandomDataGenerator([(Date.now()*Math.random()).toString()]);this.framerate=60;if(this.onInitCallback==null&&this.onCreateCallback==null&&this.onUpdateCallback==null&&this.onRenderCallback==null&&this._pendingState==null){this.isBooted=false;this.stage.drawInitScreen()}else{this.isBooted=true;this._loadComplete=false;this._raf=new Phaser.RequestAnimationFrame(this.loop,this);if(this._pendingState){this.switchState(this._pendingState,false,false)}else{this.startState()}}}};Game.prototype.loadComplete=function(){this._loadComplete=true};Game.prototype.loop=function(){this.time.update();this.tweens.update();if(this._paused==true){if(this.onPausedCallback!==null){this.onPausedCallback.call(this.callbackContext)}return}this.input.update();this.stage.update();this._accumulator+=this.time.delta;if(this._accumulator>this._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.loader.reset();this.onInitCallback.call(this.callbackContext);if(this.loader.queueSize==0){if(this.onCreateCallback!==null){this.onCreateCallback.call(this.callbackContext)}this._loadComplete=true}}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<this._step){this._maxAccumulation=this._step}},enumerable:true,configurable:true});Game.prototype.createCamera=function(x,y,width,height){return this.world.createCamera(x,y,width,height)};Game.prototype.createGeomSprite=function(x,y){return this.world.createGeomSprite(x,y)};Game.prototype.createSprite=function(x,y,key){if(typeof key==="undefined"){key=""}return this.world.createSprite(x,y,key)};Game.prototype.createDynamicTexture=function(key,width,height){return this.world.createDynamicTexture(key,width,height)};Game.prototype.createGroup=function(MaxSize){if(typeof MaxSize==="undefined"){MaxSize=0}return this.world.createGroup(MaxSize)};Game.prototype.createParticle=function(){return this.world.createParticle()};Game.prototype.createEmitter=function(x,y,size){if(typeof x==="undefined"){x=0}if(typeof y==="undefined"){y=0}if(typeof size==="undefined"){size=0}return this.world.createEmitter(x,y,size)};Game.prototype.createTilemap=function(key,mapData,format,tileWidth,tileHeight){return this.world.createTilemap(key,mapData,format,tileWidth,tileHeight)};Game.prototype.createTween=function(obj){return this.tweens.create(obj)};Game.prototype.collide=function(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback){if(typeof ObjectOrGroup1==="undefined"){ObjectOrGroup1=null}if(typeof ObjectOrGroup2==="undefined"){ObjectOrGroup2=null}if(typeof NotifyCallback==="undefined"){NotifyCallback=null}return this.collision.overlap(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback,Phaser.Collision.separate)};return Game})();Phaser.Game=Game})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var MicroPoint=(function(){function MicroPoint(x,y,parent){if(typeof x==="undefined"){x=0}if(typeof y==="undefined"){y=0}if(typeof parent==="undefined"){parent=null}this._x=x;this._y=y;this.parent=parent}Object.defineProperty(MicroPoint.prototype,"x",{get:function(){return this._x},set:function(value){this._x=value;if(this.parent){this.parent.updateBounds()}},enumerable:true,configurable:true});Object.defineProperty(MicroPoint.prototype,"y",{get:function(){return this._y},set:function(value){this._y=value;if(this.parent){this.parent.updateBounds()}},enumerable:true,configurable:true});MicroPoint.prototype.copyFrom=function(source){return this.setTo(source.x,source.y)};MicroPoint.prototype.copyTo=function(target){target.x=this._x;target.y=this._y;return target};MicroPoint.prototype.setTo=function(x,y,callParent){if(typeof callParent==="undefined"){callParent=true}this._x=x;this._y=y;if(this.parent!=null&&callParent==true){this.parent.updateBounds()}return this};MicroPoint.prototype.equals=function(toCompare){if(this._x===toCompare.x&&this._y===toCompare.y){return true}else{return false}};MicroPoint.prototype.toString=function(){return"[{MicroPoint (x="+this._x+" y="+this._y+")}]"};return MicroPoint})();Phaser.MicroPoint=MicroPoint})(Phaser||(Phaser={}));var Phaser;(function(Phaser){var State=(function(){function State(game){this.game=game;this.camera=game.camera;this.cache=game.cache;this.collision=game.collision;this.input=game.input;this.loader=game.loader;this.math=game.math;this.motion=game.motion;this.sound=game.sound;this.stage=game.stage;this.time=game.time;this.tweens=game.tweens;this.world=game.world}State.prototype.init=function(){};State.prototype.create=function(){};State.prototype.update=function(){};State.prototype.render=function(){};State.prototype.paused=function(){};State.prototype.createCamera=function(x,y,width,height){return this.game.world.createCamera(x,y,width,height)};State.prototype.createGeomSprite=function(x,y){return this.world.createGeomSprite(x,y)};State.prototype.createSprite=function(x,y,key){if(typeof key==="undefined"){key=""}return this.game.world.createSprite(x,y,key)};State.prototype.createDynamicTexture=function(key,width,height){return this.game.world.createDynamicTexture(key,width,height)};State.prototype.createGroup=function(MaxSize){if(typeof MaxSize==="undefined"){MaxSize=0}return this.game.world.createGroup(MaxSize)};State.prototype.createParticle=function(){return this.game.world.createParticle()};State.prototype.createEmitter=function(x,y,size){if(typeof x==="undefined"){x=0}if(typeof y==="undefined"){y=0}if(typeof size==="undefined"){size=0}return this.game.world.createEmitter(x,y,size)};State.prototype.createTilemap=function(key,mapData,format,tileWidth,tileHeight){return this.game.world.createTilemap(key,mapData,format,tileWidth,tileHeight)};State.prototype.createTween=function(obj){return this.game.tweens.create(obj)};State.prototype.collide=function(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback){if(typeof ObjectOrGroup1==="undefined"){ObjectOrGroup1=null}if(typeof ObjectOrGroup2==="undefined"){ObjectOrGroup2=null}if(typeof NotifyCallback==="undefined"){NotifyCallback=null}return this.collision.overlap(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback,Phaser.Collision.separate)};return State})();Phaser.State=State})(Phaser||(Phaser={})); |