From e271c63ca6792659f67382327d1b8675cabd3bb1 Mon Sep 17 00:00:00 2001 From: photonstorm Date: Wed, 3 Dec 2014 13:41:48 +0000 Subject: [PATCH 01/10] Preparing for Phaser 2.2.1. --- README.md | 235 ++---------------------------------- bower.json | 2 +- package.json | 4 +- resources/release-names.txt | 2 +- src/Phaser.js | 2 +- 5 files changed, 15 insertions(+), 230 deletions(-) diff --git a/README.md b/README.md index e9050a280a..936c6e01ad 100644 --- a/README.md +++ b/README.md @@ -21,11 +21,11 @@ - [License](#license) -# Phaser 2.2.0 +# Phaser 2.2.1 Phaser is a fast, free and fun open source game framework for making desktop and mobile browser HTML5 games. It uses [Pixi.js](https://github.com/GoodBoyDigital/pixi.js/) internally for fast 2D Canvas and WebGL rendering. -Version: 2.2.0 "Bethal" - Released: 3rd December 2014 +Version: 2.2.1 "Danabar" - Released: in dev By Richard Davey, [Photon Storm](http://www.photonstorm.com) @@ -43,23 +43,9 @@ By Richard Davey, [Photon Storm](http://www.photonstorm.com) ![div](http://phaser.io/images/div4.png) -## Welcome to Phaser and What's new in 2.2.0? +## Welcome to Phaser and What's new in 2.2.1? -One of the nicest and most surprising things about a truly open-source project like Phaser is that you never know who might jump on for the ride. I've been extremely lucky with the support I've received over the years - fellow developers both fixing bugs and reporting issues, all helping to make Phaser stronger as a result. - -But sometimes a single individual can come along and make a substantial difference all on their own. A quick glance at the Change Log for this release will show many different contributors, but one stood out more than any other: [Paul Stickney](https://github.com/pnstickne). Thanks to his contributions alone Phaser is now sporting a powerful new Scale Manager, nicely updated API docs and many other fixes and features across the board. The Scale Manager, a core part of any HTML5 game has had its own book published about it: [A Guide to the Phaser Scale Manager](https://leanpub.com/phaserscalemanager) which is available now. - -One of his other major contributions was in updating Signals, the event system used inside Phaser. Before Phaser was creating thousands of Signals in a busy game, most of which sat idle. Now they've gone on a diet in terms of memory consumption and hide behind a proxy causing them to not even be created unless needed. This has cut down on the amount of objects being generated every frame dramatically. - -As you may have noticed we've bumped the release version to 2.2 from 2.1. This is because there are some API breaking changes and some core fundamentals have been updated as well. The biggest change here is the move to a proper fixed-step internal game loop. The logic and rendering are now fully decoupled, with both Arcade Physics and Tweens having been updated to use this new system. This is by no means a panacea for overloading low-powered mobile devices. However it will help prevent issues arising from devices running Phaser games at different speeds just because it has a slower processor. - -Also given a large update is the Tween Manager. This is now hooked in to the new timestep code, smoothing out tweens when the frame rate drops. New features have been added, including the ability to pause and resume a whole timeline of tweens and tween chaining has vastly improved. - -The Change Log is indeed extensive. I would say that if you are *already* working on a Phaser game, and a good way through development, then you should carry on with whatever version you used before. But for all new projects definitely take the leap into 2.2 and I hope you enjoy splashing around in its new features :) - -Thank you to everyone who beta tested 2.2 with us in one of its many Release Candidate incarnations. Your feedback helped fix issues that would have been otherwise troublesome to find and it's a process we'll carry on with for future builds. - -2014 has been an amazing year for Phaser and I'd like to take this opportunity to thank everyone who has been involved, one way or another. Your support has been fantastic and we've built great things. Here's to 2015. +... Happy coding everyone! I hope to see you on the forums. @@ -85,220 +71,19 @@ Finally the list of [community authored Phaser Tutorials](http://www.lessmilk.co ## Change Log -Version 2.2.0 - "Bethal" - 3rd December 2014 +Version 2.2.1 - "Danabar" - in dev ### New Features -* Updated to Pixi v2.2.0 - see separate change log entry below. -* Cache.getRenderTexture will retrieve a RenderTexture that is stored in the Phaser Cache. This method replaces Cache.getTexture which is now deprecated. -* Cache.autoResolveURL is a new boolean (default `false`) that automatically builds a cached map of all loaded assets vs. their absolute URLs, for use with Cache.getURL and Cache.checkURL. Note that in 2.1.3 and earlier this was enabled by default, but has since been moved behind this property which needs to be set to `true` *before* you load any assets to enable. -* You can now call Tween.to again on a Tween that has already completed. This will re-use the same tween, on the original object, without having to recreate the Tween again. This allows a single tween instance to be re-used multiple times, providing they are linked to the same object (thanks InsaneHero) -* Phaser.Color.valueToColor converts a value: a "hex" string, a "CSS 'web' string", or a number - into red, green, blue, and alpha components (thanks @pnstickne #1264) -* Stage.backgroundColor now supports CSS 'rgba' values, as well as hex strings and hex numbers (thanks @pnstickne #1234) -* Pointer.addClickTrampoline now adds in support for click trampolines. These raise pointer events into click events, which are required internally for a few edge cases like IE11 full screen mode support, but are also useful if you know you specifically need a DOM click event from a pointer (thanks @pnstickne #1282) -* Point.floor will Math.floor both the `x` and `y` values of the Point. -* Point.ceil will Math.ceil both the `x` and `y` values of the Point. -* ScaleManager.scaleSprite takes a Sprite or Image object and scales it to fit the given dimensions. Scaling happens proportionally without distortion to the sprites texture. The letterBox parameter controls if scaling will produce a letter-box effect or zoom the sprite until it fills the given values. -* Phaser.DOM.getBounds is a cross-browser element.getBoundingClientRect method with optional cushion. -* Phaser.DOM.calibrate is a private method that calibrates element coordinates for viewport checks. -* Phaser.DOM.aspect gets the viewport aspect ratio (or the aspect ratio of an object or element) -* Phaser.DOM.inViewport tests if the given DOM element is within the viewport, with an optional cushion parameter that allows you to specify a distance. -* Phaser.DOM.viewportWidth returns the viewport width in pixels. -* Phaser.DOM.viewportHeight returns the viewport height in pixels. -* Phaser.DOM.documentWidth returns the document width in pixels. -* Phaser.DOM.documentHeight returns the document height in pixels. -* TilemapLayers have been given a decent performance boost on canvas with map shifting edge-redraw (thanks @pnstickne #1250) -* A large refactor to how the internal game timers and physics calculations has been made. We've now swapped to using a fixed time step internally across Phaser, instead of the variable one we had before that caused glitchse on low-fps systems. Thanks to pjbaron for his help with all of these related changes. -* We have separated the logic and render updates to permit slow motion and time slicing effects. We've fixed time calling to fix physics problems caused by variable time updates (i.e. collisions sometimes missing, objects tunneling, etc) -* Once per frame calling for rendering and tweening to keep things as smooth as possible -* Calculates a `suggestedFps` value (in multiples of 5 fps) based on a 2 second average of actual elapsed time values in the `Time.update` method. This is recalculated every 2 seconds so it could be used on a level-by-level basis if a game varies dramatically. I.e. if the fps rate consistently drops, you can adjust your game effects accordingly. -* Game loop now tries to "catch up" frames if it is falling behind by iterating the logic update. This will help if the logic is occasionally causing things to run too slow, or if the renderer occasionally pushes the combined frame time over the FPS time. It's not a band-aid for a game that floods a low powered device however, so you still need to code accordingly. But it should help capture issues such as gc spikes or temporarily overloaded CPUs. -* It now detects 'spiraling' which happens if a lot of frames are pushed out in succession meaning the CPU can never "catch up". It skips frames instead of trying to catch them up in this case. Note: the time value passed to the logic update functions is always constant regardless of these shenanigans. -* Signals to the game program if there is a problem which might be fixed by lowering the desiredFps -* Time.desiredFps is the new desired frame rate for your game. -* Time.suggestedFps is the suggested frame rate for the game based on system load. -* Time.slowMotion allows you to push the game into a slow motion mode. The default value is 1.0. 2.0 would be half speed, and so on. -* Time.timeCap is no longer used and now deprecated. All timing is now handled by the fixed time-step code we've introduced. -* Time.now can no longer be relied upon to contain a timestamp value. If the browser supports requestAnimationFrame then `Time.now` will contain the high resolution timer value that rAf generates. Otherwise it will contain the value of Date.now. If you require the actual time value (in milliseconds) then please use `Time.time` instead. Note that all Phaser sub-systems that used to rely on `Time.now` have been updated, so if you have any code that extends these please be sure to check it. -* Game.forceSingleUpdate will force just a single logic update, regardless of the delta timer values. You can use this in extremely heavy CPU situations where you know you're about to flood the CPU but don't want Phaser to get stuck in a spiral. -* Tilemap.createFromTiles will convert all tiles matching the given tile index (or an array of indexes) into Sprites. You can optionally then replace these tiles if you wish. This is perfect for games when you want to turn specific tiles into Sprites for extra control. The Sprites have an optional properties object which they can be populated with. -* Added support for the Wheel Event, which is the DOM3 spec (thanks @pnstickne #1318) -* Wheel Scroll Event (old non-FF) and DOM Mouse Wheel (old FF) are -supported via a non-exported reused wrapper object; WheelEventProxy. -The proxy methods are generated one-time dynamically but only when needed. -* Key.justDown allows you to test if a Key has just been pressed down or not. You can only call justDown once per key press. It will only return `true` once, until the Key is released and pressed down again. This allows you to use it in situations where you want to check if this key is down without using a Signal, such as in a core game loop (thanks @pjbaron #1321) -* Key.justUp allows you to test if a Key has just been released or not. You can only call justUp once per key press. It will only return `true` once, until the Key is pressed down and released again. This allows you to use it in situations where you want to check if this key is up without using a Signal, such as in a core game loop (thanks @pjbaron #1321) -* Device.whenReady is a new signal that you can use to tell when the device is initialized. -* Device.onInitialized is dispatched after device initialization occurs but before any of the ready callbacks have been invoked. Local "patching" for a particular device can/should be done in this event. -* TweenManager.removeFrom method allows you to remove a tween from a game object such as a Sprite (thanks @lewster32 #1279) -* Tweens have been completely rewritten. They're now much more flexible and efficient than before: -* When specifying the ease in `Tween.to` or `Tween.from` you can now use a string instead of the Function. This makes your code less verbose. For example instead of `Phaser.Easing.Sinusoidal.Out` and you can now just use the string "Sine".The string names match those used by TweenMax and includes: "Linear", "Quad", "Cubic", "Quart", "Quint", "Sine", "Expo", "Circ", "Elastic", "Back", "Bounce", "Power0", "Power1", "Power2", "Power3" and "Power4". You can append ".easeIn", ".easeOut" and "easeInOut" variants. All are supported for each ease types. -* Tweens now create a TweenData object. The Tween object itself acts like more of a timeline, managing multiple TweenData objects. You can now call `Tween.to` and each call will create a new child tween that is added to the timeline, which are played through in sequence. -* Tweens are now bound to the new Time.desiredFps value and update based on the new Game core loop, rather than being bound to time calculations. This means that tweens are now running with the same update logic as physics and the core loop. -* Tween.timeScale allows you to scale the duration of a tween (and any child tweens it may have). A value of 1.0 means it should play at the desiredFps rate. A value of 0.5 will run at half the frame rate, 2 at double and so on. You can even tween the timeScale value for interesting effects! -* Tween.reverse allows you to instantly reverse an active tween. If the Tween has children then it will smoothly reverse through all child tweens as well. -* Tween.repeatAll allows you to control how many times all child tweens will repeat before firing the Tween.onComplete event. You can set the value to -1 to repeat forever. -* Tween.loop now controls the looping of all child tweens. -* Tween.onRepeat is a new signal that is dispatched whenever a Tween repeats. If a Tween has many child tweens its dispatched once the sequence has repeated. -* Tween.onChildComplete is a new signal that is dispatched whenever any child tweens have completed. If a Tween consists of 4 sections you will get 3 onChildComplete events followed by 1 onComplete event as the final tween finishes. -* Chained tweens are now more intelligently handled. Because you can easily create child tweens (by simply calling Tween.to multiple times) chained tweens are now used to kick-off longer sequences. You can pass as many Tween objects to `Tween.chain` as you like as they'll all be played in sequence. As one Tween completes it passes on to the next until the entire chain is finished. -* Tween.stop has a new `complete` parameter that if set will still fire the onComplete event and start the next chained tween, if there is one. -* Tween.delay, Tween.repeat, Tween.yoyo, Tween.easing and Tween.interpolation all have a new `index` parameter. This allows you to target specific child tweens, or if set to -1 it will update all children at once. -* Tween.totalDuration reports the total duration of all child tweens in ms. -* There are new easing aliases: -* * Phaser.Easing.Power0 = Phaser.Easing.Linear.None -* * Phaser.Easing.Power1 = Phaser.Easing.Quadratic.Out -* * Phaser.Easing.Power2 = Phaser.Easing.Cubic.Out -* * Phaser.Easing.Power3 = Phaser.Easing.Quartic.Out -* * Phaser.Easing.Power4 = Phaser.Easing.Quintic.Out -* ScaleManager.windowContraints now allows specifying 'visual' or 'layout' as -the constraint. Using the 'layout' constraint should prevent a mobile -device from trying to resize the game when zooming. - - Including the the new changes the defaults have been changed to - - windowContraints = { right: 'layout', bottom: '' } - - This changes the current scaling behavior as seen in "Game Scaling" (as it -will only scale for the right edge) but also prevents such scaling from -going bonkers in some mobile environments like the newer Android browser. -(Automatic scroll-to-top, albeit configurable, enabled for non-desktop by -default is not a fun situation here.) - - To obtain the current semantics on a desktop the bottom should be changed -to 'layout'; although this will result in different behavior depending on -mobile device. To make the sizing also follow mobile zooming they should -be changed to 'visual'. - - Also added temp Rectangle re-used for various internal calculations. - -* Phaser.DOM now also special-cases desktops to align the layout bounds -correctly (this may disagree with CSS breakpoints but it aligns the with -actual CSS width), without applying a window height/width expansion as -required on mobile browsers. -* Signals have been heavily restructured to cut down on the number that are generated in-game. New signal proxies manage the setting and creation as required, cutting down on the volume of run-time object creation significantly. No user code needs to change, however if you did override Phaser.Signal or Sprite.Events then please be aware of the changes by inspecting the source (and commit #1389 by @pnstickne). -* Game.lockRender is a new property. If `false` Phaser will automatically render the display list every update. If `true` the render loop will be skipped. You can toggle this value at run-time to gain exact control over when Phaser renders. This can be useful in certain types of game or application. Please note that if you don't render the display list then none of the game object transforms will be updated, so use this value carefully. ### Updates -* TypeScript definitions fixes and updates (thanks @clark-stevenson @draconisNoctis) -* The TypeScript definitions have moved to the `typescript` folder in the root of the repository. -* Cache._resolveUrl has been renamed to Cache._resolveURL internally and gained a new parameter. This method is a private internal one. -* Cache.getUrl is deprecated. The same method is now available as Cache.getURL. -* Loader.useXDomainRequest used to be enabled automatically for IE9 but is now always set to `false`. Please enable it only if you know your server set-up / CDN requires it, as some most certainly do, but we're finding them to be less and less used these days, so we feel it's safe to now disable this by default (#1248) -* Game.destroy now destroys either the WebGLRenderer or CanvasRenderer, whichever Pixi was using. -* Particle.Emitter will now automatically set `particle.body.skipQuadTree` to `true` to help with collision speeds within Arcade Physics. -* Particle.Emitter.explode (or `Emitter.start` with the `explode` parameter set to `true`) will immediately emit the required quantity of particles and not delay until the next frame to do so. This means you can re-use a single emitter across multiple places in your game that require explode-style emissions, just by adjusting the `emitter.x` and `emitter.y` properties before calling explode (thanks Insanehero) -* Phaser.Polygon has been refactored to address some Pixi v2 migration issues (thanks @pnstickne for the original implementation #1267) -* Polygon.area is now only calculated when the Polygon points list is modified, rather than on every call. -* Phaser.Polygon can now accept the points list in a variety of formats: Arrays of Points, numbers, objects with public x/y properties or any combination of, or as a parameter list (thanks @pnstickne for the original implementation #1267) -* All of the Input classes now use the more consistent `enabled` property instead of `disabled`. I.e. you can now check `if (input.mouse.enabled)` rather than `if (!input.mouse.disabled)`. The disabled property has been moved to a getter for backwards compatibility but is deprecated and will be removed in a future version (thanks @pnstickne #1257) -* The Input class has been given a minor refactor to tidy things up. Specifically: - * pointerN are aliases to backed pointers[N-1] array. This simplifies (and increases the efficiency of) looping through all the pointers when applicable; also eliminates pointer-existence checks Removes various hard-coded limits (added MAX_POINTERS); changed maxPointers default - * Removed some special-casing from cases where it did not matter - * Removed === false/true, == usage for consistency, changed missing value check to typeof, etc. - * Updated documentation for specificity; added @public\@protected - * @deprecated currentPointers due to odd set pattern; totalCurrentPointers is more appropriate. -(thanks @pnstickne #1283) -* Various ScaleManager fixes and updates (thanks @pnstickne): - * Scale modes can now be set independently - * Switching between fullscreen and normal correctly restores modes - * Alignment does not incorrectly offset in fullscreen mode (#1255) - * Changing scale/alignment promptly refreshes layout - * `isFullScreen` returns a boolean, as it should - * Faster parent checks (if required) - * NO_SCALE should not not scale (vs previous behavior of having no behavior) - * Correct usage of scaleMode depending on mode - * Fullscreen Mode always scaling to fill screen in Firefox (#1256) -* AudioSprite - removed an unnecessary if-statement (thanks @DaanHaaz #1312) -* ArcadePhysics.skipQuadTree is now set to `true` by default. A QuadTree is a wonderful thing if the objects in your game are well spaced out. But in tightly packed games, especially those with tilemaps or single-screen games, they are a considerable performance drain and eat up CPU. We've taken the decision to disable the Arcade Physics QuadTree by default. It's all still in there and can be re-enabled via `game.physics.arcade.skipQuadTree = false`, but please only do so if you're sure your game benefits from this. -* Phaser.DOM now houses new DOM functions. Some have been moved over from ScaleManager as appropriate. -* Key.justPressed has bee renamed to Key.downDuration which is a much clearer name for what the method actually does. See Key.justDown for a nice clean alternative. -* Key.justReleased has bee renamed to Key.upDuration which is a much clearer name for what the method actually does. See Key.justUp for a nice clean alternative. -* Keyboard.justPressed has bee renamed to Keyboard.downDuration which is a much clearer name for what the method actually does. -* Keyboard.justReleased has bee renamed to Keyboard.upDuration which is a much clearer name for what the method actually does. -* Keyboard.downDuration, Keyboard.upDuration and Keyboard.isDown now all return `null` if the Key wasn't found in the local keys array. -* The Phaser.Device class has been made into a singleton and removed it's dependency on Phaser.Game (thanks @pnstickne #1328) -* ArrayList has been renamed to `ArraySet` (as it's actually a data set implementation) and moved from the `core` folder to the `utils` folder (thanks @pnstickne) -* If you are reloading a Phaser Game on a page that never properly refreshes (such as in an AngularJS project) then you will quickly run out of AudioContext nodes. If this is the case create a global var called `PhaserGlobal` on the window object before creating the game. The active AudioContext will then be saved to `window.PhaserGlobal.audioContext` when the Phaser game is destroyed, and re-used when it starts again (#1233) -* Camera.screenView is now deprecated. All Camera culling checks are made against Camera.view now instead. -* Various CocoonJS related hacks removed thanks to fixes from Ludei directly in CocoonJS! Woohoo :) -* Phaser.HEADLESS check removed from the core game loop. If you need to disable rendering you can now override the Phaser.Game.updateRender method instead with your own. -* Group.forEach fixed against browser de-optimization (thanks @pnstickne #1357) -* Phaser.Signals have been taken on a diet. They have been updated such that there is significantly less penalty for having many unused signals. The changes include: -* * Changing it so there is no dispatch *closure* created. This is a -potentially breaking change for third party code. -* * In the rare case that code needs to obtain a dispatch-closure, the -`boundDispatch` property can be used to trivially obtain a cached -closure. -* * The properties and default values are moved into the prototype; and the -_bindings array creation is deferred. This change, coupled with the -removal of the automatic closure, results in a very lightweight -~24bytes/object (in Chrome) for unbound signals. -* With this change in place Signals now consume less than 50KB / 50KB (shallow / retained memory) for 200 sprites, where-as before they used 300KB / 600KB (thanks @pnstickne #1359) -* Time.elapsedMS holds the number of milliseconds since the last Game loop, regardless of raF or setTimout being used. -* Incorrectly prepared tilemap images (with dimensions not evenly divisible by the tile dimensions) would render incorrectly when compared to the display seen in Tiled. The Phaser tilemap code has been adjusted to match the way Tiled deals with this, which should help if you're using tileset images that contain extra padding/margin pixels. Additional console warnings have been added. However the fact remains that you should carefully prepare your tilesets before using them. Crop off extra padding, make sure they are the right dimensions (thanks @SoulBeaver for the report and @pnstickne for the fix #1371) -* Text.setShadow has had the default `color` value changed from `rgba(0,0,0,0)` to `rgba(0,0,0,1)` so it appears as a black shadow by default - before the alpha channel made it invisible. -* Math.getRandom will now return `null` if random selection is missing, or array has no entries (thanks @pnstickne #1395) -* Array.transposeArray has had a small off-by-one error fixed. It didn't effect the results but meant returned arrays were 1 element bigger than needed (thanks @nextht #1394) -* State.preRender is now sent two parameters: a reference to the Phaser.Game instance and a new parameter: `elapsedTime` which is the time elapsed since the last update. +* TypeScript definitions fixes and updates (thanks @clark-stevenson) + ### Bug Fixes -* Tilemaps in WebGL wouldn't update after the first frame due to a subtle change in how Pixi uploads new textures to the GPU. -* XML files weren't being added to the URL map. -* Cache._resolveURL was causing a Sound double-load in Firefox and causing errors (thanks @domonyiv #1253) -* Loader.json was using the wrong context in IE9 with XDomainRequest calls (thanks @pnstickne #1258) -* Text.updateText was incorrectly increasing the size of the texture each time it was called (thanks @spayton #1261) -* Polygon.contains now correctly calculates the result (thanks @pnstickne @BurnedToast #1267) -* Setting Key.enabled = false while it is down did not reset the isDown state (thanks @pnstickne #1190 #1271) -* The Gamepad.addCallbacks context parameter was never actually remembered, causing the callbacks to run in the wrong context (thanks @englercj #1285) -* Animation.setFrame used the wrong frames array if `useLocalFrameIndex` was `false` and a numeric frame ID was given (thanks @Skeptron #1284) -* Fullscreen mode in IE11 now works (thanks @pnstickne) -* Cache.addBitmapData now auto-creates a FrameData (thanks @pnstickne #1294 #1300) -* P2.BodyDebug circles were drawing at half widths (thanks @enriqueto #1288) -* FrameData.clone fixed when cloning data using frame names rather than indexes (thanks pjbaron) -* Lots of the Cache getters (such as `Cache.getbitmapData`) would return `undefined` if the asset couldn't be found. They now all consistently return `null` for missing entries (thanks @Matoking #1305) -* Phaser games should now work again from the CocoonJS Launcher. -* Only one of the mouse wheel events is listened to, newest standard first. -This fixes a bug in FF where it would use the default DOMMouseWheel (thanks @pnstickne #1313) -* Stage.smoothed needed to modify the value of PIXI.scaleMode.DEFAULT instead of PIXI.scaleMode.LINEAR (thanks @pixelpicosean #1322) -* Newly created Groups always had zero z index (thanks @spayton #1291) -* Sprite.autoCull now properly works if the camera moves around the world. -* Sprite.inCamera uses a much faster check if auto culling or world bounds checks are enabled and properly adjusts for camera position. -* Camera.totalInView is a new property that contains the total number of Sprites rendered that have `autoCull` set to true and are within the Cameras view. -* Emitter.setScale fixed minX minY order precedence (thanks spayton) -* Group.iterate can now accept undefined/null as the arguments (thanks @pnstickne #1353 @tasos-ch #1352) -* When you change State the P2 Physics world is no longer fully cleared. All of the bodies, springs, fixtures, materials and constraints are removed - but config settings such as gravity, restitution, the contact solver, etc are all retained. The P2.World object is only created the very first time you call Physics.startSystem. Every subsequent call hits P2.World.reset instead. This fixes "P2.World gravity broken after switching states" (and other related issues) (#1292 #1289 #1176) -* Text.lineSpacing works correctly again. Before no space was added between the lines (thanks @intimidate #1367 and @brejep #1366) -* P2.BodyDebug always lagged behind the position of the Body it was tracking by one frame, which became visible at high speeds. It now syncs its position in the Body.postUpdate which prevents this from happening (thanks @valueerror) -* A State.preRender callback wasn't removed correctly when switching States. - -### Pixi 2.1.0 New Features - -* unloadFromGPU added to PIXI.BaseTexture -* PIXI.VideoTexture added -* PIXI.RoundedRectangle added -* Ensured all float32arrays use PIXI.Float32Array -* Removed the use of call in updateTransform (as its 10x faster to run the function directly) -* autoResize option added to renderer options (default is false). Pixi no longer automatically changes the style of the canvas. -* PIXI.RenderTexture.getCanvas optimized - -### Pixi 2.1.0 Bug Fixes - -* Fix destroy method of PIXI.WebGLRenderer -* Fixed Graphics.drawRoundedRectangle -* Fixed Graphics.arcTo issue -* Fixed Graphics.arc issue -* Fixed Graphics.cacheAsBitmap alpha issue -* Fixed PIXI.Strip alpha issue -* Fixed PIXI.DisplayObject.cacheAsBitmap alpha issue -* Fixed PIXI.RenderTexture Canvas Clear bug -* Fixed PIXI.DisplayObject.updateTransform issue -* Fixed webGL Shader textures issue -* Fixed PIXI.DisplayObject.getLocalPosition() -* Fixed CocoonJS crashing, when loading destroyed texture -* Fix eventTarget emit bug + For details about changes made in previous versions of Phaser see the full Change Log at https://github.com/photonstorm/phaser/blob/master/CHANGELOG.md @@ -350,11 +135,11 @@ Nice and easy :) Phaser is now available on [CDNJS](http://cdnjs.com). You can include the following in your html: -`http://cdnjs.cloudflare.com/ajax/libs/phaser/2.2.0/phaser.min.js` +`http://cdnjs.cloudflare.com/ajax/libs/phaser/2.2.1/phaser.min.js` Or if you prefer you can leave the protocol off, so it works via http and https: -`//cdnjs.cloudflare.com/ajax/libs/phaser/2.2.0/phaser.min.js` +`//cdnjs.cloudflare.com/ajax/libs/phaser/2.2.1/phaser.min.js` ![div](http://phaser.io/images/div1.png) diff --git a/bower.json b/bower.json index d54abc3f72..a63e4cdb85 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "phaser", - "version": "2.2.0", + "version": "2.2.1", "homepage": "http://phaser.io", "authors": [ "photonstorm " diff --git a/package.json b/package.json index 8663400335..37e22ecee6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "phaser", - "version": "2.2.0", - "release": "Bethal", + "version": "2.2.1", + "release": "Danabar", "description": "A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers.", "author": "Richard Davey (http://www.photonstorm.com)", "logo": "https://raw.github.com/photonstorm/phaser/master/phaser-logo-small.png", diff --git a/resources/release-names.txt b/resources/release-names.txt index 6e75b82a21..fbdc99af4e 100644 --- a/resources/release-names.txt +++ b/resources/release-names.txt @@ -19,7 +19,7 @@ POI: Mountains of Mist, River Eldar, River Sharia, Shadow Coast Andor Capital: Caemlyn -Cities: Arien, Aringill, Baerlon, Breen's Spring, Buryhill, Carysford, Comfrey, Cullen's Crossing, Damelien, Danabar, Deven Ride, Emond's Field, Forel Market, Four Kings, Harlon Bridge, Jornhill *, Kore Springs, Market Sheran, New Braem, Sheldyn, Taren Ferry, Watch Hill, Whitebridge * +Cities: Arien, Aringill, Baerlon, Breen's Spring, Buryhill, Carysford, Comfrey, Cullen's Crossing, Damelien, Danabar *, Deven Ride, Emond's Field, Forel Market, Four Kings, Harlon Bridge, Jornhill *, Kore Springs, Market Sheran, New Braem, Sheldyn, Taren Ferry, Watch Hill, Whitebridge * POI: Mountains of Mist, Tower of Ghenjei, Two Rivers, Whitebridge * Arad Doman diff --git a/src/Phaser.js b/src/Phaser.js index 40c92a506f..c8755e6dba 100644 --- a/src/Phaser.js +++ b/src/Phaser.js @@ -10,7 +10,7 @@ */ var Phaser = Phaser || { - VERSION: '2.2.0', + VERSION: '2.2.1-dev', GAMES: [], AUTO: 0, From fcca6ba730452a088e20cc24735edb8c3e907a06 Mon Sep 17 00:00:00 2001 From: John Watson Date: Wed, 3 Dec 2014 10:20:29 -0800 Subject: [PATCH 02/10] Fixed TweenManager.isTweening() and .removeFrom() Updated invalid reference Tween._object to .target --- src/tween/TweenManager.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tween/TweenManager.js b/src/tween/TweenManager.js index 4cc1708996..7d76d9bd43 100644 --- a/src/tween/TweenManager.js +++ b/src/tween/TweenManager.js @@ -156,7 +156,7 @@ Phaser.TweenManager.prototype = { { for (i = 0, len = this._tweens.length; i < len; i++) { - if (obj === this._tweens[i]._object) + if (obj === this._tweens[i].target) { this.remove(this._tweens[i]); } @@ -164,7 +164,7 @@ Phaser.TweenManager.prototype = { for (i = 0, len = this._add.length; i < len; i++) { - if (obj === this._add[i]._object) + if (obj === this._add[i].target) { this.remove(this._add[i]); } @@ -279,7 +279,7 @@ Phaser.TweenManager.prototype = { isTweening: function(object) { return this._tweens.some(function(tween) { - return tween._object === object; + return tween.target === object; }); }, From b05d745c40babaa15e2a557c38765b2e8ead04b3 Mon Sep 17 00:00:00 2001 From: photonstorm Date: Wed, 3 Dec 2014 20:54:03 +0000 Subject: [PATCH 03/10] Reverted changes as they broke all alpha support. Will put back once fixed in Pixi. --- .../renderers/webgl/shaders/PixiShader.js | 7 +- .../renderers/webgl/utils/WebGLSpriteBatch.js | 163 +++++++++--------- 2 files changed, 81 insertions(+), 89 deletions(-) diff --git a/src/pixi/renderers/webgl/shaders/PixiShader.js b/src/pixi/renderers/webgl/shaders/PixiShader.js index d67a0aa17e..8903011920 100644 --- a/src/pixi/renderers/webgl/shaders/PixiShader.js +++ b/src/pixi/renderers/webgl/shaders/PixiShader.js @@ -371,7 +371,7 @@ PIXI.PixiShader.prototype.destroy = function() PIXI.PixiShader.defaultVertexSrc = [ 'attribute vec2 aVertexPosition;', 'attribute vec2 aTextureCoord;', - 'attribute vec4 aColor;', + 'attribute vec2 aColor;', 'uniform vec2 projectionVector;', 'uniform vec2 offsetVector;', @@ -384,6 +384,7 @@ PIXI.PixiShader.defaultVertexSrc = [ 'void main(void) {', ' gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);', ' vTextureCoord = aTextureCoord;', - ' vColor = aColor;', + ' vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;', + ' vColor = vec4(color * aColor.x, aColor.x);', '}' -]; \ No newline at end of file +]; diff --git a/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js b/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js index f7b4a7b667..a587edccbc 100644 --- a/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js @@ -3,8 +3,7 @@ * * Big thanks to the very clever Matt DesLauriers https://github.com/mattdesl/ * for creating the original pixi version! - * Also a thanks to https://github.com/bchevalier for tweaking the tint and alpha so that they now share 4 bytes on the vertex buffer - * + * * Heavily inspired by LibGDX's WebGLSpriteBatch: * https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/graphics/g2d/WebGLSpriteBatch.java */ @@ -21,7 +20,7 @@ PIXI.WebGLSpriteBatch = function() * @property vertSize * @type Number */ - this.vertSize = 5; + this.vertSize = 6; /** * The number of images in the SpriteBatch before it flushes @@ -30,8 +29,8 @@ PIXI.WebGLSpriteBatch = function() */ this.size = 2000;//Math.pow(2, 16) / this.vertSize; - //the total number of bytes in our batch - var numVerts = this.size * 4 * 4 * this.vertSize; + //the total number of floats in our batch + var numVerts = this.size * 4 * this.vertSize; //the total number of indices in our batch var numIndices = this.size * 6; @@ -39,25 +38,9 @@ PIXI.WebGLSpriteBatch = function() * Holds the vertices * * @property vertices - * @type ArrayBuffer - */ - this.vertices = new PIXI.ArrayBuffer(numVerts); - - /** - * View on the vertices as a Float32Array - * - * @property positions * @type Float32Array */ - this.positions = new PIXI.Float32Array(this.vertices); - - /** - * View on the vertices as a Uint32Array - * - * @property colors - * @type Uint32Array - */ - this.colors = new PIXI.Uint32Array(this.vertices); + this.vertices = new PIXI.Float32Array(numVerts); /** * Holds the indices @@ -205,7 +188,7 @@ PIXI.WebGLSpriteBatch.prototype.end = function() PIXI.WebGLSpriteBatch.prototype.render = function(sprite) { var texture = sprite.texture; - + //TODO set blend modes.. // check texture.. if(this.currentBatchSize >= this.size) @@ -219,6 +202,12 @@ PIXI.WebGLSpriteBatch.prototype.render = function(sprite) // if the uvs have not updated then no point rendering just yet! if(!uvs)return; + // get the sprites current alpha + var alpha = sprite.worldAlpha; + var tint = sprite.tint; + + var verticies = this.vertices; + // TODO trim?? var aX = sprite.anchor.x; var aY = sprite.anchor.y; @@ -259,65 +248,66 @@ PIXI.WebGLSpriteBatch.prototype.render = function(sprite) var tx = worldTransform.tx; var ty = worldTransform.ty; - var colors = this.colors; - var positions = this.positions; - if(this.renderSession.roundPixels) { - // xy - positions[index] = a * w1 + c * h1 + tx | 0; - positions[index+1] = d * h1 + b * w1 + ty | 0; + //xy + verticies[index] = a * w1 + c * h1 + tx | 0; + verticies[index+1] = d * h1 + b * w1 + ty | 0; // xy - positions[index+5] = a * w0 + c * h1 + tx | 0; - positions[index+6] = d * h1 + b * w0 + ty | 0; + verticies[index+6] = a * w0 + c * h1 + tx | 0; + verticies[index+7] = d * h1 + b * w0 + ty | 0; // xy - positions[index+10] = a * w0 + c * h0 + tx | 0; - positions[index+11] = d * h0 + b * w0 + ty | 0; + verticies[index+12] = a * w0 + c * h0 + tx | 0; + verticies[index+13] = d * h0 + b * w0 + ty | 0; // xy - positions[index+15] = a * w1 + c * h0 + tx | 0; - positions[index+16] = d * h0 + b * w1 + ty | 0; + verticies[index+18] = a * w1 + c * h0 + tx | 0; + verticies[index+19] = d * h0 + b * w1 + ty | 0; } else { - // xy - positions[index] = a * w1 + c * h1 + tx; - positions[index+1] = d * h1 + b * w1 + ty; + //xy + verticies[index] = a * w1 + c * h1 + tx; + verticies[index+1] = d * h1 + b * w1 + ty; // xy - positions[index+5] = a * w0 + c * h1 + tx; - positions[index+6] = d * h1 + b * w0 + ty; + verticies[index+6] = a * w0 + c * h1 + tx; + verticies[index+7] = d * h1 + b * w0 + ty; // xy - positions[index+10] = a * w0 + c * h0 + tx; - positions[index+11] = d * h0 + b * w0 + ty; + verticies[index+12] = a * w0 + c * h0 + tx; + verticies[index+13] = d * h0 + b * w0 + ty; // xy - positions[index+15] = a * w1 + c * h0 + tx; - positions[index+16] = d * h0 + b * w1 + ty; + verticies[index+18] = a * w1 + c * h0 + tx; + verticies[index+19] = d * h0 + b * w1 + ty; } // uv - positions[index+2] = uvs.x0; - positions[index+3] = uvs.y0; + verticies[index+2] = uvs.x0; + verticies[index+3] = uvs.y0; // uv - positions[index+7] = uvs.x1; - positions[index+8] = uvs.y1; + verticies[index+8] = uvs.x1; + verticies[index+9] = uvs.y1; // uv - positions[index+12] = uvs.x2; - positions[index+13] = uvs.y2; + verticies[index+14] = uvs.x2; + verticies[index+15] = uvs.y2; // uv - positions[index+17] = uvs.x3; - positions[index+18] = uvs.y3; + verticies[index+20] = uvs.x3; + verticies[index+21] = uvs.y3; - // color and alpha - var tint = sprite.tint; - colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.alpha * 255 << 24); + // color + verticies[index+4] = verticies[index+10] = verticies[index+16] = verticies[index+22] = alpha; + + // alpha + verticies[index+5] = verticies[index+11] = verticies[index+17] = verticies[index+23] = tint; + + // increment the batchsize this.sprites[this.currentBatchSize++] = sprite; @@ -369,14 +359,13 @@ PIXI.WebGLSpriteBatch.prototype.renderTilingSprite = function(tilingSprite) uvs.y2 = (1 * scaleY) - offsetY; uvs.x3 = 0 - offsetX; - uvs.y3 = (1 * scaleY) - offsetY; + uvs.y3 = (1 *scaleY) - offsetY; - // get the tilingSprites current alpha and tint and combining them into a single color + // get the tilingSprites current alpha + var alpha = tilingSprite.worldAlpha; var tint = tilingSprite.tint; - var color = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (tilingSprite.alpha * 255 << 24); - var positions = this.positions; - var colors = this.colors; + var verticies = this.vertices; var width = tilingSprite.width; var height = tilingSprite.height; @@ -401,43 +390,47 @@ PIXI.WebGLSpriteBatch.prototype.renderTilingSprite = function(tilingSprite) var c = worldTransform.c / resolution;//[1]; var d = worldTransform.d / resolution;//[4]; var tx = worldTransform.tx;//[2]; - var ty = worldTransform.ty;//[5]; + var ty = worldTransform.ty;///[5]; // xy - positions[index++] = a * w1 + c * h1 + tx; - positions[index++] = d * h1 + b * w1 + ty; + verticies[index++] = a * w1 + c * h1 + tx; + verticies[index++] = d * h1 + b * w1 + ty; // uv - positions[index++] = uvs.x0; - positions[index++] = uvs.y0; + verticies[index++] = uvs.x0; + verticies[index++] = uvs.y0; // color - colors[index++] = color; + verticies[index++] = alpha; + verticies[index++] = tint; // xy - positions[index++] = (a * w0 + c * h1 + tx); - positions[index++] = d * h1 + b * w0 + ty; + verticies[index++] = (a * w0 + c * h1 + tx); + verticies[index++] = d * h1 + b * w0 + ty; // uv - positions[index++] = uvs.x1; - positions[index++] = uvs.y1; + verticies[index++] = uvs.x1; + verticies[index++] = uvs.y1; // color - colors[index++] = color; + verticies[index++] = alpha; + verticies[index++] = tint; // xy - positions[index++] = a * w0 + c * h0 + tx; - positions[index++] = d * h0 + b * w0 + ty; + verticies[index++] = a * w0 + c * h0 + tx; + verticies[index++] = d * h0 + b * w0 + ty; // uv - positions[index++] = uvs.x2; - positions[index++] = uvs.y2; + verticies[index++] = uvs.x2; + verticies[index++] = uvs.y2; // color - colors[index++] = color; + verticies[index++] = alpha; + verticies[index++] = tint; // xy - positions[index++] = a * w1 + c * h0 + tx; - positions[index++] = d * h0 + b * w1 + ty; + verticies[index++] = a * w1 + c * h0 + tx; + verticies[index++] = d * h0 + b * w1 + ty; // uv - positions[index++] = uvs.x3; - positions[index++] = uvs.y3; + verticies[index++] = uvs.x3; + verticies[index++] = uvs.y3; // color - colors[index++] = color; + verticies[index++] = alpha; + verticies[index++] = tint; // increment the batchsize this.sprites[this.currentBatchSize++] = tilingSprite; @@ -472,9 +465,7 @@ PIXI.WebGLSpriteBatch.prototype.flush = function() var stride = this.vertSize * 4; gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, stride, 0); gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, stride, 2 * 4); - - // color attributes will be interpreted as unsigned bytes and normalized - gl.vertexAttribPointer(shader.colorAttribute, 4, gl.UNSIGNED_BYTE, true, stride, 4 * 4); + gl.vertexAttribPointer(shader.colorAttribute, 2, gl.FLOAT, false, stride, 4 * 4); } // upload the verts to the buffer @@ -484,7 +475,7 @@ PIXI.WebGLSpriteBatch.prototype.flush = function() } else { - var view = this.positions.subarray(0, this.currentBatchSize * 4 * this.vertSize); + var view = this.vertices.subarray(0, this.currentBatchSize * 4 * this.vertSize); gl.bufferSubData(gl.ARRAY_BUFFER, 0, view); } @@ -632,4 +623,4 @@ PIXI.WebGLSpriteBatch.prototype.destroy = function() this.currentBaseTexture = null; this.gl = null; -}; \ No newline at end of file +}; From 1227232fd676666de33ed8c0b44f311b287d579a Mon Sep 17 00:00:00 2001 From: photonstorm Date: Wed, 3 Dec 2014 20:54:10 +0000 Subject: [PATCH 04/10] Updated readme. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 936c6e01ad..16bb6d4415 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ Version 2.2.1 - "Danabar" - in dev ### Bug Fixes - +* Fixed TweenManager.isTweening() and .removeFrom() (thanks @jotson #1408) For details about changes made in previous versions of Phaser see the full Change Log at https://github.com/photonstorm/phaser/blob/master/CHANGELOG.md From 3371f9ff1ed16f21fc02f6d688a11cccbb575d88 Mon Sep 17 00:00:00 2001 From: photonstorm Date: Wed, 3 Dec 2014 20:56:39 +0000 Subject: [PATCH 05/10] Added Game.debug reset method for when the debug manager is disabled (thanks @DanielSitarz #1407) --- README.md | 1 + src/core/Game.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 16bb6d4415..9db4d2e080 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,7 @@ Version 2.2.1 - "Danabar" - in dev ### Bug Fixes * Fixed TweenManager.isTweening() and .removeFrom() (thanks @jotson #1408) +* Added Game.debug reset method for when the debug manager is disabled (thanks @DanielSitarz #1407) For details about changes made in previous versions of Phaser see the full Change Log at https://github.com/photonstorm/phaser/blob/master/CHANGELOG.md diff --git a/src/core/Game.js b/src/core/Game.js index 732a811f6e..361f3ee12e 100644 --- a/src/core/Game.js +++ b/src/core/Game.js @@ -537,7 +537,7 @@ Phaser.Game.prototype = { } else { - this.debug = { preUpdate: function () {}, update: function () {} }; + this.debug = { preUpdate: function () {}, update: function () {}, reset: function () {} }; } this.showDebugHeader(); From 847cde81a9451b148e3ad0941d6edcbf416ec0cd Mon Sep 17 00:00:00 2001 From: photonstorm Date: Wed, 3 Dec 2014 20:59:44 +0000 Subject: [PATCH 06/10] Custom Particle classes that used a BitmapData wouldn't work (thanks @hardalias #1402) --- README.md | 1 + src/animation/AnimationManager.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9db4d2e080..eb4c13fec1 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,7 @@ Version 2.2.1 - "Danabar" - in dev * Fixed TweenManager.isTweening() and .removeFrom() (thanks @jotson #1408) * Added Game.debug reset method for when the debug manager is disabled (thanks @DanielSitarz #1407) +* Custom Particle classes that used a BitmapData wouldn't work (thanks @hardalias #1402) For details about changes made in previous versions of Phaser see the full Change Log at https://github.com/photonstorm/phaser/blob/master/CHANGELOG.md diff --git a/src/animation/AnimationManager.js b/src/animation/AnimationManager.js index 80e1620108..b7d0b7a1b6 100644 --- a/src/animation/AnimationManager.js +++ b/src/animation/AnimationManager.js @@ -528,7 +528,7 @@ Object.defineProperty(Phaser.AnimationManager.prototype, 'frame', { set: function (value) { - if (typeof value === 'number' && this._frameData.getFrame(value) !== null) + if (typeof value === 'number' && this._frameData && this._frameData.getFrame(value) !== null) { this.currentFrame = this._frameData.getFrame(value); From b0d8e43128dd5da4e016c28e3c2f7afc996b02df Mon Sep 17 00:00:00 2001 From: photonstorm Date: Wed, 3 Dec 2014 21:20:41 +0000 Subject: [PATCH 07/10] And Pixi fixed the premult alpha issue properly. Back in again! --- .../renderers/webgl/shaders/PixiShader.js | 7 +- .../renderers/webgl/utils/WebGLSpriteBatch.js | 163 +++++++++--------- 2 files changed, 89 insertions(+), 81 deletions(-) diff --git a/src/pixi/renderers/webgl/shaders/PixiShader.js b/src/pixi/renderers/webgl/shaders/PixiShader.js index 8903011920..e70be7f2e9 100644 --- a/src/pixi/renderers/webgl/shaders/PixiShader.js +++ b/src/pixi/renderers/webgl/shaders/PixiShader.js @@ -371,7 +371,7 @@ PIXI.PixiShader.prototype.destroy = function() PIXI.PixiShader.defaultVertexSrc = [ 'attribute vec2 aVertexPosition;', 'attribute vec2 aTextureCoord;', - 'attribute vec2 aColor;', + 'attribute vec4 aColor;', 'uniform vec2 projectionVector;', 'uniform vec2 offsetVector;', @@ -384,7 +384,6 @@ PIXI.PixiShader.defaultVertexSrc = [ 'void main(void) {', ' gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);', ' vTextureCoord = aTextureCoord;', - ' vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;', - ' vColor = vec4(color * aColor.x, aColor.x);', + ' vColor = vec4(aColor.rgb * aColor.a, aColor.a);', '}' -]; +]; \ No newline at end of file diff --git a/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js b/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js index a587edccbc..711b4dafde 100644 --- a/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js @@ -3,7 +3,8 @@ * * Big thanks to the very clever Matt DesLauriers https://github.com/mattdesl/ * for creating the original pixi version! - * + * Also a thanks to https://github.com/bchevalier for tweaking the tint and alpha so that they now share 4 bytes on the vertex buffer + * * Heavily inspired by LibGDX's WebGLSpriteBatch: * https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/graphics/g2d/WebGLSpriteBatch.java */ @@ -20,7 +21,7 @@ PIXI.WebGLSpriteBatch = function() * @property vertSize * @type Number */ - this.vertSize = 6; + this.vertSize = 5; /** * The number of images in the SpriteBatch before it flushes @@ -29,8 +30,8 @@ PIXI.WebGLSpriteBatch = function() */ this.size = 2000;//Math.pow(2, 16) / this.vertSize; - //the total number of floats in our batch - var numVerts = this.size * 4 * this.vertSize; + //the total number of bytes in our batch + var numVerts = this.size * 4 * 4 * this.vertSize; //the total number of indices in our batch var numIndices = this.size * 6; @@ -38,9 +39,25 @@ PIXI.WebGLSpriteBatch = function() * Holds the vertices * * @property vertices + * @type ArrayBuffer + */ + this.vertices = new PIXI.ArrayBuffer(numVerts); + + /** + * View on the vertices as a Float32Array + * + * @property positions * @type Float32Array */ - this.vertices = new PIXI.Float32Array(numVerts); + this.positions = new PIXI.Float32Array(this.vertices); + + /** + * View on the vertices as a Uint32Array + * + * @property colors + * @type Uint32Array + */ + this.colors = new PIXI.Uint32Array(this.vertices); /** * Holds the indices @@ -188,7 +205,7 @@ PIXI.WebGLSpriteBatch.prototype.end = function() PIXI.WebGLSpriteBatch.prototype.render = function(sprite) { var texture = sprite.texture; - + //TODO set blend modes.. // check texture.. if(this.currentBatchSize >= this.size) @@ -202,12 +219,6 @@ PIXI.WebGLSpriteBatch.prototype.render = function(sprite) // if the uvs have not updated then no point rendering just yet! if(!uvs)return; - // get the sprites current alpha - var alpha = sprite.worldAlpha; - var tint = sprite.tint; - - var verticies = this.vertices; - // TODO trim?? var aX = sprite.anchor.x; var aY = sprite.anchor.y; @@ -248,66 +259,65 @@ PIXI.WebGLSpriteBatch.prototype.render = function(sprite) var tx = worldTransform.tx; var ty = worldTransform.ty; + var colors = this.colors; + var positions = this.positions; + if(this.renderSession.roundPixels) { - //xy - verticies[index] = a * w1 + c * h1 + tx | 0; - verticies[index+1] = d * h1 + b * w1 + ty | 0; + // xy + positions[index] = a * w1 + c * h1 + tx | 0; + positions[index+1] = d * h1 + b * w1 + ty | 0; // xy - verticies[index+6] = a * w0 + c * h1 + tx | 0; - verticies[index+7] = d * h1 + b * w0 + ty | 0; + positions[index+5] = a * w0 + c * h1 + tx | 0; + positions[index+6] = d * h1 + b * w0 + ty | 0; // xy - verticies[index+12] = a * w0 + c * h0 + tx | 0; - verticies[index+13] = d * h0 + b * w0 + ty | 0; + positions[index+10] = a * w0 + c * h0 + tx | 0; + positions[index+11] = d * h0 + b * w0 + ty | 0; // xy - verticies[index+18] = a * w1 + c * h0 + tx | 0; - verticies[index+19] = d * h0 + b * w1 + ty | 0; + positions[index+15] = a * w1 + c * h0 + tx | 0; + positions[index+16] = d * h0 + b * w1 + ty | 0; } else { - //xy - verticies[index] = a * w1 + c * h1 + tx; - verticies[index+1] = d * h1 + b * w1 + ty; + // xy + positions[index] = a * w1 + c * h1 + tx; + positions[index+1] = d * h1 + b * w1 + ty; // xy - verticies[index+6] = a * w0 + c * h1 + tx; - verticies[index+7] = d * h1 + b * w0 + ty; + positions[index+5] = a * w0 + c * h1 + tx; + positions[index+6] = d * h1 + b * w0 + ty; // xy - verticies[index+12] = a * w0 + c * h0 + tx; - verticies[index+13] = d * h0 + b * w0 + ty; + positions[index+10] = a * w0 + c * h0 + tx; + positions[index+11] = d * h0 + b * w0 + ty; // xy - verticies[index+18] = a * w1 + c * h0 + tx; - verticies[index+19] = d * h0 + b * w1 + ty; + positions[index+15] = a * w1 + c * h0 + tx; + positions[index+16] = d * h0 + b * w1 + ty; } // uv - verticies[index+2] = uvs.x0; - verticies[index+3] = uvs.y0; + positions[index+2] = uvs.x0; + positions[index+3] = uvs.y0; // uv - verticies[index+8] = uvs.x1; - verticies[index+9] = uvs.y1; + positions[index+7] = uvs.x1; + positions[index+8] = uvs.y1; // uv - verticies[index+14] = uvs.x2; - verticies[index+15] = uvs.y2; + positions[index+12] = uvs.x2; + positions[index+13] = uvs.y2; // uv - verticies[index+20] = uvs.x3; - verticies[index+21] = uvs.y3; - - // color - verticies[index+4] = verticies[index+10] = verticies[index+16] = verticies[index+22] = alpha; - - // alpha - verticies[index+5] = verticies[index+11] = verticies[index+17] = verticies[index+23] = tint; + positions[index+17] = uvs.x3; + positions[index+18] = uvs.y3; - + // color and alpha + var tint = sprite.tint; + colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.worldAlpha * 255 << 24); // increment the batchsize this.sprites[this.currentBatchSize++] = sprite; @@ -359,13 +369,14 @@ PIXI.WebGLSpriteBatch.prototype.renderTilingSprite = function(tilingSprite) uvs.y2 = (1 * scaleY) - offsetY; uvs.x3 = 0 - offsetX; - uvs.y3 = (1 *scaleY) - offsetY; + uvs.y3 = (1 * scaleY) - offsetY; - // get the tilingSprites current alpha - var alpha = tilingSprite.worldAlpha; + // get the tilingSprites current alpha and tint and combining them into a single color var tint = tilingSprite.tint; + var color = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (tilingSprite.alpha * 255 << 24); - var verticies = this.vertices; + var positions = this.positions; + var colors = this.colors; var width = tilingSprite.width; var height = tilingSprite.height; @@ -390,47 +401,43 @@ PIXI.WebGLSpriteBatch.prototype.renderTilingSprite = function(tilingSprite) var c = worldTransform.c / resolution;//[1]; var d = worldTransform.d / resolution;//[4]; var tx = worldTransform.tx;//[2]; - var ty = worldTransform.ty;///[5]; + var ty = worldTransform.ty;//[5]; // xy - verticies[index++] = a * w1 + c * h1 + tx; - verticies[index++] = d * h1 + b * w1 + ty; + positions[index++] = a * w1 + c * h1 + tx; + positions[index++] = d * h1 + b * w1 + ty; // uv - verticies[index++] = uvs.x0; - verticies[index++] = uvs.y0; + positions[index++] = uvs.x0; + positions[index++] = uvs.y0; // color - verticies[index++] = alpha; - verticies[index++] = tint; + colors[index++] = color; // xy - verticies[index++] = (a * w0 + c * h1 + tx); - verticies[index++] = d * h1 + b * w0 + ty; + positions[index++] = (a * w0 + c * h1 + tx); + positions[index++] = d * h1 + b * w0 + ty; // uv - verticies[index++] = uvs.x1; - verticies[index++] = uvs.y1; + positions[index++] = uvs.x1; + positions[index++] = uvs.y1; // color - verticies[index++] = alpha; - verticies[index++] = tint; + colors[index++] = color; // xy - verticies[index++] = a * w0 + c * h0 + tx; - verticies[index++] = d * h0 + b * w0 + ty; + positions[index++] = a * w0 + c * h0 + tx; + positions[index++] = d * h0 + b * w0 + ty; // uv - verticies[index++] = uvs.x2; - verticies[index++] = uvs.y2; + positions[index++] = uvs.x2; + positions[index++] = uvs.y2; // color - verticies[index++] = alpha; - verticies[index++] = tint; + colors[index++] = color; // xy - verticies[index++] = a * w1 + c * h0 + tx; - verticies[index++] = d * h0 + b * w1 + ty; + positions[index++] = a * w1 + c * h0 + tx; + positions[index++] = d * h0 + b * w1 + ty; // uv - verticies[index++] = uvs.x3; - verticies[index++] = uvs.y3; + positions[index++] = uvs.x3; + positions[index++] = uvs.y3; // color - verticies[index++] = alpha; - verticies[index++] = tint; + colors[index++] = color; // increment the batchsize this.sprites[this.currentBatchSize++] = tilingSprite; @@ -465,7 +472,9 @@ PIXI.WebGLSpriteBatch.prototype.flush = function() var stride = this.vertSize * 4; gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, stride, 0); gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, stride, 2 * 4); - gl.vertexAttribPointer(shader.colorAttribute, 2, gl.FLOAT, false, stride, 4 * 4); + + // color attributes will be interpreted as unsigned bytes and normalized + gl.vertexAttribPointer(shader.colorAttribute, 4, gl.UNSIGNED_BYTE, true, stride, 4 * 4); } // upload the verts to the buffer @@ -475,7 +484,7 @@ PIXI.WebGLSpriteBatch.prototype.flush = function() } else { - var view = this.vertices.subarray(0, this.currentBatchSize * 4 * this.vertSize); + var view = this.positions.subarray(0, this.currentBatchSize * 4 * this.vertSize); gl.bufferSubData(gl.ARRAY_BUFFER, 0, view); } @@ -623,4 +632,4 @@ PIXI.WebGLSpriteBatch.prototype.destroy = function() this.currentBaseTexture = null; this.gl = null; -}; +}; \ No newline at end of file From d206e3c2d5c2e8db6bbb6c991d8cb695800a36ae Mon Sep 17 00:00:00 2001 From: photonstorm Date: Thu, 4 Dec 2014 11:28:02 +0000 Subject: [PATCH 08/10] Docs update. --- CHANGELOG.md | 9 ++ README.md | 238 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 239 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2abc2ae8a..9e7d889fcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Change Log +## Version 2.2.1 - "Danabar" - 4th December 2014 + +### Bug Fixes + +* Fixed Pixi.js issue with `alpha` not working on any display object. +* Fixed TweenManager.isTweening() and .removeFrom() (thanks @jotson #1408) +* Added Game.debug reset method for when the debug manager is disabled (thanks @DanielSitarz #1407) +* Custom Particle classes that used a BitmapData wouldn't work (thanks @hardalias #1402) + ## Version 2.2.0 - "Bethal" - 3rd December 2014 ### New Features diff --git a/README.md b/README.md index eb4c13fec1..fcc117e4d2 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Phaser is a fast, free and fun open source game framework for making desktop and mobile browser HTML5 games. It uses [Pixi.js](https://github.com/GoodBoyDigital/pixi.js/) internally for fast 2D Canvas and WebGL rendering. -Version: 2.2.1 "Danabar" - Released: in dev +Version: 2.2.1 "Danabar" - Released: 4th December 2014 By Richard Davey, [Photon Storm](http://www.photonstorm.com) @@ -45,7 +45,21 @@ By Richard Davey, [Photon Storm](http://www.photonstorm.com) ## Welcome to Phaser and What's new in 2.2.1? -... +One of the nicest and most surprising things about a truly open-source project like Phaser is that you never know who might jump on for the ride. I've been extremely lucky with the support I've received over the years - fellow developers both fixing bugs and reporting issues, all helping to make Phaser stronger as a result. + +But sometimes a single individual can come along and make a substantial difference all on their own. A quick glance at the Change Log for this release will show many different contributors, but one stood out more than any other: [Paul Stickney](https://github.com/pnstickne). Thanks to his contributions alone Phaser is now sporting a powerful new Scale Manager, nicely updated API docs and many other fixes and features across the board. The Scale Manager, a core part of any HTML5 game has had its own book published about it: [A Guide to the Phaser Scale Manager](https://leanpub.com/phaserscalemanager) which is available now. + +One of his other major contributions was in updating Signals, the event system used inside Phaser. Before Phaser was creating thousands of Signals in a busy game, most of which sat idle. Now they've gone on a diet in terms of memory consumption and hide behind a proxy causing them to not even be created unless needed. This has cut down on the amount of objects being generated every frame dramatically. + +As you may have noticed we've bumped the release version to 2.2 from 2.1. This is because there are some API breaking changes and some core fundamentals have been updated as well. The biggest change here is the move to a proper fixed-step internal game loop. The logic and rendering are now fully decoupled, with both Arcade Physics and Tweens having been updated to use this new system. This is by no means a panacea for overloading low-powered mobile devices. However it will help prevent issues arising from devices running Phaser games at different speeds just because it has a slower processor. + +Also given a large update is the Tween Manager. This is now hooked in to the new timestep code, smoothing out tweens when the frame rate drops. New features have been added, including the ability to pause and resume a whole timeline of tweens and tween chaining has vastly improved. + +The Change Log is indeed extensive. I would say that if you are *already* working on a Phaser game, and a good way through development, then you should carry on with whatever version you used before. But for all new projects definitely take the leap into 2.2 and I hope you enjoy splashing around in its new features :) + +Thank you to everyone who beta tested 2.2 with us in one of its many Release Candidate incarnations. Your feedback helped fix issues that would have been otherwise troublesome to find and it's a process we'll carry on with for future builds. + +2014 has been an amazing year for Phaser and I'd like to take this opportunity to thank everyone who has been involved, one way or another. Your support has been fantastic and we've built great things. Here's to 2015. Happy coding everyone! I hope to see you on the forums. @@ -71,21 +85,229 @@ Finally the list of [community authored Phaser Tutorials](http://www.lessmilk.co ## Change Log -Version 2.2.1 - "Danabar" - in dev +Version 2.2.1 - "Danabar" - 4th December 2014 + +### Bug Fixes + +* Fixed Pixi.js issue with `alpha` not working on any display object. +* Fixed TweenManager.isTweening() and .removeFrom() (thanks @jotson #1408) +* Added Game.debug reset method for when the debug manager is disabled (thanks @DanielSitarz #1407) +* Custom Particle classes that used a BitmapData wouldn't work (thanks @hardalias #1402) + +## Version 2.2.0 - "Bethal" - 3rd December 2014 ### New Features +* Updated to Pixi v2.2.0 - see separate change log entry below. +* Cache.getRenderTexture will retrieve a RenderTexture that is stored in the Phaser Cache. This method replaces Cache.getTexture which is now deprecated. +* Cache.autoResolveURL is a new boolean (default `false`) that automatically builds a cached map of all loaded assets vs. their absolute URLs, for use with Cache.getURL and Cache.checkURL. Note that in 2.1.3 and earlier this was enabled by default, but has since been moved behind this property which needs to be set to `true` *before* you load any assets to enable. +* You can now call Tween.to again on a Tween that has already completed. This will re-use the same tween, on the original object, without having to recreate the Tween again. This allows a single tween instance to be re-used multiple times, providing they are linked to the same object (thanks InsaneHero) +* Phaser.Color.valueToColor converts a value: a "hex" string, a "CSS 'web' string", or a number - into red, green, blue, and alpha components (thanks @pnstickne #1264) +* Stage.backgroundColor now supports CSS 'rgba' values, as well as hex strings and hex numbers (thanks @pnstickne #1234) +* Pointer.addClickTrampoline now adds in support for click trampolines. These raise pointer events into click events, which are required internally for a few edge cases like IE11 full screen mode support, but are also useful if you know you specifically need a DOM click event from a pointer (thanks @pnstickne #1282) +* Point.floor will Math.floor both the `x` and `y` values of the Point. +* Point.ceil will Math.ceil both the `x` and `y` values of the Point. +* ScaleManager.scaleSprite takes a Sprite or Image object and scales it to fit the given dimensions. Scaling happens proportionally without distortion to the sprites texture. The letterBox parameter controls if scaling will produce a letter-box effect or zoom the sprite until it fills the given values. +* Phaser.DOM.getBounds is a cross-browser element.getBoundingClientRect method with optional cushion. +* Phaser.DOM.calibrate is a private method that calibrates element coordinates for viewport checks. +* Phaser.DOM.aspect gets the viewport aspect ratio (or the aspect ratio of an object or element) +* Phaser.DOM.inViewport tests if the given DOM element is within the viewport, with an optional cushion parameter that allows you to specify a distance. +* Phaser.DOM.viewportWidth returns the viewport width in pixels. +* Phaser.DOM.viewportHeight returns the viewport height in pixels. +* Phaser.DOM.documentWidth returns the document width in pixels. +* Phaser.DOM.documentHeight returns the document height in pixels. +* TilemapLayers have been given a decent performance boost on canvas with map shifting edge-redraw (thanks @pnstickne #1250) +* A large refactor to how the internal game timers and physics calculations has been made. We've now swapped to using a fixed time step internally across Phaser, instead of the variable one we had before that caused glitchse on low-fps systems. Thanks to pjbaron for his help with all of these related changes. +* We have separated the logic and render updates to permit slow motion and time slicing effects. We've fixed time calling to fix physics problems caused by variable time updates (i.e. collisions sometimes missing, objects tunneling, etc) +* Once per frame calling for rendering and tweening to keep things as smooth as possible +* Calculates a `suggestedFps` value (in multiples of 5 fps) based on a 2 second average of actual elapsed time values in the `Time.update` method. This is recalculated every 2 seconds so it could be used on a level-by-level basis if a game varies dramatically. I.e. if the fps rate consistently drops, you can adjust your game effects accordingly. +* Game loop now tries to "catch up" frames if it is falling behind by iterating the logic update. This will help if the logic is occasionally causing things to run too slow, or if the renderer occasionally pushes the combined frame time over the FPS time. It's not a band-aid for a game that floods a low powered device however, so you still need to code accordingly. But it should help capture issues such as gc spikes or temporarily overloaded CPUs. +* It now detects 'spiraling' which happens if a lot of frames are pushed out in succession meaning the CPU can never "catch up". It skips frames instead of trying to catch them up in this case. Note: the time value passed to the logic update functions is always constant regardless of these shenanigans. +* Signals to the game program if there is a problem which might be fixed by lowering the desiredFps +* Time.desiredFps is the new desired frame rate for your game. +* Time.suggestedFps is the suggested frame rate for the game based on system load. +* Time.slowMotion allows you to push the game into a slow motion mode. The default value is 1.0. 2.0 would be half speed, and so on. +* Time.timeCap is no longer used and now deprecated. All timing is now handled by the fixed time-step code we've introduced. +* Time.now can no longer be relied upon to contain a timestamp value. If the browser supports requestAnimationFrame then `Time.now` will contain the high resolution timer value that rAf generates. Otherwise it will contain the value of Date.now. If you require the actual time value (in milliseconds) then please use `Time.time` instead. Note that all Phaser sub-systems that used to rely on `Time.now` have been updated, so if you have any code that extends these please be sure to check it. +* Game.forceSingleUpdate will force just a single logic update, regardless of the delta timer values. You can use this in extremely heavy CPU situations where you know you're about to flood the CPU but don't want Phaser to get stuck in a spiral. +* Tilemap.createFromTiles will convert all tiles matching the given tile index (or an array of indexes) into Sprites. You can optionally then replace these tiles if you wish. This is perfect for games when you want to turn specific tiles into Sprites for extra control. The Sprites have an optional properties object which they can be populated with. +* Added support for the Wheel Event, which is the DOM3 spec (thanks @pnstickne #1318) +* Wheel Scroll Event (old non-FF) and DOM Mouse Wheel (old FF) are +supported via a non-exported reused wrapper object; WheelEventProxy. +The proxy methods are generated one-time dynamically but only when needed. +* Key.justDown allows you to test if a Key has just been pressed down or not. You can only call justDown once per key press. It will only return `true` once, until the Key is released and pressed down again. This allows you to use it in situations where you want to check if this key is down without using a Signal, such as in a core game loop (thanks @pjbaron #1321) +* Key.justUp allows you to test if a Key has just been released or not. You can only call justUp once per key press. It will only return `true` once, until the Key is pressed down and released again. This allows you to use it in situations where you want to check if this key is up without using a Signal, such as in a core game loop (thanks @pjbaron #1321) +* Device.whenReady is a new signal that you can use to tell when the device is initialized. +* Device.onInitialized is dispatched after device initialization occurs but before any of the ready callbacks have been invoked. Local "patching" for a particular device can/should be done in this event. +* TweenManager.removeFrom method allows you to remove a tween from a game object such as a Sprite (thanks @lewster32 #1279) +* Tweens have been completely rewritten. They're now much more flexible and efficient than before: +* When specifying the ease in `Tween.to` or `Tween.from` you can now use a string instead of the Function. This makes your code less verbose. For example instead of `Phaser.Easing.Sinusoidal.Out` and you can now just use the string "Sine".The string names match those used by TweenMax and includes: "Linear", "Quad", "Cubic", "Quart", "Quint", "Sine", "Expo", "Circ", "Elastic", "Back", "Bounce", "Power0", "Power1", "Power2", "Power3" and "Power4". You can append ".easeIn", ".easeOut" and "easeInOut" variants. All are supported for each ease types. +* Tweens now create a TweenData object. The Tween object itself acts like more of a timeline, managing multiple TweenData objects. You can now call `Tween.to` and each call will create a new child tween that is added to the timeline, which are played through in sequence. +* Tweens are now bound to the new Time.desiredFps value and update based on the new Game core loop, rather than being bound to time calculations. This means that tweens are now running with the same update logic as physics and the core loop. +* Tween.timeScale allows you to scale the duration of a tween (and any child tweens it may have). A value of 1.0 means it should play at the desiredFps rate. A value of 0.5 will run at half the frame rate, 2 at double and so on. You can even tween the timeScale value for interesting effects! +* Tween.reverse allows you to instantly reverse an active tween. If the Tween has children then it will smoothly reverse through all child tweens as well. +* Tween.repeatAll allows you to control how many times all child tweens will repeat before firing the Tween.onComplete event. You can set the value to -1 to repeat forever. +* Tween.loop now controls the looping of all child tweens. +* Tween.onRepeat is a new signal that is dispatched whenever a Tween repeats. If a Tween has many child tweens its dispatched once the sequence has repeated. +* Tween.onChildComplete is a new signal that is dispatched whenever any child tweens have completed. If a Tween consists of 4 sections you will get 3 onChildComplete events followed by 1 onComplete event as the final tween finishes. +* Chained tweens are now more intelligently handled. Because you can easily create child tweens (by simply calling Tween.to multiple times) chained tweens are now used to kick-off longer sequences. You can pass as many Tween objects to `Tween.chain` as you like as they'll all be played in sequence. As one Tween completes it passes on to the next until the entire chain is finished. +* Tween.stop has a new `complete` parameter that if set will still fire the onComplete event and start the next chained tween, if there is one. +* Tween.delay, Tween.repeat, Tween.yoyo, Tween.easing and Tween.interpolation all have a new `index` parameter. This allows you to target specific child tweens, or if set to -1 it will update all children at once. +* Tween.totalDuration reports the total duration of all child tweens in ms. +* There are new easing aliases: +* * Phaser.Easing.Power0 = Phaser.Easing.Linear.None +* * Phaser.Easing.Power1 = Phaser.Easing.Quadratic.Out +* * Phaser.Easing.Power2 = Phaser.Easing.Cubic.Out +* * Phaser.Easing.Power3 = Phaser.Easing.Quartic.Out +* * Phaser.Easing.Power4 = Phaser.Easing.Quintic.Out +* ScaleManager.windowContraints now allows specifying 'visual' or 'layout' as +the constraint. Using the 'layout' constraint should prevent a mobile +device from trying to resize the game when zooming. + + Including the the new changes the defaults have been changed to + + windowContraints = { right: 'layout', bottom: '' } + + This changes the current scaling behavior as seen in "Game Scaling" (as it +will only scale for the right edge) but also prevents such scaling from +going bonkers in some mobile environments like the newer Android browser. +(Automatic scroll-to-top, albeit configurable, enabled for non-desktop by +default is not a fun situation here.) + + To obtain the current semantics on a desktop the bottom should be changed +to 'layout'; although this will result in different behavior depending on +mobile device. To make the sizing also follow mobile zooming they should +be changed to 'visual'. + + Also added temp Rectangle re-used for various internal calculations. + +* Phaser.DOM now also special-cases desktops to align the layout bounds +correctly (this may disagree with CSS breakpoints but it aligns the with +actual CSS width), without applying a window height/width expansion as +required on mobile browsers. +* Signals have been heavily restructured to cut down on the number that are generated in-game. New signal proxies manage the setting and creation as required, cutting down on the volume of run-time object creation significantly. No user code needs to change, however if you did override Phaser.Signal or Sprite.Events then please be aware of the changes by inspecting the source (and commit #1389 by @pnstickne). +* Game.lockRender is a new property. If `false` Phaser will automatically render the display list every update. If `true` the render loop will be skipped. You can toggle this value at run-time to gain exact control over when Phaser renders. This can be useful in certain types of game or application. Please note that if you don't render the display list then none of the game object transforms will be updated, so use this value carefully. ### Updates -* TypeScript definitions fixes and updates (thanks @clark-stevenson) - +* TypeScript definitions fixes and updates (thanks @clark-stevenson @draconisNoctis) +* The TypeScript definitions have moved to the `typescript` folder in the root of the repository. +* Cache._resolveUrl has been renamed to Cache._resolveURL internally and gained a new parameter. This method is a private internal one. +* Cache.getUrl is deprecated. The same method is now available as Cache.getURL. +* Loader.useXDomainRequest used to be enabled automatically for IE9 but is now always set to `false`. Please enable it only if you know your server set-up / CDN requires it, as some most certainly do, but we're finding them to be less and less used these days, so we feel it's safe to now disable this by default (#1248) +* Game.destroy now destroys either the WebGLRenderer or CanvasRenderer, whichever Pixi was using. +* Particle.Emitter will now automatically set `particle.body.skipQuadTree` to `true` to help with collision speeds within Arcade Physics. +* Particle.Emitter.explode (or `Emitter.start` with the `explode` parameter set to `true`) will immediately emit the required quantity of particles and not delay until the next frame to do so. This means you can re-use a single emitter across multiple places in your game that require explode-style emissions, just by adjusting the `emitter.x` and `emitter.y` properties before calling explode (thanks Insanehero) +* Phaser.Polygon has been refactored to address some Pixi v2 migration issues (thanks @pnstickne for the original implementation #1267) +* Polygon.area is now only calculated when the Polygon points list is modified, rather than on every call. +* Phaser.Polygon can now accept the points list in a variety of formats: Arrays of Points, numbers, objects with public x/y properties or any combination of, or as a parameter list (thanks @pnstickne for the original implementation #1267) +* All of the Input classes now use the more consistent `enabled` property instead of `disabled`. I.e. you can now check `if (input.mouse.enabled)` rather than `if (!input.mouse.disabled)`. The disabled property has been moved to a getter for backwards compatibility but is deprecated and will be removed in a future version (thanks @pnstickne #1257) +* The Input class has been given a minor refactor to tidy things up. Specifically: + * pointerN are aliases to backed pointers[N-1] array. This simplifies (and increases the efficiency of) looping through all the pointers when applicable; also eliminates pointer-existence checks Removes various hard-coded limits (added MAX_POINTERS); changed maxPointers default + * Removed some special-casing from cases where it did not matter + * Removed === false/true, == usage for consistency, changed missing value check to typeof, etc. + * Updated documentation for specificity; added @public\@protected + * @deprecated currentPointers due to odd set pattern; totalCurrentPointers is more appropriate. +(thanks @pnstickne #1283) +* Various ScaleManager fixes and updates (thanks @pnstickne): + * Scale modes can now be set independently + * Switching between fullscreen and normal correctly restores modes + * Alignment does not incorrectly offset in fullscreen mode (#1255) + * Changing scale/alignment promptly refreshes layout + * `isFullScreen` returns a boolean, as it should + * Faster parent checks (if required) + * NO_SCALE should not not scale (vs previous behavior of having no behavior) + * Correct usage of scaleMode depending on mode + * Fullscreen Mode always scaling to fill screen in Firefox (#1256) +* AudioSprite - removed an unnecessary if-statement (thanks @DaanHaaz #1312) +* ArcadePhysics.skipQuadTree is now set to `true` by default. A QuadTree is a wonderful thing if the objects in your game are well spaced out. But in tightly packed games, especially those with tilemaps or single-screen games, they are a considerable performance drain and eat up CPU. We've taken the decision to disable the Arcade Physics QuadTree by default. It's all still in there and can be re-enabled via `game.physics.arcade.skipQuadTree = false`, but please only do so if you're sure your game benefits from this. +* Phaser.DOM now houses new DOM functions. Some have been moved over from ScaleManager as appropriate. +* Key.justPressed has bee renamed to Key.downDuration which is a much clearer name for what the method actually does. See Key.justDown for a nice clean alternative. +* Key.justReleased has bee renamed to Key.upDuration which is a much clearer name for what the method actually does. See Key.justUp for a nice clean alternative. +* Keyboard.justPressed has bee renamed to Keyboard.downDuration which is a much clearer name for what the method actually does. +* Keyboard.justReleased has bee renamed to Keyboard.upDuration which is a much clearer name for what the method actually does. +* Keyboard.downDuration, Keyboard.upDuration and Keyboard.isDown now all return `null` if the Key wasn't found in the local keys array. +* The Phaser.Device class has been made into a singleton and removed it's dependency on Phaser.Game (thanks @pnstickne #1328) +* ArrayList has been renamed to `ArraySet` (as it's actually a data set implementation) and moved from the `core` folder to the `utils` folder (thanks @pnstickne) +* If you are reloading a Phaser Game on a page that never properly refreshes (such as in an AngularJS project) then you will quickly run out of AudioContext nodes. If this is the case create a global var called `PhaserGlobal` on the window object before creating the game. The active AudioContext will then be saved to `window.PhaserGlobal.audioContext` when the Phaser game is destroyed, and re-used when it starts again (#1233) +* Camera.screenView is now deprecated. All Camera culling checks are made against Camera.view now instead. +* Various CocoonJS related hacks removed thanks to fixes from Ludei directly in CocoonJS! Woohoo :) +* Phaser.HEADLESS check removed from the core game loop. If you need to disable rendering you can now override the Phaser.Game.updateRender method instead with your own. +* Group.forEach fixed against browser de-optimization (thanks @pnstickne #1357) +* Phaser.Signals have been taken on a diet. They have been updated such that there is significantly less penalty for having many unused signals. The changes include: +* * Changing it so there is no dispatch *closure* created. This is a +potentially breaking change for third party code. +* * In the rare case that code needs to obtain a dispatch-closure, the +`boundDispatch` property can be used to trivially obtain a cached +closure. +* * The properties and default values are moved into the prototype; and the +_bindings array creation is deferred. This change, coupled with the +removal of the automatic closure, results in a very lightweight +~24bytes/object (in Chrome) for unbound signals. +* With this change in place Signals now consume less than 50KB / 50KB (shallow / retained memory) for 200 sprites, where-as before they used 300KB / 600KB (thanks @pnstickne #1359) +* Time.elapsedMS holds the number of milliseconds since the last Game loop, regardless of raF or setTimout being used. +* Incorrectly prepared tilemap images (with dimensions not evenly divisible by the tile dimensions) would render incorrectly when compared to the display seen in Tiled. The Phaser tilemap code has been adjusted to match the way Tiled deals with this, which should help if you're using tileset images that contain extra padding/margin pixels. Additional console warnings have been added. However the fact remains that you should carefully prepare your tilesets before using them. Crop off extra padding, make sure they are the right dimensions (thanks @SoulBeaver for the report and @pnstickne for the fix #1371) +* Text.setShadow has had the default `color` value changed from `rgba(0,0,0,0)` to `rgba(0,0,0,1)` so it appears as a black shadow by default - before the alpha channel made it invisible. +* Math.getRandom will now return `null` if random selection is missing, or array has no entries (thanks @pnstickne #1395) +* Array.transposeArray has had a small off-by-one error fixed. It didn't effect the results but meant returned arrays were 1 element bigger than needed (thanks @nextht #1394) +* State.preRender is now sent two parameters: a reference to the Phaser.Game instance and a new parameter: `elapsedTime` which is the time elapsed since the last update. ### Bug Fixes -* Fixed TweenManager.isTweening() and .removeFrom() (thanks @jotson #1408) -* Added Game.debug reset method for when the debug manager is disabled (thanks @DanielSitarz #1407) -* Custom Particle classes that used a BitmapData wouldn't work (thanks @hardalias #1402) +* Tilemaps in WebGL wouldn't update after the first frame due to a subtle change in how Pixi uploads new textures to the GPU. +* XML files weren't being added to the URL map. +* Cache._resolveURL was causing a Sound double-load in Firefox and causing errors (thanks @domonyiv #1253) +* Loader.json was using the wrong context in IE9 with XDomainRequest calls (thanks @pnstickne #1258) +* Text.updateText was incorrectly increasing the size of the texture each time it was called (thanks @spayton #1261) +* Polygon.contains now correctly calculates the result (thanks @pnstickne @BurnedToast #1267) +* Setting Key.enabled = false while it is down did not reset the isDown state (thanks @pnstickne #1190 #1271) +* The Gamepad.addCallbacks context parameter was never actually remembered, causing the callbacks to run in the wrong context (thanks @englercj #1285) +* Animation.setFrame used the wrong frames array if `useLocalFrameIndex` was `false` and a numeric frame ID was given (thanks @Skeptron #1284) +* Fullscreen mode in IE11 now works (thanks @pnstickne) +* Cache.addBitmapData now auto-creates a FrameData (thanks @pnstickne #1294 #1300) +* P2.BodyDebug circles were drawing at half widths (thanks @enriqueto #1288) +* FrameData.clone fixed when cloning data using frame names rather than indexes (thanks pjbaron) +* Lots of the Cache getters (such as `Cache.getbitmapData`) would return `undefined` if the asset couldn't be found. They now all consistently return `null` for missing entries (thanks @Matoking #1305) +* Phaser games should now work again from the CocoonJS Launcher. +* Only one of the mouse wheel events is listened to, newest standard first. +This fixes a bug in FF where it would use the default DOMMouseWheel (thanks @pnstickne #1313) +* Stage.smoothed needed to modify the value of PIXI.scaleMode.DEFAULT instead of PIXI.scaleMode.LINEAR (thanks @pixelpicosean #1322) +* Newly created Groups always had zero z index (thanks @spayton #1291) +* Sprite.autoCull now properly works if the camera moves around the world. +* Sprite.inCamera uses a much faster check if auto culling or world bounds checks are enabled and properly adjusts for camera position. +* Camera.totalInView is a new property that contains the total number of Sprites rendered that have `autoCull` set to true and are within the Cameras view. +* Emitter.setScale fixed minX minY order precedence (thanks spayton) +* Group.iterate can now accept undefined/null as the arguments (thanks @pnstickne #1353 @tasos-ch #1352) +* When you change State the P2 Physics world is no longer fully cleared. All of the bodies, springs, fixtures, materials and constraints are removed - but config settings such as gravity, restitution, the contact solver, etc are all retained. The P2.World object is only created the very first time you call Physics.startSystem. Every subsequent call hits P2.World.reset instead. This fixes "P2.World gravity broken after switching states" (and other related issues) (#1292 #1289 #1176) +* Text.lineSpacing works correctly again. Before no space was added between the lines (thanks @intimidate #1367 and @brejep #1366) +* P2.BodyDebug always lagged behind the position of the Body it was tracking by one frame, which became visible at high speeds. It now syncs its position in the Body.postUpdate which prevents this from happening (thanks @valueerror) +* A State.preRender callback wasn't removed correctly when switching States. + +### Pixi 2.1.0 New Features + +* unloadFromGPU added to PIXI.BaseTexture +* PIXI.VideoTexture added +* PIXI.RoundedRectangle added +* Ensured all float32arrays use PIXI.Float32Array +* Removed the use of call in updateTransform (as its 10x faster to run the function directly) +* autoResize option added to renderer options (default is false). Pixi no longer automatically changes the style of the canvas. +* PIXI.RenderTexture.getCanvas optimized + +### Pixi 2.1.0 Bug Fixes + +* Fix destroy method of PIXI.WebGLRenderer +* Fixed Graphics.drawRoundedRectangle +* Fixed Graphics.arcTo issue +* Fixed Graphics.arc issue +* Fixed Graphics.cacheAsBitmap alpha issue +* Fixed PIXI.Strip alpha issue +* Fixed PIXI.DisplayObject.cacheAsBitmap alpha issue +* Fixed PIXI.RenderTexture Canvas Clear bug +* Fixed PIXI.DisplayObject.updateTransform issue +* Fixed webGL Shader textures issue +* Fixed PIXI.DisplayObject.getLocalPosition() +* Fixed CocoonJS crashing, when loading destroyed texture +* Fix eventTarget emit bug For details about changes made in previous versions of Phaser see the full Change Log at https://github.com/photonstorm/phaser/blob/master/CHANGELOG.md From a3533b9b75e379af9b8c64d0546fd2f1932294df Mon Sep 17 00:00:00 2001 From: photonstorm Date: Thu, 4 Dec 2014 11:31:41 +0000 Subject: [PATCH 09/10] Phaser 2.2.1. --- build/custom/ninja.min.js | 2 +- build/custom/p2.min.js | 2 +- build/custom/phaser-arcade-physics.js | 20 ++++++------- build/custom/phaser-arcade-physics.min.js | 22 +++++++-------- build/custom/phaser-ninja-physics.js | 20 ++++++------- build/custom/phaser-ninja-physics.min.js | 24 ++++++++-------- build/custom/phaser-no-libs.js | 14 +++++----- build/custom/phaser-no-libs.min.js | 10 +++---- build/custom/phaser-no-physics.js | 18 ++++++------ build/custom/phaser-no-physics.min.js | 18 ++++++------ build/custom/pixi.js | 4 +-- build/custom/pixi.min.js | 6 ++-- build/phaser.js | 20 ++++++------- build/phaser.map | 2 +- build/phaser.min.js | 34 +++++++++++------------ src/Phaser.js | 2 +- 16 files changed, 109 insertions(+), 109 deletions(-) diff --git a/build/custom/ninja.min.js b/build/custom/ninja.min.js index 58de00f6f1..b4a7ce172b 100644 --- a/build/custom/ninja.min.js +++ b/build/custom/ninja.min.js @@ -1,3 +1,3 @@ -/* Ninja Physics for Phaser v2.2.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +/* Ninja Physics for Phaser v2.2.1 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ Phaser.Physics.Ninja=function(a){this.game=a,this.time=this.game.time,this.gravity=.2,this.bounds=new Phaser.Rectangle(0,0,a.world.width,a.world.height),this.maxObjects=10,this.maxLevels=4,this.quadTree=new Phaser.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.setBoundsToWorld()},Phaser.Physics.Ninja.prototype.constructor=Phaser.Physics.Ninja,Phaser.Physics.Ninja.prototype={enableAABB:function(a,b){this.enable(a,1,0,0,b)},enableCircle:function(a,b,c){this.enable(a,2,0,b,c)},enableTile:function(a,b,c){this.enable(a,3,b,0,c)},enable:function(a,b,c,d,e){if("undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!0),Array.isArray(a))for(var f=a.length;f--;)a[f]instanceof Phaser.Group?this.enable(a[f].children,b,c,d,e):(this.enableBody(a[f],b,c,d),e&&a[f].hasOwnProperty("children")&&a[f].children.length>0&&this.enable(a[f],b,c,d,!0));else a instanceof Phaser.Group?this.enable(a.children,b,c,d,e):(this.enableBody(a,b,c,d),e&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,c,d,!0))},enableBody:function(a,b,c,d){a.hasOwnProperty("body")&&null===a.body&&(a.body=new Phaser.Physics.Ninja.Body(this,a,b,c,d),a.anchor.set(.5))},setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=[]},convertTilemap:function(a,b,c){b=a.getLayer(b),this.clearTilemapLayerBodies(a,b);for(var d=0,e=a.layers[b].height;e>d;d++)for(var f=0,g=a.layers[b].width;g>f;f++){var h=a.layers[b].data[d][f];if(h&&c.hasOwnProperty(h.index)){var i=new Phaser.Physics.Ninja.Body(this,null,3,c[h.index],0,h.worldX+h.centerX,h.worldY+h.centerY,h.width,h.height);a.layers[b].bodies.push(i)}}return a.layers[b].bodies},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,c,d,e,f){return"undefined"!=typeof b||a.type!==Phaser.GROUP&&a.type!==Phaser.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==Phaser.SPRITE||a.type==Phaser.TILESPRITE?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsSprite(a,b,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideSpriteVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,c,d,e):a.type==Phaser.GROUP?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsGroup(b,a,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideGroupVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,c,d,e):a.type==Phaser.TILEMAPLAYER?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,c,d,e):(b.type==Phaser.GROUP||b.type==Phaser.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,c,d,e):a.type==Phaser.EMITTER&&(b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsGroup(b,a,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideGroupVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,c,d,e)))):void this.collideGroupVsSelf(a,c,d,e,f)},collideSpriteVsSprite:function(a,b,c,d,e,f){this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++)},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length)for(var g=0,h=b.children.length;h>g;g++)b.children[g].exists&&b.children[g].body&&this.separate(a.body,b.children[g].body,d,e,f)&&(c&&c.call(e,a,b.children[g]),this._total++)},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f>g;g++)for(var h=g+1;f>=h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,c,d,e,f){if(0!==a.length&&0!==b.length)for(var g=0,h=a.children.length;h>g;g++)a.children[g].exists&&this.collideSpriteVsGroup(a.children[g],b,c,d,e,f)},separate:function(a,b){return a.type!==Phaser.Physics.NINJA||b.type!==Phaser.Physics.NINJA?!1:a.aabb&&b.aabb?a.aabb.collideAABBVsAABB(b.aabb):a.aabb&&b.tile?a.aabb.collideAABBVsTile(b.tile):a.tile&&b.aabb?b.aabb.collideAABBVsTile(a.tile):a.circle&&b.tile?a.circle.collideCircleVsTile(b.tile):a.tile&&b.circle?b.circle.collideCircleVsTile(a.tile):void 0}},Phaser.Physics.Ninja.Body=function(a,b,c,d,e,f,g,h,i){b=b||null,"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=16),this.sprite=b,this.game=a.game,this.type=Phaser.Physics.NINJA,this.system=a,this.aabb=null,this.tile=null,this.circle=null,this.shape=null,this.drag=1,this.friction=.05,this.gravityScale=1,this.bounce=.3,this.velocity=new Phaser.Point,this.facing=Phaser.NONE,this.immovable=!1,this.collideWorldBounds=!0,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.maxSpeed=8,b&&(f=b.x,g=b.y,h=b.width,i=b.height,0===b.anchor.x&&(f+=.5*b.width),0===b.anchor.y&&(g+=.5*b.height)),1===c?(this.aabb=new Phaser.Physics.Ninja.AABB(this,f,g,h,i),this.shape=this.aabb):2===c?(this.circle=new Phaser.Physics.Ninja.Circle(this,f,g,e),this.shape=this.circle):3===c&&(this.tile=new Phaser.Physics.Ninja.Tile(this,f,g,h,i,d),this.shape=this.tile)},Phaser.Physics.Ninja.Body.prototype={preUpdate:function(){this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.shape.integrate(),this.collideWorldBounds&&this.shape.collideWorldBounds()},postUpdate:function(){this.sprite&&(this.sprite.type===Phaser.TILESPRITE?(this.sprite.x=this.shape.pos.x-this.shape.xw,this.sprite.y=this.shape.pos.y-this.shape.yw):(this.sprite.x=this.shape.pos.x,this.sprite.y=this.shape.pos.y)),this.velocity.x<0?this.facing=Phaser.LEFT:this.velocity.x>0&&(this.facing=Phaser.RIGHT),this.velocity.y<0?this.facing=Phaser.UP:this.velocity.y>0&&(this.facing=Phaser.DOWN)},setZeroVelocity:function(){this.shape.oldpos.x=this.shape.pos.x,this.shape.oldpos.y=this.shape.pos.y},moveTo:function(a,b){var c=a*this.game.time.physicsElapsed,b=this.game.math.degToRad(b);this.shape.pos.x=this.shape.oldpos.x+c*Math.cos(b),this.shape.pos.y=this.shape.oldpos.y+c*Math.sin(b)},moveFrom:function(a,b){var c=-a*this.game.time.physicsElapsed,b=this.game.math.degToRad(b);this.shape.pos.x=this.shape.oldpos.x+c*Math.cos(b),this.shape.pos.y=this.shape.oldpos.y+c*Math.sin(b)},moveLeft:function(a){var b=-a*this.game.time.physicsElapsed;this.shape.pos.x=this.shape.oldpos.x+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.x-this.shape.oldpos.x+b))},moveRight:function(a){var b=a*this.game.time.physicsElapsed;this.shape.pos.x=this.shape.oldpos.x+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.x-this.shape.oldpos.x+b))},moveUp:function(a){var b=-a*this.game.time.physicsElapsed;this.shape.pos.y=this.shape.oldpos.y+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.y-this.shape.oldpos.y+b))},moveDown:function(a){var b=a*this.game.time.physicsElapsed;this.shape.pos.y=this.shape.oldpos.y+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.y-this.shape.oldpos.y+b))},reset:function(){this.velocity.set(0),this.shape.pos.x=this.sprite.x,this.shape.pos.y=this.sprite.y,this.shape.oldpos.copyFrom(this.shape.pos)},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.shape.pos.x-this.shape.oldpos.x},deltaY:function(){return this.shape.pos.y-this.shape.oldpos.y},destroy:function(){this.sprite=null,this.system=null,this.aabb=null,this.tile=null,this.circle=null,this.shape.destroy(),this.shape=null}},Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"x",{get:function(){return this.shape.pos.x},set:function(a){this.shape.pos.x=a}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"y",{get:function(){return this.shape.pos.y},set:function(a){this.shape.pos.y=a}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"width",{get:function(){return this.shape.width}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"height",{get:function(){return this.shape.height}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"bottom",{get:function(){return this.shape.pos.y+this.shape.yw}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"right",{get:function(){return this.shape.pos.x+this.shape.xw}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"speed",{get:function(){return Math.sqrt(this.shape.velocity.x*this.shape.velocity.x+this.shape.velocity.y*this.shape.velocity.y)}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"angle",{get:function(){return Math.atan2(this.shape.velocity.y,this.shape.velocity.x)}}),Phaser.Physics.Ninja.Body.render=function(a,b,c,d){c=c||"rgba(0,255,0,0.4)","undefined"==typeof d&&(d=!0),(b.aabb||b.circle)&&b.shape.render(a,b.game.camera.x,b.game.camera.y,c,d)},Phaser.Physics.Ninja.AABB=function(a,b,c,d,e){this.body=a,this.system=a.system,this.pos=new Phaser.Point(b,c),this.oldpos=new Phaser.Point(b,c),this.xw=Math.abs(d/2),this.yw=Math.abs(e/2),this.width=d,this.height=e,this.oH=0,this.oV=0,this.velocity=new Phaser.Point,this.aabbTileProjections={},this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_FULL]=this.projAABB_Full,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_45DEG]=this.projAABB_45Deg,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_CONCAVE]=this.projAABB_Concave,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_CONVEX]=this.projAABB_Convex,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_22DEGs]=this.projAABB_22DegS,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_22DEGb]=this.projAABB_22DegB,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_67DEGs]=this.projAABB_67DegS,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_67DEGb]=this.projAABB_67DegB,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_HALF]=this.projAABB_Half},Phaser.Physics.Ninja.AABB.prototype.constructor=Phaser.Physics.Ninja.AABB,Phaser.Physics.Ninja.AABB.COL_NONE=0,Phaser.Physics.Ninja.AABB.COL_AXIS=1,Phaser.Physics.Ninja.AABB.COL_OTHER=2,Phaser.Physics.Ninja.AABB.prototype={integrate:function(){var a=this.pos.x,b=this.pos.y;this.pos.x+=this.body.drag*this.pos.x-this.body.drag*this.oldpos.x,this.pos.y+=this.body.drag*this.pos.y-this.body.drag*this.oldpos.y+this.system.gravity*this.body.gravityScale,this.velocity.set(this.pos.x-a,this.pos.y-b),this.oldpos.set(a,b)},reportCollisionVsWorld:function(a,b,c,d){var e,f,g,h,i,j=this.pos,k=this.oldpos,l=j.x-k.x,m=j.y-k.y,n=l*c+m*d,o=n*c,p=n*d,q=l-o,r=m-p;0>n?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},reverse:function(){var a=this.pos.x-this.oldpos.x,b=this.pos.y-this.oldpos.y;this.oldpos.xthis.pos.x&&(this.oldpos.x=this.pos.x-a),this.oldpos.ythis.pos.y&&(this.oldpos.y=this.pos.y-b)},reportCollisionVsBody:function(a,b,c,d,e){var f=this.pos.x-this.oldpos.x,g=this.pos.y-this.oldpos.y,h=f*c+g*d;return this.body.immovable&&e.body.immovable?(a*=.5,b*=.5,this.pos.add(a,b),this.oldpos.set(this.pos.x,this.pos.y),e.pos.subtract(a,b),void e.oldpos.set(e.pos.x,e.pos.y)):void(this.body.immovable||e.body.immovable?this.body.immovable?e.body.immovable||(e.pos.subtract(a,b),0>h&&e.reverse()):(this.pos.subtract(a,b),0>h&&this.reverse()):(a*=.5,b*=.5,this.pos.add(a,b),e.pos.subtract(a,b),0>h&&(this.reverse(),e.reverse())))},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.xw);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.xw-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.yw);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.yw-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},collideAABBVsAABB:function(a){var b=this.pos,c=a,d=c.pos.x,e=c.pos.y,f=c.xw,g=c.yw,h=b.x-d,i=f+this.xw-Math.abs(h);if(i>0){var j=b.y-e,k=g+this.yw-Math.abs(j);if(k>0){k>i?0>h?(i*=-1,k=0):k=0:0>j?(i=0,k*=-1):i=0;var l=Math.sqrt(i*i+k*k);return this.reportCollisionVsBody(i,k,i/l,k/l,c),Phaser.Physics.Ninja.AABB.COL_AXIS}}return!1},collideAABBVsTile:function(a){var b=this.pos.x-a.pos.x,c=a.xw+this.xw-Math.abs(b);if(c>0){var d=this.pos.y-a.pos.y,e=a.yw+this.yw-Math.abs(d);if(e>0)return e>c?0>b?(c*=-1,e=0):e=0:0>d?(c=0,e*=-1):c=0,this.resolveTile(c,e,this,a)}return!1},resolveTile:function(a,b,c,d){return 0i){e*=-i,f*=-i;var j=Math.sqrt(e*e+f*f),k=Math.sqrt(a*a+b*b);return j>k?(c.reportCollisionVsWorld(a,b,a/k,b/k,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(e,f,d.signx,d.signy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_45Deg:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-d.pos.x,h=c.pos.y-f*c.yw-d.pos.y,i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_22DegS:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.y-f*c.yw,h=d.pos.y-g;if(h*f>0){var i=c.pos.x-e*c.xw-(d.pos.x+e*d.xw),j=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),k=d.sx,l=d.sy,m=i*k+j*l;if(0>m){k*=-m,l*=-m;var n=Math.sqrt(k*k+l*l),o=Math.sqrt(a*a+b*b),p=Math.abs(h);return n>o?o>p?(c.reportCollisionVsWorld(0,h,0,h/p,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(a,b,a/o,b/o,d),Phaser.Physics.Ninja.AABB.COL_AXIS):n>p?(c.reportCollisionVsWorld(0,h,0,h/p,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(k,l,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_22DegB:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y+f*d.yw),i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_67DegS:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw,h=d.pos.x-g;if(h*e>0){var i=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),j=c.pos.y-f*c.yw-(d.pos.y+f*d.yw),k=d.sx,l=d.sy,m=i*k+j*l;if(0>m){k*=-m,l*=-m;var n=Math.sqrt(k*k+l*l),o=Math.sqrt(a*a+b*b),p=Math.abs(h);return n>o?o>p?(c.reportCollisionVsWorld(h,0,h/p,0,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(a,b,a/o,b/o,d),Phaser.Physics.Ninja.AABB.COL_AXIS):n>p?(c.reportCollisionVsWorld(h,0,h/p,0,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(k,l,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_67DegB:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x+e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_Convex:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),i=Math.sqrt(g*g+h*h),j=2*d.xw,k=Math.sqrt(j*j+0),l=k-i;if(0>e*g||0>f*h){var m=Math.sqrt(a*a+b*b);return c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS}return l>0?(g/=i,h/=i,c.reportCollisionVsWorld(g*l,h*l,g,h,d),Phaser.Physics.Ninja.AABB.COL_OTHER):Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_Concave:function(a,b,c,d){var e=d.signx,f=d.signy,g=d.pos.x+e*d.xw-(c.pos.x-e*c.xw),h=d.pos.y+f*d.yw-(c.pos.y-f*c.yw),i=2*d.xw,j=Math.sqrt(i*i+0),k=Math.sqrt(g*g+h*h),l=k-j;if(l>0){var m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(g/=k,h/=k,c.reportCollisionVsWorld(g*l,h*l,g,h,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},destroy:function(){this.body=null,this.system=null},render:function(a,b,c,d,e){var f=this.pos.x-this.xw-b,g=this.pos.y-this.yw-c;e?(a.fillStyle=d,a.fillRect(f,g,this.width,this.height)):(a.strokeStyle=d,a.strokeRect(f,g,this.width,this.height))}},Phaser.Physics.Ninja.Tile=function(a,b,c,d,e,f){"undefined"==typeof f&&(f=Phaser.Physics.Ninja.Tile.EMPTY),this.body=a,this.system=a.system,this.id=f,this.type=Phaser.Physics.Ninja.Tile.TYPE_EMPTY,this.pos=new Phaser.Point(b,c),this.oldpos=new Phaser.Point(b,c),this.id>1&&this.id<30&&(e=d),this.xw=Math.abs(d/2),this.yw=Math.abs(e/2),this.width=d,this.height=e,this.velocity=new Phaser.Point,this.signx=0,this.signy=0,this.sx=0,this.sy=0,this.body.gravityScale=0,this.body.collideWorldBounds=!1,this.id>0&&this.setType(this.id)},Phaser.Physics.Ninja.Tile.prototype.constructor=Phaser.Physics.Ninja.Tile,Phaser.Physics.Ninja.Tile.prototype={integrate:function(){var a=this.pos.x,b=this.pos.y;this.pos.x+=this.body.drag*this.pos.x-this.body.drag*this.oldpos.x,this.pos.y+=this.body.drag*this.pos.y-this.body.drag*this.oldpos.y+this.system.gravity*this.body.gravityScale,this.velocity.set(this.pos.x-a,this.pos.y-b),this.oldpos.set(a,b)},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.xw);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.xw-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.yw);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.yw-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},reportCollisionVsWorld:function(a,b,c,d){var e,f,g,h,i,j=this.pos,k=this.oldpos,l=j.x-k.x,m=j.y-k.y,n=l*c+m*d,o=n*c,p=n*d,q=l-o,r=m-p;0>n?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},setType:function(a){return a===Phaser.Physics.Ninja.Tile.EMPTY?this.clear():(this.id=a,this.updateType()),this},clear:function(){this.id=Phaser.Physics.Ninja.Tile.EMPTY,this.updateType()},destroy:function(){this.body=null,this.system=null},updateType:function(){if(0===this.id)return this.type=Phaser.Physics.Ninja.Tile.TYPE_EMPTY,this.signx=0,this.signy=0,this.sx=0,this.sy=0,!0;if(this.idn?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.radius);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.radius-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.radius);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.radius-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},collideCircleVsTile:function(a){var b=this.pos,c=this.radius,d=a,e=d.pos.x,f=d.pos.y,g=d.xw,h=d.yw,i=b.x-e,j=g+c-Math.abs(i);if(j>0){var k=b.y-f,l=h+c-Math.abs(k);if(l>0)return this.oH=0,this.oV=0,-g>i?this.oH=-1:i>g&&(this.oH=1),-h>k?this.oV=-1:k>h&&(this.oV=1),this.resolveCircleTile(j,l,this.oH,this.oV,this,d)}},resolveCircleTile:function(a,b,c,d,e,f){return 0a){var g=e.pos.x-f.pos.x;return 0>g?(e.reportCollisionVsWorld(-a,0,-1,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(a,0,1,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS)}var h=e.pos.y-f.pos.y;return 0>h?(e.reportCollisionVsWorld(0,-b,0,-1,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(0,b,0,1,f),Phaser.Physics.Ninja.Circle.COL_AXIS)}return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS}if(0===d)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var i=f.pos.x+c*f.xw,j=f.pos.y+d*f.yw,g=e.pos.x-i,h=e.pos.y-j,k=Math.sqrt(g*g+h*h),l=e.radius-k;return l>0?(0===k?(g=c/Math.SQRT2,h=d/Math.SQRT2):(g/=k,h/=k),e.reportCollisionVsWorld(g*l,h*l,g,h,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_45Deg:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=f.sx,k=f.sy,l=e.pos.x-j*e.radius-f.pos.x,m=e.pos.y-k*e.radius-f.pos.y,n=l*j+m*k;if(0>n){j*=-n,k*=-n,b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1));var o=Math.sqrt(j*j+k*k);return o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.pos.x-(f.pos.x-h*f.xw),m=e.pos.y-(f.pos.y+d*f.yw),p=l*-k+m*j;if(p*h*i>0){var q=Math.sqrt(l*l+m*m),r=e.radius-q;if(r>0)return l/=q,m/=q,e.reportCollisionVsWorld(l*r,m*r,l,m,f),Phaser.Physics.Ninja.Circle.COL_OTHER }else{var n=l*j+m*k,r=e.radius-Math.abs(n);if(r>0)return e.reportCollisionVsWorld(j*r,k*r,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.pos.x-(f.pos.x+c*f.xw),m=e.pos.y-(f.pos.y-i*f.yw),p=l*-k+m*j;if(0>p*h*i){var q=Math.sqrt(l*l+m*m),r=e.radius-q;if(r>0)return l/=q,m/=q,e.reportCollisionVsWorld(l*r,m*r,l,m,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var n=l*j+m*k,r=e.radius-Math.abs(n);if(r>0)return e.reportCollisionVsWorld(j*r,k*r,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(h*c+i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;var s=f.pos.x+c*f.xw,t=f.pos.y+d*f.yw,u=e.pos.x-s,v=e.pos.y-t,q=Math.sqrt(u*u+v*v),r=e.radius-q;if(r>0)return 0===q?(u=c/Math.SQRT2,v=d/Math.SQRT2):(u/=q,v/=q),e.reportCollisionVsWorld(u*r,v*r,u,v,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Concave:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c){if(0===d){var j=f.pos.x+h*f.xw-e.pos.x,k=f.pos.y+i*f.yw-e.pos.y,l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=n+e.radius-m;return o>0?(b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER)):Phaser.Physics.Ninja.Circle.COL_NONE}if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=f.pos.x-h*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=0,s=d):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=f.pos.x+c*f.xw,q=f.pos.y-i*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c,s=0):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{if(h*c+i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;var p=f.pos.x+c*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Convex:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(h*c+i*d>0){var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var p=f.pos.x+c*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Half:function(a,b,c,d,e,f){var g=f.signx,h=f.signy,i=c*g+d*h;if(i>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c)if(0===d){var j=e.radius,k=e.pos.x-g*j-f.pos.x,l=e.pos.y-h*j-f.pos.y,m=g,n=h,o=k*m+l*n;if(0>o){m*=-o,n*=-o;var p=Math.sqrt(m*m+n*n),q=Math.sqrt(a*a+b*b);return p>q?(e.reportCollisionVsWorld(a,b,a/q,b/q,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(m,n,f.signx,f.signy),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0!==i)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var r=e.pos.x-f.pos.x;if(0>r*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var s=e.pos.y-(f.pos.y+d*f.yw),t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=g/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0!==i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var s=e.pos.y-f.pos.y;if(0>s*h)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var r=e.pos.x-(f.pos.x+c*f.xw),t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=g/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var v=f.pos.x+c*f.xw,w=f.pos.y+d*f.yw,r=e.pos.x-v,s=e.pos.y-w,t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_22DegS:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c){if(0!==d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-(f.pos.x-h*f.xw),n=e.pos.y-f.pos.y,o=m*-k+n*j;if(o*h*i>0){var p=Math.sqrt(m*m+n*n),q=l-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{m-=l*j,n-=l*k;var r=m*j+n*k;if(0>r){j*=-r,k*=-r;var s=Math.sqrt(j*j+k*k);return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),s>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}}else if(0===d)if(0>h*c){var t=f.pos.x-h*f.xw,u=f.pos.y,v=e.pos.x-t,w=e.pos.y-u;if(0>w*i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x+c*f.xw),n=e.pos.y-(f.pos.y-i*f.yw),o=m*-k+n*j;if(0>o*h*i){var p=Math.sqrt(m*m+n*n),q=e.radius-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var r=m*j+n*k,q=e.radius-Math.abs(r);if(q>0)return e.reportCollisionVsWorld(j*q,k*q,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{var t=f.pos.x+c*f.xw,u=f.pos.y+d*f.yw,v=e.pos.x-t,w=e.pos.y-u,p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_22DegB:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x-h*f.xw),n=e.pos.y-k*l-(f.pos.y+i*f.yw),o=m*j+n*k;if(0>o){j*=-o,k*=-o;var p=Math.sqrt(j*j+k*k);return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),p>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x-h*f.xw),n=e.pos.y-(f.pos.y+i*f.yw),q=m*-k+n*j;if(q*h*i>0){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var m=e.pos.x-(f.pos.x+h*f.xw),n=e.pos.y-f.pos.y;if(0>n*i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,q=m*-k+n*j;if(0>q*h*i){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(h*c+i*d>0){var t=Math.sqrt(5),j=1*h/t,k=2*i/t,l=e.radius,m=e.pos.x-j*l-(f.pos.x-h*f.xw),n=e.pos.y-k*l-(f.pos.y+i*f.yw),o=m*j+n*k;return 0>o?(e.reportCollisionVsWorld(-j*o,-k*o,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE}var u=f.pos.x+c*f.xw,v=f.pos.y+d*f.yw,w=e.pos.x-u,x=e.pos.y-v,r=Math.sqrt(w*w+x*x),s=e.radius-r;if(s>0)return 0===r?(w=c/Math.SQRT2,x=d/Math.SQRT2):(w/=r,x/=r),e.reportCollisionVsWorld(w*s,x*s,w,x,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_67DegS:function(a,b,c,d,e,f){var g=f.signx,h=f.signy;if(g*c>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c)if(0===d){var i,j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-f.pos.x,n=e.pos.y-(f.pos.y-h*f.yw),o=m*-k+n*j;if(0>o*g*h){var p=Math.sqrt(m*m+n*n),q=l-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{m-=l*j,n-=l*k;var r=m*j+n*k;if(0>r){j*=-r,k*=-r;var s=Math.sqrt(j*j+k*k);return b>a?(i=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(i=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),s>i?(e.reportCollisionVsWorld(a,b,a/i,b/i,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}}else if(0>h*d){var t=f.pos.x,u=f.pos.y-h*f.yw,v=e.pos.x-t,w=e.pos.y-u;if(0>v*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x-g*f.xw),n=e.pos.y-(f.pos.y+d*f.yw),o=m*-k+n*j;if(o*g*h>0){var p=Math.sqrt(m*m+n*n),q=e.radius-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var r=m*j+n*k,q=e.radius-Math.abs(r);if(q>0)return e.reportCollisionVsWorld(j*q,k*q,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(0===d)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var t=f.pos.x+c*f.xw,u=f.pos.y+d*f.yw,v=e.pos.x-t,w=e.pos.y-u,p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_67DegB:function(a,b,c,d,e,f){var g=f.signx,h=f.signy;if(0===c)if(0===d){var i,j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x+g*f.xw),n=e.pos.y-k*l-(f.pos.y-h*f.yw),o=m*j+n*k;if(0>o){j*=-o,k*=-o;var p=Math.sqrt(j*j+k*k);return b>a?(i=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(i=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),p>i?(e.reportCollisionVsWorld(a,b,a/i,b/i,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>h*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var m=e.pos.x-f.pos.x,n=e.pos.y-(f.pos.y+h*f.yw);if(0>m*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,q=m*-k+n*j;if(q*g*h>0){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>g*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var t=Math.sqrt(5),j=2*g/t,k=1*h/t,m=e.pos.x-(f.pos.x+g*f.xw),n=e.pos.y-(f.pos.y-h*f.yw),q=m*-k+n*j;if(0>q*g*h){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(g*c+h*d>0){var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x+g*f.xw),n=e.pos.y-k*l-(f.pos.y-h*f.yw),o=m*j+n*k;return 0>o?(e.reportCollisionVsWorld(-j*o,-k*o,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE}var u=f.pos.x+c*f.xw,v=f.pos.y+d*f.yw,w=e.pos.x-u,x=e.pos.y-v,r=Math.sqrt(w*w+x*x),s=e.radius-r;if(s>0)return 0===r?(w=c/Math.SQRT2,x=d/Math.SQRT2):(w/=r,x/=r),e.reportCollisionVsWorld(w*s,x*s,w,x,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},destroy:function(){this.body=null,this.system=null},render:function(a,b,c,d,e){var f=this.pos.x-b,g=this.pos.y-c;a.beginPath(),a.arc(f,g,this.radius,0,2*Math.PI,!1),e?(a.fillStyle=d,a.fill()):(a.strokeStyle=d,a.stroke())}}; \ No newline at end of file diff --git a/build/custom/p2.min.js b/build/custom/p2.min.js index b4e9aea669..bd84da9f7a 100644 --- a/build/custom/p2.min.js +++ b/build/custom/p2.min.js @@ -1,4 +1,4 @@ -/* p2.js custom build for Phaser v2.2.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +/* p2.js custom build for Phaser v2.2.1 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ !function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define("p2",function(){return this.p2=a()}()):"undefined"!=typeof window?window.p2=a():"undefined"!=typeof global?self.p2=a():"undefined"!=typeof self&&(self.p2=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gg;g++)f[g]=d.isBuffer(a)?a.readUInt8(g):a[g];else"string"===c&&f.write(a,0,b);return f}function e(a,b,c,e){c=Number(c)||0;var f=a.length-c;e?(e=Number(e),e>f&&(e=f)):e=f;var g=b.length;if(g%2!==0)throw new Error("Invalid hex string");e>g/2&&(e=g/2);for(var h=0;e>h;h++){var i=parseInt(b.substr(2*h,2),16);if(isNaN(i))throw new Error("Invalid hex string");a[c+h]=i}return d._charsWritten=2*h,h}function f(a,b,c,e){return d._charsWritten=tb(qb(b),a,c,e)}function g(a,b,c,e){return d._charsWritten=tb(rb(b),a,c,e)}function h(a,b,c,d){return g(a,b,c,d)}function i(a,b,c,e){return d._charsWritten=tb(sb(b),a,c,e)}function j(a,b,c,d){if(isFinite(b))isFinite(c)||(d=c,c=void 0);else{var j=d;d=b,b=c,c=j}b=Number(b)||0;var k=this.length-b;switch(c?(c=Number(c),c>k&&(c=k)):c=k,d=String(d||"utf8").toLowerCase()){case"hex":return e(this,a,b,c);case"utf8":case"utf-8":return f(this,a,b,c);case"ascii":return g(this,a,b,c);case"binary":return h(this,a,b,c);case"base64":return i(this,a,b,c);default:throw new Error("Unknown encoding")}}function k(a,b,c){var d=this instanceof kb?this._proxy:this;if(a=String(a||"utf8").toLowerCase(),b=Number(b)||0,c=void 0!==c?Number(c):c=d.length,c===b)return"";switch(a){case"hex":return r(d,b,c);case"utf8":case"utf-8":return o(d,b,c);case"ascii":return p(d,b,c);case"binary":return q(d,b,c);case"base64":return n(d,b,c);default:throw new Error("Unknown encoding")}}function l(){return{type:"Buffer",data:Array.prototype.slice.call(this,0)}}function m(a,b,c,d){var e=this;if(c||(c=0),d||0===d||(d=this.length),b||(b=0),d!==c&&0!==a.length&&0!==e.length){if(c>d)throw new Error("sourceEnd < sourceStart");if(0>b||b>=a.length)throw new Error("targetStart out of bounds");if(0>c||c>=e.length)throw new Error("sourceStart out of bounds");if(0>d||d>e.length)throw new Error("sourceEnd out of bounds");d>this.length&&(d=this.length),a.length-bf;f++)a[f+b]=this[f+c]}}function n(b,c,d){var e=b.slice(c,d);return a("base64-js").fromByteArray(e)}function o(a,b,c){for(var d=a.slice(b,c),e="",f="",g=0;gb)&&(b=0),(!c||0>c||c>d)&&(c=d);for(var e="",f=b;c>f;f++)e+=pb(a[f]);return e}function s(a,b){var c=this.length;return a=mb(a,c,0),b=mb(b,c,c),lb(this.subarray(a,b))}function t(a,b){var c=this;return b||(yb(void 0!==a&&null!==a,"missing offset"),yb(a=c.length?void 0:c[a]}function u(a,b,c,d){d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(void 0!==b&&null!==b,"missing offset"),yb(b+1=e)){if(b+1===e){var f=new Ab(new Bb(2));return f.setUint8(0,a[e-1]),f.getUint16(0,c)}return a._dataview.getUint16(b,c)}}function v(a,b){return u(this,a,!0,b)}function w(a,b){return u(this,a,!1,b)}function x(a,b,c,d){d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(void 0!==b&&null!==b,"missing offset"),yb(b+3=e)){if(b+3>=e){for(var f=new Ab(new Bb(4)),g=0;e>g+b;g++)f.setUint8(g,a[g+b]);return f.getUint32(0,c)}return a._dataview.getUint32(b,c)}}function y(a,b){return x(this,a,!0,b)}function z(a,b){return x(this,a,!1,b)}function A(a,b){var c=this;return b||(yb(void 0!==a&&null!==a,"missing offset"),yb(a=c.length?void 0:c._dataview.getInt8(a)}function B(a,b,c,d){d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(void 0!==b&&null!==b,"missing offset"),yb(b+1=e)){if(b+1===e){var f=new Ab(new Bb(2));return f.setUint8(0,a[e-1]),f.getInt16(0,c)}return a._dataview.getInt16(b,c)}}function C(a,b){return B(this,a,!0,b)}function D(a,b){return B(this,a,!1,b)}function E(a,b,c,d){d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(void 0!==b&&null!==b,"missing offset"),yb(b+3=e)){if(b+3>=e){for(var f=new Ab(new Bb(4)),g=0;e>g+b;g++)f.setUint8(g,a[g+b]);return f.getInt32(0,c)}return a._dataview.getInt32(b,c)}}function F(a,b){return E(this,a,!0,b)}function G(a,b){return E(this,a,!1,b)}function H(a,b,c,d){return d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(b+3=d.length||(d[b]=a)}function O(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+1=f))if(c+1===f){var g=new Ab(new Bb(2));g.setUint16(0,b,d),a[c]=g.getUint8(0)}else a._dataview.setUint16(c,b,d)}function P(a,b,c){O(this,a,b,!0,c)}function Q(a,b,c){O(this,a,b,!1,c)}function R(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+3=f))if(c+3>=f){var g=new Ab(new Bb(4));g.setUint32(0,b,d);for(var h=0;f>h+c;h++)a[h+c]=g.getUint8(h)}else a._dataview.setUint32(c,b,d)}function S(a,b,c){R(this,a,b,!0,c)}function T(a,b,c){R(this,a,b,!1,c)}function U(a,b,c){var d=this;c||(yb(void 0!==a&&null!==a,"missing value"),yb(void 0!==b&&null!==b,"missing offset"),yb(b=d.length||d._dataview.setInt8(b,a)}function V(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+1=f))if(c+1===f){var g=new Ab(new Bb(2));g.setInt16(0,b,d),a[c]=g.getUint8(0)}else a._dataview.setInt16(c,b,d)}function W(a,b,c){V(this,a,b,!0,c)}function X(a,b,c){V(this,a,b,!1,c)}function Y(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+3=f))if(c+3>=f){var g=new Ab(new Bb(4));g.setInt32(0,b,d);for(var h=0;f>h+c;h++)a[h+c]=g.getUint8(h)}else a._dataview.setInt32(c,b,d)}function Z(a,b,c){Y(this,a,b,!0,c)}function $(a,b,c){Y(this,a,b,!1,c)}function _(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+3=f))if(c+3>=f){var g=new Ab(new Bb(4));g.setFloat32(0,b,d);for(var h=0;f>h+c;h++)a[h+c]=g.getUint8(h)}else a._dataview.setFloat32(c,b,d)}function ab(a,b,c){_(this,a,b,!0,c)}function bb(a,b,c){_(this,a,b,!1,c)}function cb(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+7=f))if(c+7>=f){var g=new Ab(new Bb(8));g.setFloat64(0,b,d);for(var h=0;f>h+c;h++)a[h+c]=g.getUint8(h)}else a._dataview.setFloat64(c,b,d)}function db(a,b,c){cb(this,a,b,!0,c)}function eb(a,b,c){cb(this,a,b,!1,c)}function fb(a,b,c){if(a||(a=0),b||(b=0),c||(c=this.length),"string"==typeof a&&(a=a.charCodeAt(0)),"number"!=typeof a||isNaN(a))throw new Error("value is not a number");if(b>c)throw new Error("end < start");if(c!==b&&0!==this.length){if(0>b||b>=this.length)throw new Error("start out of bounds");if(0>c||c>this.length)throw new Error("end out of bounds");for(var d=b;c>d;d++)this[d]=a}}function gb(){for(var a=[],b=this.length,d=0;b>d;d++)if(a[d]=pb(this[d]),d===c.INSPECT_MAX_BYTES){a[d+1]="...";break}return""}function hb(){return new d(this).buffer}function ib(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function jb(){var a=new Cb(0);a.foo=function(){return 42};try{return 42===a.foo()}catch(b){return!1}}function kb(a){this._arr=a,0!==a.byteLength&&(this._dataview=new Ab(a.buffer,a.byteOffset,a.byteLength))}function lb(a){if(void 0===Db&&(Db=jb()),Db)return a.write=j,a.toString=k,a.toLocaleString=k,a.toJSON=l,a.copy=m,a.slice=s,a.readUInt8=t,a.readUInt16LE=v,a.readUInt16BE=w,a.readUInt32LE=y,a.readUInt32BE=z,a.readInt8=A,a.readInt16LE=C,a.readInt16BE=D,a.readInt32LE=F,a.readInt32BE=G,a.readFloatLE=I,a.readFloatBE=J,a.readDoubleLE=L,a.readDoubleBE=M,a.writeUInt8=N,a.writeUInt16LE=P,a.writeUInt16BE=Q,a.writeUInt32LE=S,a.writeUInt32BE=T,a.writeInt8=U,a.writeInt16LE=W,a.writeInt16BE=X,a.writeInt32LE=Z,a.writeInt32BE=$,a.writeFloatLE=ab,a.writeFloatBE=bb,a.writeDoubleLE=db,a.writeDoubleBE=eb,a.fill=fb,a.inspect=gb,a.toArrayBuffer=hb,a._isBuffer=!0,0!==a.byteLength&&(a._dataview=new Ab(a.buffer,a.byteOffset,a.byteLength)),a;var b=new kb(a),c=new Proxy(b,Eb);return b._proxy=c,c}function mb(a,b,c){return"number"!=typeof a?c:(a=~~a,a>=b?b:a>=0?a:(a+=b,a>=0?a:0))}function nb(a){return a=~~Math.ceil(+a),0>a?0:a}function ob(a){return Array.isArray(a)||d.isBuffer(a)||a&&"object"==typeof a&&"number"==typeof a.length}function pb(a){return 16>a?"0"+a.toString(16):a.toString(16)}function qb(a){for(var b=[],c=0;ce&&!(e+c>=b.length||e>=a.length);)b[e+c]=a[e],e++;return e}function ub(a){try{return decodeURIComponent(a)}catch(b){return String.fromCharCode(65533)}}function vb(a,b){yb("number"==typeof a,"cannot write a non-number as a number"),yb(a>=0,"specified a negative value for writing an unsigned value"),yb(b>=a,"value is larger than maximum value for type"),yb(Math.floor(a)===a,"value has a fractional component")}function wb(a,b,c){yb("number"==typeof a,"cannot write a non-number as a number"),yb(b>=a,"value larger than maximum allowed value"),yb(a>=c,"value smaller than minimum allowed value"),yb(Math.floor(a)===a,"value has a fractional component")}function xb(a,b,c){yb("number"==typeof a,"cannot write a non-number as a number"),yb(b>=a,"value larger than maximum allowed value"),yb(a>=c,"value smaller than minimum allowed value")}function yb(a,b){if(!a)throw new Error(b||"Failed assertion")}var zb=a("typedarray"),Ab="undefined"==typeof DataView?zb.DataView:DataView,Bb="undefined"==typeof ArrayBuffer?zb.ArrayBuffer:ArrayBuffer,Cb="undefined"==typeof Uint8Array?zb.Uint8Array:Uint8Array;c.Buffer=d,c.SlowBuffer=d,c.INSPECT_MAX_BYTES=50,d.poolSize=8192;var Db;d.isEncoding=function(a){switch((a+"").toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},d.isBuffer=function(a){return a&&a._isBuffer},d.byteLength=function(a,b){switch(b||"utf8"){case"hex":return a.length/2;case"utf8":case"utf-8":return qb(a).length;case"ascii":case"binary":return a.length;case"base64":return sb(a).length;default:throw new Error("Unknown encoding")}},d.concat=function(a,b){if(!Array.isArray(a))throw new Error("Usage: Buffer.concat(list, [totalLength])\nlist should be an Array.");var c,e;if(0===a.length)return new d(0);if(1===a.length)return a[0];if("number"!=typeof b)for(b=0,c=0;c0)throw"Invalid string. Length must be a multiple of 4";for(g=a.indexOf("="),g=g>0?a.length-g:0,h=[],e=g>0?a.length-4:a.length,b=0,c=0;e>b;b+=4,c+=3)f=d.indexOf(a[b])<<18|d.indexOf(a[b+1])<<12|d.indexOf(a[b+2])<<6|d.indexOf(a[b+3]),h.push((16711680&f)>>16),h.push((65280&f)>>8),h.push(255&f);return 2===g?(f=d.indexOf(a[b])<<2|d.indexOf(a[b+1])>>4,h.push(255&f)):1===g&&(f=d.indexOf(a[b])<<10|d.indexOf(a[b+1])<<4|d.indexOf(a[b+2])>>2,h.push(f>>8&255),h.push(255&f)),h}function c(a){function b(a){return d[a>>18&63]+d[a>>12&63]+d[a>>6&63]+d[63&a]}var c,e,f,g=a.length%3,h="";for(c=0,f=a.length-g;f>c;c+=3)e=(a[c]<<16)+(a[c+1]<<8)+a[c+2],h+=b(e);switch(g){case 1:e=a[a.length-1],h+=d[e>>2],h+=d[e<<4&63],h+="==";break;case 2:e=(a[a.length-2]<<8)+a[a.length-1],h+=d[e>>10],h+=d[e>>4&63],h+=d[e<<2&63],h+="="}return h}var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";b.exports.toByteArray=a,b.exports.fromByteArray=c}()},{}],4:[function(a,b,c){function d(a){if(L&&K){var b,c=L(a);for(b=0;bB)throw new RangeError("Array too large for polyfill");var c;for(c=0;c>c}function g(a,b){var c=32-b;return a<>>c}function h(a){return[255&a]}function i(a){return f(a[0],8)}function j(a){return[255&a]}function k(a){return g(a[0],8)}function l(a){return a=J(Number(a)),[0>a?0:a>255?255:255&a]}function m(a){return[a>>8&255,255&a]}function n(a){return f(a[0]<<8|a[1],16)}function o(a){return[a>>8&255,255&a]}function p(a){return g(a[0]<<8|a[1],16)}function q(a){return[a>>24&255,a>>16&255,a>>8&255,255&a]}function r(a){return f(a[0]<<24|a[1]<<16|a[2]<<8|a[3],32)}function s(a){return[a>>24&255,a>>16&255,a>>8&255,255&a]}function t(a){return g(a[0]<<24|a[1]<<16|a[2]<<8|a[3],32)}function u(a,b,c){function d(a){var b=F(a),c=a-b;return.5>c?b:c>.5?b+1:b%2?b+1:b}var e,f,g,h,i,j,k,l=(1<a?1:0):0===a?(f=0,g=0,e=1/a===-1/0?1:0):(e=0>a,a=E(a),a>=I(2,1-l)?(f=H(F(G(a)/D),1023),g=d(a/I(2,f)*I(2,c)),g/I(2,c)>=2&&(f+=1,g=1),f>l?(f=(1<>=1;return l.reverse(),g=l.join(""),h=(1<0?i*I(2,j-h)*(1+k/I(2,c)):0!==k?i*I(2,-(h-1))*(k/I(2,c)):0>i?-0:0}function w(a){return v(a,11,52)}function x(a){return u(a,11,52)}function y(a){return v(a,8,23)}function z(a){return u(a,8,23)}var A=void 0,B=1e5,C=function(){var a=Object.prototype.toString,b=Object.prototype.hasOwnProperty;return{Class:function(b){return a.call(b).replace(/^\[object *|\]$/g,"")},HasProperty:function(a,b){return b in a},HasOwnProperty:function(a,c){return b.call(a,c)},IsCallable:function(a){return"function"==typeof a},ToInt32:function(a){return a>>0},ToUint32:function(a){return a>>>0}}}(),D=Math.LN2,E=Math.abs,F=Math.floor,G=Math.log,H=Math.min,I=Math.pow,J=Math.round,K=Object.defineProperty||function(a,b,c){if(!a===Object(a))throw new TypeError("Object.defineProperty called on non-object");return C.HasProperty(c,"get")&&Object.prototype.__defineGetter__&&Object.prototype.__defineGetter__.call(a,b,c.get),C.HasProperty(c,"set")&&Object.prototype.__defineSetter__&&Object.prototype.__defineSetter__.call(a,b,c.set),C.HasProperty(c,"value")&&(a[b]=c.value),a},L=Object.getOwnPropertyNames||function(a){if(a!==Object(a))throw new TypeError("Object.getOwnPropertyNames called on non-object");var b,c=[];for(b in a)C.HasOwnProperty(a,b)&&c.push(b);return c};!function(){function a(a,c,g){var h;return h=function(a,c,f){var g,i,j,k;if(arguments.length&&"number"!=typeof arguments[0])if("object"==typeof arguments[0]&&arguments[0].constructor===h)for(g=arguments[0],this.length=g.length,this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new b(this.byteLength),this.byteOffset=0,j=0;jthis.buffer.byteLength)throw new RangeError("byteOffset out of range");if(this.byteOffset%this.BYTES_PER_ELEMENT)throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size.");if(arguments.length<3){if(this.byteLength=this.buffer.byteLength-this.byteOffset,this.byteLength%this.BYTES_PER_ELEMENT)throw new RangeError("length of buffer minus byteOffset not a multiple of the element size");this.length=this.byteLength/this.BYTES_PER_ELEMENT}else this.length=C.ToUint32(f),this.byteLength=this.length*this.BYTES_PER_ELEMENT;if(this.byteOffset+this.byteLength>this.buffer.byteLength)throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}else for(i=arguments[0],this.length=C.ToUint32(i.length),this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new b(this.byteLength),this.byteOffset=0,j=0;jf)throw new RangeError("ArrayBufferView size is not a small enough positive integer");this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new b(this.byteLength),this.byteOffset=0}this.constructor=h,d(this),e(this)},h.prototype=new f,h.prototype.BYTES_PER_ELEMENT=a,h.prototype._pack=c,h.prototype._unpack=g,h.BYTES_PER_ELEMENT=a,h.prototype._getter=function(a){if(arguments.length<1)throw new SyntaxError("Not enough arguments");if(a=C.ToUint32(a),a>=this.length)return A;var b,c,d=[];for(b=0,c=this.byteOffset+a*this.BYTES_PER_ELEMENT;b=this.length)return A;var c,d,e=this._pack(b);for(c=0,d=this.byteOffset+a*this.BYTES_PER_ELEMENT;cthis.length)throw new RangeError("Offset plus length of array is out of range");if(h=this.byteOffset+c*this.BYTES_PER_ELEMENT,i=a.length*this.BYTES_PER_ELEMENT,a.buffer===this.buffer){for(j=[],e=0,f=a.byteOffset;i>e;e+=1,f+=1)j[e]=a.buffer._bytes[f];for(e=0,g=h;i>e;e+=1,g+=1)this.buffer._bytes[g]=j[e]}else for(e=0,f=a.byteOffset,g=h;i>e;e+=1,f+=1,g+=1)this.buffer._bytes[g]=a.buffer._bytes[f]}else{if("object"!=typeof arguments[0]||"undefined"==typeof arguments[0].length)throw new TypeError("Unexpected argument type(s)");if(b=arguments[0],d=C.ToUint32(b.length),c=C.ToUint32(arguments[1]),c+d>this.length)throw new RangeError("Offset plus length of array is out of range");for(e=0;d>e;e+=1)f=b[e],this._setter(c+e,Number(f))}},h.prototype.subarray=function(a,b){function c(a,b,c){return b>a?b:a>c?c:a}a=C.ToInt32(a),b=C.ToInt32(b),arguments.length<1&&(a=0),arguments.length<2&&(b=this.length),0>a&&(a=this.length+a),0>b&&(b=this.length+b),a=c(a,0,this.length),b=c(b,0,this.length);var d=b-a;return 0>d&&(d=0),new this.constructor(this.buffer,this.byteOffset+a*this.BYTES_PER_ELEMENT,d)},h}var b=function(a){if(a=C.ToInt32(a),0>a)throw new RangeError("ArrayBuffer size is not a small enough positive integer");this.byteLength=a,this._bytes=[],this._bytes.length=a;var b;for(b=0;bthis.byteLength)throw new RangeError("Array index out of range");c+=this.byteOffset;var e,g=new Uint8Array(this.buffer,c,b.BYTES_PER_ELEMENT),h=[];for(e=0;ethis.byteLength)throw new RangeError("Array index out of range");var g,h,i=new b([d]),j=new Uint8Array(i.buffer),k=[];for(g=0;gthis.buffer.byteLength)throw new RangeError("byteOffset out of range");if(this.byteLength=arguments.length<3?this.buffer.byteLength-this.byteOffset:C.ToUint32(c),this.byteOffset+this.byteLength>this.buffer.byteLength)throw new RangeError("byteOffset and length reference an area beyond the end of the buffer");d(this)};g.prototype.getUint8=b(c.Uint8Array),g.prototype.getInt8=b(c.Int8Array),g.prototype.getUint16=b(c.Uint16Array),g.prototype.getInt16=b(c.Int16Array),g.prototype.getUint32=b(c.Uint32Array),g.prototype.getInt32=b(c.Int32Array),g.prototype.getFloat32=b(c.Float32Array),g.prototype.getFloat64=b(c.Float64Array),g.prototype.setUint8=e(c.Uint8Array),g.prototype.setInt8=e(c.Int8Array),g.prototype.setUint16=e(c.Uint16Array),g.prototype.setInt16=e(c.Int16Array),g.prototype.setUint32=e(c.Uint32Array),g.prototype.setInt32=e(c.Int32Array),g.prototype.setFloat32=e(c.Float32Array),g.prototype.setFloat64=e(c.Float64Array),c.DataView=c.DataView||g}()},{}]},{},[]),b.exports=a("native-buffer-browserify").Buffer},{}],2:[function(a,b){var c=b.exports={};c.nextTick=function(){var a="undefined"!=typeof window&&window.setImmediate,b="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(a)return function(a){return window.setImmediate(a)};if(b){var c=[];return window.addEventListener("message",function(a){if(a.source===window&&"process-tick"===a.data&&(a.stopPropagation(),c.length>0)){var b=c.shift();b()}},!0),function(a){c.push(a),window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}(),c.title="browser",c.browser=!0,c.env={},c.argv=[],c.binding=function(){throw new Error("process.binding is not supported")},c.cwd=function(){return"/"},c.chdir=function(){throw new Error("process.chdir is not supported")}},{}],3:[function(a,b){function c(){}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Scalar"));b.exports=c,c.lineInt=function(a,b,c){c=c||0;var e,f,g,h,i,j,k,l=[0,0];return e=a[1][1]-a[0][1],f=a[0][0]-a[1][0],g=e*a[0][0]+f*a[0][1],h=b[1][1]-b[0][1],i=b[0][0]-b[1][0],j=h*b[0][0]+i*b[0][1],k=e*i-h*f,d.eq(k,0,c)||(l[0]=(i*g-f*j)/k,l[1]=(e*j-h*g)/k),l},c.segmentsIntersect=function(a,b,c,d){var e=b[0]-a[0],f=b[1]-a[1],g=d[0]-c[0],h=d[1]-c[1];if(g*f-h*e==0)return!1;var i=(e*(c[1]-a[1])+f*(a[0]-c[0]))/(g*f-h*e),j=(g*(a[1]-c[1])+h*(c[0]-a[0]))/(h*e-g*f);return i>=0&&1>=i&&j>=0&&1>=j}},{"./Scalar":6,__browserify_Buffer:1,__browserify_process:2}],4:[function(a,b){function c(){}a("__browserify_process"),a("__browserify_Buffer");b.exports=c,c.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},c.left=function(a,b,d){return c.area(a,b,d)>0},c.leftOn=function(a,b,d){return c.area(a,b,d)>=0},c.right=function(a,b,d){return c.area(a,b,d)<0},c.rightOn=function(a,b,d){return c.area(a,b,d)<=0};var d=[],e=[];c.collinear=function(a,b,f,g){if(g){var h=d,i=e;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=f[0]-b[0],i[1]=f[1]-b[1];var j=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]),m=Math.acos(j/(k*l));return g>m}return 0==c.area(a,b,f)},c.sqdist=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d}},{__browserify_Buffer:1,__browserify_process:2}],5:[function(a,b){function c(){this.vertices=[]}function d(a,b,c,d,e){e=e||0;var f=b[1]-a[1],h=a[0]-b[0],i=f*a[0]+h*a[1],j=d[1]-c[1],k=c[0]-d[0],l=j*c[0]+k*c[1],m=f*k-j*h;return g.eq(m,0,e)?[0,0]:[(k*i-h*l)/m,(f*l-j*i)/m]}var e=(a("__browserify_process"),a("__browserify_Buffer"),a("./Line")),f=a("./Point"),g=a("./Scalar");b.exports=c,c.prototype.at=function(a){var b=this.vertices,c=b.length;return b[0>a?a%c+c:a%c]},c.prototype.first=function(){return this.vertices[0]},c.prototype.last=function(){return this.vertices[this.vertices.length-1]},c.prototype.clear=function(){this.vertices.length=0},c.prototype.append=function(a,b,c){if("undefined"==typeof b)throw new Error("From is not given!");if("undefined"==typeof c)throw new Error("To is not given!");if(b>c-1)throw new Error("lol1");if(c>a.vertices.length)throw new Error("lol2");if(0>b)throw new Error("lol3");for(var d=b;c>d;d++)this.vertices.push(a.vertices[d])},c.prototype.makeCCW=function(){for(var a=0,b=this.vertices,c=1;cb[a][0])&&(a=c);f.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},c.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},c.prototype.isReflex=function(a){return f.right(this.at(a-1),this.at(a),this.at(a+1))};var h=[],i=[];c.prototype.canSee=function(a,b){var c,d,g=h,j=i;if(f.leftOn(this.at(a+1),this.at(a),this.at(b))&&f.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=f.sqdist(this.at(a),this.at(b));for(var k=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&f.leftOn(this.at(a),this.at(b),this.at(k+1))&&f.rightOn(this.at(a),this.at(b),this.at(k))&&(g[0]=this.at(a),g[1]=this.at(b),j[0]=this.at(k),j[1]=this.at(k+1),c=e.lineInt(g,j),f.sqdist(this.at(a),c)a)for(var f=a;b>=f;f++)e.vertices.push(this.vertices[f]);else{for(var f=0;b>=f;f++)e.vertices.push(this.vertices[f]);for(var f=a;f0?this.slice(a):[this]},c.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;cc;c++)if(e.segmentsIntersect(a[b],a[b+1],a[c],a[c+1]))return!1;for(var b=1;bh)return console.warn("quickDecomp: max level ("+h+") reached."),a; for(var x=0;xo&&(n=o,k=l,r=y))),f.left(v.at(x+1),v.at(x),v.at(y+1))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(l=d(v.at(x+1),v.at(x),v.at(y),v.at(y+1)),f.left(v.at(x-1),v.at(x),l)&&(o=f.sqdist(v.vertices[x],l),m>o&&(m=o,j=l,q=y)));if(r==(q+1)%this.vertices.length)l[0]=(k[0]+j[0])/2,l[1]=(k[1]+j[1])/2,e.push(l),q>x?(t.append(v,x,q+1),t.vertices.push(l),u.vertices.push(l),0!=r&&u.append(v,r,v.vertices.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,v.vertices.length),t.append(v,0,q+1),t.vertices.push(l),u.vertices.push(l),u.append(v,r,x+1));else{if(r>q&&(q+=this.vertices.length),p=Number.MAX_VALUE,r>q)return a;for(var y=r;q>=y;++y)f.leftOn(v.at(x-1),v.at(x),v.at(y))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(o=f.sqdist(v.at(x),v.at(y)),p>o&&(p=o,s=y%this.vertices.length));s>x?(t.append(v,x,s+1),0!=s&&u.append(v,s,w.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,w.length),t.append(v,0,s+1),u.append(v,s,x+1))}return t.vertices.length3&&c>=0;--c)f.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":3,"./Point":4,"./Scalar":6,__browserify_Buffer:1,__browserify_process:2}],6:[function(a,b){function c(){}a("__browserify_process"),a("__browserify_Buffer");b.exports=c,c.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"~0.4.0","grunt-contrib-jshint":"~0.9.2","grunt-contrib-nodeunit":"~0.1.2","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","grunt-contrib-concat":"^0.4.0"},dependencies:{"poly-decomp":"0.1.0"}}},{__browserify_Buffer:1,__browserify_process:2}],9:[function(a,b){function c(a){this.lowerBound=d.create(),a&&a.lowerBound&&d.copy(this.lowerBound,a.lowerBound),this.upperBound=d.create(),a&&a.upperBound&&d.copy(this.upperBound,a.upperBound)}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2"));a("../utils/Utils")}b.exports=c;var e=d.create();c.prototype.setFromPoints=function(a,b,c,f){var g=this.lowerBound,h=this.upperBound;"number"!=typeof c&&(c=0),0!==c?d.rotate(g,a[0],c):d.copy(g,a[0]),d.copy(h,g);for(var i=Math.cos(c),j=Math.sin(c),k=1;ko;o++)l[o]>h[o]&&(h[o]=l[o]),l[o]c&&(this.lowerBound[b]=c);var d=a.upperBound[b];this.upperBound[b]=c},c.aabbCheck=function(a,b){return a.getAABB().overlaps(b.getAABB())},c.prototype.boundingVolumeCheck=function(a,b){var d;switch(this.boundingVolumeType){case c.BOUNDING_CIRCLE:d=c.boundingRadiusCheck(a,b);break;case c.AABB:d=c.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return d},c.canCollide=function(a,b){return a.type===e.STATIC&&b.type===e.STATIC?!1:a.type===e.KINEMATIC&&b.type===e.STATIC||a.type===e.STATIC&&b.type===e.KINEMATIC?!1:a.type===e.KINEMATIC&&b.type===e.KINEMATIC?!1:a.sleepState===e.SLEEPING&&b.sleepState===e.SLEEPING?!1:a.sleepState===e.SLEEPING&&b.type===e.STATIC||b.sleepState===e.SLEEPING&&a.type===e.STATIC?!1:!0},c.NAIVE=1,c.SAP=2},{"../math/vec2":31,"../objects/Body":32,__browserify_Buffer:1,__browserify_process:2}],11:[function(a,b){function c(a){d.apply(this),a=e.defaults(a,{xmin:-100,xmax:100,ymin:-100,ymax:100,nx:10,ny:10}),this.xmin=a.xmin,this.ymin=a.ymin,this.xmax=a.xmax,this.ymax=a.ymax,this.nx=a.nx,this.ny=a.ny,this.binsizeX=(this.xmax-this.xmin)/this.nx,this.binsizeY=(this.ymax-this.ymin)/this.ny}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Particle"),a("../collision/Broadphase")),e=(a("../math/vec2"),a("../utils/Utils"));b.exports=c,c.prototype=new d,c.prototype.getCollisionPairs=function(a){for(var b=[],c=a.bodies,e=c.length,f=(this.binsizeX,this.binsizeY,this.nx),g=this.ny,h=this.xmin,i=this.ymin,j=this.xmax,k=this.ymax,l=[],m=f*g,n=0;m>n;n++)l.push([]);for(var o=f/(j-h),p=g/(k-i),n=0;n!==e;n++)for(var q=c[n],r=q.aabb,s=Math.max(r.lowerBound[0],h),t=Math.max(r.lowerBound[1],i),u=Math.min(r.upperBound[0],j),v=Math.min(r.upperBound[1],k),w=Math.floor(o*(s-h)),x=Math.floor(p*(t-i)),y=Math.floor(o*(u-h)),z=Math.floor(p*(v-i)),A=w;y>=A;A++)for(var B=x;z>=B;B++){var C=A,D=B,E=C*(g-1)+D;E>=0&&m>E&&l[E].push(q)}for(var n=0;n!==m;n++)for(var F=l[n],A=0,G=F.length;A!==G;A++)for(var q=F[A],B=0;B!==A;B++){var H=F[B];d.canCollide(q,H)&&this.boundingVolumeCheck(q,H)&&b.push(q,H)}return b}},{"../collision/Broadphase":10,"../math/vec2":31,"../shapes/Circle":38,"../shapes/Particle":42,"../shapes/Plane":43,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],12:[function(a,b){function c(){d.call(this,d.NAIVE)}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var e=0,f=b.length;e!==f;e++)for(var g=b[e],h=0;e>h;h++){var i=b[h];d.canCollide(g,i)&&this.boundingVolumeCheck(g,i)&&c.push(g,i)}return c}},{"../collision/Broadphase":10,"../math/vec2":31,"../shapes/Circle":38,"../shapes/Particle":42,"../shapes/Plane":43,"../shapes/Shape":45,__browserify_Buffer:1,__browserify_process:2}],13:[function(a,b){function c(){this.contactEquations=[],this.frictionEquations=[],this.enableFriction=!0,this.slipForce=10,this.frictionCoefficient=.3,this.surfaceVelocity=0,this.reuseObjects=!0,this.reusableContactEquations=[],this.reusableFrictionEquations=[],this.restitution=0,this.stiffness=l.DEFAULT_STIFFNESS,this.relaxation=l.DEFAULT_RELAXATION,this.frictionStiffness=l.DEFAULT_STIFFNESS,this.frictionRelaxation=l.DEFAULT_RELAXATION,this.enableFrictionReduction=!0,this.collidingBodiesLastStep=new k,this.contactSkinSize=.01}function d(a,b){f.set(a.vertices[0],.5*-b.length,-b.radius),f.set(a.vertices[1],.5*b.length,-b.radius),f.set(a.vertices[2],.5*b.length,b.radius),f.set(a.vertices[3],.5*-b.length,b.radius)}function e(a,b,c,d){for(var e=R,i=S,j=T,k=U,l=a,m=b.vertices,n=null,o=0;o!==m.length+1;o++){var p=m[o%m.length],q=m[(o+1)%m.length];f.rotate(e,p,d),f.rotate(i,q,d),h(e,e,c),h(i,i,c),g(j,e,l),g(k,i,l);var r=f.crossLength(j,k);if(null===n&&(n=r),0>=r*n)return!1;n=r}return!0}var f=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2")),g=f.sub,h=f.add,i=f.dot,j=a("../utils/Utils"),k=a("../utils/TupleDictionary"),l=a("../equations/Equation"),m=a("../equations/ContactEquation"),n=a("../equations/FrictionEquation"),o=a("../shapes/Circle"),p=a("../shapes/Convex"),q=a("../shapes/Shape"),r=(a("../objects/Body"),a("../shapes/Rectangle"));b.exports=c;var s=f.fromValues(0,1),t=f.fromValues(0,0),u=f.fromValues(0,0),v=f.fromValues(0,0),w=f.fromValues(0,0),x=f.fromValues(0,0),y=f.fromValues(0,0),z=f.fromValues(0,0),A=f.fromValues(0,0),B=f.fromValues(0,0),C=f.fromValues(0,0),D=f.fromValues(0,0),E=f.fromValues(0,0),F=f.fromValues(0,0),G=f.fromValues(0,0),H=f.fromValues(0,0),I=f.fromValues(0,0),J=f.fromValues(0,0),K=f.fromValues(0,0),L=[];c.prototype.collidedLastStep=function(a,b){var c=0|a.id,d=0|b.id;return!!this.collidingBodiesLastStep.get(c,d)},c.prototype.reset=function(){this.collidingBodiesLastStep.reset();for(var a=this.contactEquations,b=a.length;b--;){var c=a[b],d=c.bodyA.id,e=c.bodyB.id;this.collidingBodiesLastStep.set(d,e,!0)}if(this.reuseObjects){var f=this.contactEquations,g=this.frictionEquations,h=this.reusableFrictionEquations,i=this.reusableContactEquations;j.appendArray(i,f),j.appendArray(h,g)}this.contactEquations.length=this.frictionEquations.length=0},c.prototype.createContactEquation=function(a,b,c,d){var e=this.reusableContactEquations.length?this.reusableContactEquations.pop():new m(a,b);return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.restitution=this.restitution,e.firstImpact=!this.collidedLastStep(a,b),e.stiffness=this.stiffness,e.relaxation=this.relaxation,e.needsUpdate=!0,e.enabled=!0,e.offset=this.contactSkinSize,e},c.prototype.createFrictionEquation=function(a,b,c,d){var e=this.reusableFrictionEquations.length?this.reusableFrictionEquations.pop():new n(a,b);return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.setSlipForce(this.slipForce),e.frictionCoefficient=this.frictionCoefficient,e.relativeVelocity=this.surfaceVelocity,e.enabled=!0,e.needsUpdate=!0,e.stiffness=this.frictionStiffness,e.relaxation=this.frictionRelaxation,e.contactEquations.length=0,e},c.prototype.createFrictionFromContact=function(a){var b=this.createFrictionEquation(a.bodyA,a.bodyB,a.shapeA,a.shapeB);return f.copy(b.contactPointA,a.contactPointA),f.copy(b.contactPointB,a.contactPointB),f.rotate90cw(b.t,a.normalA),b.contactEquations.push(a),b},c.prototype.createFrictionFromAverage=function(a){if(!a)throw new Error("numContacts == 0!");{var b=this.contactEquations[this.contactEquations.length-1],c=this.createFrictionEquation(b.bodyA,b.bodyB,b.shapeA,b.shapeB),d=b.bodyA;b.bodyB}f.set(c.contactPointA,0,0),f.set(c.contactPointB,0,0),f.set(c.t,0,0);for(var e=0;e!==a;e++)b=this.contactEquations[this.contactEquations.length-1-e],b.bodyA===d?(f.add(c.t,c.t,b.normalA),f.add(c.contactPointA,c.contactPointA,b.contactPointA),f.add(c.contactPointB,c.contactPointB,b.contactPointB)):(f.sub(c.t,c.t,b.normalA),f.add(c.contactPointA,c.contactPointA,b.contactPointB),f.add(c.contactPointB,c.contactPointB,b.contactPointA)),c.contactEquations.push(b);var g=1/a;return f.scale(c.contactPointA,c.contactPointA,g),f.scale(c.contactPointB,c.contactPointB,g),f.normalize(c.t,c.t),f.rotate90cw(c.t,c.t),c},c.prototype[q.LINE|q.CONVEX]=c.prototype.convexLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[q.LINE|q.RECTANGLE]=c.prototype.lineRectangle=function(a,b,c,d,e,f,g,h,i){return i?!1:0};var M=new r(1,1),N=f.create();c.prototype[q.CAPSULE|q.CONVEX]=c.prototype[q.CAPSULE|q.RECTANGLE]=c.prototype.convexCapsule=function(a,b,c,e,g,h,i,j,k){var l=N;f.set(l,h.length/2,0),f.rotate(l,l,j),f.add(l,l,i);var m=this.circleConvex(g,h,l,j,a,b,c,e,k,h.radius);f.set(l,-h.length/2,0),f.rotate(l,l,j),f.add(l,l,i);var n=this.circleConvex(g,h,l,j,a,b,c,e,k,h.radius);if(k&&(m||n))return!0;var o=M;d(o,h);var p=this.convexConvex(a,b,c,e,g,o,i,j,k);return p+m+n},c.prototype[q.CAPSULE|q.LINE]=c.prototype.lineCapsule=function(a,b,c,d,e,f,g,h,i){return i?!1:0};var O=f.create(),P=f.create(),Q=new r(1,1);c.prototype[q.CAPSULE|q.CAPSULE]=c.prototype.capsuleCapsule=function(a,b,c,e,g,h,i,j,k){for(var l,m=O,n=P,o=0,p=0;2>p;p++){f.set(m,(0===p?-1:1)*b.length/2,0),f.rotate(m,m,e),f.add(m,m,c);for(var q=0;2>q;q++){f.set(n,(0===q?-1:1)*h.length/2,0),f.rotate(n,n,j),f.add(n,n,i),this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var r=this.circleCircle(a,b,m,e,g,h,n,j,k,b.radius,h.radius);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&r)return!0;o+=r}}this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var s=Q;d(s,b);var t=this.convexCapsule(a,s,c,e,g,h,i,j,k);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&t)return!0;if(o+=t,this.enableFrictionReduction){var l=this.enableFriction;this.enableFriction=!1}d(s,h);var u=this.convexCapsule(g,s,i,j,a,b,c,e,k);return this.enableFrictionReduction&&(this.enableFriction=l),k&&u?!0:(o+=u,this.enableFrictionReduction&&o&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(o)),o)},c.prototype[q.LINE|q.LINE]=c.prototype.lineLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[q.PLANE|q.LINE]=c.prototype.planeLine=function(a,b,c,d,e,j,k,l,m){var n=t,o=u,p=v,q=w,r=x,C=y,D=z,E=A,F=B,G=L,H=0;f.set(n,-j.length/2,0),f.set(o,j.length/2,0),f.rotate(p,n,l),f.rotate(q,o,l),h(p,p,k),h(q,q,k),f.copy(n,p),f.copy(o,q),g(r,o,n),f.normalize(C,r),f.rotate90cw(F,C),f.rotate(E,s,d),G[0]=n,G[1]=o;for(var I=0;IK){if(m)return!0;var M=this.createContactEquation(a,e,b,j);H++,f.copy(M.normalA,E),f.normalize(M.normalA,M.normalA),f.scale(D,E,K),g(M.contactPointA,J,D),g(M.contactPointA,M.contactPointA,a.position),g(M.contactPointB,J,k),h(M.contactPointB,M.contactPointB,k),g(M.contactPointB,M.contactPointB,e.position),this.contactEquations.push(M),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(M))}}return m?!1:(this.enableFrictionReduction||H&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(H)),H)},c.prototype[q.PARTICLE|q.CAPSULE]=c.prototype.particleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius,0)},c.prototype[q.CIRCLE|q.LINE]=c.prototype.circleLine=function(a,b,c,d,e,j,k,l,m,n,o){var n=n||0,o="undefined"!=typeof o?o:b.radius,p=t,q=u,r=v,s=w,H=x,I=y,J=z,K=A,M=B,N=C,O=D,P=E,Q=F,R=G,S=L;f.set(K,-j.length/2,0),f.set(M,j.length/2,0),f.rotate(N,K,l),f.rotate(O,M,l),h(N,N,k),h(O,O,k),f.copy(K,N),f.copy(M,O),g(I,M,K),f.normalize(J,I),f.rotate90cw(H,J),g(P,c,K);var T=i(P,H);g(s,K,k),g(Q,c,k);var U=o+n;if(Math.abs(T)W&&X>V){if(m)return!0;var Y=this.createContactEquation(a,e,b,j);return f.scale(Y.normalA,p,-1),f.normalize(Y.normalA,Y.normalA),f.scale(Y.contactPointA,Y.normalA,o),h(Y.contactPointA,Y.contactPointA,c),g(Y.contactPointA,Y.contactPointA,a.position),g(Y.contactPointB,r,k),h(Y.contactPointB,Y.contactPointB,k),g(Y.contactPointB,Y.contactPointB,e.position),this.contactEquations.push(Y),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(Y)),1}}S[0]=K,S[1]=M;for(var Z=0;ZQ&&(f.copy(J,B),L=Q,f.scale(A,s,Q),f.add(A,A,B),K=!0)}}if(K){if(m)return!0;var R=this.createContactEquation(a,i,b,j);return f.sub(R.normalA,J,c),f.normalize(R.normalA,R.normalA),f.scale(R.contactPointA,R.normalA,n),h(R.contactPointA,R.contactPointA,c),g(R.contactPointA,R.contactPointA,a.position),g(R.contactPointB,A,k),h(R.contactPointB,R.contactPointB,k),g(R.contactPointB,R.contactPointB,i.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}if(n>0)for(var N=0;NQ&&(I=Q,f.scale(E,s,Q),f.add(E,E,c),f.copy(H,s),L=!0)}if(L){var R=this.createContactEquation(a,j,b,k);return f.scale(R.normalA,H,-1),f.normalize(R.normalA,R.normalA),f.set(R.contactPointA,0,0),h(R.contactPointA,R.contactPointA,c),g(R.contactPointA,R.contactPointA,a.position),g(R.contactPointB,E,l),h(R.contactPointB,R.contactPointB,l),g(R.contactPointB,R.contactPointB,j.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}return 0},c.prototype[q.CIRCLE]=c.prototype.circleCircle=function(a,b,c,d,e,i,j,k,l,m,n){var o=t,m=m||b.radius,n=n||i.radius;g(o,c,j);var p=m+n;if(f.squaredLength(o)>Math.pow(p,2))return 0;if(l)return!0;var q=this.createContactEquation(a,e,b,i);return g(q.normalA,j,c),f.normalize(q.normalA,q.normalA),f.scale(q.contactPointA,q.normalA,m),f.scale(q.contactPointB,q.normalA,-n),h(q.contactPointA,q.contactPointA,c),g(q.contactPointA,q.contactPointA,a.position),h(q.contactPointB,q.contactPointB,j),g(q.contactPointB,q.contactPointB,e.position),this.contactEquations.push(q),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(q)),1},c.prototype[q.PLANE|q.CONVEX]=c.prototype[q.PLANE|q.RECTANGLE]=c.prototype.planeConvex=function(a,b,c,d,e,j,k,l,m){var n=t,o=u,p=v,q=0;f.rotate(o,s,d);for(var r=0;r!==j.vertices.length;r++){var w=j.vertices[r];if(f.rotate(n,w,l),h(n,n,k),g(p,n,c),i(p,o)<=0){if(m)return!0;q++;var x=this.createContactEquation(a,e,b,j);g(p,n,c),f.copy(x.normalA,o);var y=i(p,x.normalA);f.scale(p,x.normalA,y),g(x.contactPointB,n,e.position),g(x.contactPointA,n,p),g(x.contactPointA,x.contactPointA,a.position),this.contactEquations.push(x),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x))}}return this.enableFrictionReduction&&this.enableFriction&&q&&this.frictionEquations.push(this.createFrictionFromAverage(q)),q},c.prototype[q.PARTICLE|q.PLANE]=c.prototype.particlePlane=function(a,b,c,d,e,h,j,k,l){var m=t,n=u;k=k||0,g(m,c,j),f.rotate(n,s,k);var o=i(m,n);if(o>0)return 0;if(l)return!0;var p=this.createContactEquation(e,a,h,b);return f.copy(p.normalA,n),f.scale(m,p.normalA,o),g(p.contactPointA,c,m),g(p.contactPointA,p.contactPointA,e.position),g(p.contactPointB,c,a.position),this.contactEquations.push(p),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(p)),1},c.prototype[q.CIRCLE|q.PARTICLE]=c.prototype.circleParticle=function(a,b,c,d,e,i,j,k,l){var m=t;if(g(m,j,c),f.squaredLength(m)>Math.pow(b.radius,2))return 0;if(l)return!0;var n=this.createContactEquation(a,e,b,i);return f.copy(n.normalA,m),f.normalize(n.normalA,n.normalA),f.scale(n.contactPointA,n.normalA,b.radius),h(n.contactPointA,n.contactPointA,c),g(n.contactPointA,n.contactPointA,a.position),g(n.contactPointB,j,e.position),this.contactEquations.push(n),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(n)),1};{var V=new o(1),W=f.create(),X=f.create();f.create()}c.prototype[q.PLANE|q.CAPSULE]=c.prototype.planeCapsule=function(a,b,c,d,e,g,i,j,k){var l=W,m=X,n=V;f.set(l,-g.length/2,0),f.rotate(l,l,j),h(l,l,i),f.set(m,g.length/2,0),f.rotate(m,m,j),h(m,m,i),n.radius=g.radius;var o;this.enableFrictionReduction&&(o=this.enableFriction,this.enableFriction=!1);var p=this.circlePlane(e,n,l,0,a,b,c,d,k),q=this.circlePlane(e,n,m,0,a,b,c,d,k);if(this.enableFrictionReduction&&(this.enableFriction=o),k)return p||q;var r=p+q;return this.enableFrictionReduction&&r&&this.frictionEquations.push(this.createFrictionFromAverage(r)),r},c.prototype[q.CIRCLE|q.PLANE]=c.prototype.circlePlane=function(a,b,c,d,e,j,k,l,m){var n=a,o=b,p=c,q=e,r=k,w=l;w=w||0;var x=t,y=u,z=v;g(x,p,r),f.rotate(y,s,w);var A=i(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,j,b);return f.copy(B.normalA,y),f.scale(B.contactPointB,B.normalA,-o.radius),h(B.contactPointB,B.contactPointB,p),g(B.contactPointB,B.contactPointB,n.position),f.scale(z,B.normalA,A),g(B.contactPointA,x,z),h(B.contactPointA,B.contactPointA,r),g(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},c.prototype[q.CONVEX]=c.prototype[q.CONVEX|q.RECTANGLE]=c.prototype[q.RECTANGLE]=c.prototype.convexConvex=function(a,b,d,e,j,k,l,m,n,o){var p=t,q=u,r=v,s=w,y=x,C=z,D=A,E=B,F=0,o="number"==typeof o?o:0,G=c.findSeparatingAxis(b,d,e,k,l,m,p);if(!G)return 0;g(D,l,d),i(p,D)>0&&f.scale(p,p,-1);var H=c.getClosestEdge(b,e,p,!0),I=c.getClosestEdge(k,m,p);if(-1===H||-1===I)return 0;for(var J=0;2>J;J++){var K=H,L=I,M=b,N=k,O=d,P=l,Q=e,R=m,S=a,T=j;if(0===J){var U;U=K,K=L,L=U,U=M,M=N,N=U,U=O,O=P,P=U,U=Q,Q=R,R=U,U=S,S=T,T=U}for(var V=L;L+2>V;V++){var W=N.vertices[(V+N.vertices.length)%N.vertices.length];f.rotate(q,W,R),h(q,q,P);for(var X=0,Y=K-1;K+2>Y;Y++){var Z=M.vertices[(Y+M.vertices.length)%M.vertices.length],$=M.vertices[(Y+1+M.vertices.length)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(s,$,Q),h(r,r,O),h(s,s,O),g(y,s,r),f.rotate90cw(E,y),f.normalize(E,E),g(D,q,r);var _=i(E,D);(Y===K&&o>=_||Y!==K&&0>=_)&&X++}if(X>=3){if(n)return!0;var ab=this.createContactEquation(S,T,M,N);F++;var Z=M.vertices[K%M.vertices.length],$=M.vertices[(K+1)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(s,$,Q),h(r,r,O),h(s,s,O),g(y,s,r),f.rotate90cw(ab.normalA,y),f.normalize(ab.normalA,ab.normalA),g(D,q,r);var _=i(ab.normalA,D);f.scale(C,ab.normalA,_),g(ab.contactPointA,q,O),g(ab.contactPointA,ab.contactPointA,C),h(ab.contactPointA,ab.contactPointA,O),g(ab.contactPointA,ab.contactPointA,S.position),g(ab.contactPointB,q,P),h(ab.contactPointB,ab.contactPointB,P),g(ab.contactPointB,ab.contactPointB,T.position),this.contactEquations.push(ab),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(ab))}}}return this.enableFrictionReduction&&this.enableFriction&&F&&this.frictionEquations.push(this.createFrictionFromAverage(F)),F};var Y=f.fromValues(0,0);c.projectConvexOntoAxis=function(a,b,c,d,e){var g,h,j=null,k=null,l=Y;f.rotate(l,d,-c);for(var m=0;mj)&&(j=h),(null===k||k>h)&&(k=h);if(k>j){var n=k;k=j,j=n}var o=i(b,d);f.set(e,k+o,j+o)};var Z=f.fromValues(0,0),$=f.fromValues(0,0),_=f.fromValues(0,0),ab=f.fromValues(0,0),bb=f.fromValues(0,0),cb=f.fromValues(0,0);c.findSeparatingAxis=function(a,b,d,e,h,i,j){var k=null,l=!1,m=!1,n=Z,o=$,p=_,q=ab,s=bb,t=cb;if(a instanceof r&&e instanceof r)for(var u=0;2!==u;u++){var v=a,w=d;1===u&&(v=e,w=i);for(var x=0;2!==x;x++){0===x?f.set(q,0,1):1===x&&f.set(q,1,0),0!==w&&f.rotate(q,q,w),c.projectConvexOntoAxis(a,b,d,q,s),c.projectConvexOntoAxis(e,h,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(f.copy(j,q),k=B,m=l)}}else for(var u=0;2!==u;u++){var v=a,w=d;1===u&&(v=e,w=i);for(var x=0;x!==v.vertices.length;x++){f.rotate(o,v.vertices[x],w),f.rotate(p,v.vertices[(x+1)%v.vertices.length],w),g(n,p,o),f.rotate90cw(q,n),f.normalize(q,q),c.projectConvexOntoAxis(a,b,d,q,s),c.projectConvexOntoAxis(e,h,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(f.copy(j,q),k=B,m=l)}}return m};var db=f.fromValues(0,0),eb=f.fromValues(0,0),fb=f.fromValues(0,0);c.getClosestEdge=function(a,b,c,d){var e=db,h=eb,j=fb;f.rotate(e,c,-b),d&&f.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=-1,n=0;n!==l;n++){g(h,a.vertices[(n+1)%l],a.vertices[n%l]),f.rotate90cw(j,h),f.normalize(j,j);var o=i(j,e);(-1===k||o>m)&&(k=n%l,m=o)}return k};var gb=f.create(),hb=f.create(),ib=f.create(),jb=f.create(),kb=f.create(),lb=f.create(),mb=f.create();c.prototype[q.CIRCLE|q.HEIGHTFIELD]=c.prototype.circleHeightfield=function(a,b,c,d,e,i,j,k,l,m){var n=i.data,m=m||b.radius,o=i.elementWidth,p=hb,q=gb,r=kb,s=mb,t=lb,u=ib,v=jb,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);0>w&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;x>A;A++)n[A]y&&(y=n[A]);if(c[1]-m>y)return l?!1:0;for(var B=!1,A=w;x>A;A++){f.set(u,A*o,n[A]),f.set(v,(A+1)*o,n[A+1]),f.add(u,u,j),f.add(v,v,j),f.sub(t,v,u),f.rotate(t,t,Math.PI/2),f.normalize(t,t),f.scale(q,t,-m),f.add(q,q,c),f.sub(p,q,u);var C=f.dot(p,t);if(q[0]>=u[0]&&q[0]=C){if(l)return!0;B=!0,f.scale(p,t,-C),f.add(r,q,p),f.copy(s,t);var D=this.createContactEquation(e,a,i,b);f.copy(D.normalA,s),f.scale(D.contactPointB,D.normalA,-m),h(D.contactPointB,D.contactPointB,c),g(D.contactPointB,D.contactPointB,a.position),f.copy(D.contactPointA,r),f.sub(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}}if(B=!1,m>0)for(var A=w;x>=A;A++)if(f.set(u,A*o,n[A]),f.add(u,u,j),f.sub(p,c,u),f.squaredLength(p)q&&(q=0),r>=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;r>u;u++)k[u]s&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return j?!1:0;for(var v=0,u=q;r>u;u++){f.set(m,u*l,k[u]),f.set(n,(u+1)*l,k[u+1]),f.add(m,m,h),f.add(n,n,h);var w=100;f.set(o,.5*(n[0]+m[0]),.5*(n[1]+m[1]-w)),f.sub(p.vertices[0],n,o),f.sub(p.vertices[1],m,o),f.copy(p.vertices[2],p.vertices[1]),f.copy(p.vertices[3],p.vertices[0]),p.vertices[2][1]-=w,p.vertices[3][1]-=w,v+=this.convexConvex(a,b,c,d,e,p,o,0,j)}return v}},{"../equations/ContactEquation":22,"../equations/Equation":23,"../equations/FrictionEquation":24,"../math/vec2":31,"../objects/Body":32,"../shapes/Circle":38,"../shapes/Convex":39,"../shapes/Rectangle":44,"../shapes/Shape":45,"../utils/TupleDictionary":49,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],14:[function(a,b){function c(){e.call(this,e.SAP),this.axisList=[],this.axisIndex=0;var a=this;this._addBodyHandler=function(b){a.axisList.push(b.body)},this._removeBodyHandler=function(b){var c=a.axisList.indexOf(b.body);-1!==c&&a.axisList.splice(c,1)}}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../utils/Utils")),e=a("../collision/Broadphase");b.exports=c,c.prototype=new e,c.prototype.setWorld=function(a){this.axisList.length=0,d.appendArray(this.axisList,a.bodies),a.off("addBody",this._addBodyHandler).off("removeBody",this._removeBodyHandler),a.on("addBody",this._addBodyHandler).on("removeBody",this._removeBodyHandler),this.world=a},c.sortAxisList=function(a,b){b=0|b;for(var c=1,d=a.length;d>c;c++){for(var e=a[c],f=c-1;f>=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},c.prototype.getCollisionPairs=function(){var a=this.axisList,b=this.result,d=this.axisIndex;b.length=0;for(var f=a.length;f--;){var g=a[f];g.aabbNeedsUpdate&&g.updateAABB()}c.sortAxisList(a,d);for(var h=0,i=0|a.length;h!==i;h++)for(var j=a[h],k=h+1;i>k;k++){var l=a[k],m=l.aabb.lowerBound[d]<=j.aabb.upperBound[d];if(!m)break;e.canCollide(j,l)&&this.boundingVolumeCheck(j,l)&&b.push(j,l)}return b}},{"../collision/Broadphase":10,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],15:[function(a,b){function c(a,b,c,e){this.type=c,e=d.defaults(e,{collideConnected:!0,wakeUpBodies:!0}),this.equations=[],this.bodyA=a,this.bodyB=b,this.collideConnected=e.collideConnected,e.wakeUpBodies&&(a&&a.wakeUp(),b&&b.wakeUp())}a("__browserify_process"),a("__browserify_Buffer");b.exports=c;var d=a("../utils/Utils");c.prototype.update=function(){throw new Error("method update() not implmemented in this Constraint subclass!")},c.DISTANCE=1,c.GEAR=2,c.LOCK=3,c.PRISMATIC=4,c.REVOLUTE=5,c.prototype.setStiffness=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.stiffness=a,d.needsUpdate=!0}},c.prototype.setRelaxation=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.relaxation=a,d.needsUpdate=!0}}},{"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],16:[function(a,b){function c(a,b,c){c=g.defaults(c,{localAnchorA:[0,0],localAnchorB:[0,0]}),d.call(this,a,b,d.DISTANCE,c),this.localAnchorA=f.fromValues(c.localAnchorA[0],c.localAnchorA[1]),this.localAnchorB=f.fromValues(c.localAnchorB[0],c.localAnchorB[1]);var h=this.localAnchorA,i=this.localAnchorB;if(this.distance=0,"number"==typeof c.distance)this.distance=c.distance; else{var j=f.create(),k=f.create(),l=f.create();f.rotate(j,h,a.angle),f.rotate(k,i,b.angle),f.add(l,b.position,k),f.sub(l,l,j),f.sub(l,l,a.position),this.distance=f.length(l)}var m;m="undefined"==typeof c.maxForce?Number.MAX_VALUE:c.maxForce;var n=new e(a,b,-m,m);this.equations=[n],this.maxForce=m;var l=f.create(),o=f.create(),p=f.create(),q=this;n.computeGq=function(){var a=this.bodyA,b=this.bodyB,c=a.position,d=b.position;return f.rotate(o,h,a.angle),f.rotate(p,i,b.angle),f.add(l,d,p),f.sub(l,l,o),f.sub(l,l,c),f.length(l)-q.distance},this.setMaxForce(m),this.upperLimitEnabled=!1,this.upperLimit=1,this.lowerLimitEnabled=!1,this.lowerLimit=0,this.position=0}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Constraint")),e=a("../equations/Equation"),f=a("../math/vec2"),g=a("../utils/Utils");b.exports=c,c.prototype=new d;var h=f.create(),i=f.create(),j=f.create();c.prototype.update=function(){var a=this.equations[0],b=this.bodyA,c=this.bodyB,d=(this.distance,b.position),e=c.position,g=this.equations[0],k=a.G;f.rotate(i,this.localAnchorA,b.angle),f.rotate(j,this.localAnchorB,c.angle),f.add(h,e,j),f.sub(h,h,i),f.sub(h,h,d),this.position=f.length(h);var l=!1;if(this.upperLimitEnabled&&this.position>this.upperLimit&&(g.maxForce=0,g.minForce=-this.maxForce,this.distance=this.upperLimit,l=!0),this.lowerLimitEnabled&&this.positionc)g.scale(e.normalA,i,-1),g.sub(e.contactPointA,j,h.position),g.sub(e.contactPointB,k,o.position),g.scale(n,i,c),g.add(e.contactPointA,e.contactPointA,n),-1===a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!==u&&a.splice(u,1)}if(this.lowerLimitEnabled&&d>s)g.scale(f.normalA,i,1),g.sub(f.contactPointA,j,h.position),g.sub(f.contactPointB,k,o.position),g.scale(n,i,d),g.sub(f.contactPointB,f.contactPointB,n),-1===a.indexOf(f)&&a.push(f);else{var u=a.indexOf(f);-1!==u&&a.splice(u,1)}},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)}},{"../equations/ContactEquation":22,"../equations/Equation":23,"../equations/RotationalLockEquation":25,"../math/vec2":31,"./Constraint":15,__browserify_Buffer:1,__browserify_process:2}],20:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,d.REVOLUTE,c);var n=this.maxForce="undefined"!=typeof c.maxForce?c.maxForce:Number.MAX_VALUE;this.pivotA=h.create(),this.pivotB=h.create(),c.worldPivot?(h.sub(this.pivotA,c.worldPivot,a.position),h.sub(this.pivotB,c.worldPivot,b.position),h.rotate(this.pivotA,this.pivotA,-a.angle),h.rotate(this.pivotB,this.pivotB,-b.angle)):(h.copy(this.pivotA,c.localPivotA),h.copy(this.pivotB,c.localPivotB));var o=this.equations=[new e(a,b,-n,n),new e(a,b,-n,n)],p=o[0],q=o[1],r=this;p.computeGq=function(){return h.rotate(i,r.pivotA,a.angle),h.rotate(j,r.pivotB,b.angle),h.add(m,b.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,k)},q.computeGq=function(){return h.rotate(i,r.pivotA,a.angle),h.rotate(j,r.pivotB,b.angle),h.add(m,b.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,l)},q.minForce=p.minForce=-n,q.maxForce=p.maxForce=n,this.motorEquation=new f(a,b),this.motorEnabled=!1,this.angle=0,this.lowerLimitEnabled=!1,this.upperLimitEnabled=!1,this.lowerLimit=0,this.upperLimit=0,this.upperLimitEquation=new g(a,b),this.lowerLimitEquation=new g(a,b),this.upperLimitEquation.minForce=0,this.lowerLimitEquation.maxForce=0}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Constraint")),e=a("../equations/Equation"),f=a("../equations/RotationalVelocityEquation"),g=a("../equations/RotationalLockEquation"),h=a("../math/vec2");b.exports=c;var i=h.create(),j=h.create(),k=h.fromValues(1,0),l=h.fromValues(0,1),m=h.create();c.prototype=new d,c.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)},c.prototype.update=function(){var a=this.bodyA,b=this.bodyB,c=this.pivotA,d=this.pivotB,e=this.equations,f=(e[0],e[1],e[0]),g=e[1],m=this.upperLimit,n=this.lowerLimit,o=this.upperLimitEquation,p=this.lowerLimitEquation,q=this.angle=b.angle-a.angle;if(this.upperLimitEnabled&&q>m)o.angle=m,-1===e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!==r&&e.splice(r,1)}if(this.lowerLimitEnabled&&n>q)p.angle=n,-1===e.indexOf(p)&&e.push(p);else{var r=e.indexOf(p);-1!==r&&e.splice(r,1)}h.rotate(i,c,a.angle),h.rotate(j,d,b.angle),f.G[0]=-1,f.G[1]=0,f.G[2]=-h.crossLength(i,k),f.G[3]=1,f.G[4]=0,f.G[5]=h.crossLength(j,k),g.G[0]=0,g.G[1]=-1,g.G[2]=-h.crossLength(i,l),g.G[3]=0,g.G[4]=1,g.G[5]=h.crossLength(j,l)},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.motorIsEnabled=function(){return!!this.motorEnabled},c.prototype.setMotorSpeed=function(a){if(this.motorEnabled){var b=this.equations.indexOf(this.motorEquation);this.equations[b].relativeVelocity=a}},c.prototype.getMotorSpeed=function(){return this.motorEnabled?this.motorEquation.relativeVelocity:!1}},{"../equations/Equation":23,"../equations/RotationalLockEquation":25,"../equations/RotationalVelocityEquation":26,"../math/vec2":31,"./Constraint":15,__browserify_Buffer:1,__browserify_process:2}],21:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0,this.ratio="number"==typeof c.ratio?c.ratio:1,this.setRatio(this.ratio)}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Equation"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeGq=function(){return this.ratio*this.bodyA.angle-this.bodyB.angle+this.angle},c.prototype.setRatio=function(a){var b=this.G;b[2]=a,b[5]=-1,this.ratio=a},c.prototype.setMaxTorque=function(a){this.maxForce=a,this.minForce=-a}},{"../math/vec2":31,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],22:[function(a,b){function c(a,b){d.call(this,a,b,0,Number.MAX_VALUE),this.contactPointA=e.create(),this.penetrationVec=e.create(),this.contactPointB=e.create(),this.normalA=e.create(),this.restitution=0,this.firstImpact=!1,this.shapeA=null,this.shapeB=null}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Equation")),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.bodyA,f=this.bodyB,g=this.contactPointA,h=this.contactPointB,i=d.position,j=f.position,k=this.penetrationVec,l=this.normalA,m=this.G,n=e.crossLength(g,l),o=e.crossLength(h,l);m[0]=-l[0],m[1]=-l[1],m[2]=-n,m[3]=l[0],m[4]=l[1],m[5]=o,e.add(k,j,h),e.sub(k,k,i),e.sub(k,k,g);var p,q;this.firstImpact&&0!==this.restitution?(q=0,p=1/b*(1+this.restitution)*this.computeGW()):(q=e.dot(l,k)+this.offset,p=this.computeGW());var r=this.computeGiMf(),s=-q*a-p*b-c*r;return s}},{"../math/vec2":31,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],23:[function(a,b){function c(a,b,d,f){this.minForce="undefined"==typeof d?-Number.MAX_VALUE:d,this.maxForce="undefined"==typeof f?Number.MAX_VALUE:f,this.bodyA=a,this.bodyB=b,this.stiffness=c.DEFAULT_STIFFNESS,this.relaxation=c.DEFAULT_RELAXATION,this.G=new e.ARRAY_TYPE(6);for(var g=0;6>g;g++)this.G[g]=0;this.offset=0,this.a=0,this.b=0,this.epsilon=0,this.timeStep=1/60,this.needsUpdate=!0,this.multiplier=0,this.relativeVelocity=0,this.enabled=!0}a("__browserify_process"),a("__browserify_Buffer");b.exports=c;{var d=a("../math/vec2"),e=a("../utils/Utils");a("../objects/Body")}c.prototype.constructor=c,c.DEFAULT_STIFFNESS=1e6,c.DEFAULT_RELAXATION=4,c.prototype.update=function(){var a=this.stiffness,b=this.relaxation,c=this.timeStep;this.a=4/(c*(1+4*b)),this.b=4*b/(1+4*b),this.epsilon=4/(c*c*a*(1+4*b)),this.needsUpdate=!1},c.prototype.gmult=function(a,b,c,d,e){return a[0]*b[0]+a[1]*b[1]+a[2]*c+a[3]*d[0]+a[4]*d[1]+a[5]*e},c.prototype.computeB=function(a,b,c){var d=this.computeGW(),e=this.computeGq(),f=this.computeGiMf();return-e*a-d*b-f*c};var f=d.create(),g=d.create();c.prototype.computeGq=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=(b.position,c.position,b.angle),e=c.angle;return this.gmult(a,f,d,g,e)+this.offset},c.prototype.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.velocity,e=c.velocity,f=b.angularVelocity,g=c.angularVelocity;return this.gmult(a,d,f,e,g)+this.relativeVelocity},c.prototype.computeGWlambda=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.vlambda,e=c.vlambda,f=b.wlambda,g=c.wlambda;return this.gmult(a,d,f,e,g)};var h=d.create(),i=d.create();c.prototype.computeGiMf=function(){var a=this.bodyA,b=this.bodyB,c=a.force,e=a.angularForce,f=b.force,g=b.angularForce,j=a.invMassSolve,k=b.invMassSolve,l=a.invInertiaSolve,m=b.invInertiaSolve,n=this.G;return d.scale(h,c,j),d.scale(i,f,k),this.gmult(n,h,e*l,i,g*m)},c.prototype.computeGiMGt=function(){var a=this.bodyA,b=this.bodyB,c=a.invMassSolve,d=b.invMassSolve,e=a.invInertiaSolve,f=b.invInertiaSolve,g=this.G;return g[0]*g[0]*c+g[1]*g[1]*c+g[2]*g[2]*e+g[3]*g[3]*d+g[4]*g[4]*d+g[5]*g[5]*f};{var j=d.create(),k=d.create(),l=d.create();d.create(),d.create(),d.create()}c.prototype.addToWlambda=function(a){var b=this.bodyA,c=this.bodyB,e=j,f=k,g=l,h=b.invMassSolve,i=c.invMassSolve,m=b.invInertiaSolve,n=c.invInertiaSolve,o=this.G;f[0]=o[0],f[1]=o[1],g[0]=o[3],g[1]=o[4],d.scale(e,f,h*a),d.add(b.vlambda,b.vlambda,e),b.wlambda+=m*o[2]*a,d.scale(e,g,i*a),d.add(c.vlambda,c.vlambda,e),c.wlambda+=n*o[5]*a},c.prototype.computeInvC=function(a){return 1/(this.computeGiMGt()+a)}},{"../math/vec2":31,"../objects/Body":32,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],24:[function(a,b){function c(a,b,c){e.call(this,a,b,-c,c),this.contactPointA=d.create(),this.contactPointB=d.create(),this.t=d.create(),this.contactEquations=[],this.shapeA=null,this.shapeB=null,this.frictionCoefficient=.3}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2")),e=a("./Equation");a("../utils/Utils")}b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.setSlipForce=function(a){this.maxForce=a,this.minForce=-a},c.prototype.getSlipForce=function(){return this.maxForce},c.prototype.computeB=function(a,b,c){var e=(this.bodyA,this.bodyB,this.contactPointA),f=this.contactPointB,g=this.t,h=this.G;h[0]=-g[0],h[1]=-g[1],h[2]=-d.crossLength(e,g),h[3]=g[0],h[4]=g[1],h[5]=d.crossLength(f,g);var i=this.computeGW(),j=this.computeGiMf(),k=-i*b-c*j;return k}},{"../math/vec2":31,"../utils/Utils":50,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],25:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0;var e=this.G;e[2]=1,e[5]=-1}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Equation")),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c;var f=e.create(),g=e.create(),h=e.fromValues(1,0),i=e.fromValues(0,1);c.prototype.computeGq=function(){return e.rotate(f,h,this.bodyA.angle+this.angle),e.rotate(g,i,this.bodyB.angle),e.dot(f,g)}},{"../math/vec2":31,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],26:[function(a,b){function c(a,b){d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.relativeVelocity=1,this.ratio=1}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Equation"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.G;d[2]=-1,d[5]=this.ratio;var e=this.computeGiMf(),f=this.computeGW(),g=-f*b-c*e;return g}},{"../math/vec2":31,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],27:[function(a,b){var c=(a("__browserify_process"),a("__browserify_Buffer"),function(){});b.exports=c,c.prototype={constructor:c,on:function(a,b,c){b.context=c||this,void 0===this._listeners&&(this._listeners={});var d=this._listeners;return void 0===d[a]&&(d[a]=[]),-1===d[a].indexOf(b)&&d[a].push(b),this},has:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;if(b){if(void 0!==c[a]&&-1!==c[a].indexOf(b))return!0}else if(void 0!==c[a])return!0;return!1},off:function(a,b){if(void 0===this._listeners)return this;var c=this._listeners,d=c[a].indexOf(b);return-1!==d&&c[a].splice(d,1),this},emit:function(a){if(void 0===this._listeners)return this;var b=this._listeners,c=b[a.type];if(void 0!==c){a.target=this;for(var d=0,e=c.length;e>d;d++){var f=c[d];f.call(f.context,a)}}return this}}},{__browserify_Buffer:1,__browserify_process:2}],28:[function(a,b){function c(a,b,f){if(f=f||{},!(a instanceof d&&b instanceof d))throw new Error("First two arguments must be Material instances.");this.id=c.idCounter++,this.materialA=a,this.materialB=b,this.friction="undefined"!=typeof f.friction?Number(f.friction):.3,this.restitution="undefined"!=typeof f.restitution?Number(f.restitution):0,this.stiffness="undefined"!=typeof f.stiffness?Number(f.stiffness):e.DEFAULT_STIFFNESS,this.relaxation="undefined"!=typeof f.relaxation?Number(f.relaxation):e.DEFAULT_RELAXATION,this.frictionStiffness="undefined"!=typeof f.frictionStiffness?Number(f.frictionStiffness):e.DEFAULT_STIFFNESS,this.frictionRelaxation="undefined"!=typeof f.frictionRelaxation?Number(f.frictionRelaxation):e.DEFAULT_RELAXATION,this.surfaceVelocity="undefined"!=typeof f.surfaceVelocity?Number(f.surfaceVelocity):0,this.contactSkinSize=.005}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Material")),e=a("../equations/Equation");b.exports=c,c.idCounter=0},{"../equations/Equation":23,"./Material":29,__browserify_Buffer:1,__browserify_process:2}],29:[function(a,b){function c(a){this.id=a||c.idCounter++}a("__browserify_process"),a("__browserify_Buffer");b.exports=c,c.idCounter=0},{__browserify_Buffer:1,__browserify_process:2}],30:[function(a,b){var c=(a("__browserify_process"),a("__browserify_Buffer"),{});c.GetArea=function(a){if(a.length<6)return 0;for(var b=a.length-2,c=0,d=0;b>d;d+=2)c+=(a[d+2]-a[d])*(a[d+1]+a[d+3]);return c+=(a[0]-a[b])*(a[b+1]+a[1]),.5*-c},c.Triangulate=function(a){var b=a.length>>1;if(3>b)return[];for(var d=[],e=[],f=0;b>f;f++)e.push(f);for(var f=0,g=b;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(c._convex(k,l,m,n,o,p)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!=h&&s!=i&&s!=j&&c._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g)break}return d.push(e[0],e[1],e[2]),d},c._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},c._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=c},{__browserify_Buffer:1,__browserify_process:2}],31:[function(a,b){var c=(a("__browserify_process"),a("__browserify_Buffer"),b.exports={}),d=a("../utils/Utils");c.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},c.crossVZ=function(a,b,d){return c.rotate(a,b,-Math.PI/2),c.scale(a,a,d),a},c.crossZV=function(a,b,d){return c.rotate(a,d,Math.PI/2),c.scale(a,a,b),a},c.rotate=function(a,b,c){if(0!==c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g}else a[0]=b[0],a[1]=b[1]},c.rotate90cw=function(a,b){var c=b[0],d=b[1];a[0]=d,a[1]=-c},c.toLocalFrame=function(a,b,d,e){c.copy(a,b),c.sub(a,a,d),c.rotate(a,a,-e)},c.toGlobalFrame=function(a,b,d,e){c.copy(a,b),c.rotate(a,a,e),c.add(a,a,d)},c.centroid=function(a,b,d,e){return c.add(a,b,d),c.add(a,a,e),c.scale(a,a,1/3),a},c.create=function(){var a=new d.ARRAY_TYPE(2);return a[0]=0,a[1]=0,a},c.clone=function(a){var b=new d.ARRAY_TYPE(2);return b[0]=a[0],b[1]=a[1],b},c.fromValues=function(a,b){var c=new d.ARRAY_TYPE(2);return c[0]=a,c[1]=b,c},c.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a},c.set=function(a,b,c){return a[0]=b,a[1]=c,a},c.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a},c.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a},c.sub=c.subtract,c.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a},c.mul=c.multiply,c.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a},c.div=c.divide,c.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a},c.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},c.dist=c.distance,c.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d},c.sqrDist=c.squaredDistance,c.length=function(a){var b=a[0],c=a[1];return Math.sqrt(b*b+c*c)},c.len=c.length,c.squaredLength=function(a){var b=a[0],c=a[1];return b*b+c*c},c.sqrLen=c.squaredLength,c.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a},c.normalize=function(a,b){var c=b[0],d=b[1],e=c*c+d*d;return e>0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},c.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},c.str=function(a){return"vec2("+a[0]+", "+a[1]+")"}},{"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],32:[function(a,b){function c(a){a=a||{},h.call(this),this.id=++c._idCounter,this.world=null,this.shapes=[],this.shapeOffsets=[],this.shapeAngles=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.invMassSolve=0,this.invInertiaSolve=0,this.fixedRotation=!!a.fixedRotation,this.position=d.fromValues(0,0),a.position&&d.copy(this.position,a.position),this.interpolatedPosition=d.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=d.fromValues(0,0),this.previousAngle=0,this.velocity=d.fromValues(0,0),a.velocity&&d.copy(this.velocity,a.velocity),this.vlambda=d.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=d.create(),a.force&&d.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.type=c.STATIC,this.type="undefined"!=typeof a.type?a.type:a.mass?c.DYNAMIC:c.STATIC,this.boundingRadius=0,this.aabb=new g,this.aabbNeedsUpdate=!0,this.allowSleep=!0,this.wantsToSleep=!1,this.sleepState=c.AWAKE,this.sleepSpeedLimit=.2,this.sleepTimeLimit=1,this.gravityScale=1,this.timeLastSleepy=0,this.concavePath=null,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2")),e=a("poly-decomp"),f=a("../shapes/Convex"),g=a("../collision/AABB"),h=a("../events/EventEmitter");b.exports=c,c.prototype=new h,c._idCounter=0,c.prototype.updateSolveMassProperties=function(){this.sleepState===c.SLEEPING||this.type===c.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve=0):(this.invMassSolve=this.invMass,this.invInertiaSolve=this.invInertia)},c.prototype.setDensity=function(a){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},c.prototype.getArea=function(){for(var a=0,b=0;be&&(e=h+i)}this.boundingRadius=e},c.prototype.addShape=function(a,b,c){c=c||0,b=b?d.fromValues(b[0],b[1]):d.fromValues(0,0),this.shapes.push(a),this.shapeOffsets.push(b),this.shapeAngles.push(c),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},c.prototype.removeShape=function(a){var b=this.shapes.indexOf(a);return-1!==b?(this.shapes.splice(b,1),this.shapeOffsets.splice(b,1),this.shapeAngles.splice(b,1),this.aabbNeedsUpdate=!0,!0):!1},c.prototype.updateMassProperties=function(){if(this.type===c.STATIC||this.type===c.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{var a=this.shapes,b=a.length,e=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;b>g;g++){var h=a[g],i=d.squaredLength(this.shapeOffsets[g]),j=h.computeMomentOfInertia(e);f+=j+e*i}this.inertia=f,this.invInertia=f>0?1/f:0}this.invMass=1/this.mass}};var k=d.create();c.prototype.applyForce=function(a,b){var c=k;d.sub(c,b,this.position),d.add(this.force,this.force,a);var e=d.crossLength(c,a);this.angularForce+=e},c.prototype.toLocalFrame=function(a,b){d.toLocalFrame(a,b,this.position,this.angle)},c.prototype.toWorldFrame=function(a,b){d.toGlobalFrame(a,b,this.position,this.angle)},c.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var g=new e.Polygon;if(g.vertices=a,g.makeCCW(),"number"==typeof b.removeCollinearPoints&&g.removeCollinearPoints(b.removeCollinearPoints),"undefined"==typeof b.skipSimpleCheck&&!g.isSimple())return!1;this.concavePath=g.vertices.slice(0);for(var c=0;c=g?(this.idleTime=0,this.sleepState=c.AWAKE):(this.idleTime+=e,this.sleepState=c.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},c.prototype.getVelocityFromPosition=function(a,b){return a=a||d.create(),d.sub(a,this.position,this.previousPosition),d.scale(a,a,1/b),a},c.prototype.getAngularVelocityFromPosition=function(a){return(this.angle-this.previousAngle)/a},c.prototype.overlaps=function(a){return this.world.overlapKeeper.bodiesAreOverlapping(this,a)},c.sleepyEvent={type:"sleepy"},c.sleepEvent={type:"sleep"},c.wakeUpEvent={type:"wakeup"},c.DYNAMIC=1,c.STATIC=2,c.KINEMATIC=4,c.AWAKE=0,c.SLEEPY=1,c.SLEEPING=2},{"../collision/AABB":9,"../events/EventEmitter":27,"../math/vec2":31,"../shapes/Convex":39,__browserify_Buffer:1,__browserify_process:2,"poly-decomp":7}],33:[function(a,b){function c(a,b,c){c=c||{},e.call(this,a,b,c),this.localAnchorA=d.fromValues(0,0),this.localAnchorB=d.fromValues(0,0),c.localAnchorA&&d.copy(this.localAnchorA,c.localAnchorA),c.localAnchorB&&d.copy(this.localAnchorB,c.localAnchorB),c.worldAnchorA&&this.setWorldAnchorA(c.worldAnchorA),c.worldAnchorB&&this.setWorldAnchorB(c.worldAnchorB);var f=d.create(),g=d.create();this.getWorldAnchorA(f),this.getWorldAnchorB(g);var h=d.distance(f,g);this.restLength="number"==typeof c.restLength?c.restLength:h}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2")),e=a("./Spring");a("../utils/Utils")}b.exports=c,c.prototype=new e,c.prototype.setWorldAnchorA=function(a){this.bodyA.toLocalFrame(this.localAnchorA,a)},c.prototype.setWorldAnchorB=function(a){this.bodyB.toLocalFrame(this.localAnchorB,a)},c.prototype.getWorldAnchorA=function(a){this.bodyA.toWorldFrame(a,this.localAnchorA)},c.prototype.getWorldAnchorB=function(a){this.bodyB.toWorldFrame(a,this.localAnchorB)};var f=d.create(),g=d.create(),h=d.create(),i=d.create(),j=d.create(),k=d.create(),l=d.create(),m=d.create(),n=d.create();c.prototype.applyForce=function(){var a=this.stiffness,b=this.damping,c=this.restLength,e=this.bodyA,o=this.bodyB,p=f,q=g,r=h,s=i,t=n,u=j,v=k,w=l,x=m; diff --git a/build/custom/phaser-arcade-physics.js b/build/custom/phaser-arcade-physics.js index 9f27ae3b48..f0e730dd15 100644 --- a/build/custom/phaser-arcade-physics.js +++ b/build/custom/phaser-arcade-physics.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Dec 03 2014 09:34:03 +* v2.2.1 "Danabar" - Built: Thu Dec 04 2014 11:31:00 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -4782,7 +4782,7 @@ PIXI.PixiShader.defaultVertexSrc = [ 'void main(void) {', ' gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);', ' vTextureCoord = aTextureCoord;', - ' vColor = aColor;', + ' vColor = vec4(aColor.rgb * aColor.a, aColor.a);', '}' ]; /** @@ -7648,7 +7648,7 @@ PIXI.WebGLSpriteBatch.prototype.render = function(sprite) // color and alpha var tint = sprite.tint; - colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.alpha * 255 << 24); + colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.worldAlpha * 255 << 24); // increment the batchsize this.sprites[this.currentBatchSize++] = sprite; @@ -12225,7 +12225,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Dec 03 2014 09:34:03 +* v2.2.1 "Danabar" - Built: Thu Dec 04 2014 11:31:00 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -12268,7 +12268,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) */ var Phaser = Phaser || { - VERSION: '2.2.0', + VERSION: '2.2.1', GAMES: [], AUTO: 0, @@ -26250,7 +26250,7 @@ Phaser.Game.prototype = { } else { - this.debug = { preUpdate: function () {}, update: function () {} }; + this.debug = { preUpdate: function () {}, update: function () {}, reset: function () {} }; } this.showDebugHeader(); @@ -48634,7 +48634,7 @@ Phaser.TweenManager.prototype = { { for (i = 0, len = this._tweens.length; i < len; i++) { - if (obj === this._tweens[i]._object) + if (obj === this._tweens[i].target) { this.remove(this._tweens[i]); } @@ -48642,7 +48642,7 @@ Phaser.TweenManager.prototype = { for (i = 0, len = this._add.length; i < len; i++) { - if (obj === this._add[i]._object) + if (obj === this._add[i].target) { this.remove(this._add[i]); } @@ -48757,7 +48757,7 @@ Phaser.TweenManager.prototype = { isTweening: function(object) { return this._tweens.some(function(tween) { - return tween._object === object; + return tween.target === object; }); }, @@ -52675,7 +52675,7 @@ Object.defineProperty(Phaser.AnimationManager.prototype, 'frame', { set: function (value) { - if (typeof value === 'number' && this._frameData.getFrame(value) !== null) + if (typeof value === 'number' && this._frameData && this._frameData.getFrame(value) !== null) { this.currentFrame = this._frameData.getFrame(value); diff --git a/build/custom/phaser-arcade-physics.min.js b/build/custom/phaser-arcade-physics.min.js index c263f2ec57..447ab4b655 100644 --- a/build/custom/phaser-arcade-physics.min.js +++ b/build/custom/phaser-arcade-physics.min.js @@ -1,19 +1,19 @@ -/* Phaser (AP) v2.2.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +/* Phaser (AP) v2.2.1 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ (function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.0",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.dontSayHello=!1,b.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://www.pixijs.com/");b.dontSayHello=!0}},b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),a[0]instanceof b.Point){for(var c=[],d=0,e=a.length;e>d;d++)c.push(a[d].x,a[d].y);a=c}this.closed=!0,this.points=a},b.Polygon.prototype.clone=function(){var a=this.points.slice();return new b.Polygon(a)},b.Polygon.prototype.contains=function(a,b){for(var c=!1,d=this.points.length/2,e=0,f=d-1;d>e;f=e++){var g=this.points[2*e],h=this.points[2*e+1],i=this.points[2*f],j=this.points[2*f+1],k=h>b!=j>b&&(i-g)*(b-h)/(j-h)+g>a;k&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new b.Float32Array(9));var c=this.array;return a?(c[0]=this.a,c[1]=this.b,c[2]=0,c[3]=this.c,c[4]=this.d,c[5]=0,c[6]=this.tx,c[7]=this.ty,c[8]=1):(c[0]=this.a,c[1]=this.c,c[2]=this.tx,c[3]=this.b,c[4]=this.d,c[5]=this.ty,c[6]=0,c[7]=0,c[8]=1),c},b.Matrix.prototype.apply=function(a,c){return c=c||new b.Point,c.x=this.a*a.x+this.c*a.y+this.tx,c.y=this.b*a.x+this.d*a.y+this.ty,c},b.Matrix.prototype.applyInverse=function(a,c){c=c||new b.Point;var d=1/(this.a*this.d+this.c*-this.b);return c.x=this.d*d*a.x+-this.c*d*a.y+(this.ty*this.c-this.tx*this.d)*d,c.y=this.a*d*a.y+-this.b*d*a.x+(-this.ty*this.a+this.tx*this.b)*d,c},b.Matrix.prototype.translate=function(a,b){return this.tx+=a,this.ty+=b,this},b.Matrix.prototype.scale=function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},b.Matrix.prototype.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},b.Matrix.prototype.append=function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},b.Matrix.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},b.identityMatrix=new b.Matrix,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.RoundedRectangle=function(a,b,c,d,e){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0,this.radius=e||20},b.RoundedRectangle.prototype.clone=function(){return new b.RoundedRectangle(this.x,this.y,this.width,this.height,this.radius)},b.RoundedRectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.RoundedRectangle.prototype.constructor=b.RoundedRectangle,b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.transformCallback=null,this.transformCallbackContext=null,this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform=b.DisplayObjectContainer.prototype.updateTransform,b.DisplayObjectContainer.prototype.getBounds=function(){if(0===this.children.length)return b.EmptyRectangle;for(var a,c,d,e=1/0,f=1/0,g=-1/0,h=-1/0,i=!1,j=0,k=this.children.length;k>j;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a||b.Texture.emptyTexture,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.shader=null,this.texture.baseTexture.hasLoaded?this.onTextureUpdate():this.texture.on("update",this.onTextureUpdate.bind(this)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.b,k=h.c,l=h.d,m=h.tx,n=h.ty,o=-1/0,p=-1/0,q=1/0,r=1/0;if(0===j&&0===k)0>i&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)&&this.renderable){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(!(this.visible===!1||0===this.alpha||this.renderable===!1||this.texture.crop.width<=0||this.texture.crop.height<=0)){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a),this.texture.valid){var c=this.texture.baseTexture.resolution/a.resolution;a.context.globalAlpha=this.worldAlpha,a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var d=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,e=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;a.roundPixels?(a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution|0,this.worldTransform.ty*a.resolution|0),d=0|d,e=0|e):a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution,this.worldTransform.ty*a.resolution),16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)}for(var f=0,g=this.children.length;g>f;f++)this.children[f]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.prototype.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){this.displayObjectUpdateTransform()},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){if(this.visible&&!(this.alpha<=0)&&this.children.length){var b=a.context;b.globalAlpha=this.worldAlpha,this.displayObjectUpdateTransform();for(var c=this.worldTransform,d=!0,e=0;ei;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(c.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}c.descent=i-g,c.fontSize=c.ascent+c.descent,b.Text.fontPropertiesCache[a]=c}return c},b.Text.prototype.wordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},function(a){for(var b=0,c=["ms","moz","webkit","o"],d=0;d>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){return function(a){function b(){for(var d=arguments.length,f=new Array(d);d--;)f[d]=arguments[d];return f=e.concat(f),c.apply(this instanceof b?this:a,f)}var c=this,d=arguments.length-1,e=[];if(d>0)for(e.length=d;d--;)e[d]=arguments[d+1];if("function"!=typeof c)throw new TypeError;return b.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(c.prototype),b}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.EventTarget={call:function(a){a&&(a=a.prototype||a,b.EventTarget.mixin(a))},mixin:function(a){a.listeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?this._listeners[a].slice():[]},a.emit=a.dispatchEvent=function(a,c){if(this._listeners=this._listeners||{},"object"==typeof a&&(c=a,a=a.type),c&&c.__isEventObject===!0||(c=new b.Event(this,a,c)),this._listeners&&this._listeners[a]){var d,e=this._listeners[a].slice(0),f=e.length,g=e[0];for(d=0;f>d;g=e[++d])if(g.call(this,c),c.stoppedImmediate)return this;if(c.stopped)return this -}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{};var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)) -},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.anchor.x,i=a.anchor.y;if(b.trim){var j=b.trim;e=j.x-h*j.width,d=e+b.crop.width,g=j.y-i*j.height,f=g+b.crop.height}else d=b.frame.width*(1-h),e=b.frame.width*-h,f=b.frame.height*(1-i),g=b.frame.height*-i;var k=4*this.currentBatchSize*this.vertSize,l=b.baseTexture.resolution,m=a.worldTransform,n=m.a/l,o=m.b/l,p=m.c/l,q=m.d/l,r=m.tx,s=m.ty,t=this.colors,u=this.positions;this.renderSession.roundPixels?(u[k]=n*e+p*g+r|0,u[k+1]=q*g+o*e+s|0,u[k+5]=n*d+p*g+r|0,u[k+6]=q*g+o*d+s|0,u[k+10]=n*d+p*f+r|0,u[k+11]=q*f+o*d+s|0,u[k+15]=n*e+p*f+r|0,u[k+16]=q*f+o*e+s|0):(u[k]=n*e+p*g+r,u[k+1]=q*g+o*e+s,u[k+5]=n*d+p*g+r,u[k+6]=q*g+o*d+s,u[k+10]=n*d+p*f+r,u[k+11]=q*f+o*d+s,u[k+15]=n*e+p*f+r,u[k+16]=q*f+o*e+s),u[k+2]=c.x0,u[k+3]=c.y0,u[k+7]=c.x1,u[k+8]=c.y1,u[k+12]=c.x2,u[k+13]=c.y2,u[k+17]=c.x3,u[k+18]=c.y3;var v=a.tint;t[k+4]=t[k+9]=t[k+14]=t[k+19]=(v>>16)+(65280&v)+((255&v)<<16)+(255*a.alpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.tint,j=(i>>16)+(65280&i)+((255&i)<<16)+(255*a.alpha<<24),k=this.positions,l=this.colors,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=c.baseTexture.resolution,w=a.worldTransform,x=w.a/v,y=w.b/v,z=w.c/v,A=w.d/v,B=w.tx,C=w.ty;k[u++]=x*r+z*t+B,k[u++]=A*t+y*r+C,k[u++]=d.x0,k[u++]=d.y0,l[u++]=j,k[u++]=x*q+z*t+B,k[u++]=A*t+y*q+C,k[u++]=d.x1,k[u++]=d.y1,l[u++]=j,k[u++]=x*q+z*s+B,k[u++]=A*s+y*q+C,k[u++]=d.x2,k[u++]=d.y2,l[u++]=j,k[u++]=x*r+z*s+B,k[u++]=A*s+y*r+C,k[u++]=d.x3,k[u++]=d.y3,l[u++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath() -}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.b*g,f.c*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d||e.baseTexture.width!==c||e.baseTexture.height||d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x) +}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{};var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)) +},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.anchor.x,i=a.anchor.y;if(b.trim){var j=b.trim;e=j.x-h*j.width,d=e+b.crop.width,g=j.y-i*j.height,f=g+b.crop.height}else d=b.frame.width*(1-h),e=b.frame.width*-h,f=b.frame.height*(1-i),g=b.frame.height*-i;var k=4*this.currentBatchSize*this.vertSize,l=b.baseTexture.resolution,m=a.worldTransform,n=m.a/l,o=m.b/l,p=m.c/l,q=m.d/l,r=m.tx,s=m.ty,t=this.colors,u=this.positions;this.renderSession.roundPixels?(u[k]=n*e+p*g+r|0,u[k+1]=q*g+o*e+s|0,u[k+5]=n*d+p*g+r|0,u[k+6]=q*g+o*d+s|0,u[k+10]=n*d+p*f+r|0,u[k+11]=q*f+o*d+s|0,u[k+15]=n*e+p*f+r|0,u[k+16]=q*f+o*e+s|0):(u[k]=n*e+p*g+r,u[k+1]=q*g+o*e+s,u[k+5]=n*d+p*g+r,u[k+6]=q*g+o*d+s,u[k+10]=n*d+p*f+r,u[k+11]=q*f+o*d+s,u[k+15]=n*e+p*f+r,u[k+16]=q*f+o*e+s),u[k+2]=c.x0,u[k+3]=c.y0,u[k+7]=c.x1,u[k+8]=c.y1,u[k+12]=c.x2,u[k+13]=c.y2,u[k+17]=c.x3,u[k+18]=c.y3;var v=a.tint;t[k+4]=t[k+9]=t[k+14]=t[k+19]=(v>>16)+(65280&v)+((255&v)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.tint,j=(i>>16)+(65280&i)+((255&i)<<16)+(255*a.alpha<<24),k=this.positions,l=this.colors,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=c.baseTexture.resolution,w=a.worldTransform,x=w.a/v,y=w.b/v,z=w.c/v,A=w.d/v,B=w.tx,C=w.ty;k[u++]=x*r+z*t+B,k[u++]=A*t+y*r+C,k[u++]=d.x0,k[u++]=d.y0,l[u++]=j,k[u++]=x*q+z*t+B,k[u++]=A*t+y*q+C,k[u++]=d.x1,k[u++]=d.y1,l[u++]=j,k[u++]=x*q+z*s+B,k[u++]=A*s+y*q+C,k[u++]=d.x2,k[u++]=d.y2,l[u++]=j,k[u++]=x*r+z*s+B,k[u++]=A*s+y*r+C,k[u++]=d.x3,k[u++]=d.y3,l[u++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath() +}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.b*g,f.c*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d||e.baseTexture.width!==c||e.baseTexture.height||d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.1",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x) },c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Ellipse=function(a,b,d,e){this.type=c.ELLIPSE,a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},c.Ellipse.prototype.getBounds=function(){return new c.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=c.Ellipse,c.Polygon=function(){this.type=c.POLYGON,this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0},c.Polygon.prototype={clone:function(a){var b=this._points.slice();return"undefined"==typeof a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){for(var c=this._points.length,d=!1,e=-1,f=c-1;++e=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,d=0,e=a.length;e>d;d++){if("number"==typeof a[d]){var f=new c.Point(a[d],a[d+1]);d++}else var f=new c.Point(a[d].x,a[d].y);this._points.push(f),f.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),PIXI.Graphics.prototype.lineStyle=function(a,b,c){if(this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=arguments.length<3?1:c,this.currentPath){if(this.currentPath.shape.points.length)return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))),this;this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha}return this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f){var g,h=a+Math.cos(d)*c,i=b+Math.sin(d)*c;if(this.currentPath?(g=this.currentPath.shape.points,0===g.length?g.push(h,i):(g[g.length-2]!==h||g[g.length-1]!==i)&&g.push(h,i)):(this.moveTo(h,i),g=this.currentPath.shape.points),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var j=f?-1*(d-e):e-d,k=Math.abs(j)/(2*Math.PI)*40;if(0===j)return this;for(var l=j/(2*k),m=2*l,n=Math.cos(l),o=Math.sin(l),p=k-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);g.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){return a instanceof Array||(a=Array.prototype.slice.call(arguments)),this.drawShape(new PIXI.Polygon(a)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this},PIXI.Graphics.prototype.generateTexture=function(a,b){a=a||1;var c=this.getBounds(),d=new PIXI.CanvasBuffer(c.width*a,c.height*a),e=PIXI.Texture.fromCanvas(d.canvas,b);return e.baseTexture.resolution=a,d.context.scale(a,a),d.context.translate(-c.x,-c.y),PIXI.CanvasGraphics.renderGraphics(this,d.context),e},PIXI.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,c.tx*d,c.ty*d),PIXI.CanvasGraphics.renderGraphics(this,b);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(this.isMask)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;return x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._bounds},PIXI.Graphics.prototype.updateLocalBounds=function(){var a=1/0,b=-1/0,c=1/0,d=-1/0;if(this.graphicsData.length)for(var e,f,g,h,i,j,k=0;kg?g:a,b=g+i>b?g+i:b,c=c>h?h:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.CIRC)g=e.x,h=e.y,i=e.radius+n/2,j=e.radius+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.ELIP)g=e.x,h=e.y,i=e.width+n/2,j=e.height+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else{f=e.points;for(var o=0;og-n?g-n:a,b=g+n>b?g+n:b,c=c>h-n?h-n:c,d=h+n>d?h+n:d}}else a=0,b=0,c=0,d=0;var p=this.boundsPadding;this._localBounds.x=a-p,this._localBounds.width=b-a+2*p,this._localBounds.y=c-p,this._localBounds.height=d-c+2*p},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.Graphics.POLY=0,PIXI.Graphics.RECT=1,PIXI.Graphics.CIRC=2,PIXI.Graphics.ELIP=3,PIXI.Graphics.RREC=4,PIXI.Polygon.prototype.type=PIXI.Graphics.POLY,PIXI.Rectangle.prototype.type=PIXI.Graphics.RECT,PIXI.Circle.prototype.type=PIXI.Graphics.CIRC,PIXI.Ellipse.prototype.type=PIXI.Graphics.ELIP,PIXI.RoundedRectangle.prototype.type=PIXI.Graphics.RREC,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.screenView=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={preUpdate:function(){this.totalInView=0},follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},resize:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return(this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render)&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics },unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[])},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===c.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===c.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},c.StateManager.prototype.constructor=c.StateManager,c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e){var f,g=this._indexOfListener(a,d);if(-1!==g){if(f=this._bindings[g],f.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else f=new c.SignalBinding(this,a,b,d,e),this._addBinding(f);return this.memorize&&this._prevParams&&f.execute(this._prevParams),f},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;"undefined"==typeof b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){return this.validateListener(a,"add"),this._registerListener(a,!1,b,c)},addOnce:function(a,b,c){return this.validateListener(a,"addOnce"),this._registerListener(a,!0,b,c)},remove:function(a,b){this.validateListener(a,"remove");var c=this._indexOfListener(a,b);return-1!==c&&(this._bindings[c]._destroy(),this._bindings.splice(c,1)),a},removeAll:function(a){if("undefined"==typeof a&&(a=null),this._bindings){for(var b=this._bindings.length;b--;)a?this._bindings[b].context===a&&(this._bindings[b]._destroy(),this._bindings.splice(b,1)):this._bindings[b]._destroy();a||(this._bindings.length=0)}},getNumListeners:function(){return this._bindings?this._bindings.length:0},halt:function(){this._shouldPropagate=!1},dispatch:function(){if(this.active&&this._bindings){var a,b=Array.prototype.slice.call(arguments),c=this._bindings.length;if(this.memorize&&(this._prevParams=b),c){a=this._bindings.slice(),this._shouldPropagate=!0;do c--;while(a[c]&&this._shouldPropagate&&a[c].execute(b)!==!1)}}},forget:function(){this._prevParams&&(this._prevParams=null)},dispose:function(){this.removeAll(),this._bindings=null,this._prevParams&&(this._prevParams=null)},toString:function(){return"[Phaser.Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}},Object.defineProperty(c.Signal.prototype,"boundDispatch",{get:function(){var a=this;return this._boundDispatch||(this._boundDispatch=function(){return a.dispatch.apply(a,arguments)})}}),c.Signal.prototype.constructor=c.Signal,c.SignalBinding=function(a,b,c,d,e){this._listener=b,c&&(this._isOnce=!0),null!=d&&(this.context=d),this._signal=a,e&&(this._priority=e)},c.SignalBinding.prototype={context:null,_isOnce:!1,_priority:0,callCount:0,active:!0,params:null,execute:function(a){var b,c;return this.active&&this._listener&&(c=this.params?this.params.concat(a):a,b=this._listener.apply(this.context,c),this.callCount++,this._isOnce&&this.detach()),b},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal,delete this._listener,delete this.context},toString:function(){return"[Phaser.SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}},c.SignalBinding.prototype.constructor=c.SignalBinding,c.Filter=function(a,b,d){this.game=a,this.type=c.WEBGL_FILTER,this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.prevPoint=new c.Point;var e=new Date;if(this.uniforms={resolution:{type:"2f",value:{x:256,y:256}},time:{type:"1f",value:0},mouse:{type:"2f",value:{x:0,y:0}},date:{type:"4fv",value:[e.getFullYear(),e.getMonth(),e.getDate(),60*e.getHours()*60+60*e.getMinutes()+e.getSeconds()]},sampleRate:{type:"1f",value:44100},iChannel0:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel1:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel2:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel3:{type:"sampler2D",value:null,textureData:{repeat:!0}}},b)for(var f in b)this.uniforms[f]=b[f];this.fragmentSrc=d||[]},c.Filter.prototype={init:function(){},setResolution:function(a,b){this.uniforms.resolution.value.x=a,this.uniforms.resolution.value.y=b},update:function(a){if("undefined"!=typeof a){var b=a.x/this.game.width,c=1-a.y/this.game.height;(b!==this.prevPoint.x||c!==this.prevPoint.y)&&(this.uniforms.mouse.value.x=b.toFixed(2),this.uniforms.mouse.value.y=c.toFixed(2),this.prevPoint.set(b,c))}this.uniforms.time.value=this.game.time.totalElapsedSeconds()},destroy:function(){this.game=null}},c.Filter.prototype.constructor=c.Filter,Object.defineProperty(c.Filter.prototype,"width",{get:function(){return this.uniforms.resolution.value.x},set:function(a){this.uniforms.resolution.value.x=a}}),Object.defineProperty(c.Filter.prototype,"height",{get:function(){return this.uniforms.resolution.value.y},set:function(a){this.uniforms.resolution.value.y=a}}),c.Plugin=function(a,b){"undefined"==typeof b&&(b=null),this.game=a,this.parent=b,this.active=!1,this.visible=!1,this.hasPreUpdate=!1,this.hasUpdate=!1,this.hasPostUpdate=!1,this.hasRender=!1,this.hasPostRender=!1},c.Plugin.prototype={preUpdate:function(){},update:function(){},render:function(){},postRender:function(){},destroy:function(){this.game=null,this.parent=null,this.active=!1,this.visible=!1}},c.Plugin.prototype.constructor=c.Plugin,c.PluginManager=function(a){this.game=a,this.plugins=[],this._len=0,this._i=0},c.PluginManager.prototype={add:function(a){var b=Array.prototype.splice.call(arguments,1),c=!1;return"function"==typeof a?a=new a(this.game,this):(a.game=this.game,a.parent=this),"function"==typeof a.preUpdate&&(a.hasPreUpdate=!0,c=!0),"function"==typeof a.update&&(a.hasUpdate=!0,c=!0),"function"==typeof a.postUpdate&&(a.hasPostUpdate=!0,c=!0),"function"==typeof a.render&&(a.hasRender=!0,c=!0),"function"==typeof a.postRender&&(a.hasPostRender=!0,c=!0),c?((a.hasPreUpdate||a.hasUpdate||a.hasPostUpdate)&&(a.active=!0),(a.hasRender||a.hasPostRender)&&(a.visible=!0),this._len=this.plugins.push(a),"function"==typeof a.init&&a.init.apply(a,b),a):null},remove:function(a){for(this._i=this._len;this._i--;)if(this.plugins[this._i]===a)return a.destroy(),this.plugins.splice(this._i,1),void this._len--},removeAll:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].destroy();this.plugins.length=0,this._len=0},preUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPreUpdate&&this.plugins[this._i].preUpdate()},update:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasUpdate&&this.plugins[this._i].update()},postUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPostUpdate&&this.plugins[this._i].postUpdate()},render:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasRender&&this.plugins[this._i].render()},postRender:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasPostRender&&this.plugins[this._i].postRender()},destroy:function(){this.removeAll(),this.game=null}},c.PluginManager.prototype.constructor=c.PluginManager,c.Stage=function(a){this.game=a,PIXI.Stage.call(this,0),this.name="_stage_root",this.interactive=!1,this.disableVisibilityChange=!1,this.exists=!0,this.currentRenderOrderID=0,this._hiddenVar="hidden",this._backgroundColor=0,a.config&&this.parseConfig(a.config)},c.Stage.prototype=Object.create(PIXI.Stage.prototype),c.Stage.prototype.constructor=c.Stage,c.Stage.prototype.parseConfig=function(a){a.disableVisibilityChange&&(this.disableVisibilityChange=a.disableVisibilityChange),a.backgroundColor&&(this.backgroundColor=a.backgroundColor)},c.Stage.prototype.boot=function(){c.DOM.getOffset(this.game.canvas,this.offset);var a=this;this._onChange=function(b){return a.visibilityChange(b)},c.Canvas.setUserSelect(this.game.canvas,"none"),c.Canvas.setTouchAction(this.game.canvas,"none"),this.checkVisibility()},c.Stage.prototype.preUpdate=function(){this.currentRenderOrderID=0;for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return PIXI.scaleModes.DEFAULT===PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.DEFAULT=a?PIXI.scaleModes.LINEAR:PIXI.scaleModes.NEAREST}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",this.z=0,PIXI.DisplayObjectContainer.call(this),e?(this.game.stage.addChild(this),this.z=this.game.stage.children.length):b&&(b.addChild(this),this.z=b.children.length),this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup$dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup$dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){var c;if(arguments.length>2){c=[];for(var d=2;dd;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}var e;if(arguments.length>2){e=[];for(var f=2;ff;f++)g=this.callbackFromArray(this.children[f],a,c),b&&g?(h=this.callbackFromArray(this.children[f],b,d),g&&g.apply(h,e)):g&&g.apply(this.children[f],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=[];++dd;d++)(!c||c&&this.children[d].exists)&&a.call(b,this.children[d]);else{for(var f=[null],d=3;dd;d++)(!c||c&&this.children[d].exists)&&(f[0]=this.children[d],a.apply(b,f))}},c.Group.prototype.forEachExists=function(a,b){var d;if(arguments.length>2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g?(g[0]=this.children[i],e.apply(f,g)):e.call(f,this.children[i])),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:null},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setScreenSize=c.ScaleManager.prototype.updateLayout,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.lockRender=!1,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug?(this.debug=new c.Utils.Debug(this),this.debug.boot()):this.debug={preUpdate:function(){},update:function(){}},this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start())},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setScreenSize=c.ScaleManager.prototype.updateLayout,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.lockRender=!1,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug?(this.debug=new c.Utils.Debug(this),this.debug.boot()):this.debug={preUpdate:function(){},update:function(){},reset:function(){}},this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start())},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown$dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp$dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp$dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart$dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a},c.Events.prototype={destroy:function(){this._parent=null,this._onDestroy&&this._onDestroy.dispose(),this._onAddedToGroup&&this._onAddedToGroup.dispose(),this._onRemovedFromGroup&&this._onRemovedFromGroup.dispose(),this._onRemovedFromWorld&&this._onRemovedFromWorld.dispose(),this._onKilled&&this._onKilled.dispose(),this._onRevived&&this._onRevived.dispose(),this._onOutOfBounds&&this._onOutOfBounds.dispose(),this._onInputOver&&this._onInputOver.dispose(),this._onInputOut&&this._onInputOut.dispose(),this._onInputDown&&this._onInputDown.dispose(),this._onInputUp&&this._onInputUp.dispose(),this._onDragStart&&this._onDragStart.dispose(),this._onDragStop&&this._onDragStop.dispose(),this._onAnimationStart&&this._onAnimationStart.dispose(),this._onAnimationComplete&&this._onAnimationComplete.dispose(),this._onAnimationLoop&&this._onAnimationLoop.dispose()},onAddedToGroup:null,onRemovedFromGroup:null,onRemovedFromWorld:null,onDestroy:null,onKilled:null,onRevived:null,onOutOfBounds:null,onEnterBounds:null,onInputOver:null,onInputOut:null,onInputDown:null,onInputUp:null,onDragStart:null,onDragStop:null,onAnimationStart:null,onAnimationComplete:null,onAnimationLoop:null},c.Events.prototype.constructor=c.Events;for(var e in c.Events.prototype)if(c.Events.prototype.hasOwnProperty(e)&&0===e.indexOf("on")&&null===c.Events.prototype[e]){var f="this._"+e,g=e+"$dispatch";Object.defineProperty(c.Events.prototype,e,{get:new Function("return "+f+" || ("+f+" = new Phaser.Signal())")}),c.Events.prototype[g]=new Function("return "+f+" ? "+f+".dispatch.apply("+f+", arguments) : null")}c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f)) },text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof b||null===b)&&(b=!1),("undefined"==typeof d||null===d)&&(d=!1),a||b||d){"undefined"==typeof e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=c.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){"undefined"==typeof a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return"undefined"==typeof a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(("undefined"==typeof a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}return("undefined"==typeof b||null===b)&&(b=0),("undefined"==typeof d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),("undefined"==typeof g||null===g)&&(g=b),("undefined"==typeof h||null===h)&&(h=d),("undefined"==typeof i||null===i)&&(i=this._size.x),("undefined"==typeof j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),"undefined"==typeof q&&(q=null),"undefined"==typeof r&&(r=!1),this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y?void 0:(this._alpha.prev=this.context.globalAlpha,this.context.save(),this.context.globalAlpha=this._alpha.current,q&&(this.context.globalCompositeOperation=q),r&&(g|=0,h|=0),this.context.translate(g,h),this.context.scale(this._scale.x,this._scale.y),this.context.rotate(this._rotate),this.context.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),this.context.restore(),this.context.globalAlpha=this._alpha.prev,this.dirty=!0,this)},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},shadow:function(a,b,c,d){"undefined"==typeof a||null===a?this.context.shadowColor="rgba(0,0,0,0)":(this.context.shadowColor=a,this.context.shadowBlur=b||5,this.context.shadowOffsetX=c||10,this.context.shadowOffsetY=d||10)},alphaMask:function(a,b,c,d){return"undefined"==typeof d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),"undefined"==typeof c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},circle:function(a,b,c,d){return"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill(),this},textureLine:function(a,b,d){if("undefined"==typeof d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;return"no-repeat"===d&&e>b.width&&(e=b.width),this.context.fillStyle=this.context.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),this.context.save(),this.context.translate(this._pos.x,this._pos.y),this.context.rotate(a.angle),this.context.fillRect(0,0,e,b.height),this.context.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},blendReset:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceOver:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceIn:function(){return this.context.globalCompositeOperation="source-in",this},blendSourceOut:function(){return this.context.globalCompositeOperation="source-out",this},blendSourceAtop:function(){return this.context.globalCompositeOperation="source-atop",this},blendDestinationOver:function(){return this.context.globalCompositeOperation="destination-over",this},blendDestinationIn:function(){return this.context.globalCompositeOperation="destination-in",this},blendDestinationOut:function(){return this.context.globalCompositeOperation="destination-out",this},blendDestinationAtop:function(){return this.context.globalCompositeOperation="destination-atop",this},blendXor:function(){return this.context.globalCompositeOperation="xor",this},blendAdd:function(){return this.context.globalCompositeOperation="lighter",this},blendMultiply:function(){return this.context.globalCompositeOperation="multiply",this},blendScreen:function(){return this.context.globalCompositeOperation="screen",this},blendOverlay:function(){return this.context.globalCompositeOperation="overlay",this},blendDarken:function(){return this.context.globalCompositeOperation="darken",this},blendLighten:function(){return this.context.globalCompositeOperation="lighten",this},blendColorDodge:function(){return this.context.globalCompositeOperation="color-dodge",this},blendColorBurn:function(){return this.context.globalCompositeOperation="color-burn",this},blendHardLight:function(){return this.context.globalCompositeOperation="hard-light",this},blendSoftLight:function(){return this.context.globalCompositeOperation="soft-light",this},blendDifference:function(){return this.context.globalCompositeOperation="difference",this},blendExclusion:function(){return this.context.globalCompositeOperation="exclusion",this},blendHue:function(){return this.context.globalCompositeOperation="hue",this},blendSaturation:function(){return this.context.globalCompositeOperation="saturation",this},blendColor:function(){return this.context.globalCompositeOperation="color",this},blendLuminosity:function(){return this.context.globalCompositeOperation="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.SPRITE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this.scaleMin=null,this.scaleMax=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds$dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Sprite.prototype.update=function(){},c.Sprite.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Sprite.prototype.loadTexture=function(a,b,d){b=b||0,(d||"undefined"==typeof d)&&this.animations.stop(),this.key=a;var e=!0,f=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(e=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),e=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),e&&(this._frame=c.Rectangle.clone(this.texture.frame)),f||(this.smoothed=!1)},c.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Sprite.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived$dispatch(this),this},c.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this},c.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},c.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},c.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},c.Sprite.prototype.overlap=function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())},c.Sprite.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Sprite.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Sprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"inCamera",{get:function(){return this.autoCull||this.checkWorldBounds||(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y),this.game.world.camera.view.intersects(this._bounds)}}),Object.defineProperty(c.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(c.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(c.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(c.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(c.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(c.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=c.IMAGE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.alive=!0,this.autoCull=!1,this.input=null,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this._bounds.copyFrom(this.getBounds()),this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Image.prototype.update=function(){},c.Image.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Image.prototype.loadTexture=function(a,b){b=b||0,this.key=a;var d=!0,e=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),d&&(this._frame=c.Rectangle.clone(this.texture.frame)),e||(this.smoothed=!1)},c.Image.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Image.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Image.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Image.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y; var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived$dispatch(this),this},c.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this},c.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy(),this.animations&&this.animations.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},c.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Image.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Image.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Image.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},c.TileSprite.prototype.update=function(){},c.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},c.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},c.TileSprite.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty()},c.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.alive=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.TileSprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.ROPE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,this._frame=0,this._frameName="",this._scroll=new c.Point,PIXI.Rope.call(this,e,this.points),this.position.set(b,d),this.input=null,this.world=new c.Point(b,d),this.autoCull=!1,this.checkWorldBounds=!1,this.cameraOffset=new c.Point,this.body=null,this._cache=[0,0,0,0,1,0,1,0,0],this.loadTexture(e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Rope.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;(this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds&&(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds)?(this._cache[5]=0,this.events.onEnterBounds$dispatch(this)):0!==this._cache[5]||this.game.world.bounds.intersects(this._bounds)||(this._cache[5]=1,this.events.onOutOfBounds$dispatch(this))),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Rope.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},c.Rope.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.Rope.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Rope.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.Rope.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.Rope.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Rope.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.Rope.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.Rope.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Rope.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.Rope.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Rope.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;ka;a++)this.children[a].preUpdate();return!0},c.Text.prototype.update=function(){},c.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(!0),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Text.prototype.setShadow=function(a,b,c,d){"undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c="rgba(0, 0, 0, 1)"),"undefined"==typeof d&&(d=0),this.style.shadowOffsetX=a,this.style.shadowOffsetY=b,this.style.shadowColor=c,this.style.shadowBlur=d,this.dirty=!0},c.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},c.Text.prototype.updateText=function(){this.texture.baseTexture.resolution=this.resolution,this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=this.determineFontProperties(this.style.font),f=0;f0?this.updateLine(b[f],k,l):(this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(b[f],k,l),this.style.fill&&this.context.fillText(b[f],k,l));this.updateTexture()},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){"undefined"==typeof d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case c.RetroFont.ALIGN_LEFT:a=0;break;case c.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case c.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},c.RetroFont.prototype.pasteLine=function(a,b,d,e){for(var f=new c.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(b,d),this.render(this.stamp,f,!1),b+=this.characterWidth+e,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Particle=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},c.Particle.prototype=Object.create(c.Sprite.prototype),c.Particle.prototype.constructor=c.Particle,c.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},c.Particle.prototype.onEmit=function(){},c.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},c.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},c.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},c.Device=function(){this.deviceReadyAt=0,this.initialized=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.LITTLE_ENDIAN=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1},c.Device=new c.Device,c.Device.onInitialized=new c.Signal,c.Device.whenReady=function(a,b,c){var d=this._readyCheck;if(this.deviceReadyAt||!d)a.call(b,this);else if(d._monitor||c)d._queue=d._queue||[],d._queue.push([a,b]);else{d._monitor=d.bind(this),d._queue=d._queue||[],d._queue.push([a,b]);var e="undefined"!=typeof window.cordova,f=navigator.isCocoonJS;"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(d._monitor,0):e&&!f?document.addEventListener("deviceready",d._monitor,!1):(document.addEventListener("DOMContentLoaded",d._monitor,!1),window.addEventListener("load",d._monitor,!1))}},c.Device._readyCheck=function(){var a=this._readyCheck;if(document.body){if(!this.deviceReadyAt){this.deviceReadyAt=Date.now(),document.removeEventListener("deviceready",a._monitor),document.removeEventListener("DOMContentLoaded",a._monitor),window.removeEventListener("load",a._monitor),this._initialize(),this.initialized=!0,this.onInitialized.dispatch(this);for(var b;b=a._queue.shift();){var c=b[0],d=b[1];c.call(d,this)}this._readyCheck=null,this._initialize=null,this.onInitialized=null}}else window.setTimeout(a._monitor,20)},c.Device._initialize=function(){function a(){var a=navigator.userAgent;/Playstation Vita/.test(a)?k.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?k.kindle=!0:/Android/.test(a)?k.android=!0:/CrOS/.test(a)?k.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?k.iOS=!0:/Linux/.test(a)?k.linux=!0:/Mac OS/.test(a)?k.macOS=!0:/Windows/.test(a)&&(k.windows=!0,/Windows Phone/i.test(a)&&(k.windowsPhone=!0));var b=/Silk/.test(a);(k.windows||k.macOS||k.linux&&!b||k.chromeOS)&&(k.desktop=!0),(k.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(k.desktop=!1)}function b(){k.canvas=!!window.CanvasRenderingContext2D||k.cocoonJS;try{k.localStorage=!!localStorage.getItem}catch(a){k.localStorage=!1}k.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),k.fileSystem=!!window.requestFileSystem,k.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),k.webGL=null===k.webGL||k.webGL===!1?!1:!0,k.worker=!!window.Worker,k.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,k.quirksMode="CSS1Compat"===document.compatMode?!1:!0,k.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)}function c(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(k.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(k.mspointer=!0),k.cocoonJS||("onwheel"in window||k.ie&&"WheelEvent"in window?k.wheelEvent="wheel":"onmousewheel"in window?k.wheelEvent="mousewheel":k.firefox&&"MouseScrollEvent"in window&&(k.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var k=this;a(),f(),e(),j(),g(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"opus"==a&&this.opus?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return"undefined"==typeof b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.visualBounds:1===a.nodeType?this.getBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return document.documentElement.clientWidth},g=function(){return document.documentElement.clientHeight};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.Canvas={create:function(a,b,c){a=a||256,b=b||256;var d=document.createElement("canvas");return"string"==typeof c&&""!==c&&(d.id=c),d.width=a,d.height=b,d.style.display="block",d},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},getSmoothingEnabled:function(a){return a.imageSmoothingEnabled||a.mozImageSmoothingEnabled||a.oImageSmoothingEnabled||a.webkitImageSmoothingEnabled||a.msImageSmoothingEnabled},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style["image-rendering"]="pixelated",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.Canvas.getOffset=c.DOM.getOffset,c.Canvas.getAspectRatio=c.DOM.getAspectRatio,c.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},normalizeLatitude:function(a){return c.Math.clamp(a,-90,90)},normalizeLongitude:function(a){return c.Math.wrap(a,-180,180)},chanceRoll:function(a){return c.Utils.chanceRoll(a)},numberArray:function(a,b){return c.ArrayUtils.numberArray(a,b)},numberArrayStep:function(a,b,d){return c.ArrayUtils.numberArrayStep(a,b,d)},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,d){return c.Math.clamp(a,b,d)},randomSign:function(){return c.Utils.randomChoice(-1,1)},isOdd:function(a){return 1&a},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var l=Math.PI/180,m=180/Math.PI;c.Math.degToRad=function(a){return a*l},c.Math.radToDeg=function(a){return a*m},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d]._object&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d]._object&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b._object===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.repeatDelay=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if("undefined"==typeof a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this.onStart.dispatch(this.target,this),this},stop:function(a){return"undefined"==typeof a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},delay:function(a,b){if("undefined"==typeof b&&(b=0),-1===b)for(var c=0;c0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return"undefined"==typeof a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;"undefined"==typeof b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;this.vEnd[a]=[this.parent.properties[a]].concat(this.vEnd[a])}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(){if(!this.isRunning){if(!(this.game.time.time>=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var a in this.vEnd){var b=this.vStart[a],d=this.vEnd[a];this.parent.target[a]=Array.isArray(d)?this.interpolationFunction(d,this.value):b+(d-b)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time+this.delay,this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.physicsElapsed=1/this.desiredFps,this.physicsElapsedMS=1e3*this.physicsElapsed,this.advancedTiming&&(this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(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.game.paused){this.events.update(this.time);for(var c=0,d=this._timers.length;d>c;)this._timers[c].update(this.time)?c++:(this._timers.splice(c,1),d--)}},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.now,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){"undefined"==typeof b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if("undefined"==typeof a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames.length=0,this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a]},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0 -},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){"undefined"==typeof h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g,h){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name,this.uuid);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return"undefined"==typeof a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},c.FrameData.prototype.constructor=c.FrameData,Object.defineProperty(c.FrameData.prototype,"total",{get:function(){return this._frames.length}}),c.AnimationParser={spriteSheet:function(a,b,d,e,f,g,h){var i=a.cache.getImage(b);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new c.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[b],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,b,d){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var e,f=new c.FrameData,g=b.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new c.FrameData,r=b.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,b){if("undefined"==typeof b&&(b=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,b)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g=0&&(b=b.substr(0,b.indexOf("?"))),this.game.device.canPlayAudio(b))return a[c];return null},fileError:function(a){this._fileList[a].loaded=!0,this._fileList[a].error=!0,this.onFileError.dispatch(this._fileList[a].key,this._fileList[a]),console.warn("Phaser.Loader error loading file: "+this._fileList[a].key+" from URL "+this._fileList[a].url),this.nextFile(a,!1)},fileComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader fileComplete invalid index "+a);var b=this._fileList[a];b.loaded=!0;var d=!0;switch(b.type){case"image":this.game.cache.addImage(b.key,b.url,b.data);break;case"spritesheet":this.game.cache.addSpriteSheet(b.key,b.url,b.data,b.frameWidth,b.frameHeight,b.frameMax,b.margin,b.spacing);break;case"textureatlas":if(null==b.atlasURL)this.game.cache.addTextureAtlas(b.key,b.url,b.data,b.atlasData,b.format);else if(d=!1,b.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||b.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","jsonLoadComplete","dataLoadError");else{if(b.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+b.format);this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","xmlLoadComplete","dataLoadError")}break;case"bitmapfont":null==b.xmlURL?this.game.cache.addBitmapFont(b.key,b.url,b.data,b.xmlData,b.xSpacing,b.ySpacing):(d=!1,this.xhrLoad(this._fileIndex,this.baseURL+b.xmlURL,"text","xmlLoadComplete","dataLoadError"));break;case"audio":if(this.game.sound.usingWebAudio){if(b.data=this._xhr.response,this.game.cache.addSound(b.key,b.url,b.data,!0,!1),b.autoDecode){var e=this,f=b.key;this.game.cache.updateSound(f,"isDecoding",!0),this.game.sound.context.decodeAudioData(b.data,function(a){a&&(e.game.cache.decodedSound(f,a),e.game.sound.onSoundDecode.dispatch(f,e.game.cache.getSound(f)))})}}else b.data.removeEventListener("canplaythrough",c.GAMES[this.game.id].load.fileComplete),this.game.cache.addSound(b.key,b.url,b.data,!1,!0);break;case"text":b.data=this._xhr.responseText,this.game.cache.addText(b.key,b.url,b.data);break;case"physics":var g=JSON.parse(this._xhr.responseText);this.game.cache.addPhysicsData(b.key,b.url,g,b.format);break;case"script":b.data=document.createElement("script"),b.data.language="javascript",b.data.type="text/javascript",b.data.defer=!1,b.data.text=this._xhr.responseText,document.head.appendChild(b.data),b.callback&&(b.data=b.callback.call(b.callbackContext,b.key,this._xhr.responseText));break;case"binary":b.data=b.callback?b.callback.call(b.callbackContext,b.key,this._xhr.response):this._xhr.response,this.game.cache.addBinary(b.key,b.data)}d&&this.nextFile(a,!0)},jsonLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader jsonLoadComplete invalid index "+a);var b=this._fileList[a];if(this._ajax&&this._ajax.responseText)var c=JSON.parse(this._ajax.responseText);else var c=JSON.parse(this._xhr.responseText);b.loaded=!0,"tilemap"===b.type?this.game.cache.addTilemap(b.key,b.url,c,b.format):"json"===b.type?this.game.cache.addJSON(b.key,b.url,c):this.game.cache.addTextureAtlas(b.key,b.url,b.data,c,b.format),this.nextFile(a,!0)},csvLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader csvLoadComplete invalid index "+a);var b=this._fileList[a],c=this._xhr.responseText;b.loaded=!0,this.game.cache.addTilemap(b.key,b.url,c,b.format),this.nextFile(a,!0)},dataLoadError:function(a){var b=this._fileList[a];b.loaded=!0,b.error=!0,console.warn("Phaser.Loader dataLoadError: "+b.key),this.nextFile(a,!0)},xmlLoadComplete:function(a){""!==this._xhr.responseType&&"text"!==this._xhr.responseType&&(console.warn("Invalid XML Response Type",this._fileList[a]),console.warn(this._xhr));var b,c=this._xhr.responseText;try{if(window.DOMParser){var d=new DOMParser;b=d.parseFromString(c,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(c)}catch(e){b=void 0}if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw new Error("Phaser.Loader. Invalid XML given");var f=this._fileList[a];f.loaded=!0,"bitmapfont"===f.type?this.game.cache.addBitmapFont(f.key,f.url,f.data,b,f.xSpacing,f.ySpacing):"textureatlas"===f.type?this.game.cache.addTextureAtlas(f.key,f.url,f.data,b,f.format):"xml"===f.type&&this.game.cache.addXML(f.key,f.url,b),this.nextFile(a,!0)},nextFile:function(a,b){this.progressFloat+=this._progressChunk,this.progress=Math.round(this.progressFloat),this.progress>100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.updateCrop()),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this.isPlaying&&!this.allowMultiple&&(this.override||e)&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null===this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b){"undefined"==typeof b&&(b=!1),this.paused||(this.play("",0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if("undefined"==typeof a&&(a=1e3),"undefined"==typeof b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");var d=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0);d.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return("undefined"==typeof b||null===b)&&(b=c.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){"undefined"==typeof e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return j.color=c.Color.getColor(j.r,j.g,j.b),j.color32=c.Color.getColor32(j.a,j.r,j.g,j.b),c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){"undefined"==typeof a&&(a=.5),"undefined"==typeof b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){"undefined"==typeof f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=255),"undefined"==typeof d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D&&(null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset())},enable:function(a,b,d){"undefined"==typeof b&&(b=c.Physics.ARCADE),"undefined"==typeof d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d&&this.box2d.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.skipQuadTree=!0,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,b){"undefined"==typeof b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!0);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,g=a.length;g>f;f++)for(var h=0,i=b.length;i>h;h++)this.collideHandler(a[f],b[h],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!1);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,h=a.length;h>f;f++)for(var i=0,j=b.length;j>i;i++)this.collideHandler(a[f],b[i],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,d,e,f,g){return"undefined"!=typeof b||a.type!==c.GROUP&&a.type!==c.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==c.SPRITE||a.type==c.TILESPRITE?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideSpriteVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f):a.type==c.GROUP?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f):a.type==c.TILEMAPLAYER?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f):(b.type==c.GROUP||b.type==c.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,d,e,f):a.type==c.EMITTER&&(b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body)if(a.body.skipQuadTree||this.skipQuadTree)for(var g=0,h=b.children.length;h>g;g++)b.children[g]&&b.children[g].exists&&this.collideSpriteVsSprite(a,b.children[g],c,d,e,f);else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f-1>g;g++)for(var h=g+1;f>h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0,i=a.children.length;i>h;h++)a.children[h].exists&&(a.children[h].type===c.GROUP?this.collideGroupVsGroup(a.children[h],b,d,e,f,g):this.collideSpriteVsGroup(a.children[h],b,d,e,f,g))},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=this._overlap,b.overlapX=this._overlap,0!==this._overlap)?c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=this._overlap,b.overlapY=this._overlap,0!==this._overlap)?c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);var h=new c.Rectangle(a,b,1,1),i=[];this._potentials=this.quadTree.retrieve(h);for(var j=0,k=this._potentials.length;k>j;j++)this._potentials[j].hitTest(a,b)&&(e&&e.call(f,g,this._potentials[j].sprite),i.push(this._potentials[j].sprite));return i},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b) -},accelerationFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.phase=0,this.skipQuadTree=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Particles.Arcade={},c.Particles.Arcade.Emitter=function(a,b,d,e){this.maxParticles=e||50,c.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=c.EMITTER,this.area=new c.Rectangle(b,d,1,1),this.minParticleSpeed=new c.Point(-100,-100),this.maxParticleSpeed=new c.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=c.Particle,this.particleDrag=new c.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new c.Point,this.on=!1,this.particleAnchor=new c.Point(.5,.5),this.blendMode=c.blendModes.NORMAL,this.emitX=b,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new c.Point(1,1),this._maxParticleScale=new c.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},c.Particles.Arcade.Emitter.prototype=Object.create(c.Group.prototype),c.Particles.Arcade.Emitter.prototype.constructor=c.Particles.Arcade.Emitter,c.Particles.Arcade.Emitter.prototype.update=function(){this.on&&this.game.time.time>=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit())},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=c.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=c.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},c.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof b){if("string"!=typeof a)return null;if(b=a,!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===c.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+b+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(b)),this.tilesets[a];var i=new c.Tileset(b,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(b)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pl;l++)if(this.objects[a][l].gid===b){k=new i(this.game,this.objects[a][l].x,this.objects[a][l].y,d,e),k.name=this.objects[a][l].name,k.visible=this.objects[a][l].visible,k.autoCull=g,k.exists=f,j&&(k.y-=k.height),h.add(k);for(var n in this.objects[a][l].properties)h.set(k,n,this.objects[a][l].properties[n],!1,!1,0,!0)}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),"undefined"==typeof b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),"undefined"==typeof f&&(f=this.game.world),"undefined"==typeof g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;m>l;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;he;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d,e){if("undefined"==typeof c&&(c=!0),"undefined"==typeof e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=c[1].x-a,f=c[1].y-b,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,this.game=a,this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=c.Canvas.create(e,f,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),c.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=c.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new c.Point(0,0),this.renderSettings={enableScrollDelta:!0,overdrawRatio:.2},this.debug=!1,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[]},c.TilemapLayer.prototype=Object.create(c.Image.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,Object.defineProperty(c.TilemapLayer.prototype,"tileColor",{get:function(){return this.debugSettings.missingImageFill},set:function(a){this.debugSettings.missingImageFill=a}}),c.TilemapLayer.prototype.postUpdate=function(){c.Image.prototype.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX,this.scrollY=a.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(a.view.x+this.cameraOffset.x)/a.scale.x,this.position.y=(a.view.y+this.cameraOffset.y)/a.scale.y)},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=j;j+h>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0),a.save(),a.globalCompositeOperation="copy",a.drawImage(d,g,h,e,f,i,j,e,f),a.restore()},c.TilemapLayer.prototype.renderRegion=function(a,b,c,d,e,f){var g=this.context,h=this.layer.width,i=this.layer.height,j=this._mc.tileWidth,k=this._mc.tileHeight,l=this._mc.tilesets,m=0/0;this._wrap||(e>=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k++)i.push(a.layers[f].data[k]>0?new c.Tile(g,a.layers[f].data[k],h,j.length,a.tilewidth,a.tileheight):new c.Tile(g,-1,h,j.length,a.tilewidth,a.tileheight)),h++,h===a.layers[f].width&&(j.push(i),h=0,i=[]);g.data=j,e.push(g)}d.layers=e;for(var m=[],f=0;ft;t++)if(a.layers[f].objects[t].gid){var u={gid:a.layers[f].objects[t].gid,name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};r[a.layers[f].name].push(u)}else if(a.layers[f].objects[t].polyline){var u={name:a.layers[f].objects[t].name,type:a.layers[f].objects[t].type,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,width:a.layers[f].objects[t].width,height:a.layers[f].objects[t].height,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};u.polyline=[];for(var v=0;v=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&ac;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var l=Math.PI/180,m=180/Math.PI;c.Math.degToRad=function(a){return a*l},c.Math.radToDeg=function(a){return a*m},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.repeatDelay=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if("undefined"==typeof a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this.onStart.dispatch(this.target,this),this},stop:function(a){return"undefined"==typeof a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},delay:function(a,b){if("undefined"==typeof b&&(b=0),-1===b)for(var c=0;c0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return"undefined"==typeof a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;"undefined"==typeof b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;this.vEnd[a]=[this.parent.properties[a]].concat(this.vEnd[a])}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(){if(!this.isRunning){if(!(this.game.time.time>=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var a in this.vEnd){var b=this.vStart[a],d=this.vEnd[a];this.parent.target[a]=Array.isArray(d)?this.interpolationFunction(d,this.value):b+(d-b)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time+this.delay,this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.physicsElapsed=1/this.desiredFps,this.physicsElapsedMS=1e3*this.physicsElapsed,this.advancedTiming&&(this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(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.game.paused){this.events.update(this.time);for(var c=0,d=this._timers.length;d>c;)this._timers[c].update(this.time)?c++:(this._timers.splice(c,1),d--)}},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.now,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){"undefined"==typeof b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if("undefined"==typeof a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames.length=0,this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a]},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0 +},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){"undefined"==typeof h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g,h){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name,this.uuid);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return"undefined"==typeof a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},c.FrameData.prototype.constructor=c.FrameData,Object.defineProperty(c.FrameData.prototype,"total",{get:function(){return this._frames.length}}),c.AnimationParser={spriteSheet:function(a,b,d,e,f,g,h){var i=a.cache.getImage(b);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new c.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[b],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,b,d){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var e,f=new c.FrameData,g=b.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new c.FrameData,r=b.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,b){if("undefined"==typeof b&&(b=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,b)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g=0&&(b=b.substr(0,b.indexOf("?"))),this.game.device.canPlayAudio(b))return a[c];return null},fileError:function(a){this._fileList[a].loaded=!0,this._fileList[a].error=!0,this.onFileError.dispatch(this._fileList[a].key,this._fileList[a]),console.warn("Phaser.Loader error loading file: "+this._fileList[a].key+" from URL "+this._fileList[a].url),this.nextFile(a,!1)},fileComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader fileComplete invalid index "+a);var b=this._fileList[a];b.loaded=!0;var d=!0;switch(b.type){case"image":this.game.cache.addImage(b.key,b.url,b.data);break;case"spritesheet":this.game.cache.addSpriteSheet(b.key,b.url,b.data,b.frameWidth,b.frameHeight,b.frameMax,b.margin,b.spacing);break;case"textureatlas":if(null==b.atlasURL)this.game.cache.addTextureAtlas(b.key,b.url,b.data,b.atlasData,b.format);else if(d=!1,b.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||b.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","jsonLoadComplete","dataLoadError");else{if(b.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+b.format);this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","xmlLoadComplete","dataLoadError")}break;case"bitmapfont":null==b.xmlURL?this.game.cache.addBitmapFont(b.key,b.url,b.data,b.xmlData,b.xSpacing,b.ySpacing):(d=!1,this.xhrLoad(this._fileIndex,this.baseURL+b.xmlURL,"text","xmlLoadComplete","dataLoadError"));break;case"audio":if(this.game.sound.usingWebAudio){if(b.data=this._xhr.response,this.game.cache.addSound(b.key,b.url,b.data,!0,!1),b.autoDecode){var e=this,f=b.key;this.game.cache.updateSound(f,"isDecoding",!0),this.game.sound.context.decodeAudioData(b.data,function(a){a&&(e.game.cache.decodedSound(f,a),e.game.sound.onSoundDecode.dispatch(f,e.game.cache.getSound(f)))})}}else b.data.removeEventListener("canplaythrough",c.GAMES[this.game.id].load.fileComplete),this.game.cache.addSound(b.key,b.url,b.data,!1,!0);break;case"text":b.data=this._xhr.responseText,this.game.cache.addText(b.key,b.url,b.data);break;case"physics":var g=JSON.parse(this._xhr.responseText);this.game.cache.addPhysicsData(b.key,b.url,g,b.format);break;case"script":b.data=document.createElement("script"),b.data.language="javascript",b.data.type="text/javascript",b.data.defer=!1,b.data.text=this._xhr.responseText,document.head.appendChild(b.data),b.callback&&(b.data=b.callback.call(b.callbackContext,b.key,this._xhr.responseText));break;case"binary":b.data=b.callback?b.callback.call(b.callbackContext,b.key,this._xhr.response):this._xhr.response,this.game.cache.addBinary(b.key,b.data)}d&&this.nextFile(a,!0)},jsonLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader jsonLoadComplete invalid index "+a);var b=this._fileList[a];if(this._ajax&&this._ajax.responseText)var c=JSON.parse(this._ajax.responseText);else var c=JSON.parse(this._xhr.responseText);b.loaded=!0,"tilemap"===b.type?this.game.cache.addTilemap(b.key,b.url,c,b.format):"json"===b.type?this.game.cache.addJSON(b.key,b.url,c):this.game.cache.addTextureAtlas(b.key,b.url,b.data,c,b.format),this.nextFile(a,!0)},csvLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader csvLoadComplete invalid index "+a);var b=this._fileList[a],c=this._xhr.responseText;b.loaded=!0,this.game.cache.addTilemap(b.key,b.url,c,b.format),this.nextFile(a,!0)},dataLoadError:function(a){var b=this._fileList[a];b.loaded=!0,b.error=!0,console.warn("Phaser.Loader dataLoadError: "+b.key),this.nextFile(a,!0)},xmlLoadComplete:function(a){""!==this._xhr.responseType&&"text"!==this._xhr.responseType&&(console.warn("Invalid XML Response Type",this._fileList[a]),console.warn(this._xhr));var b,c=this._xhr.responseText;try{if(window.DOMParser){var d=new DOMParser;b=d.parseFromString(c,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(c)}catch(e){b=void 0}if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw new Error("Phaser.Loader. Invalid XML given");var f=this._fileList[a];f.loaded=!0,"bitmapfont"===f.type?this.game.cache.addBitmapFont(f.key,f.url,f.data,b,f.xSpacing,f.ySpacing):"textureatlas"===f.type?this.game.cache.addTextureAtlas(f.key,f.url,f.data,b,f.format):"xml"===f.type&&this.game.cache.addXML(f.key,f.url,b),this.nextFile(a,!0)},nextFile:function(a,b){this.progressFloat+=this._progressChunk,this.progress=Math.round(this.progressFloat),this.progress>100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.updateCrop()),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this.isPlaying&&!this.allowMultiple&&(this.override||e)&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null===this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b){"undefined"==typeof b&&(b=!1),this.paused||(this.play("",0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if("undefined"==typeof a&&(a=1e3),"undefined"==typeof b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");var d=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0);d.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d); +return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return("undefined"==typeof b||null===b)&&(b=c.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){"undefined"==typeof e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return j.color=c.Color.getColor(j.r,j.g,j.b),j.color32=c.Color.getColor32(j.a,j.r,j.g,j.b),c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){"undefined"==typeof a&&(a=.5),"undefined"==typeof b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){"undefined"==typeof f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=255),"undefined"==typeof d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D&&(null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset())},enable:function(a,b,d){"undefined"==typeof b&&(b=c.Physics.ARCADE),"undefined"==typeof d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d&&this.box2d.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.skipQuadTree=!0,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,b){"undefined"==typeof b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!0);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,g=a.length;g>f;f++)for(var h=0,i=b.length;i>h;h++)this.collideHandler(a[f],b[h],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!1);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,h=a.length;h>f;f++)for(var i=0,j=b.length;j>i;i++)this.collideHandler(a[f],b[i],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,d,e,f,g){return"undefined"!=typeof b||a.type!==c.GROUP&&a.type!==c.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==c.SPRITE||a.type==c.TILESPRITE?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideSpriteVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f):a.type==c.GROUP?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f):a.type==c.TILEMAPLAYER?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f):(b.type==c.GROUP||b.type==c.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,d,e,f):a.type==c.EMITTER&&(b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body)if(a.body.skipQuadTree||this.skipQuadTree)for(var g=0,h=b.children.length;h>g;g++)b.children[g]&&b.children[g].exists&&this.collideSpriteVsSprite(a,b.children[g],c,d,e,f);else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f-1>g;g++)for(var h=g+1;f>h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0,i=a.children.length;i>h;h++)a.children[h].exists&&(a.children[h].type===c.GROUP?this.collideGroupVsGroup(a.children[h],b,d,e,f,g):this.collideSpriteVsGroup(a.children[h],b,d,e,f,g))},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=this._overlap,b.overlapX=this._overlap,0!==this._overlap)?c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=this._overlap,b.overlapY=this._overlap,0!==this._overlap)?c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);var h=new c.Rectangle(a,b,1,1),i=[];this._potentials=this.quadTree.retrieve(h);for(var j=0,k=this._potentials.length;k>j;j++)this._potentials[j].hitTest(a,b)&&(e&&e.call(f,g,this._potentials[j].sprite),i.push(this._potentials[j].sprite));return i},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle +},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.phase=0,this.skipQuadTree=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Particles.Arcade={},c.Particles.Arcade.Emitter=function(a,b,d,e){this.maxParticles=e||50,c.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=c.EMITTER,this.area=new c.Rectangle(b,d,1,1),this.minParticleSpeed=new c.Point(-100,-100),this.maxParticleSpeed=new c.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=c.Particle,this.particleDrag=new c.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new c.Point,this.on=!1,this.particleAnchor=new c.Point(.5,.5),this.blendMode=c.blendModes.NORMAL,this.emitX=b,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new c.Point(1,1),this._maxParticleScale=new c.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},c.Particles.Arcade.Emitter.prototype=Object.create(c.Group.prototype),c.Particles.Arcade.Emitter.prototype.constructor=c.Particles.Arcade.Emitter,c.Particles.Arcade.Emitter.prototype.update=function(){this.on&&this.game.time.time>=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit())},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=c.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=c.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},c.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof b){if("string"!=typeof a)return null;if(b=a,!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===c.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+b+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(b)),this.tilesets[a];var i=new c.Tileset(b,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(b)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pl;l++)if(this.objects[a][l].gid===b){k=new i(this.game,this.objects[a][l].x,this.objects[a][l].y,d,e),k.name=this.objects[a][l].name,k.visible=this.objects[a][l].visible,k.autoCull=g,k.exists=f,j&&(k.y-=k.height),h.add(k);for(var n in this.objects[a][l].properties)h.set(k,n,this.objects[a][l].properties[n],!1,!1,0,!0)}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),"undefined"==typeof b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),"undefined"==typeof f&&(f=this.game.world),"undefined"==typeof g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;m>l;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;he;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d,e){if("undefined"==typeof c&&(c=!0),"undefined"==typeof e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=c[1].x-a,f=c[1].y-b,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,this.game=a,this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=c.Canvas.create(e,f,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),c.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=c.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new c.Point(0,0),this.renderSettings={enableScrollDelta:!0,overdrawRatio:.2},this.debug=!1,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[]},c.TilemapLayer.prototype=Object.create(c.Image.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,Object.defineProperty(c.TilemapLayer.prototype,"tileColor",{get:function(){return this.debugSettings.missingImageFill},set:function(a){this.debugSettings.missingImageFill=a}}),c.TilemapLayer.prototype.postUpdate=function(){c.Image.prototype.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX,this.scrollY=a.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(a.view.x+this.cameraOffset.x)/a.scale.x,this.position.y=(a.view.y+this.cameraOffset.y)/a.scale.y)},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=j;j+h>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0),a.save(),a.globalCompositeOperation="copy",a.drawImage(d,g,h,e,f,i,j,e,f),a.restore()},c.TilemapLayer.prototype.renderRegion=function(a,b,c,d,e,f){var g=this.context,h=this.layer.width,i=this.layer.height,j=this._mc.tileWidth,k=this._mc.tileHeight,l=this._mc.tilesets,m=0/0;this._wrap||(e>=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k++)i.push(a.layers[f].data[k]>0?new c.Tile(g,a.layers[f].data[k],h,j.length,a.tilewidth,a.tileheight):new c.Tile(g,-1,h,j.length,a.tilewidth,a.tileheight)),h++,h===a.layers[f].width&&(j.push(i),h=0,i=[]);g.data=j,e.push(g)}d.layers=e;for(var m=[],f=0;ft;t++)if(a.layers[f].objects[t].gid){var u={gid:a.layers[f].objects[t].gid,name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};r[a.layers[f].name].push(u)}else if(a.layers[f].objects[t].polyline){var u={name:a.layers[f].objects[t].name,type:a.layers[f].objects[t].type,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,width:a.layers[f].objects[t].width,height:a.layers[f].objects[t].height,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};u.polyline=[];for(var v=0;v=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.alpha * 255 << 24); + colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.worldAlpha * 255 << 24); // increment the batchsize this.sprites[this.currentBatchSize++] = sprite; @@ -12225,7 +12225,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Dec 03 2014 09:34:03 +* v2.2.1 "Danabar" - Built: Thu Dec 04 2014 11:31:00 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -12268,7 +12268,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) */ var Phaser = Phaser || { - VERSION: '2.2.0', + VERSION: '2.2.1', GAMES: [], AUTO: 0, @@ -26250,7 +26250,7 @@ Phaser.Game.prototype = { } else { - this.debug = { preUpdate: function () {}, update: function () {} }; + this.debug = { preUpdate: function () {}, update: function () {}, reset: function () {} }; } this.showDebugHeader(); @@ -48634,7 +48634,7 @@ Phaser.TweenManager.prototype = { { for (i = 0, len = this._tweens.length; i < len; i++) { - if (obj === this._tweens[i]._object) + if (obj === this._tweens[i].target) { this.remove(this._tweens[i]); } @@ -48642,7 +48642,7 @@ Phaser.TweenManager.prototype = { for (i = 0, len = this._add.length; i < len; i++) { - if (obj === this._add[i]._object) + if (obj === this._add[i].target) { this.remove(this._add[i]); } @@ -48757,7 +48757,7 @@ Phaser.TweenManager.prototype = { isTweening: function(object) { return this._tweens.some(function(tween) { - return tween._object === object; + return tween.target === object; }); }, @@ -52675,7 +52675,7 @@ Object.defineProperty(Phaser.AnimationManager.prototype, 'frame', { set: function (value) { - if (typeof value === 'number' && this._frameData.getFrame(value) !== null) + if (typeof value === 'number' && this._frameData && this._frameData.getFrame(value) !== null) { this.currentFrame = this._frameData.getFrame(value); diff --git a/build/custom/phaser-ninja-physics.min.js b/build/custom/phaser-ninja-physics.min.js index 8d102a2291..9f728ab06d 100644 --- a/build/custom/phaser-ninja-physics.min.js +++ b/build/custom/phaser-ninja-physics.min.js @@ -1,20 +1,20 @@ -/* Phaser (NJ) v2.2.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +/* Phaser (NJ) v2.2.1 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ (function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.0",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.dontSayHello=!1,b.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://www.pixijs.com/");b.dontSayHello=!0}},b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),a[0]instanceof b.Point){for(var c=[],d=0,e=a.length;e>d;d++)c.push(a[d].x,a[d].y);a=c}this.closed=!0,this.points=a},b.Polygon.prototype.clone=function(){var a=this.points.slice();return new b.Polygon(a)},b.Polygon.prototype.contains=function(a,b){for(var c=!1,d=this.points.length/2,e=0,f=d-1;d>e;f=e++){var g=this.points[2*e],h=this.points[2*e+1],i=this.points[2*f],j=this.points[2*f+1],k=h>b!=j>b&&(i-g)*(b-h)/(j-h)+g>a;k&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new b.Float32Array(9));var c=this.array;return a?(c[0]=this.a,c[1]=this.b,c[2]=0,c[3]=this.c,c[4]=this.d,c[5]=0,c[6]=this.tx,c[7]=this.ty,c[8]=1):(c[0]=this.a,c[1]=this.c,c[2]=this.tx,c[3]=this.b,c[4]=this.d,c[5]=this.ty,c[6]=0,c[7]=0,c[8]=1),c},b.Matrix.prototype.apply=function(a,c){return c=c||new b.Point,c.x=this.a*a.x+this.c*a.y+this.tx,c.y=this.b*a.x+this.d*a.y+this.ty,c},b.Matrix.prototype.applyInverse=function(a,c){c=c||new b.Point;var d=1/(this.a*this.d+this.c*-this.b);return c.x=this.d*d*a.x+-this.c*d*a.y+(this.ty*this.c-this.tx*this.d)*d,c.y=this.a*d*a.y+-this.b*d*a.x+(-this.ty*this.a+this.tx*this.b)*d,c},b.Matrix.prototype.translate=function(a,b){return this.tx+=a,this.ty+=b,this},b.Matrix.prototype.scale=function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},b.Matrix.prototype.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},b.Matrix.prototype.append=function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},b.Matrix.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},b.identityMatrix=new b.Matrix,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.RoundedRectangle=function(a,b,c,d,e){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0,this.radius=e||20},b.RoundedRectangle.prototype.clone=function(){return new b.RoundedRectangle(this.x,this.y,this.width,this.height,this.radius)},b.RoundedRectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.RoundedRectangle.prototype.constructor=b.RoundedRectangle,b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.transformCallback=null,this.transformCallbackContext=null,this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform=b.DisplayObjectContainer.prototype.updateTransform,b.DisplayObjectContainer.prototype.getBounds=function(){if(0===this.children.length)return b.EmptyRectangle;for(var a,c,d,e=1/0,f=1/0,g=-1/0,h=-1/0,i=!1,j=0,k=this.children.length;k>j;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a||b.Texture.emptyTexture,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.shader=null,this.texture.baseTexture.hasLoaded?this.onTextureUpdate():this.texture.on("update",this.onTextureUpdate.bind(this)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.b,k=h.c,l=h.d,m=h.tx,n=h.ty,o=-1/0,p=-1/0,q=1/0,r=1/0;if(0===j&&0===k)0>i&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)&&this.renderable){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(!(this.visible===!1||0===this.alpha||this.renderable===!1||this.texture.crop.width<=0||this.texture.crop.height<=0)){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a),this.texture.valid){var c=this.texture.baseTexture.resolution/a.resolution;a.context.globalAlpha=this.worldAlpha,a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var d=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,e=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;a.roundPixels?(a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution|0,this.worldTransform.ty*a.resolution|0),d=0|d,e=0|e):a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution,this.worldTransform.ty*a.resolution),16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)}for(var f=0,g=this.children.length;g>f;f++)this.children[f]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.prototype.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){this.displayObjectUpdateTransform()},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){if(this.visible&&!(this.alpha<=0)&&this.children.length){var b=a.context;b.globalAlpha=this.worldAlpha,this.displayObjectUpdateTransform();for(var c=this.worldTransform,d=!0,e=0;ei;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(c.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}c.descent=i-g,c.fontSize=c.ascent+c.descent,b.Text.fontPropertiesCache[a]=c}return c},b.Text.prototype.wordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},function(a){for(var b=0,c=["ms","moz","webkit","o"],d=0;d>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){return function(a){function b(){for(var d=arguments.length,f=new Array(d);d--;)f[d]=arguments[d];return f=e.concat(f),c.apply(this instanceof b?this:a,f)}var c=this,d=arguments.length-1,e=[];if(d>0)for(e.length=d;d--;)e[d]=arguments[d+1];if("function"!=typeof c)throw new TypeError;return b.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(c.prototype),b}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.EventTarget={call:function(a){a&&(a=a.prototype||a,b.EventTarget.mixin(a))},mixin:function(a){a.listeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?this._listeners[a].slice():[]},a.emit=a.dispatchEvent=function(a,c){if(this._listeners=this._listeners||{},"object"==typeof a&&(c=a,a=a.type),c&&c.__isEventObject===!0||(c=new b.Event(this,a,c)),this._listeners&&this._listeners[a]){var d,e=this._listeners[a].slice(0),f=e.length,g=e[0];for(d=0;f>d;g=e[++d])if(g.call(this,c),c.stoppedImmediate)return this;if(c.stopped)return this -}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{};var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)) -},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.anchor.x,i=a.anchor.y;if(b.trim){var j=b.trim;e=j.x-h*j.width,d=e+b.crop.width,g=j.y-i*j.height,f=g+b.crop.height}else d=b.frame.width*(1-h),e=b.frame.width*-h,f=b.frame.height*(1-i),g=b.frame.height*-i;var k=4*this.currentBatchSize*this.vertSize,l=b.baseTexture.resolution,m=a.worldTransform,n=m.a/l,o=m.b/l,p=m.c/l,q=m.d/l,r=m.tx,s=m.ty,t=this.colors,u=this.positions;this.renderSession.roundPixels?(u[k]=n*e+p*g+r|0,u[k+1]=q*g+o*e+s|0,u[k+5]=n*d+p*g+r|0,u[k+6]=q*g+o*d+s|0,u[k+10]=n*d+p*f+r|0,u[k+11]=q*f+o*d+s|0,u[k+15]=n*e+p*f+r|0,u[k+16]=q*f+o*e+s|0):(u[k]=n*e+p*g+r,u[k+1]=q*g+o*e+s,u[k+5]=n*d+p*g+r,u[k+6]=q*g+o*d+s,u[k+10]=n*d+p*f+r,u[k+11]=q*f+o*d+s,u[k+15]=n*e+p*f+r,u[k+16]=q*f+o*e+s),u[k+2]=c.x0,u[k+3]=c.y0,u[k+7]=c.x1,u[k+8]=c.y1,u[k+12]=c.x2,u[k+13]=c.y2,u[k+17]=c.x3,u[k+18]=c.y3;var v=a.tint;t[k+4]=t[k+9]=t[k+14]=t[k+19]=(v>>16)+(65280&v)+((255&v)<<16)+(255*a.alpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.tint,j=(i>>16)+(65280&i)+((255&i)<<16)+(255*a.alpha<<24),k=this.positions,l=this.colors,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=c.baseTexture.resolution,w=a.worldTransform,x=w.a/v,y=w.b/v,z=w.c/v,A=w.d/v,B=w.tx,C=w.ty;k[u++]=x*r+z*t+B,k[u++]=A*t+y*r+C,k[u++]=d.x0,k[u++]=d.y0,l[u++]=j,k[u++]=x*q+z*t+B,k[u++]=A*t+y*q+C,k[u++]=d.x1,k[u++]=d.y1,l[u++]=j,k[u++]=x*q+z*s+B,k[u++]=A*s+y*q+C,k[u++]=d.x2,k[u++]=d.y2,l[u++]=j,k[u++]=x*r+z*s+B,k[u++]=A*s+y*r+C,k[u++]=d.x3,k[u++]=d.y3,l[u++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath() -}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.b*g,f.c*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d||e.baseTexture.width!==c||e.baseTexture.height||d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x) +}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{};var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)) +},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.anchor.x,i=a.anchor.y;if(b.trim){var j=b.trim;e=j.x-h*j.width,d=e+b.crop.width,g=j.y-i*j.height,f=g+b.crop.height}else d=b.frame.width*(1-h),e=b.frame.width*-h,f=b.frame.height*(1-i),g=b.frame.height*-i;var k=4*this.currentBatchSize*this.vertSize,l=b.baseTexture.resolution,m=a.worldTransform,n=m.a/l,o=m.b/l,p=m.c/l,q=m.d/l,r=m.tx,s=m.ty,t=this.colors,u=this.positions;this.renderSession.roundPixels?(u[k]=n*e+p*g+r|0,u[k+1]=q*g+o*e+s|0,u[k+5]=n*d+p*g+r|0,u[k+6]=q*g+o*d+s|0,u[k+10]=n*d+p*f+r|0,u[k+11]=q*f+o*d+s|0,u[k+15]=n*e+p*f+r|0,u[k+16]=q*f+o*e+s|0):(u[k]=n*e+p*g+r,u[k+1]=q*g+o*e+s,u[k+5]=n*d+p*g+r,u[k+6]=q*g+o*d+s,u[k+10]=n*d+p*f+r,u[k+11]=q*f+o*d+s,u[k+15]=n*e+p*f+r,u[k+16]=q*f+o*e+s),u[k+2]=c.x0,u[k+3]=c.y0,u[k+7]=c.x1,u[k+8]=c.y1,u[k+12]=c.x2,u[k+13]=c.y2,u[k+17]=c.x3,u[k+18]=c.y3;var v=a.tint;t[k+4]=t[k+9]=t[k+14]=t[k+19]=(v>>16)+(65280&v)+((255&v)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.tint,j=(i>>16)+(65280&i)+((255&i)<<16)+(255*a.alpha<<24),k=this.positions,l=this.colors,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=c.baseTexture.resolution,w=a.worldTransform,x=w.a/v,y=w.b/v,z=w.c/v,A=w.d/v,B=w.tx,C=w.ty;k[u++]=x*r+z*t+B,k[u++]=A*t+y*r+C,k[u++]=d.x0,k[u++]=d.y0,l[u++]=j,k[u++]=x*q+z*t+B,k[u++]=A*t+y*q+C,k[u++]=d.x1,k[u++]=d.y1,l[u++]=j,k[u++]=x*q+z*s+B,k[u++]=A*s+y*q+C,k[u++]=d.x2,k[u++]=d.y2,l[u++]=j,k[u++]=x*r+z*s+B,k[u++]=A*s+y*r+C,k[u++]=d.x3,k[u++]=d.y3,l[u++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath() +}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.b*g,f.c*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d||e.baseTexture.width!==c||e.baseTexture.height||d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.1",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x) },c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Ellipse=function(a,b,d,e){this.type=c.ELLIPSE,a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},c.Ellipse.prototype.getBounds=function(){return new c.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=c.Ellipse,c.Polygon=function(){this.type=c.POLYGON,this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0},c.Polygon.prototype={clone:function(a){var b=this._points.slice();return"undefined"==typeof a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){for(var c=this._points.length,d=!1,e=-1,f=c-1;++e=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,d=0,e=a.length;e>d;d++){if("number"==typeof a[d]){var f=new c.Point(a[d],a[d+1]);d++}else var f=new c.Point(a[d].x,a[d].y);this._points.push(f),f.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),PIXI.Graphics.prototype.lineStyle=function(a,b,c){if(this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=arguments.length<3?1:c,this.currentPath){if(this.currentPath.shape.points.length)return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))),this;this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha}return this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f){var g,h=a+Math.cos(d)*c,i=b+Math.sin(d)*c;if(this.currentPath?(g=this.currentPath.shape.points,0===g.length?g.push(h,i):(g[g.length-2]!==h||g[g.length-1]!==i)&&g.push(h,i)):(this.moveTo(h,i),g=this.currentPath.shape.points),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var j=f?-1*(d-e):e-d,k=Math.abs(j)/(2*Math.PI)*40;if(0===j)return this;for(var l=j/(2*k),m=2*l,n=Math.cos(l),o=Math.sin(l),p=k-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);g.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){return a instanceof Array||(a=Array.prototype.slice.call(arguments)),this.drawShape(new PIXI.Polygon(a)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this},PIXI.Graphics.prototype.generateTexture=function(a,b){a=a||1;var c=this.getBounds(),d=new PIXI.CanvasBuffer(c.width*a,c.height*a),e=PIXI.Texture.fromCanvas(d.canvas,b);return e.baseTexture.resolution=a,d.context.scale(a,a),d.context.translate(-c.x,-c.y),PIXI.CanvasGraphics.renderGraphics(this,d.context),e},PIXI.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,c.tx*d,c.ty*d),PIXI.CanvasGraphics.renderGraphics(this,b);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(this.isMask)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;return x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._bounds},PIXI.Graphics.prototype.updateLocalBounds=function(){var a=1/0,b=-1/0,c=1/0,d=-1/0;if(this.graphicsData.length)for(var e,f,g,h,i,j,k=0;kg?g:a,b=g+i>b?g+i:b,c=c>h?h:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.CIRC)g=e.x,h=e.y,i=e.radius+n/2,j=e.radius+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.ELIP)g=e.x,h=e.y,i=e.width+n/2,j=e.height+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else{f=e.points;for(var o=0;og-n?g-n:a,b=g+n>b?g+n:b,c=c>h-n?h-n:c,d=h+n>d?h+n:d}}else a=0,b=0,c=0,d=0;var p=this.boundsPadding;this._localBounds.x=a-p,this._localBounds.width=b-a+2*p,this._localBounds.y=c-p,this._localBounds.height=d-c+2*p},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.Graphics.POLY=0,PIXI.Graphics.RECT=1,PIXI.Graphics.CIRC=2,PIXI.Graphics.ELIP=3,PIXI.Graphics.RREC=4,PIXI.Polygon.prototype.type=PIXI.Graphics.POLY,PIXI.Rectangle.prototype.type=PIXI.Graphics.RECT,PIXI.Circle.prototype.type=PIXI.Graphics.CIRC,PIXI.Ellipse.prototype.type=PIXI.Graphics.ELIP,PIXI.RoundedRectangle.prototype.type=PIXI.Graphics.RREC,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.screenView=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={preUpdate:function(){this.totalInView=0},follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},resize:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return(this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render)&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics },unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[])},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===c.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===c.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},c.StateManager.prototype.constructor=c.StateManager,c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e){var f,g=this._indexOfListener(a,d);if(-1!==g){if(f=this._bindings[g],f.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else f=new c.SignalBinding(this,a,b,d,e),this._addBinding(f);return this.memorize&&this._prevParams&&f.execute(this._prevParams),f},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;"undefined"==typeof b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){return this.validateListener(a,"add"),this._registerListener(a,!1,b,c)},addOnce:function(a,b,c){return this.validateListener(a,"addOnce"),this._registerListener(a,!0,b,c)},remove:function(a,b){this.validateListener(a,"remove");var c=this._indexOfListener(a,b);return-1!==c&&(this._bindings[c]._destroy(),this._bindings.splice(c,1)),a},removeAll:function(a){if("undefined"==typeof a&&(a=null),this._bindings){for(var b=this._bindings.length;b--;)a?this._bindings[b].context===a&&(this._bindings[b]._destroy(),this._bindings.splice(b,1)):this._bindings[b]._destroy();a||(this._bindings.length=0)}},getNumListeners:function(){return this._bindings?this._bindings.length:0},halt:function(){this._shouldPropagate=!1},dispatch:function(){if(this.active&&this._bindings){var a,b=Array.prototype.slice.call(arguments),c=this._bindings.length;if(this.memorize&&(this._prevParams=b),c){a=this._bindings.slice(),this._shouldPropagate=!0;do c--;while(a[c]&&this._shouldPropagate&&a[c].execute(b)!==!1)}}},forget:function(){this._prevParams&&(this._prevParams=null)},dispose:function(){this.removeAll(),this._bindings=null,this._prevParams&&(this._prevParams=null)},toString:function(){return"[Phaser.Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}},Object.defineProperty(c.Signal.prototype,"boundDispatch",{get:function(){var a=this;return this._boundDispatch||(this._boundDispatch=function(){return a.dispatch.apply(a,arguments)})}}),c.Signal.prototype.constructor=c.Signal,c.SignalBinding=function(a,b,c,d,e){this._listener=b,c&&(this._isOnce=!0),null!=d&&(this.context=d),this._signal=a,e&&(this._priority=e)},c.SignalBinding.prototype={context:null,_isOnce:!1,_priority:0,callCount:0,active:!0,params:null,execute:function(a){var b,c;return this.active&&this._listener&&(c=this.params?this.params.concat(a):a,b=this._listener.apply(this.context,c),this.callCount++,this._isOnce&&this.detach()),b},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal,delete this._listener,delete this.context},toString:function(){return"[Phaser.SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}},c.SignalBinding.prototype.constructor=c.SignalBinding,c.Filter=function(a,b,d){this.game=a,this.type=c.WEBGL_FILTER,this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.prevPoint=new c.Point;var e=new Date;if(this.uniforms={resolution:{type:"2f",value:{x:256,y:256}},time:{type:"1f",value:0},mouse:{type:"2f",value:{x:0,y:0}},date:{type:"4fv",value:[e.getFullYear(),e.getMonth(),e.getDate(),60*e.getHours()*60+60*e.getMinutes()+e.getSeconds()]},sampleRate:{type:"1f",value:44100},iChannel0:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel1:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel2:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel3:{type:"sampler2D",value:null,textureData:{repeat:!0}}},b)for(var f in b)this.uniforms[f]=b[f];this.fragmentSrc=d||[]},c.Filter.prototype={init:function(){},setResolution:function(a,b){this.uniforms.resolution.value.x=a,this.uniforms.resolution.value.y=b},update:function(a){if("undefined"!=typeof a){var b=a.x/this.game.width,c=1-a.y/this.game.height;(b!==this.prevPoint.x||c!==this.prevPoint.y)&&(this.uniforms.mouse.value.x=b.toFixed(2),this.uniforms.mouse.value.y=c.toFixed(2),this.prevPoint.set(b,c))}this.uniforms.time.value=this.game.time.totalElapsedSeconds()},destroy:function(){this.game=null}},c.Filter.prototype.constructor=c.Filter,Object.defineProperty(c.Filter.prototype,"width",{get:function(){return this.uniforms.resolution.value.x},set:function(a){this.uniforms.resolution.value.x=a}}),Object.defineProperty(c.Filter.prototype,"height",{get:function(){return this.uniforms.resolution.value.y},set:function(a){this.uniforms.resolution.value.y=a}}),c.Plugin=function(a,b){"undefined"==typeof b&&(b=null),this.game=a,this.parent=b,this.active=!1,this.visible=!1,this.hasPreUpdate=!1,this.hasUpdate=!1,this.hasPostUpdate=!1,this.hasRender=!1,this.hasPostRender=!1},c.Plugin.prototype={preUpdate:function(){},update:function(){},render:function(){},postRender:function(){},destroy:function(){this.game=null,this.parent=null,this.active=!1,this.visible=!1}},c.Plugin.prototype.constructor=c.Plugin,c.PluginManager=function(a){this.game=a,this.plugins=[],this._len=0,this._i=0},c.PluginManager.prototype={add:function(a){var b=Array.prototype.splice.call(arguments,1),c=!1;return"function"==typeof a?a=new a(this.game,this):(a.game=this.game,a.parent=this),"function"==typeof a.preUpdate&&(a.hasPreUpdate=!0,c=!0),"function"==typeof a.update&&(a.hasUpdate=!0,c=!0),"function"==typeof a.postUpdate&&(a.hasPostUpdate=!0,c=!0),"function"==typeof a.render&&(a.hasRender=!0,c=!0),"function"==typeof a.postRender&&(a.hasPostRender=!0,c=!0),c?((a.hasPreUpdate||a.hasUpdate||a.hasPostUpdate)&&(a.active=!0),(a.hasRender||a.hasPostRender)&&(a.visible=!0),this._len=this.plugins.push(a),"function"==typeof a.init&&a.init.apply(a,b),a):null},remove:function(a){for(this._i=this._len;this._i--;)if(this.plugins[this._i]===a)return a.destroy(),this.plugins.splice(this._i,1),void this._len--},removeAll:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].destroy();this.plugins.length=0,this._len=0},preUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPreUpdate&&this.plugins[this._i].preUpdate()},update:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasUpdate&&this.plugins[this._i].update()},postUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPostUpdate&&this.plugins[this._i].postUpdate()},render:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasRender&&this.plugins[this._i].render()},postRender:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasPostRender&&this.plugins[this._i].postRender()},destroy:function(){this.removeAll(),this.game=null}},c.PluginManager.prototype.constructor=c.PluginManager,c.Stage=function(a){this.game=a,PIXI.Stage.call(this,0),this.name="_stage_root",this.interactive=!1,this.disableVisibilityChange=!1,this.exists=!0,this.currentRenderOrderID=0,this._hiddenVar="hidden",this._backgroundColor=0,a.config&&this.parseConfig(a.config)},c.Stage.prototype=Object.create(PIXI.Stage.prototype),c.Stage.prototype.constructor=c.Stage,c.Stage.prototype.parseConfig=function(a){a.disableVisibilityChange&&(this.disableVisibilityChange=a.disableVisibilityChange),a.backgroundColor&&(this.backgroundColor=a.backgroundColor)},c.Stage.prototype.boot=function(){c.DOM.getOffset(this.game.canvas,this.offset);var a=this;this._onChange=function(b){return a.visibilityChange(b)},c.Canvas.setUserSelect(this.game.canvas,"none"),c.Canvas.setTouchAction(this.game.canvas,"none"),this.checkVisibility()},c.Stage.prototype.preUpdate=function(){this.currentRenderOrderID=0;for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return PIXI.scaleModes.DEFAULT===PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.DEFAULT=a?PIXI.scaleModes.LINEAR:PIXI.scaleModes.NEAREST}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",this.z=0,PIXI.DisplayObjectContainer.call(this),e?(this.game.stage.addChild(this),this.z=this.game.stage.children.length):b&&(b.addChild(this),this.z=b.children.length),this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup$dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup$dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){var c;if(arguments.length>2){c=[];for(var d=2;dd;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}var e;if(arguments.length>2){e=[];for(var f=2;ff;f++)g=this.callbackFromArray(this.children[f],a,c),b&&g?(h=this.callbackFromArray(this.children[f],b,d),g&&g.apply(h,e)):g&&g.apply(this.children[f],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=[];++dd;d++)(!c||c&&this.children[d].exists)&&a.call(b,this.children[d]);else{for(var f=[null],d=3;dd;d++)(!c||c&&this.children[d].exists)&&(f[0]=this.children[d],a.apply(b,f))}},c.Group.prototype.forEachExists=function(a,b){var d;if(arguments.length>2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g?(g[0]=this.children[i],e.apply(f,g)):e.call(f,this.children[i])),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:null},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setScreenSize=c.ScaleManager.prototype.updateLayout,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.lockRender=!1,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug?(this.debug=new c.Utils.Debug(this),this.debug.boot()):this.debug={preUpdate:function(){},update:function(){}},this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start())},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setScreenSize=c.ScaleManager.prototype.updateLayout,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.lockRender=!1,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug?(this.debug=new c.Utils.Debug(this),this.debug.boot()):this.debug={preUpdate:function(){},update:function(){},reset:function(){}},this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start())},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown$dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp$dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp$dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart$dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a},c.Events.prototype={destroy:function(){this._parent=null,this._onDestroy&&this._onDestroy.dispose(),this._onAddedToGroup&&this._onAddedToGroup.dispose(),this._onRemovedFromGroup&&this._onRemovedFromGroup.dispose(),this._onRemovedFromWorld&&this._onRemovedFromWorld.dispose(),this._onKilled&&this._onKilled.dispose(),this._onRevived&&this._onRevived.dispose(),this._onOutOfBounds&&this._onOutOfBounds.dispose(),this._onInputOver&&this._onInputOver.dispose(),this._onInputOut&&this._onInputOut.dispose(),this._onInputDown&&this._onInputDown.dispose(),this._onInputUp&&this._onInputUp.dispose(),this._onDragStart&&this._onDragStart.dispose(),this._onDragStop&&this._onDragStop.dispose(),this._onAnimationStart&&this._onAnimationStart.dispose(),this._onAnimationComplete&&this._onAnimationComplete.dispose(),this._onAnimationLoop&&this._onAnimationLoop.dispose()},onAddedToGroup:null,onRemovedFromGroup:null,onRemovedFromWorld:null,onDestroy:null,onKilled:null,onRevived:null,onOutOfBounds:null,onEnterBounds:null,onInputOver:null,onInputOut:null,onInputDown:null,onInputUp:null,onDragStart:null,onDragStop:null,onAnimationStart:null,onAnimationComplete:null,onAnimationLoop:null},c.Events.prototype.constructor=c.Events;for(var e in c.Events.prototype)if(c.Events.prototype.hasOwnProperty(e)&&0===e.indexOf("on")&&null===c.Events.prototype[e]){var f="this._"+e,g=e+"$dispatch";Object.defineProperty(c.Events.prototype,e,{get:new Function("return "+f+" || ("+f+" = new Phaser.Signal())")}),c.Events.prototype[g]=new Function("return "+f+" ? "+f+".dispatch.apply("+f+", arguments) : null")}c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f)) },text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof b||null===b)&&(b=!1),("undefined"==typeof d||null===d)&&(d=!1),a||b||d){"undefined"==typeof e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=c.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){"undefined"==typeof a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return"undefined"==typeof a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(("undefined"==typeof a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}return("undefined"==typeof b||null===b)&&(b=0),("undefined"==typeof d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),("undefined"==typeof g||null===g)&&(g=b),("undefined"==typeof h||null===h)&&(h=d),("undefined"==typeof i||null===i)&&(i=this._size.x),("undefined"==typeof j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),"undefined"==typeof q&&(q=null),"undefined"==typeof r&&(r=!1),this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y?void 0:(this._alpha.prev=this.context.globalAlpha,this.context.save(),this.context.globalAlpha=this._alpha.current,q&&(this.context.globalCompositeOperation=q),r&&(g|=0,h|=0),this.context.translate(g,h),this.context.scale(this._scale.x,this._scale.y),this.context.rotate(this._rotate),this.context.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),this.context.restore(),this.context.globalAlpha=this._alpha.prev,this.dirty=!0,this)},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},shadow:function(a,b,c,d){"undefined"==typeof a||null===a?this.context.shadowColor="rgba(0,0,0,0)":(this.context.shadowColor=a,this.context.shadowBlur=b||5,this.context.shadowOffsetX=c||10,this.context.shadowOffsetY=d||10)},alphaMask:function(a,b,c,d){return"undefined"==typeof d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),"undefined"==typeof c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},circle:function(a,b,c,d){return"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill(),this},textureLine:function(a,b,d){if("undefined"==typeof d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;return"no-repeat"===d&&e>b.width&&(e=b.width),this.context.fillStyle=this.context.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),this.context.save(),this.context.translate(this._pos.x,this._pos.y),this.context.rotate(a.angle),this.context.fillRect(0,0,e,b.height),this.context.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},blendReset:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceOver:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceIn:function(){return this.context.globalCompositeOperation="source-in",this},blendSourceOut:function(){return this.context.globalCompositeOperation="source-out",this},blendSourceAtop:function(){return this.context.globalCompositeOperation="source-atop",this},blendDestinationOver:function(){return this.context.globalCompositeOperation="destination-over",this},blendDestinationIn:function(){return this.context.globalCompositeOperation="destination-in",this},blendDestinationOut:function(){return this.context.globalCompositeOperation="destination-out",this},blendDestinationAtop:function(){return this.context.globalCompositeOperation="destination-atop",this},blendXor:function(){return this.context.globalCompositeOperation="xor",this},blendAdd:function(){return this.context.globalCompositeOperation="lighter",this},blendMultiply:function(){return this.context.globalCompositeOperation="multiply",this},blendScreen:function(){return this.context.globalCompositeOperation="screen",this},blendOverlay:function(){return this.context.globalCompositeOperation="overlay",this},blendDarken:function(){return this.context.globalCompositeOperation="darken",this},blendLighten:function(){return this.context.globalCompositeOperation="lighten",this},blendColorDodge:function(){return this.context.globalCompositeOperation="color-dodge",this},blendColorBurn:function(){return this.context.globalCompositeOperation="color-burn",this},blendHardLight:function(){return this.context.globalCompositeOperation="hard-light",this},blendSoftLight:function(){return this.context.globalCompositeOperation="soft-light",this},blendDifference:function(){return this.context.globalCompositeOperation="difference",this},blendExclusion:function(){return this.context.globalCompositeOperation="exclusion",this},blendHue:function(){return this.context.globalCompositeOperation="hue",this},blendSaturation:function(){return this.context.globalCompositeOperation="saturation",this},blendColor:function(){return this.context.globalCompositeOperation="color",this},blendLuminosity:function(){return this.context.globalCompositeOperation="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.SPRITE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this.scaleMin=null,this.scaleMax=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds$dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Sprite.prototype.update=function(){},c.Sprite.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Sprite.prototype.loadTexture=function(a,b,d){b=b||0,(d||"undefined"==typeof d)&&this.animations.stop(),this.key=a;var e=!0,f=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(e=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),e=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),e&&(this._frame=c.Rectangle.clone(this.texture.frame)),f||(this.smoothed=!1)},c.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Sprite.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived$dispatch(this),this},c.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this},c.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},c.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},c.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},c.Sprite.prototype.overlap=function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())},c.Sprite.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Sprite.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Sprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"inCamera",{get:function(){return this.autoCull||this.checkWorldBounds||(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y),this.game.world.camera.view.intersects(this._bounds)}}),Object.defineProperty(c.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(c.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(c.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(c.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(c.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(c.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=c.IMAGE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.alive=!0,this.autoCull=!1,this.input=null,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this._bounds.copyFrom(this.getBounds()),this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Image.prototype.update=function(){},c.Image.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Image.prototype.loadTexture=function(a,b){b=b||0,this.key=a;var d=!0,e=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),d&&(this._frame=c.Rectangle.clone(this.texture.frame)),e||(this.smoothed=!1)},c.Image.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Image.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Image.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Image.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y; var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived$dispatch(this),this},c.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this},c.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy(),this.animations&&this.animations.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},c.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Image.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Image.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Image.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},c.TileSprite.prototype.update=function(){},c.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},c.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},c.TileSprite.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty()},c.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.alive=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.TileSprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.ROPE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,this._frame=0,this._frameName="",this._scroll=new c.Point,PIXI.Rope.call(this,e,this.points),this.position.set(b,d),this.input=null,this.world=new c.Point(b,d),this.autoCull=!1,this.checkWorldBounds=!1,this.cameraOffset=new c.Point,this.body=null,this._cache=[0,0,0,0,1,0,1,0,0],this.loadTexture(e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Rope.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;(this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds&&(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds)?(this._cache[5]=0,this.events.onEnterBounds$dispatch(this)):0!==this._cache[5]||this.game.world.bounds.intersects(this._bounds)||(this._cache[5]=1,this.events.onOutOfBounds$dispatch(this))),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Rope.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},c.Rope.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.Rope.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Rope.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.Rope.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.Rope.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Rope.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.Rope.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.Rope.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Rope.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.Rope.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Rope.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;ka;a++)this.children[a].preUpdate();return!0},c.Text.prototype.update=function(){},c.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(!0),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Text.prototype.setShadow=function(a,b,c,d){"undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c="rgba(0, 0, 0, 1)"),"undefined"==typeof d&&(d=0),this.style.shadowOffsetX=a,this.style.shadowOffsetY=b,this.style.shadowColor=c,this.style.shadowBlur=d,this.dirty=!0},c.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},c.Text.prototype.updateText=function(){this.texture.baseTexture.resolution=this.resolution,this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=this.determineFontProperties(this.style.font),f=0;f0?this.updateLine(b[f],k,l):(this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(b[f],k,l),this.style.fill&&this.context.fillText(b[f],k,l));this.updateTexture()},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){"undefined"==typeof d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case c.RetroFont.ALIGN_LEFT:a=0;break;case c.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case c.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},c.RetroFont.prototype.pasteLine=function(a,b,d,e){for(var f=new c.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(b,d),this.render(this.stamp,f,!1),b+=this.characterWidth+e,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Particle=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},c.Particle.prototype=Object.create(c.Sprite.prototype),c.Particle.prototype.constructor=c.Particle,c.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},c.Particle.prototype.onEmit=function(){},c.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},c.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},c.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},c.Device=function(){this.deviceReadyAt=0,this.initialized=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.LITTLE_ENDIAN=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1},c.Device=new c.Device,c.Device.onInitialized=new c.Signal,c.Device.whenReady=function(a,b,c){var d=this._readyCheck;if(this.deviceReadyAt||!d)a.call(b,this);else if(d._monitor||c)d._queue=d._queue||[],d._queue.push([a,b]);else{d._monitor=d.bind(this),d._queue=d._queue||[],d._queue.push([a,b]);var e="undefined"!=typeof window.cordova,f=navigator.isCocoonJS;"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(d._monitor,0):e&&!f?document.addEventListener("deviceready",d._monitor,!1):(document.addEventListener("DOMContentLoaded",d._monitor,!1),window.addEventListener("load",d._monitor,!1))}},c.Device._readyCheck=function(){var a=this._readyCheck;if(document.body){if(!this.deviceReadyAt){this.deviceReadyAt=Date.now(),document.removeEventListener("deviceready",a._monitor),document.removeEventListener("DOMContentLoaded",a._monitor),window.removeEventListener("load",a._monitor),this._initialize(),this.initialized=!0,this.onInitialized.dispatch(this);for(var b;b=a._queue.shift();){var c=b[0],d=b[1];c.call(d,this)}this._readyCheck=null,this._initialize=null,this.onInitialized=null}}else window.setTimeout(a._monitor,20)},c.Device._initialize=function(){function a(){var a=navigator.userAgent;/Playstation Vita/.test(a)?k.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?k.kindle=!0:/Android/.test(a)?k.android=!0:/CrOS/.test(a)?k.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?k.iOS=!0:/Linux/.test(a)?k.linux=!0:/Mac OS/.test(a)?k.macOS=!0:/Windows/.test(a)&&(k.windows=!0,/Windows Phone/i.test(a)&&(k.windowsPhone=!0));var b=/Silk/.test(a);(k.windows||k.macOS||k.linux&&!b||k.chromeOS)&&(k.desktop=!0),(k.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(k.desktop=!1)}function b(){k.canvas=!!window.CanvasRenderingContext2D||k.cocoonJS;try{k.localStorage=!!localStorage.getItem}catch(a){k.localStorage=!1}k.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),k.fileSystem=!!window.requestFileSystem,k.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),k.webGL=null===k.webGL||k.webGL===!1?!1:!0,k.worker=!!window.Worker,k.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,k.quirksMode="CSS1Compat"===document.compatMode?!1:!0,k.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)}function c(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(k.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(k.mspointer=!0),k.cocoonJS||("onwheel"in window||k.ie&&"WheelEvent"in window?k.wheelEvent="wheel":"onmousewheel"in window?k.wheelEvent="mousewheel":k.firefox&&"MouseScrollEvent"in window&&(k.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var k=this;a(),f(),e(),j(),g(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"opus"==a&&this.opus?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return"undefined"==typeof b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.visualBounds:1===a.nodeType?this.getBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return document.documentElement.clientWidth},g=function(){return document.documentElement.clientHeight};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.Canvas={create:function(a,b,c){a=a||256,b=b||256;var d=document.createElement("canvas");return"string"==typeof c&&""!==c&&(d.id=c),d.width=a,d.height=b,d.style.display="block",d},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},getSmoothingEnabled:function(a){return a.imageSmoothingEnabled||a.mozImageSmoothingEnabled||a.oImageSmoothingEnabled||a.webkitImageSmoothingEnabled||a.msImageSmoothingEnabled},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style["image-rendering"]="pixelated",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.Canvas.getOffset=c.DOM.getOffset,c.Canvas.getAspectRatio=c.DOM.getAspectRatio,c.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},normalizeLatitude:function(a){return c.Math.clamp(a,-90,90)},normalizeLongitude:function(a){return c.Math.wrap(a,-180,180)},chanceRoll:function(a){return c.Utils.chanceRoll(a)},numberArray:function(a,b){return c.ArrayUtils.numberArray(a,b)},numberArrayStep:function(a,b,d){return c.ArrayUtils.numberArrayStep(a,b,d)},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,d){return c.Math.clamp(a,b,d)},randomSign:function(){return c.Utils.randomChoice(-1,1)},isOdd:function(a){return 1&a},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var l=Math.PI/180,m=180/Math.PI;c.Math.degToRad=function(a){return a*l},c.Math.radToDeg=function(a){return a*m},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d]._object&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d]._object&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b._object===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.repeatDelay=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if("undefined"==typeof a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this.onStart.dispatch(this.target,this),this},stop:function(a){return"undefined"==typeof a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},delay:function(a,b){if("undefined"==typeof b&&(b=0),-1===b)for(var c=0;c0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return"undefined"==typeof a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;"undefined"==typeof b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;this.vEnd[a]=[this.parent.properties[a]].concat(this.vEnd[a])}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(){if(!this.isRunning){if(!(this.game.time.time>=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var a in this.vEnd){var b=this.vStart[a],d=this.vEnd[a];this.parent.target[a]=Array.isArray(d)?this.interpolationFunction(d,this.value):b+(d-b)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time+this.delay,this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.physicsElapsed=1/this.desiredFps,this.physicsElapsedMS=1e3*this.physicsElapsed,this.advancedTiming&&(this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(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.game.paused){this.events.update(this.time);for(var c=0,d=this._timers.length;d>c;)this._timers[c].update(this.time)?c++:(this._timers.splice(c,1),d--)}},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.now,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){"undefined"==typeof b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if("undefined"==typeof a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames.length=0,this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a]},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0 -},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){"undefined"==typeof h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g,h){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name,this.uuid);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return"undefined"==typeof a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},c.FrameData.prototype.constructor=c.FrameData,Object.defineProperty(c.FrameData.prototype,"total",{get:function(){return this._frames.length}}),c.AnimationParser={spriteSheet:function(a,b,d,e,f,g,h){var i=a.cache.getImage(b);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new c.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[b],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,b,d){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var e,f=new c.FrameData,g=b.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new c.FrameData,r=b.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,b){if("undefined"==typeof b&&(b=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,b)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g=0&&(b=b.substr(0,b.indexOf("?"))),this.game.device.canPlayAudio(b))return a[c];return null},fileError:function(a){this._fileList[a].loaded=!0,this._fileList[a].error=!0,this.onFileError.dispatch(this._fileList[a].key,this._fileList[a]),console.warn("Phaser.Loader error loading file: "+this._fileList[a].key+" from URL "+this._fileList[a].url),this.nextFile(a,!1)},fileComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader fileComplete invalid index "+a);var b=this._fileList[a];b.loaded=!0;var d=!0;switch(b.type){case"image":this.game.cache.addImage(b.key,b.url,b.data);break;case"spritesheet":this.game.cache.addSpriteSheet(b.key,b.url,b.data,b.frameWidth,b.frameHeight,b.frameMax,b.margin,b.spacing);break;case"textureatlas":if(null==b.atlasURL)this.game.cache.addTextureAtlas(b.key,b.url,b.data,b.atlasData,b.format);else if(d=!1,b.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||b.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","jsonLoadComplete","dataLoadError");else{if(b.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+b.format);this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","xmlLoadComplete","dataLoadError")}break;case"bitmapfont":null==b.xmlURL?this.game.cache.addBitmapFont(b.key,b.url,b.data,b.xmlData,b.xSpacing,b.ySpacing):(d=!1,this.xhrLoad(this._fileIndex,this.baseURL+b.xmlURL,"text","xmlLoadComplete","dataLoadError"));break;case"audio":if(this.game.sound.usingWebAudio){if(b.data=this._xhr.response,this.game.cache.addSound(b.key,b.url,b.data,!0,!1),b.autoDecode){var e=this,f=b.key;this.game.cache.updateSound(f,"isDecoding",!0),this.game.sound.context.decodeAudioData(b.data,function(a){a&&(e.game.cache.decodedSound(f,a),e.game.sound.onSoundDecode.dispatch(f,e.game.cache.getSound(f)))})}}else b.data.removeEventListener("canplaythrough",c.GAMES[this.game.id].load.fileComplete),this.game.cache.addSound(b.key,b.url,b.data,!1,!0);break;case"text":b.data=this._xhr.responseText,this.game.cache.addText(b.key,b.url,b.data);break;case"physics":var g=JSON.parse(this._xhr.responseText);this.game.cache.addPhysicsData(b.key,b.url,g,b.format);break;case"script":b.data=document.createElement("script"),b.data.language="javascript",b.data.type="text/javascript",b.data.defer=!1,b.data.text=this._xhr.responseText,document.head.appendChild(b.data),b.callback&&(b.data=b.callback.call(b.callbackContext,b.key,this._xhr.responseText));break;case"binary":b.data=b.callback?b.callback.call(b.callbackContext,b.key,this._xhr.response):this._xhr.response,this.game.cache.addBinary(b.key,b.data)}d&&this.nextFile(a,!0)},jsonLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader jsonLoadComplete invalid index "+a);var b=this._fileList[a];if(this._ajax&&this._ajax.responseText)var c=JSON.parse(this._ajax.responseText);else var c=JSON.parse(this._xhr.responseText);b.loaded=!0,"tilemap"===b.type?this.game.cache.addTilemap(b.key,b.url,c,b.format):"json"===b.type?this.game.cache.addJSON(b.key,b.url,c):this.game.cache.addTextureAtlas(b.key,b.url,b.data,c,b.format),this.nextFile(a,!0)},csvLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader csvLoadComplete invalid index "+a);var b=this._fileList[a],c=this._xhr.responseText;b.loaded=!0,this.game.cache.addTilemap(b.key,b.url,c,b.format),this.nextFile(a,!0)},dataLoadError:function(a){var b=this._fileList[a];b.loaded=!0,b.error=!0,console.warn("Phaser.Loader dataLoadError: "+b.key),this.nextFile(a,!0)},xmlLoadComplete:function(a){""!==this._xhr.responseType&&"text"!==this._xhr.responseType&&(console.warn("Invalid XML Response Type",this._fileList[a]),console.warn(this._xhr));var b,c=this._xhr.responseText;try{if(window.DOMParser){var d=new DOMParser;b=d.parseFromString(c,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(c)}catch(e){b=void 0}if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw new Error("Phaser.Loader. Invalid XML given");var f=this._fileList[a];f.loaded=!0,"bitmapfont"===f.type?this.game.cache.addBitmapFont(f.key,f.url,f.data,b,f.xSpacing,f.ySpacing):"textureatlas"===f.type?this.game.cache.addTextureAtlas(f.key,f.url,f.data,b,f.format):"xml"===f.type&&this.game.cache.addXML(f.key,f.url,b),this.nextFile(a,!0)},nextFile:function(a,b){this.progressFloat+=this._progressChunk,this.progress=Math.round(this.progressFloat),this.progress>100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.updateCrop()),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this.isPlaying&&!this.allowMultiple&&(this.override||e)&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null===this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b){"undefined"==typeof b&&(b=!1),this.paused||(this.play("",0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if("undefined"==typeof a&&(a=1e3),"undefined"==typeof b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");var d=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0);d.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return("undefined"==typeof b||null===b)&&(b=c.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){"undefined"==typeof e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return j.color=c.Color.getColor(j.r,j.g,j.b),j.color32=c.Color.getColor32(j.a,j.r,j.g,j.b),c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){"undefined"==typeof a&&(a=.5),"undefined"==typeof b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){"undefined"==typeof f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=255),"undefined"==typeof d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D&&(null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset())},enable:function(a,b,d){"undefined"==typeof b&&(b=c.Physics.ARCADE),"undefined"==typeof d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d&&this.box2d.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.skipQuadTree=!0,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,b){"undefined"==typeof b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!0);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,g=a.length;g>f;f++)for(var h=0,i=b.length;i>h;h++)this.collideHandler(a[f],b[h],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!1);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,h=a.length;h>f;f++)for(var i=0,j=b.length;j>i;i++)this.collideHandler(a[f],b[i],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,d,e,f,g){return"undefined"!=typeof b||a.type!==c.GROUP&&a.type!==c.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==c.SPRITE||a.type==c.TILESPRITE?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideSpriteVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f):a.type==c.GROUP?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f):a.type==c.TILEMAPLAYER?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f):(b.type==c.GROUP||b.type==c.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,d,e,f):a.type==c.EMITTER&&(b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body)if(a.body.skipQuadTree||this.skipQuadTree)for(var g=0,h=b.children.length;h>g;g++)b.children[g]&&b.children[g].exists&&this.collideSpriteVsSprite(a,b.children[g],c,d,e,f);else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f-1>g;g++)for(var h=g+1;f>h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0,i=a.children.length;i>h;h++)a.children[h].exists&&(a.children[h].type===c.GROUP?this.collideGroupVsGroup(a.children[h],b,d,e,f,g):this.collideSpriteVsGroup(a.children[h],b,d,e,f,g))},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=this._overlap,b.overlapX=this._overlap,0!==this._overlap)?c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=this._overlap,b.overlapY=this._overlap,0!==this._overlap)?c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);var h=new c.Rectangle(a,b,1,1),i=[];this._potentials=this.quadTree.retrieve(h);for(var j=0,k=this._potentials.length;k>j;j++)this._potentials[j].hitTest(a,b)&&(e&&e.call(f,g,this._potentials[j].sprite),i.push(this._potentials[j].sprite));return i},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b) -},accelerationFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.phase=0,this.skipQuadTree=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Particles.Arcade={},c.Particles.Arcade.Emitter=function(a,b,d,e){this.maxParticles=e||50,c.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=c.EMITTER,this.area=new c.Rectangle(b,d,1,1),this.minParticleSpeed=new c.Point(-100,-100),this.maxParticleSpeed=new c.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=c.Particle,this.particleDrag=new c.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new c.Point,this.on=!1,this.particleAnchor=new c.Point(.5,.5),this.blendMode=c.blendModes.NORMAL,this.emitX=b,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new c.Point(1,1),this._maxParticleScale=new c.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},c.Particles.Arcade.Emitter.prototype=Object.create(c.Group.prototype),c.Particles.Arcade.Emitter.prototype.constructor=c.Particles.Arcade.Emitter,c.Particles.Arcade.Emitter.prototype.update=function(){this.on&&this.game.time.time>=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit())},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=c.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=c.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},c.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof b){if("string"!=typeof a)return null;if(b=a,!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===c.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+b+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(b)),this.tilesets[a];var i=new c.Tileset(b,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(b)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pl;l++)if(this.objects[a][l].gid===b){k=new i(this.game,this.objects[a][l].x,this.objects[a][l].y,d,e),k.name=this.objects[a][l].name,k.visible=this.objects[a][l].visible,k.autoCull=g,k.exists=f,j&&(k.y-=k.height),h.add(k);for(var n in this.objects[a][l].properties)h.set(k,n,this.objects[a][l].properties[n],!1,!1,0,!0)}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),"undefined"==typeof b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),"undefined"==typeof f&&(f=this.game.world),"undefined"==typeof g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;m>l;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;he;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d,e){if("undefined"==typeof c&&(c=!0),"undefined"==typeof e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=c[1].x-a,f=c[1].y-b,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,this.game=a,this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=c.Canvas.create(e,f,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),c.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=c.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new c.Point(0,0),this.renderSettings={enableScrollDelta:!0,overdrawRatio:.2},this.debug=!1,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[]},c.TilemapLayer.prototype=Object.create(c.Image.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,Object.defineProperty(c.TilemapLayer.prototype,"tileColor",{get:function(){return this.debugSettings.missingImageFill},set:function(a){this.debugSettings.missingImageFill=a}}),c.TilemapLayer.prototype.postUpdate=function(){c.Image.prototype.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX,this.scrollY=a.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(a.view.x+this.cameraOffset.x)/a.scale.x,this.position.y=(a.view.y+this.cameraOffset.y)/a.scale.y)},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=j;j+h>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0),a.save(),a.globalCompositeOperation="copy",a.drawImage(d,g,h,e,f,i,j,e,f),a.restore()},c.TilemapLayer.prototype.renderRegion=function(a,b,c,d,e,f){var g=this.context,h=this.layer.width,i=this.layer.height,j=this._mc.tileWidth,k=this._mc.tileHeight,l=this._mc.tilesets,m=0/0;this._wrap||(e>=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k++)i.push(a.layers[f].data[k]>0?new c.Tile(g,a.layers[f].data[k],h,j.length,a.tilewidth,a.tileheight):new c.Tile(g,-1,h,j.length,a.tilewidth,a.tileheight)),h++,h===a.layers[f].width&&(j.push(i),h=0,i=[]);g.data=j,e.push(g)}d.layers=e;for(var m=[],f=0;ft;t++)if(a.layers[f].objects[t].gid){var u={gid:a.layers[f].objects[t].gid,name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};r[a.layers[f].name].push(u)}else if(a.layers[f].objects[t].polyline){var u={name:a.layers[f].objects[t].name,type:a.layers[f].objects[t].type,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,width:a.layers[f].objects[t].width,height:a.layers[f].objects[t].height,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};u.polyline=[];for(var v=0;v=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a0&&this.enable(a[f],b,c,d,!0));else a instanceof Phaser.Group?this.enable(a.children,b,c,d,e):(this.enableBody(a,b,c,d),e&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,c,d,!0))},enableBody:function(a,b,c,d){a.hasOwnProperty("body")&&null===a.body&&(a.body=new Phaser.Physics.Ninja.Body(this,a,b,c,d),a.anchor.set(.5))},setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=[]},convertTilemap:function(a,b,c){b=a.getLayer(b),this.clearTilemapLayerBodies(a,b);for(var d=0,e=a.layers[b].height;e>d;d++)for(var f=0,g=a.layers[b].width;g>f;f++){var h=a.layers[b].data[d][f];if(h&&c.hasOwnProperty(h.index)){var i=new Phaser.Physics.Ninja.Body(this,null,3,c[h.index],0,h.worldX+h.centerX,h.worldY+h.centerY,h.width,h.height);a.layers[b].bodies.push(i)}}return a.layers[b].bodies},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,c,d,e,f){return"undefined"!=typeof b||a.type!==Phaser.GROUP&&a.type!==Phaser.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==Phaser.SPRITE||a.type==Phaser.TILESPRITE?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsSprite(a,b,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideSpriteVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,c,d,e):a.type==Phaser.GROUP?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsGroup(b,a,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideGroupVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,c,d,e):a.type==Phaser.TILEMAPLAYER?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,c,d,e):(b.type==Phaser.GROUP||b.type==Phaser.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,c,d,e):a.type==Phaser.EMITTER&&(b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsGroup(b,a,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideGroupVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,c,d,e)))):void this.collideGroupVsSelf(a,c,d,e,f)},collideSpriteVsSprite:function(a,b,c,d,e,f){this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++)},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length)for(var g=0,h=b.children.length;h>g;g++)b.children[g].exists&&b.children[g].body&&this.separate(a.body,b.children[g].body,d,e,f)&&(c&&c.call(e,a,b.children[g]),this._total++)},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f>g;g++)for(var h=g+1;f>=h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,c,d,e,f){if(0!==a.length&&0!==b.length)for(var g=0,h=a.children.length;h>g;g++)a.children[g].exists&&this.collideSpriteVsGroup(a.children[g],b,c,d,e,f)},separate:function(a,b){return a.type!==Phaser.Physics.NINJA||b.type!==Phaser.Physics.NINJA?!1:a.aabb&&b.aabb?a.aabb.collideAABBVsAABB(b.aabb):a.aabb&&b.tile?a.aabb.collideAABBVsTile(b.tile):a.tile&&b.aabb?b.aabb.collideAABBVsTile(a.tile):a.circle&&b.tile?a.circle.collideCircleVsTile(b.tile):a.tile&&b.circle?b.circle.collideCircleVsTile(a.tile):void 0}},Phaser.Physics.Ninja.Body=function(a,b,c,d,e,f,g,h,i){b=b||null,"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=16),this.sprite=b,this.game=a.game,this.type=Phaser.Physics.NINJA,this.system=a,this.aabb=null,this.tile=null,this.circle=null,this.shape=null,this.drag=1,this.friction=.05,this.gravityScale=1,this.bounce=.3,this.velocity=new Phaser.Point,this.facing=Phaser.NONE,this.immovable=!1,this.collideWorldBounds=!0,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.maxSpeed=8,b&&(f=b.x,g=b.y,h=b.width,i=b.height,0===b.anchor.x&&(f+=.5*b.width),0===b.anchor.y&&(g+=.5*b.height)),1===c?(this.aabb=new Phaser.Physics.Ninja.AABB(this,f,g,h,i),this.shape=this.aabb):2===c?(this.circle=new Phaser.Physics.Ninja.Circle(this,f,g,e),this.shape=this.circle):3===c&&(this.tile=new Phaser.Physics.Ninja.Tile(this,f,g,h,i,d),this.shape=this.tile)},Phaser.Physics.Ninja.Body.prototype={preUpdate:function(){this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.shape.integrate(),this.collideWorldBounds&&this.shape.collideWorldBounds()},postUpdate:function(){this.sprite&&(this.sprite.type===Phaser.TILESPRITE?(this.sprite.x=this.shape.pos.x-this.shape.xw,this.sprite.y=this.shape.pos.y-this.shape.yw):(this.sprite.x=this.shape.pos.x,this.sprite.y=this.shape.pos.y)),this.velocity.x<0?this.facing=Phaser.LEFT:this.velocity.x>0&&(this.facing=Phaser.RIGHT),this.velocity.y<0?this.facing=Phaser.UP:this.velocity.y>0&&(this.facing=Phaser.DOWN)},setZeroVelocity:function(){this.shape.oldpos.x=this.shape.pos.x,this.shape.oldpos.y=this.shape.pos.y},moveTo:function(a,b){var c=a*this.game.time.physicsElapsed,b=this.game.math.degToRad(b);this.shape.pos.x=this.shape.oldpos.x+c*Math.cos(b),this.shape.pos.y=this.shape.oldpos.y+c*Math.sin(b)},moveFrom:function(a,b){var c=-a*this.game.time.physicsElapsed,b=this.game.math.degToRad(b);this.shape.pos.x=this.shape.oldpos.x+c*Math.cos(b),this.shape.pos.y=this.shape.oldpos.y+c*Math.sin(b)},moveLeft:function(a){var b=-a*this.game.time.physicsElapsed;this.shape.pos.x=this.shape.oldpos.x+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.x-this.shape.oldpos.x+b))},moveRight:function(a){var b=a*this.game.time.physicsElapsed;this.shape.pos.x=this.shape.oldpos.x+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.x-this.shape.oldpos.x+b))},moveUp:function(a){var b=-a*this.game.time.physicsElapsed;this.shape.pos.y=this.shape.oldpos.y+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.y-this.shape.oldpos.y+b))},moveDown:function(a){var b=a*this.game.time.physicsElapsed;this.shape.pos.y=this.shape.oldpos.y+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.y-this.shape.oldpos.y+b))},reset:function(){this.velocity.set(0),this.shape.pos.x=this.sprite.x,this.shape.pos.y=this.sprite.y,this.shape.oldpos.copyFrom(this.shape.pos)},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.shape.pos.x-this.shape.oldpos.x},deltaY:function(){return this.shape.pos.y-this.shape.oldpos.y},destroy:function(){this.sprite=null,this.system=null,this.aabb=null,this.tile=null,this.circle=null,this.shape.destroy(),this.shape=null}},Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"x",{get:function(){return this.shape.pos.x},set:function(a){this.shape.pos.x=a}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"y",{get:function(){return this.shape.pos.y},set:function(a){this.shape.pos.y=a}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"width",{get:function(){return this.shape.width}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"height",{get:function(){return this.shape.height}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"bottom",{get:function(){return this.shape.pos.y+this.shape.yw}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"right",{get:function(){return this.shape.pos.x+this.shape.xw}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"speed",{get:function(){return Math.sqrt(this.shape.velocity.x*this.shape.velocity.x+this.shape.velocity.y*this.shape.velocity.y)}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"angle",{get:function(){return Math.atan2(this.shape.velocity.y,this.shape.velocity.x)}}),Phaser.Physics.Ninja.Body.render=function(a,b,c,d){c=c||"rgba(0,255,0,0.4)","undefined"==typeof d&&(d=!0),(b.aabb||b.circle)&&b.shape.render(a,b.game.camera.x,b.game.camera.y,c,d)},Phaser.Physics.Ninja.AABB=function(a,b,c,d,e){this.body=a,this.system=a.system,this.pos=new Phaser.Point(b,c),this.oldpos=new Phaser.Point(b,c),this.xw=Math.abs(d/2),this.yw=Math.abs(e/2),this.width=d,this.height=e,this.oH=0,this.oV=0,this.velocity=new Phaser.Point,this.aabbTileProjections={},this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_FULL]=this.projAABB_Full,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_45DEG]=this.projAABB_45Deg,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_CONCAVE]=this.projAABB_Concave,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_CONVEX]=this.projAABB_Convex,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_22DEGs]=this.projAABB_22DegS,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_22DEGb]=this.projAABB_22DegB,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_67DEGs]=this.projAABB_67DegS,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_67DEGb]=this.projAABB_67DegB,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_HALF]=this.projAABB_Half},Phaser.Physics.Ninja.AABB.prototype.constructor=Phaser.Physics.Ninja.AABB,Phaser.Physics.Ninja.AABB.COL_NONE=0,Phaser.Physics.Ninja.AABB.COL_AXIS=1,Phaser.Physics.Ninja.AABB.COL_OTHER=2,Phaser.Physics.Ninja.AABB.prototype={integrate:function(){var a=this.pos.x,b=this.pos.y;this.pos.x+=this.body.drag*this.pos.x-this.body.drag*this.oldpos.x,this.pos.y+=this.body.drag*this.pos.y-this.body.drag*this.oldpos.y+this.system.gravity*this.body.gravityScale,this.velocity.set(this.pos.x-a,this.pos.y-b),this.oldpos.set(a,b)},reportCollisionVsWorld:function(a,b,c,d){var e,f,g,h,i,j=this.pos,k=this.oldpos,l=j.x-k.x,m=j.y-k.y,n=l*c+m*d,o=n*c,p=n*d,q=l-o,r=m-p;0>n?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},reverse:function(){var a=this.pos.x-this.oldpos.x,b=this.pos.y-this.oldpos.y;this.oldpos.xthis.pos.x&&(this.oldpos.x=this.pos.x-a),this.oldpos.ythis.pos.y&&(this.oldpos.y=this.pos.y-b)},reportCollisionVsBody:function(a,b,c,d,e){var f=this.pos.x-this.oldpos.x,g=this.pos.y-this.oldpos.y,h=f*c+g*d;return this.body.immovable&&e.body.immovable?(a*=.5,b*=.5,this.pos.add(a,b),this.oldpos.set(this.pos.x,this.pos.y),e.pos.subtract(a,b),void e.oldpos.set(e.pos.x,e.pos.y)):void(this.body.immovable||e.body.immovable?this.body.immovable?e.body.immovable||(e.pos.subtract(a,b),0>h&&e.reverse()):(this.pos.subtract(a,b),0>h&&this.reverse()):(a*=.5,b*=.5,this.pos.add(a,b),e.pos.subtract(a,b),0>h&&(this.reverse(),e.reverse())))},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.xw);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.xw-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.yw);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.yw-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},collideAABBVsAABB:function(a){var b=this.pos,c=a,d=c.pos.x,e=c.pos.y,f=c.xw,g=c.yw,h=b.x-d,i=f+this.xw-Math.abs(h);if(i>0){var j=b.y-e,k=g+this.yw-Math.abs(j);if(k>0){k>i?0>h?(i*=-1,k=0):k=0:0>j?(i=0,k*=-1):i=0;var l=Math.sqrt(i*i+k*k);return this.reportCollisionVsBody(i,k,i/l,k/l,c),Phaser.Physics.Ninja.AABB.COL_AXIS}}return!1},collideAABBVsTile:function(a){var b=this.pos.x-a.pos.x,c=a.xw+this.xw-Math.abs(b);if(c>0){var d=this.pos.y-a.pos.y,e=a.yw+this.yw-Math.abs(d);if(e>0)return e>c?0>b?(c*=-1,e=0):e=0:0>d?(c=0,e*=-1):c=0,this.resolveTile(c,e,this,a)}return!1},resolveTile:function(a,b,c,d){return 0i){e*=-i,f*=-i;var j=Math.sqrt(e*e+f*f),k=Math.sqrt(a*a+b*b);return j>k?(c.reportCollisionVsWorld(a,b,a/k,b/k,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(e,f,d.signx,d.signy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_45Deg:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-d.pos.x,h=c.pos.y-f*c.yw-d.pos.y,i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_22DegS:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.y-f*c.yw,h=d.pos.y-g;if(h*f>0){var i=c.pos.x-e*c.xw-(d.pos.x+e*d.xw),j=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),k=d.sx,l=d.sy,m=i*k+j*l;if(0>m){k*=-m,l*=-m;var n=Math.sqrt(k*k+l*l),o=Math.sqrt(a*a+b*b),p=Math.abs(h);return n>o?o>p?(c.reportCollisionVsWorld(0,h,0,h/p,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(a,b,a/o,b/o,d),Phaser.Physics.Ninja.AABB.COL_AXIS):n>p?(c.reportCollisionVsWorld(0,h,0,h/p,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(k,l,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_22DegB:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y+f*d.yw),i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_67DegS:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw,h=d.pos.x-g;if(h*e>0){var i=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),j=c.pos.y-f*c.yw-(d.pos.y+f*d.yw),k=d.sx,l=d.sy,m=i*k+j*l;if(0>m){k*=-m,l*=-m;var n=Math.sqrt(k*k+l*l),o=Math.sqrt(a*a+b*b),p=Math.abs(h);return n>o?o>p?(c.reportCollisionVsWorld(h,0,h/p,0,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(a,b,a/o,b/o,d),Phaser.Physics.Ninja.AABB.COL_AXIS):n>p?(c.reportCollisionVsWorld(h,0,h/p,0,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(k,l,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_67DegB:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x+e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_Convex:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),i=Math.sqrt(g*g+h*h),j=2*d.xw,k=Math.sqrt(j*j+0),l=k-i;if(0>e*g||0>f*h){var m=Math.sqrt(a*a+b*b);return c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS}return l>0?(g/=i,h/=i,c.reportCollisionVsWorld(g*l,h*l,g,h,d),Phaser.Physics.Ninja.AABB.COL_OTHER):Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_Concave:function(a,b,c,d){var e=d.signx,f=d.signy,g=d.pos.x+e*d.xw-(c.pos.x-e*c.xw),h=d.pos.y+f*d.yw-(c.pos.y-f*c.yw),i=2*d.xw,j=Math.sqrt(i*i+0),k=Math.sqrt(g*g+h*h),l=k-j;if(l>0){var m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(g/=k,h/=k,c.reportCollisionVsWorld(g*l,h*l,g,h,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},destroy:function(){this.body=null,this.system=null},render:function(a,b,c,d,e){var f=this.pos.x-this.xw-b,g=this.pos.y-this.yw-c;e?(a.fillStyle=d,a.fillRect(f,g,this.width,this.height)):(a.strokeStyle=d,a.strokeRect(f,g,this.width,this.height))}},Phaser.Physics.Ninja.Tile=function(a,b,c,d,e,f){"undefined"==typeof f&&(f=Phaser.Physics.Ninja.Tile.EMPTY),this.body=a,this.system=a.system,this.id=f,this.type=Phaser.Physics.Ninja.Tile.TYPE_EMPTY,this.pos=new Phaser.Point(b,c),this.oldpos=new Phaser.Point(b,c),this.id>1&&this.id<30&&(e=d),this.xw=Math.abs(d/2),this.yw=Math.abs(e/2),this.width=d,this.height=e,this.velocity=new Phaser.Point,this.signx=0,this.signy=0,this.sx=0,this.sy=0,this.body.gravityScale=0,this.body.collideWorldBounds=!1,this.id>0&&this.setType(this.id)},Phaser.Physics.Ninja.Tile.prototype.constructor=Phaser.Physics.Ninja.Tile,Phaser.Physics.Ninja.Tile.prototype={integrate:function(){var a=this.pos.x,b=this.pos.y;this.pos.x+=this.body.drag*this.pos.x-this.body.drag*this.oldpos.x,this.pos.y+=this.body.drag*this.pos.y-this.body.drag*this.oldpos.y+this.system.gravity*this.body.gravityScale,this.velocity.set(this.pos.x-a,this.pos.y-b),this.oldpos.set(a,b)},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.xw);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.xw-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.yw);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.yw-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},reportCollisionVsWorld:function(a,b,c,d){var e,f,g,h,i,j=this.pos,k=this.oldpos,l=j.x-k.x,m=j.y-k.y,n=l*c+m*d,o=n*c,p=n*d,q=l-o,r=m-p;0>n?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},setType:function(a){return a===Phaser.Physics.Ninja.Tile.EMPTY?this.clear():(this.id=a,this.updateType()),this},clear:function(){this.id=Phaser.Physics.Ninja.Tile.EMPTY,this.updateType()},destroy:function(){this.body=null,this.system=null},updateType:function(){if(0===this.id)return this.type=Phaser.Physics.Ninja.Tile.TYPE_EMPTY,this.signx=0,this.signy=0,this.sx=0,this.sy=0,!0;if(this.idn?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.radius);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.radius-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.radius);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.radius-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},collideCircleVsTile:function(a){var b=this.pos,c=this.radius,d=a,e=d.pos.x,f=d.pos.y,g=d.xw,h=d.yw,i=b.x-e,j=g+c-Math.abs(i);if(j>0){var k=b.y-f,l=h+c-Math.abs(k);if(l>0)return this.oH=0,this.oV=0,-g>i?this.oH=-1:i>g&&(this.oH=1),-h>k?this.oV=-1:k>h&&(this.oV=1),this.resolveCircleTile(j,l,this.oH,this.oV,this,d)}},resolveCircleTile:function(a,b,c,d,e,f){return 0a){var g=e.pos.x-f.pos.x;return 0>g?(e.reportCollisionVsWorld(-a,0,-1,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(a,0,1,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS)}var h=e.pos.y-f.pos.y;return 0>h?(e.reportCollisionVsWorld(0,-b,0,-1,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(0,b,0,1,f),Phaser.Physics.Ninja.Circle.COL_AXIS)}return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS}if(0===d)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var i=f.pos.x+c*f.xw,j=f.pos.y+d*f.yw,g=e.pos.x-i,h=e.pos.y-j,k=Math.sqrt(g*g+h*h),l=e.radius-k;return l>0?(0===k?(g=c/Math.SQRT2,h=d/Math.SQRT2):(g/=k,h/=k),e.reportCollisionVsWorld(g*l,h*l,g,h,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_45Deg:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=f.sx,k=f.sy,l=e.pos.x-j*e.radius-f.pos.x,m=e.pos.y-k*e.radius-f.pos.y,n=l*j+m*k;if(0>n){j*=-n,k*=-n,b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1));var o=Math.sqrt(j*j+k*k);return o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.pos.x-(f.pos.x-h*f.xw),m=e.pos.y-(f.pos.y+d*f.yw),p=l*-k+m*j;if(p*h*i>0){var q=Math.sqrt(l*l+m*m),r=e.radius-q;if(r>0)return l/=q,m/=q,e.reportCollisionVsWorld(l*r,m*r,l,m,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var n=l*j+m*k,r=e.radius-Math.abs(n);if(r>0)return e.reportCollisionVsWorld(j*r,k*r,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.pos.x-(f.pos.x+c*f.xw),m=e.pos.y-(f.pos.y-i*f.yw),p=l*-k+m*j;if(0>p*h*i){var q=Math.sqrt(l*l+m*m),r=e.radius-q;if(r>0)return l/=q,m/=q,e.reportCollisionVsWorld(l*r,m*r,l,m,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var n=l*j+m*k,r=e.radius-Math.abs(n);if(r>0)return e.reportCollisionVsWorld(j*r,k*r,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(h*c+i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;var s=f.pos.x+c*f.xw,t=f.pos.y+d*f.yw,u=e.pos.x-s,v=e.pos.y-t,q=Math.sqrt(u*u+v*v),r=e.radius-q;if(r>0)return 0===q?(u=c/Math.SQRT2,v=d/Math.SQRT2):(u/=q,v/=q),e.reportCollisionVsWorld(u*r,v*r,u,v,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Concave:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c){if(0===d){var j=f.pos.x+h*f.xw-e.pos.x,k=f.pos.y+i*f.yw-e.pos.y,l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=n+e.radius-m;return o>0?(b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER)):Phaser.Physics.Ninja.Circle.COL_NONE}if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=f.pos.x-h*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=0,s=d):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=f.pos.x+c*f.xw,q=f.pos.y-i*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c,s=0):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{if(h*c+i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;var p=f.pos.x+c*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Convex:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(h*c+i*d>0){var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var p=f.pos.x+c*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Half:function(a,b,c,d,e,f){var g=f.signx,h=f.signy,i=c*g+d*h;if(i>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c)if(0===d){var j=e.radius,k=e.pos.x-g*j-f.pos.x,l=e.pos.y-h*j-f.pos.y,m=g,n=h,o=k*m+l*n;if(0>o){m*=-o,n*=-o;var p=Math.sqrt(m*m+n*n),q=Math.sqrt(a*a+b*b);return p>q?(e.reportCollisionVsWorld(a,b,a/q,b/q,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(m,n,f.signx,f.signy),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0!==i)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var r=e.pos.x-f.pos.x;if(0>r*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var s=e.pos.y-(f.pos.y+d*f.yw),t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=g/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0!==i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var s=e.pos.y-f.pos.y;if(0>s*h)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var r=e.pos.x-(f.pos.x+c*f.xw),t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=g/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var v=f.pos.x+c*f.xw,w=f.pos.y+d*f.yw,r=e.pos.x-v,s=e.pos.y-w,t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_22DegS:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c){if(0!==d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-(f.pos.x-h*f.xw),n=e.pos.y-f.pos.y,o=m*-k+n*j;if(o*h*i>0){var p=Math.sqrt(m*m+n*n),q=l-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{m-=l*j,n-=l*k;var r=m*j+n*k;if(0>r){j*=-r,k*=-r;var s=Math.sqrt(j*j+k*k);return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),s>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}}else if(0===d)if(0>h*c){var t=f.pos.x-h*f.xw,u=f.pos.y,v=e.pos.x-t,w=e.pos.y-u;if(0>w*i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x+c*f.xw),n=e.pos.y-(f.pos.y-i*f.yw),o=m*-k+n*j;if(0>o*h*i){var p=Math.sqrt(m*m+n*n),q=e.radius-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var r=m*j+n*k,q=e.radius-Math.abs(r);if(q>0)return e.reportCollisionVsWorld(j*q,k*q,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{var t=f.pos.x+c*f.xw,u=f.pos.y+d*f.yw,v=e.pos.x-t,w=e.pos.y-u,p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_22DegB:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x-h*f.xw),n=e.pos.y-k*l-(f.pos.y+i*f.yw),o=m*j+n*k;if(0>o){j*=-o,k*=-o;var p=Math.sqrt(j*j+k*k);return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),p>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x-h*f.xw),n=e.pos.y-(f.pos.y+i*f.yw),q=m*-k+n*j;if(q*h*i>0){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var m=e.pos.x-(f.pos.x+h*f.xw),n=e.pos.y-f.pos.y;if(0>n*i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,q=m*-k+n*j;if(0>q*h*i){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(h*c+i*d>0){var t=Math.sqrt(5),j=1*h/t,k=2*i/t,l=e.radius,m=e.pos.x-j*l-(f.pos.x-h*f.xw),n=e.pos.y-k*l-(f.pos.y+i*f.yw),o=m*j+n*k;return 0>o?(e.reportCollisionVsWorld(-j*o,-k*o,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE}var u=f.pos.x+c*f.xw,v=f.pos.y+d*f.yw,w=e.pos.x-u,x=e.pos.y-v,r=Math.sqrt(w*w+x*x),s=e.radius-r;if(s>0)return 0===r?(w=c/Math.SQRT2,x=d/Math.SQRT2):(w/=r,x/=r),e.reportCollisionVsWorld(w*s,x*s,w,x,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_67DegS:function(a,b,c,d,e,f){var g=f.signx,h=f.signy;if(g*c>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c)if(0===d){var i,j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-f.pos.x,n=e.pos.y-(f.pos.y-h*f.yw),o=m*-k+n*j;if(0>o*g*h){var p=Math.sqrt(m*m+n*n),q=l-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{m-=l*j,n-=l*k;var r=m*j+n*k;if(0>r){j*=-r,k*=-r;var s=Math.sqrt(j*j+k*k);return b>a?(i=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(i=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),s>i?(e.reportCollisionVsWorld(a,b,a/i,b/i,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}}else if(0>h*d){var t=f.pos.x,u=f.pos.y-h*f.yw,v=e.pos.x-t,w=e.pos.y-u;if(0>v*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x-g*f.xw),n=e.pos.y-(f.pos.y+d*f.yw),o=m*-k+n*j;if(o*g*h>0){var p=Math.sqrt(m*m+n*n),q=e.radius-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var r=m*j+n*k,q=e.radius-Math.abs(r);if(q>0)return e.reportCollisionVsWorld(j*q,k*q,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(0===d)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var t=f.pos.x+c*f.xw,u=f.pos.y+d*f.yw,v=e.pos.x-t,w=e.pos.y-u,p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_67DegB:function(a,b,c,d,e,f){var g=f.signx,h=f.signy;if(0===c)if(0===d){var i,j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x+g*f.xw),n=e.pos.y-k*l-(f.pos.y-h*f.yw),o=m*j+n*k;if(0>o){j*=-o,k*=-o;var p=Math.sqrt(j*j+k*k);return b>a?(i=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(i=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),p>i?(e.reportCollisionVsWorld(a,b,a/i,b/i,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>h*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var m=e.pos.x-f.pos.x,n=e.pos.y-(f.pos.y+h*f.yw);if(0>m*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,q=m*-k+n*j;if(q*g*h>0){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>g*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var t=Math.sqrt(5),j=2*g/t,k=1*h/t,m=e.pos.x-(f.pos.x+g*f.xw),n=e.pos.y-(f.pos.y-h*f.yw),q=m*-k+n*j;if(0>q*g*h){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(g*c+h*d>0){var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x+g*f.xw),n=e.pos.y-k*l-(f.pos.y-h*f.yw),o=m*j+n*k;return 0>o?(e.reportCollisionVsWorld(-j*o,-k*o,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE}var u=f.pos.x+c*f.xw,v=f.pos.y+d*f.yw,w=e.pos.x-u,x=e.pos.y-v,r=Math.sqrt(w*w+x*x),s=e.radius-r;if(s>0)return 0===r?(w=c/Math.SQRT2,x=d/Math.SQRT2):(w/=r,x/=r),e.reportCollisionVsWorld(w*s,x*s,w,x,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},destroy:function(){this.body=null,this.system=null},render:function(a,b,c,d,e){var f=this.pos.x-b,g=this.pos.y-c;a.beginPath(),a.arc(f,g,this.radius,0,2*Math.PI,!1),e?(a.fillStyle=d,a.fill()):(a.strokeStyle=d,a.stroke())}}; \ No newline at end of file +for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var l=Math.PI/180,m=180/Math.PI;c.Math.degToRad=function(a){return a*l},c.Math.radToDeg=function(a){return a*m},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.repeatDelay=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if("undefined"==typeof a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this.onStart.dispatch(this.target,this),this},stop:function(a){return"undefined"==typeof a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},delay:function(a,b){if("undefined"==typeof b&&(b=0),-1===b)for(var c=0;c0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return"undefined"==typeof a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;"undefined"==typeof b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;this.vEnd[a]=[this.parent.properties[a]].concat(this.vEnd[a])}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(){if(!this.isRunning){if(!(this.game.time.time>=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var a in this.vEnd){var b=this.vStart[a],d=this.vEnd[a];this.parent.target[a]=Array.isArray(d)?this.interpolationFunction(d,this.value):b+(d-b)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time+this.delay,this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.physicsElapsed=1/this.desiredFps,this.physicsElapsedMS=1e3*this.physicsElapsed,this.advancedTiming&&(this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(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.game.paused){this.events.update(this.time);for(var c=0,d=this._timers.length;d>c;)this._timers[c].update(this.time)?c++:(this._timers.splice(c,1),d--)}},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.now,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){"undefined"==typeof b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if("undefined"==typeof a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames.length=0,this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a]},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0 +},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){"undefined"==typeof h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g,h){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name,this.uuid);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return"undefined"==typeof a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},c.FrameData.prototype.constructor=c.FrameData,Object.defineProperty(c.FrameData.prototype,"total",{get:function(){return this._frames.length}}),c.AnimationParser={spriteSheet:function(a,b,d,e,f,g,h){var i=a.cache.getImage(b);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new c.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[b],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,b,d){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var e,f=new c.FrameData,g=b.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new c.FrameData,r=b.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,b){if("undefined"==typeof b&&(b=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,b)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g=0&&(b=b.substr(0,b.indexOf("?"))),this.game.device.canPlayAudio(b))return a[c];return null},fileError:function(a){this._fileList[a].loaded=!0,this._fileList[a].error=!0,this.onFileError.dispatch(this._fileList[a].key,this._fileList[a]),console.warn("Phaser.Loader error loading file: "+this._fileList[a].key+" from URL "+this._fileList[a].url),this.nextFile(a,!1)},fileComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader fileComplete invalid index "+a);var b=this._fileList[a];b.loaded=!0;var d=!0;switch(b.type){case"image":this.game.cache.addImage(b.key,b.url,b.data);break;case"spritesheet":this.game.cache.addSpriteSheet(b.key,b.url,b.data,b.frameWidth,b.frameHeight,b.frameMax,b.margin,b.spacing);break;case"textureatlas":if(null==b.atlasURL)this.game.cache.addTextureAtlas(b.key,b.url,b.data,b.atlasData,b.format);else if(d=!1,b.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||b.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","jsonLoadComplete","dataLoadError");else{if(b.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+b.format);this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","xmlLoadComplete","dataLoadError")}break;case"bitmapfont":null==b.xmlURL?this.game.cache.addBitmapFont(b.key,b.url,b.data,b.xmlData,b.xSpacing,b.ySpacing):(d=!1,this.xhrLoad(this._fileIndex,this.baseURL+b.xmlURL,"text","xmlLoadComplete","dataLoadError"));break;case"audio":if(this.game.sound.usingWebAudio){if(b.data=this._xhr.response,this.game.cache.addSound(b.key,b.url,b.data,!0,!1),b.autoDecode){var e=this,f=b.key;this.game.cache.updateSound(f,"isDecoding",!0),this.game.sound.context.decodeAudioData(b.data,function(a){a&&(e.game.cache.decodedSound(f,a),e.game.sound.onSoundDecode.dispatch(f,e.game.cache.getSound(f)))})}}else b.data.removeEventListener("canplaythrough",c.GAMES[this.game.id].load.fileComplete),this.game.cache.addSound(b.key,b.url,b.data,!1,!0);break;case"text":b.data=this._xhr.responseText,this.game.cache.addText(b.key,b.url,b.data);break;case"physics":var g=JSON.parse(this._xhr.responseText);this.game.cache.addPhysicsData(b.key,b.url,g,b.format);break;case"script":b.data=document.createElement("script"),b.data.language="javascript",b.data.type="text/javascript",b.data.defer=!1,b.data.text=this._xhr.responseText,document.head.appendChild(b.data),b.callback&&(b.data=b.callback.call(b.callbackContext,b.key,this._xhr.responseText));break;case"binary":b.data=b.callback?b.callback.call(b.callbackContext,b.key,this._xhr.response):this._xhr.response,this.game.cache.addBinary(b.key,b.data)}d&&this.nextFile(a,!0)},jsonLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader jsonLoadComplete invalid index "+a);var b=this._fileList[a];if(this._ajax&&this._ajax.responseText)var c=JSON.parse(this._ajax.responseText);else var c=JSON.parse(this._xhr.responseText);b.loaded=!0,"tilemap"===b.type?this.game.cache.addTilemap(b.key,b.url,c,b.format):"json"===b.type?this.game.cache.addJSON(b.key,b.url,c):this.game.cache.addTextureAtlas(b.key,b.url,b.data,c,b.format),this.nextFile(a,!0)},csvLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader csvLoadComplete invalid index "+a);var b=this._fileList[a],c=this._xhr.responseText;b.loaded=!0,this.game.cache.addTilemap(b.key,b.url,c,b.format),this.nextFile(a,!0)},dataLoadError:function(a){var b=this._fileList[a];b.loaded=!0,b.error=!0,console.warn("Phaser.Loader dataLoadError: "+b.key),this.nextFile(a,!0)},xmlLoadComplete:function(a){""!==this._xhr.responseType&&"text"!==this._xhr.responseType&&(console.warn("Invalid XML Response Type",this._fileList[a]),console.warn(this._xhr));var b,c=this._xhr.responseText;try{if(window.DOMParser){var d=new DOMParser;b=d.parseFromString(c,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(c)}catch(e){b=void 0}if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw new Error("Phaser.Loader. Invalid XML given");var f=this._fileList[a];f.loaded=!0,"bitmapfont"===f.type?this.game.cache.addBitmapFont(f.key,f.url,f.data,b,f.xSpacing,f.ySpacing):"textureatlas"===f.type?this.game.cache.addTextureAtlas(f.key,f.url,f.data,b,f.format):"xml"===f.type&&this.game.cache.addXML(f.key,f.url,b),this.nextFile(a,!0)},nextFile:function(a,b){this.progressFloat+=this._progressChunk,this.progress=Math.round(this.progressFloat),this.progress>100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.updateCrop()),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this.isPlaying&&!this.allowMultiple&&(this.override||e)&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null===this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b){"undefined"==typeof b&&(b=!1),this.paused||(this.play("",0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if("undefined"==typeof a&&(a=1e3),"undefined"==typeof b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");var d=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0);d.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d); +return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return("undefined"==typeof b||null===b)&&(b=c.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){"undefined"==typeof e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return j.color=c.Color.getColor(j.r,j.g,j.b),j.color32=c.Color.getColor32(j.a,j.r,j.g,j.b),c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){"undefined"==typeof a&&(a=.5),"undefined"==typeof b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){"undefined"==typeof f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=255),"undefined"==typeof d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D&&(null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset())},enable:function(a,b,d){"undefined"==typeof b&&(b=c.Physics.ARCADE),"undefined"==typeof d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d&&this.box2d.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.skipQuadTree=!0,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,b){"undefined"==typeof b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!0);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,g=a.length;g>f;f++)for(var h=0,i=b.length;i>h;h++)this.collideHandler(a[f],b[h],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!1);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,h=a.length;h>f;f++)for(var i=0,j=b.length;j>i;i++)this.collideHandler(a[f],b[i],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,d,e,f,g){return"undefined"!=typeof b||a.type!==c.GROUP&&a.type!==c.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==c.SPRITE||a.type==c.TILESPRITE?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideSpriteVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f):a.type==c.GROUP?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f):a.type==c.TILEMAPLAYER?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f):(b.type==c.GROUP||b.type==c.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,d,e,f):a.type==c.EMITTER&&(b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body)if(a.body.skipQuadTree||this.skipQuadTree)for(var g=0,h=b.children.length;h>g;g++)b.children[g]&&b.children[g].exists&&this.collideSpriteVsSprite(a,b.children[g],c,d,e,f);else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f-1>g;g++)for(var h=g+1;f>h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0,i=a.children.length;i>h;h++)a.children[h].exists&&(a.children[h].type===c.GROUP?this.collideGroupVsGroup(a.children[h],b,d,e,f,g):this.collideSpriteVsGroup(a.children[h],b,d,e,f,g))},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=this._overlap,b.overlapX=this._overlap,0!==this._overlap)?c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=this._overlap,b.overlapY=this._overlap,0!==this._overlap)?c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);var h=new c.Rectangle(a,b,1,1),i=[];this._potentials=this.quadTree.retrieve(h);for(var j=0,k=this._potentials.length;k>j;j++)this._potentials[j].hitTest(a,b)&&(e&&e.call(f,g,this._potentials[j].sprite),i.push(this._potentials[j].sprite));return i},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle +},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.phase=0,this.skipQuadTree=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Particles.Arcade={},c.Particles.Arcade.Emitter=function(a,b,d,e){this.maxParticles=e||50,c.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=c.EMITTER,this.area=new c.Rectangle(b,d,1,1),this.minParticleSpeed=new c.Point(-100,-100),this.maxParticleSpeed=new c.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=c.Particle,this.particleDrag=new c.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new c.Point,this.on=!1,this.particleAnchor=new c.Point(.5,.5),this.blendMode=c.blendModes.NORMAL,this.emitX=b,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new c.Point(1,1),this._maxParticleScale=new c.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},c.Particles.Arcade.Emitter.prototype=Object.create(c.Group.prototype),c.Particles.Arcade.Emitter.prototype.constructor=c.Particles.Arcade.Emitter,c.Particles.Arcade.Emitter.prototype.update=function(){this.on&&this.game.time.time>=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit())},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=c.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=c.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},c.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof b){if("string"!=typeof a)return null;if(b=a,!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===c.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+b+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(b)),this.tilesets[a];var i=new c.Tileset(b,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(b)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pl;l++)if(this.objects[a][l].gid===b){k=new i(this.game,this.objects[a][l].x,this.objects[a][l].y,d,e),k.name=this.objects[a][l].name,k.visible=this.objects[a][l].visible,k.autoCull=g,k.exists=f,j&&(k.y-=k.height),h.add(k);for(var n in this.objects[a][l].properties)h.set(k,n,this.objects[a][l].properties[n],!1,!1,0,!0)}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),"undefined"==typeof b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),"undefined"==typeof f&&(f=this.game.world),"undefined"==typeof g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;m>l;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;he;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d,e){if("undefined"==typeof c&&(c=!0),"undefined"==typeof e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=c[1].x-a,f=c[1].y-b,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,this.game=a,this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=c.Canvas.create(e,f,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),c.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=c.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new c.Point(0,0),this.renderSettings={enableScrollDelta:!0,overdrawRatio:.2},this.debug=!1,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[]},c.TilemapLayer.prototype=Object.create(c.Image.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,Object.defineProperty(c.TilemapLayer.prototype,"tileColor",{get:function(){return this.debugSettings.missingImageFill},set:function(a){this.debugSettings.missingImageFill=a}}),c.TilemapLayer.prototype.postUpdate=function(){c.Image.prototype.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX,this.scrollY=a.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(a.view.x+this.cameraOffset.x)/a.scale.x,this.position.y=(a.view.y+this.cameraOffset.y)/a.scale.y)},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=j;j+h>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0),a.save(),a.globalCompositeOperation="copy",a.drawImage(d,g,h,e,f,i,j,e,f),a.restore()},c.TilemapLayer.prototype.renderRegion=function(a,b,c,d,e,f){var g=this.context,h=this.layer.width,i=this.layer.height,j=this._mc.tileWidth,k=this._mc.tileHeight,l=this._mc.tilesets,m=0/0;this._wrap||(e>=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k++)i.push(a.layers[f].data[k]>0?new c.Tile(g,a.layers[f].data[k],h,j.length,a.tilewidth,a.tileheight):new c.Tile(g,-1,h,j.length,a.tilewidth,a.tileheight)),h++,h===a.layers[f].width&&(j.push(i),h=0,i=[]);g.data=j,e.push(g)}d.layers=e;for(var m=[],f=0;ft;t++)if(a.layers[f].objects[t].gid){var u={gid:a.layers[f].objects[t].gid,name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};r[a.layers[f].name].push(u)}else if(a.layers[f].objects[t].polyline){var u={name:a.layers[f].objects[t].name,type:a.layers[f].objects[t].type,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,width:a.layers[f].objects[t].width,height:a.layers[f].objects[t].height,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};u.polyline=[];for(var v=0;v=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a0&&this.enable(a[f],b,c,d,!0));else a instanceof Phaser.Group?this.enable(a.children,b,c,d,e):(this.enableBody(a,b,c,d),e&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,c,d,!0))},enableBody:function(a,b,c,d){a.hasOwnProperty("body")&&null===a.body&&(a.body=new Phaser.Physics.Ninja.Body(this,a,b,c,d),a.anchor.set(.5))},setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=[]},convertTilemap:function(a,b,c){b=a.getLayer(b),this.clearTilemapLayerBodies(a,b);for(var d=0,e=a.layers[b].height;e>d;d++)for(var f=0,g=a.layers[b].width;g>f;f++){var h=a.layers[b].data[d][f];if(h&&c.hasOwnProperty(h.index)){var i=new Phaser.Physics.Ninja.Body(this,null,3,c[h.index],0,h.worldX+h.centerX,h.worldY+h.centerY,h.width,h.height);a.layers[b].bodies.push(i)}}return a.layers[b].bodies},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,c,d,e,f){return"undefined"!=typeof b||a.type!==Phaser.GROUP&&a.type!==Phaser.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==Phaser.SPRITE||a.type==Phaser.TILESPRITE?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsSprite(a,b,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideSpriteVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,c,d,e):a.type==Phaser.GROUP?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsGroup(b,a,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideGroupVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,c,d,e):a.type==Phaser.TILEMAPLAYER?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,c,d,e):(b.type==Phaser.GROUP||b.type==Phaser.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,c,d,e):a.type==Phaser.EMITTER&&(b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsGroup(b,a,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideGroupVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,c,d,e)))):void this.collideGroupVsSelf(a,c,d,e,f)},collideSpriteVsSprite:function(a,b,c,d,e,f){this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++)},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length)for(var g=0,h=b.children.length;h>g;g++)b.children[g].exists&&b.children[g].body&&this.separate(a.body,b.children[g].body,d,e,f)&&(c&&c.call(e,a,b.children[g]),this._total++)},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f>g;g++)for(var h=g+1;f>=h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,c,d,e,f){if(0!==a.length&&0!==b.length)for(var g=0,h=a.children.length;h>g;g++)a.children[g].exists&&this.collideSpriteVsGroup(a.children[g],b,c,d,e,f)},separate:function(a,b){return a.type!==Phaser.Physics.NINJA||b.type!==Phaser.Physics.NINJA?!1:a.aabb&&b.aabb?a.aabb.collideAABBVsAABB(b.aabb):a.aabb&&b.tile?a.aabb.collideAABBVsTile(b.tile):a.tile&&b.aabb?b.aabb.collideAABBVsTile(a.tile):a.circle&&b.tile?a.circle.collideCircleVsTile(b.tile):a.tile&&b.circle?b.circle.collideCircleVsTile(a.tile):void 0}},Phaser.Physics.Ninja.Body=function(a,b,c,d,e,f,g,h,i){b=b||null,"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=16),this.sprite=b,this.game=a.game,this.type=Phaser.Physics.NINJA,this.system=a,this.aabb=null,this.tile=null,this.circle=null,this.shape=null,this.drag=1,this.friction=.05,this.gravityScale=1,this.bounce=.3,this.velocity=new Phaser.Point,this.facing=Phaser.NONE,this.immovable=!1,this.collideWorldBounds=!0,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.maxSpeed=8,b&&(f=b.x,g=b.y,h=b.width,i=b.height,0===b.anchor.x&&(f+=.5*b.width),0===b.anchor.y&&(g+=.5*b.height)),1===c?(this.aabb=new Phaser.Physics.Ninja.AABB(this,f,g,h,i),this.shape=this.aabb):2===c?(this.circle=new Phaser.Physics.Ninja.Circle(this,f,g,e),this.shape=this.circle):3===c&&(this.tile=new Phaser.Physics.Ninja.Tile(this,f,g,h,i,d),this.shape=this.tile)},Phaser.Physics.Ninja.Body.prototype={preUpdate:function(){this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.shape.integrate(),this.collideWorldBounds&&this.shape.collideWorldBounds()},postUpdate:function(){this.sprite&&(this.sprite.type===Phaser.TILESPRITE?(this.sprite.x=this.shape.pos.x-this.shape.xw,this.sprite.y=this.shape.pos.y-this.shape.yw):(this.sprite.x=this.shape.pos.x,this.sprite.y=this.shape.pos.y)),this.velocity.x<0?this.facing=Phaser.LEFT:this.velocity.x>0&&(this.facing=Phaser.RIGHT),this.velocity.y<0?this.facing=Phaser.UP:this.velocity.y>0&&(this.facing=Phaser.DOWN)},setZeroVelocity:function(){this.shape.oldpos.x=this.shape.pos.x,this.shape.oldpos.y=this.shape.pos.y},moveTo:function(a,b){var c=a*this.game.time.physicsElapsed,b=this.game.math.degToRad(b);this.shape.pos.x=this.shape.oldpos.x+c*Math.cos(b),this.shape.pos.y=this.shape.oldpos.y+c*Math.sin(b)},moveFrom:function(a,b){var c=-a*this.game.time.physicsElapsed,b=this.game.math.degToRad(b);this.shape.pos.x=this.shape.oldpos.x+c*Math.cos(b),this.shape.pos.y=this.shape.oldpos.y+c*Math.sin(b)},moveLeft:function(a){var b=-a*this.game.time.physicsElapsed;this.shape.pos.x=this.shape.oldpos.x+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.x-this.shape.oldpos.x+b))},moveRight:function(a){var b=a*this.game.time.physicsElapsed;this.shape.pos.x=this.shape.oldpos.x+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.x-this.shape.oldpos.x+b))},moveUp:function(a){var b=-a*this.game.time.physicsElapsed;this.shape.pos.y=this.shape.oldpos.y+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.y-this.shape.oldpos.y+b))},moveDown:function(a){var b=a*this.game.time.physicsElapsed;this.shape.pos.y=this.shape.oldpos.y+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.y-this.shape.oldpos.y+b))},reset:function(){this.velocity.set(0),this.shape.pos.x=this.sprite.x,this.shape.pos.y=this.sprite.y,this.shape.oldpos.copyFrom(this.shape.pos)},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.shape.pos.x-this.shape.oldpos.x},deltaY:function(){return this.shape.pos.y-this.shape.oldpos.y},destroy:function(){this.sprite=null,this.system=null,this.aabb=null,this.tile=null,this.circle=null,this.shape.destroy(),this.shape=null}},Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"x",{get:function(){return this.shape.pos.x},set:function(a){this.shape.pos.x=a}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"y",{get:function(){return this.shape.pos.y},set:function(a){this.shape.pos.y=a}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"width",{get:function(){return this.shape.width}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"height",{get:function(){return this.shape.height}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"bottom",{get:function(){return this.shape.pos.y+this.shape.yw}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"right",{get:function(){return this.shape.pos.x+this.shape.xw}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"speed",{get:function(){return Math.sqrt(this.shape.velocity.x*this.shape.velocity.x+this.shape.velocity.y*this.shape.velocity.y)}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"angle",{get:function(){return Math.atan2(this.shape.velocity.y,this.shape.velocity.x)}}),Phaser.Physics.Ninja.Body.render=function(a,b,c,d){c=c||"rgba(0,255,0,0.4)","undefined"==typeof d&&(d=!0),(b.aabb||b.circle)&&b.shape.render(a,b.game.camera.x,b.game.camera.y,c,d)},Phaser.Physics.Ninja.AABB=function(a,b,c,d,e){this.body=a,this.system=a.system,this.pos=new Phaser.Point(b,c),this.oldpos=new Phaser.Point(b,c),this.xw=Math.abs(d/2),this.yw=Math.abs(e/2),this.width=d,this.height=e,this.oH=0,this.oV=0,this.velocity=new Phaser.Point,this.aabbTileProjections={},this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_FULL]=this.projAABB_Full,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_45DEG]=this.projAABB_45Deg,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_CONCAVE]=this.projAABB_Concave,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_CONVEX]=this.projAABB_Convex,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_22DEGs]=this.projAABB_22DegS,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_22DEGb]=this.projAABB_22DegB,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_67DEGs]=this.projAABB_67DegS,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_67DEGb]=this.projAABB_67DegB,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_HALF]=this.projAABB_Half},Phaser.Physics.Ninja.AABB.prototype.constructor=Phaser.Physics.Ninja.AABB,Phaser.Physics.Ninja.AABB.COL_NONE=0,Phaser.Physics.Ninja.AABB.COL_AXIS=1,Phaser.Physics.Ninja.AABB.COL_OTHER=2,Phaser.Physics.Ninja.AABB.prototype={integrate:function(){var a=this.pos.x,b=this.pos.y;this.pos.x+=this.body.drag*this.pos.x-this.body.drag*this.oldpos.x,this.pos.y+=this.body.drag*this.pos.y-this.body.drag*this.oldpos.y+this.system.gravity*this.body.gravityScale,this.velocity.set(this.pos.x-a,this.pos.y-b),this.oldpos.set(a,b)},reportCollisionVsWorld:function(a,b,c,d){var e,f,g,h,i,j=this.pos,k=this.oldpos,l=j.x-k.x,m=j.y-k.y,n=l*c+m*d,o=n*c,p=n*d,q=l-o,r=m-p;0>n?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},reverse:function(){var a=this.pos.x-this.oldpos.x,b=this.pos.y-this.oldpos.y;this.oldpos.xthis.pos.x&&(this.oldpos.x=this.pos.x-a),this.oldpos.ythis.pos.y&&(this.oldpos.y=this.pos.y-b)},reportCollisionVsBody:function(a,b,c,d,e){var f=this.pos.x-this.oldpos.x,g=this.pos.y-this.oldpos.y,h=f*c+g*d;return this.body.immovable&&e.body.immovable?(a*=.5,b*=.5,this.pos.add(a,b),this.oldpos.set(this.pos.x,this.pos.y),e.pos.subtract(a,b),void e.oldpos.set(e.pos.x,e.pos.y)):void(this.body.immovable||e.body.immovable?this.body.immovable?e.body.immovable||(e.pos.subtract(a,b),0>h&&e.reverse()):(this.pos.subtract(a,b),0>h&&this.reverse()):(a*=.5,b*=.5,this.pos.add(a,b),e.pos.subtract(a,b),0>h&&(this.reverse(),e.reverse())))},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.xw);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.xw-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.yw);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.yw-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},collideAABBVsAABB:function(a){var b=this.pos,c=a,d=c.pos.x,e=c.pos.y,f=c.xw,g=c.yw,h=b.x-d,i=f+this.xw-Math.abs(h);if(i>0){var j=b.y-e,k=g+this.yw-Math.abs(j);if(k>0){k>i?0>h?(i*=-1,k=0):k=0:0>j?(i=0,k*=-1):i=0;var l=Math.sqrt(i*i+k*k);return this.reportCollisionVsBody(i,k,i/l,k/l,c),Phaser.Physics.Ninja.AABB.COL_AXIS}}return!1},collideAABBVsTile:function(a){var b=this.pos.x-a.pos.x,c=a.xw+this.xw-Math.abs(b);if(c>0){var d=this.pos.y-a.pos.y,e=a.yw+this.yw-Math.abs(d);if(e>0)return e>c?0>b?(c*=-1,e=0):e=0:0>d?(c=0,e*=-1):c=0,this.resolveTile(c,e,this,a)}return!1},resolveTile:function(a,b,c,d){return 0i){e*=-i,f*=-i;var j=Math.sqrt(e*e+f*f),k=Math.sqrt(a*a+b*b);return j>k?(c.reportCollisionVsWorld(a,b,a/k,b/k,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(e,f,d.signx,d.signy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_45Deg:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-d.pos.x,h=c.pos.y-f*c.yw-d.pos.y,i=d.sx,j=d.sy,k=g*i+h*j; +if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_22DegS:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.y-f*c.yw,h=d.pos.y-g;if(h*f>0){var i=c.pos.x-e*c.xw-(d.pos.x+e*d.xw),j=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),k=d.sx,l=d.sy,m=i*k+j*l;if(0>m){k*=-m,l*=-m;var n=Math.sqrt(k*k+l*l),o=Math.sqrt(a*a+b*b),p=Math.abs(h);return n>o?o>p?(c.reportCollisionVsWorld(0,h,0,h/p,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(a,b,a/o,b/o,d),Phaser.Physics.Ninja.AABB.COL_AXIS):n>p?(c.reportCollisionVsWorld(0,h,0,h/p,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(k,l,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_22DegB:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y+f*d.yw),i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_67DegS:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw,h=d.pos.x-g;if(h*e>0){var i=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),j=c.pos.y-f*c.yw-(d.pos.y+f*d.yw),k=d.sx,l=d.sy,m=i*k+j*l;if(0>m){k*=-m,l*=-m;var n=Math.sqrt(k*k+l*l),o=Math.sqrt(a*a+b*b),p=Math.abs(h);return n>o?o>p?(c.reportCollisionVsWorld(h,0,h/p,0,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(a,b,a/o,b/o,d),Phaser.Physics.Ninja.AABB.COL_AXIS):n>p?(c.reportCollisionVsWorld(h,0,h/p,0,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(k,l,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_67DegB:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x+e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_Convex:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),i=Math.sqrt(g*g+h*h),j=2*d.xw,k=Math.sqrt(j*j+0),l=k-i;if(0>e*g||0>f*h){var m=Math.sqrt(a*a+b*b);return c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS}return l>0?(g/=i,h/=i,c.reportCollisionVsWorld(g*l,h*l,g,h,d),Phaser.Physics.Ninja.AABB.COL_OTHER):Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_Concave:function(a,b,c,d){var e=d.signx,f=d.signy,g=d.pos.x+e*d.xw-(c.pos.x-e*c.xw),h=d.pos.y+f*d.yw-(c.pos.y-f*c.yw),i=2*d.xw,j=Math.sqrt(i*i+0),k=Math.sqrt(g*g+h*h),l=k-j;if(l>0){var m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(g/=k,h/=k,c.reportCollisionVsWorld(g*l,h*l,g,h,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},destroy:function(){this.body=null,this.system=null},render:function(a,b,c,d,e){var f=this.pos.x-this.xw-b,g=this.pos.y-this.yw-c;e?(a.fillStyle=d,a.fillRect(f,g,this.width,this.height)):(a.strokeStyle=d,a.strokeRect(f,g,this.width,this.height))}},Phaser.Physics.Ninja.Tile=function(a,b,c,d,e,f){"undefined"==typeof f&&(f=Phaser.Physics.Ninja.Tile.EMPTY),this.body=a,this.system=a.system,this.id=f,this.type=Phaser.Physics.Ninja.Tile.TYPE_EMPTY,this.pos=new Phaser.Point(b,c),this.oldpos=new Phaser.Point(b,c),this.id>1&&this.id<30&&(e=d),this.xw=Math.abs(d/2),this.yw=Math.abs(e/2),this.width=d,this.height=e,this.velocity=new Phaser.Point,this.signx=0,this.signy=0,this.sx=0,this.sy=0,this.body.gravityScale=0,this.body.collideWorldBounds=!1,this.id>0&&this.setType(this.id)},Phaser.Physics.Ninja.Tile.prototype.constructor=Phaser.Physics.Ninja.Tile,Phaser.Physics.Ninja.Tile.prototype={integrate:function(){var a=this.pos.x,b=this.pos.y;this.pos.x+=this.body.drag*this.pos.x-this.body.drag*this.oldpos.x,this.pos.y+=this.body.drag*this.pos.y-this.body.drag*this.oldpos.y+this.system.gravity*this.body.gravityScale,this.velocity.set(this.pos.x-a,this.pos.y-b),this.oldpos.set(a,b)},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.xw);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.xw-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.yw);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.yw-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},reportCollisionVsWorld:function(a,b,c,d){var e,f,g,h,i,j=this.pos,k=this.oldpos,l=j.x-k.x,m=j.y-k.y,n=l*c+m*d,o=n*c,p=n*d,q=l-o,r=m-p;0>n?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},setType:function(a){return a===Phaser.Physics.Ninja.Tile.EMPTY?this.clear():(this.id=a,this.updateType()),this},clear:function(){this.id=Phaser.Physics.Ninja.Tile.EMPTY,this.updateType()},destroy:function(){this.body=null,this.system=null},updateType:function(){if(0===this.id)return this.type=Phaser.Physics.Ninja.Tile.TYPE_EMPTY,this.signx=0,this.signy=0,this.sx=0,this.sy=0,!0;if(this.idn?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.radius);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.radius-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.radius);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.radius-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},collideCircleVsTile:function(a){var b=this.pos,c=this.radius,d=a,e=d.pos.x,f=d.pos.y,g=d.xw,h=d.yw,i=b.x-e,j=g+c-Math.abs(i);if(j>0){var k=b.y-f,l=h+c-Math.abs(k);if(l>0)return this.oH=0,this.oV=0,-g>i?this.oH=-1:i>g&&(this.oH=1),-h>k?this.oV=-1:k>h&&(this.oV=1),this.resolveCircleTile(j,l,this.oH,this.oV,this,d)}},resolveCircleTile:function(a,b,c,d,e,f){return 0a){var g=e.pos.x-f.pos.x;return 0>g?(e.reportCollisionVsWorld(-a,0,-1,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(a,0,1,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS)}var h=e.pos.y-f.pos.y;return 0>h?(e.reportCollisionVsWorld(0,-b,0,-1,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(0,b,0,1,f),Phaser.Physics.Ninja.Circle.COL_AXIS)}return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS}if(0===d)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var i=f.pos.x+c*f.xw,j=f.pos.y+d*f.yw,g=e.pos.x-i,h=e.pos.y-j,k=Math.sqrt(g*g+h*h),l=e.radius-k;return l>0?(0===k?(g=c/Math.SQRT2,h=d/Math.SQRT2):(g/=k,h/=k),e.reportCollisionVsWorld(g*l,h*l,g,h,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_45Deg:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=f.sx,k=f.sy,l=e.pos.x-j*e.radius-f.pos.x,m=e.pos.y-k*e.radius-f.pos.y,n=l*j+m*k;if(0>n){j*=-n,k*=-n,b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1));var o=Math.sqrt(j*j+k*k);return o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.pos.x-(f.pos.x-h*f.xw),m=e.pos.y-(f.pos.y+d*f.yw),p=l*-k+m*j;if(p*h*i>0){var q=Math.sqrt(l*l+m*m),r=e.radius-q;if(r>0)return l/=q,m/=q,e.reportCollisionVsWorld(l*r,m*r,l,m,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var n=l*j+m*k,r=e.radius-Math.abs(n);if(r>0)return e.reportCollisionVsWorld(j*r,k*r,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.pos.x-(f.pos.x+c*f.xw),m=e.pos.y-(f.pos.y-i*f.yw),p=l*-k+m*j;if(0>p*h*i){var q=Math.sqrt(l*l+m*m),r=e.radius-q;if(r>0)return l/=q,m/=q,e.reportCollisionVsWorld(l*r,m*r,l,m,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var n=l*j+m*k,r=e.radius-Math.abs(n);if(r>0)return e.reportCollisionVsWorld(j*r,k*r,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(h*c+i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;var s=f.pos.x+c*f.xw,t=f.pos.y+d*f.yw,u=e.pos.x-s,v=e.pos.y-t,q=Math.sqrt(u*u+v*v),r=e.radius-q;if(r>0)return 0===q?(u=c/Math.SQRT2,v=d/Math.SQRT2):(u/=q,v/=q),e.reportCollisionVsWorld(u*r,v*r,u,v,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Concave:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c){if(0===d){var j=f.pos.x+h*f.xw-e.pos.x,k=f.pos.y+i*f.yw-e.pos.y,l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=n+e.radius-m;return o>0?(b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER)):Phaser.Physics.Ninja.Circle.COL_NONE}if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=f.pos.x-h*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=0,s=d):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=f.pos.x+c*f.xw,q=f.pos.y-i*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c,s=0):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{if(h*c+i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;var p=f.pos.x+c*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Convex:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(h*c+i*d>0){var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var p=f.pos.x+c*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Half:function(a,b,c,d,e,f){var g=f.signx,h=f.signy,i=c*g+d*h;if(i>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c)if(0===d){var j=e.radius,k=e.pos.x-g*j-f.pos.x,l=e.pos.y-h*j-f.pos.y,m=g,n=h,o=k*m+l*n;if(0>o){m*=-o,n*=-o;var p=Math.sqrt(m*m+n*n),q=Math.sqrt(a*a+b*b);return p>q?(e.reportCollisionVsWorld(a,b,a/q,b/q,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(m,n,f.signx,f.signy),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0!==i)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var r=e.pos.x-f.pos.x;if(0>r*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var s=e.pos.y-(f.pos.y+d*f.yw),t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=g/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0!==i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var s=e.pos.y-f.pos.y;if(0>s*h)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var r=e.pos.x-(f.pos.x+c*f.xw),t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=g/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var v=f.pos.x+c*f.xw,w=f.pos.y+d*f.yw,r=e.pos.x-v,s=e.pos.y-w,t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_22DegS:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c){if(0!==d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-(f.pos.x-h*f.xw),n=e.pos.y-f.pos.y,o=m*-k+n*j;if(o*h*i>0){var p=Math.sqrt(m*m+n*n),q=l-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{m-=l*j,n-=l*k;var r=m*j+n*k;if(0>r){j*=-r,k*=-r;var s=Math.sqrt(j*j+k*k);return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),s>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}}else if(0===d)if(0>h*c){var t=f.pos.x-h*f.xw,u=f.pos.y,v=e.pos.x-t,w=e.pos.y-u;if(0>w*i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x+c*f.xw),n=e.pos.y-(f.pos.y-i*f.yw),o=m*-k+n*j;if(0>o*h*i){var p=Math.sqrt(m*m+n*n),q=e.radius-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var r=m*j+n*k,q=e.radius-Math.abs(r);if(q>0)return e.reportCollisionVsWorld(j*q,k*q,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{var t=f.pos.x+c*f.xw,u=f.pos.y+d*f.yw,v=e.pos.x-t,w=e.pos.y-u,p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_22DegB:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x-h*f.xw),n=e.pos.y-k*l-(f.pos.y+i*f.yw),o=m*j+n*k;if(0>o){j*=-o,k*=-o;var p=Math.sqrt(j*j+k*k);return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),p>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x-h*f.xw),n=e.pos.y-(f.pos.y+i*f.yw),q=m*-k+n*j;if(q*h*i>0){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var m=e.pos.x-(f.pos.x+h*f.xw),n=e.pos.y-f.pos.y;if(0>n*i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,q=m*-k+n*j;if(0>q*h*i){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(h*c+i*d>0){var t=Math.sqrt(5),j=1*h/t,k=2*i/t,l=e.radius,m=e.pos.x-j*l-(f.pos.x-h*f.xw),n=e.pos.y-k*l-(f.pos.y+i*f.yw),o=m*j+n*k;return 0>o?(e.reportCollisionVsWorld(-j*o,-k*o,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE}var u=f.pos.x+c*f.xw,v=f.pos.y+d*f.yw,w=e.pos.x-u,x=e.pos.y-v,r=Math.sqrt(w*w+x*x),s=e.radius-r;if(s>0)return 0===r?(w=c/Math.SQRT2,x=d/Math.SQRT2):(w/=r,x/=r),e.reportCollisionVsWorld(w*s,x*s,w,x,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_67DegS:function(a,b,c,d,e,f){var g=f.signx,h=f.signy;if(g*c>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c)if(0===d){var i,j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-f.pos.x,n=e.pos.y-(f.pos.y-h*f.yw),o=m*-k+n*j;if(0>o*g*h){var p=Math.sqrt(m*m+n*n),q=l-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{m-=l*j,n-=l*k;var r=m*j+n*k;if(0>r){j*=-r,k*=-r;var s=Math.sqrt(j*j+k*k);return b>a?(i=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(i=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),s>i?(e.reportCollisionVsWorld(a,b,a/i,b/i,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}}else if(0>h*d){var t=f.pos.x,u=f.pos.y-h*f.yw,v=e.pos.x-t,w=e.pos.y-u;if(0>v*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x-g*f.xw),n=e.pos.y-(f.pos.y+d*f.yw),o=m*-k+n*j;if(o*g*h>0){var p=Math.sqrt(m*m+n*n),q=e.radius-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var r=m*j+n*k,q=e.radius-Math.abs(r);if(q>0)return e.reportCollisionVsWorld(j*q,k*q,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(0===d)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var t=f.pos.x+c*f.xw,u=f.pos.y+d*f.yw,v=e.pos.x-t,w=e.pos.y-u,p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_67DegB:function(a,b,c,d,e,f){var g=f.signx,h=f.signy;if(0===c)if(0===d){var i,j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x+g*f.xw),n=e.pos.y-k*l-(f.pos.y-h*f.yw),o=m*j+n*k;if(0>o){j*=-o,k*=-o;var p=Math.sqrt(j*j+k*k);return b>a?(i=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(i=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),p>i?(e.reportCollisionVsWorld(a,b,a/i,b/i,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>h*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var m=e.pos.x-f.pos.x,n=e.pos.y-(f.pos.y+h*f.yw);if(0>m*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,q=m*-k+n*j;if(q*g*h>0){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>g*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var t=Math.sqrt(5),j=2*g/t,k=1*h/t,m=e.pos.x-(f.pos.x+g*f.xw),n=e.pos.y-(f.pos.y-h*f.yw),q=m*-k+n*j;if(0>q*g*h){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(g*c+h*d>0){var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x+g*f.xw),n=e.pos.y-k*l-(f.pos.y-h*f.yw),o=m*j+n*k;return 0>o?(e.reportCollisionVsWorld(-j*o,-k*o,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE}var u=f.pos.x+c*f.xw,v=f.pos.y+d*f.yw,w=e.pos.x-u,x=e.pos.y-v,r=Math.sqrt(w*w+x*x),s=e.radius-r;if(s>0)return 0===r?(w=c/Math.SQRT2,x=d/Math.SQRT2):(w/=r,x/=r),e.reportCollisionVsWorld(w*s,x*s,w,x,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},destroy:function(){this.body=null,this.system=null},render:function(a,b,c,d,e){var f=this.pos.x-b,g=this.pos.y-c;a.beginPath(),a.arc(f,g,this.radius,0,2*Math.PI,!1),e?(a.fillStyle=d,a.fill()):(a.strokeStyle=d,a.stroke())}}; \ No newline at end of file diff --git a/build/custom/phaser-no-libs.js b/build/custom/phaser-no-libs.js index 129ddd1744..a157031693 100644 --- a/build/custom/phaser-no-libs.js +++ b/build/custom/phaser-no-libs.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Dec 03 2014 09:34:03 +* v2.2.1 "Danabar" - Built: Thu Dec 04 2014 11:31:00 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -50,7 +50,7 @@ */ var Phaser = Phaser || { - VERSION: '2.2.0', + VERSION: '2.2.1', GAMES: [], AUTO: 0, @@ -14032,7 +14032,7 @@ Phaser.Game.prototype = { } else { - this.debug = { preUpdate: function () {}, update: function () {} }; + this.debug = { preUpdate: function () {}, update: function () {}, reset: function () {} }; } this.showDebugHeader(); @@ -36416,7 +36416,7 @@ Phaser.TweenManager.prototype = { { for (i = 0, len = this._tweens.length; i < len; i++) { - if (obj === this._tweens[i]._object) + if (obj === this._tweens[i].target) { this.remove(this._tweens[i]); } @@ -36424,7 +36424,7 @@ Phaser.TweenManager.prototype = { for (i = 0, len = this._add.length; i < len; i++) { - if (obj === this._add[i]._object) + if (obj === this._add[i].target) { this.remove(this._add[i]); } @@ -36539,7 +36539,7 @@ Phaser.TweenManager.prototype = { isTweening: function(object) { return this._tweens.some(function(tween) { - return tween._object === object; + return tween.target === object; }); }, @@ -40457,7 +40457,7 @@ Object.defineProperty(Phaser.AnimationManager.prototype, 'frame', { set: function (value) { - if (typeof value === 'number' && this._frameData.getFrame(value) !== null) + if (typeof value === 'number' && this._frameData && this._frameData.getFrame(value) !== null) { this.currentFrame = this._frameData.getFrame(value); diff --git a/build/custom/phaser-no-libs.min.js b/build/custom/phaser-no-libs.min.js index 0982ff28e7..412205a863 100644 --- a/build/custom/phaser-no-libs.min.js +++ b/build/custom/phaser-no-libs.min.js @@ -1,14 +1,14 @@ -/* Phaser (no libs) v2.2.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ -(function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Ellipse=function(a,b,d,e){this.type=c.ELLIPSE,a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},c.Ellipse.prototype.getBounds=function(){return new c.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=c.Ellipse,c.Polygon=function(){this.type=c.POLYGON,this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0},c.Polygon.prototype={clone:function(a){var b=this._points.slice();return"undefined"==typeof a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){for(var c=this._points.length,d=!1,e=-1,f=c-1;++e=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,d=0,e=a.length;e>d;d++){if("number"==typeof a[d]){var f=new c.Point(a[d],a[d+1]);d++}else var f=new c.Point(a[d].x,a[d].y);this._points.push(f),f.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),PIXI.Graphics.prototype.lineStyle=function(a,b,c){if(this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=arguments.length<3?1:c,this.currentPath){if(this.currentPath.shape.points.length)return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))),this;this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha}return this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f){var g,h=a+Math.cos(d)*c,i=b+Math.sin(d)*c;if(this.currentPath?(g=this.currentPath.shape.points,0===g.length?g.push(h,i):(g[g.length-2]!==h||g[g.length-1]!==i)&&g.push(h,i)):(this.moveTo(h,i),g=this.currentPath.shape.points),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var j=f?-1*(d-e):e-d,k=Math.abs(j)/(2*Math.PI)*40;if(0===j)return this;for(var l=j/(2*k),m=2*l,n=Math.cos(l),o=Math.sin(l),p=k-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);g.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){return a instanceof Array||(a=Array.prototype.slice.call(arguments)),this.drawShape(new PIXI.Polygon(a)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this},PIXI.Graphics.prototype.generateTexture=function(a,b){a=a||1;var c=this.getBounds(),d=new PIXI.CanvasBuffer(c.width*a,c.height*a),e=PIXI.Texture.fromCanvas(d.canvas,b);return e.baseTexture.resolution=a,d.context.scale(a,a),d.context.translate(-c.x,-c.y),PIXI.CanvasGraphics.renderGraphics(this,d.context),e},PIXI.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,c.tx*d,c.ty*d),PIXI.CanvasGraphics.renderGraphics(this,b);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(this.isMask)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;return x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._bounds +/* Phaser (no libs) v2.2.1 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +(function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.1",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Ellipse=function(a,b,d,e){this.type=c.ELLIPSE,a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},c.Ellipse.prototype.getBounds=function(){return new c.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=c.Ellipse,c.Polygon=function(){this.type=c.POLYGON,this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0},c.Polygon.prototype={clone:function(a){var b=this._points.slice();return"undefined"==typeof a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){for(var c=this._points.length,d=!1,e=-1,f=c-1;++e=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,d=0,e=a.length;e>d;d++){if("number"==typeof a[d]){var f=new c.Point(a[d],a[d+1]);d++}else var f=new c.Point(a[d].x,a[d].y);this._points.push(f),f.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),PIXI.Graphics.prototype.lineStyle=function(a,b,c){if(this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=arguments.length<3?1:c,this.currentPath){if(this.currentPath.shape.points.length)return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))),this;this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha}return this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f){var g,h=a+Math.cos(d)*c,i=b+Math.sin(d)*c;if(this.currentPath?(g=this.currentPath.shape.points,0===g.length?g.push(h,i):(g[g.length-2]!==h||g[g.length-1]!==i)&&g.push(h,i)):(this.moveTo(h,i),g=this.currentPath.shape.points),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var j=f?-1*(d-e):e-d,k=Math.abs(j)/(2*Math.PI)*40;if(0===j)return this;for(var l=j/(2*k),m=2*l,n=Math.cos(l),o=Math.sin(l),p=k-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);g.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){return a instanceof Array||(a=Array.prototype.slice.call(arguments)),this.drawShape(new PIXI.Polygon(a)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this},PIXI.Graphics.prototype.generateTexture=function(a,b){a=a||1;var c=this.getBounds(),d=new PIXI.CanvasBuffer(c.width*a,c.height*a),e=PIXI.Texture.fromCanvas(d.canvas,b);return e.baseTexture.resolution=a,d.context.scale(a,a),d.context.translate(-c.x,-c.y),PIXI.CanvasGraphics.renderGraphics(this,d.context),e},PIXI.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,c.tx*d,c.ty*d),PIXI.CanvasGraphics.renderGraphics(this,b);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(this.isMask)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;return x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._bounds },PIXI.Graphics.prototype.updateLocalBounds=function(){var a=1/0,b=-1/0,c=1/0,d=-1/0;if(this.graphicsData.length)for(var e,f,g,h,i,j,k=0;kg?g:a,b=g+i>b?g+i:b,c=c>h?h:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.CIRC)g=e.x,h=e.y,i=e.radius+n/2,j=e.radius+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.ELIP)g=e.x,h=e.y,i=e.width+n/2,j=e.height+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else{f=e.points;for(var o=0;og-n?g-n:a,b=g+n>b?g+n:b,c=c>h-n?h-n:c,d=h+n>d?h+n:d}}else a=0,b=0,c=0,d=0;var p=this.boundsPadding;this._localBounds.x=a-p,this._localBounds.width=b-a+2*p,this._localBounds.y=c-p,this._localBounds.height=d-c+2*p},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.Graphics.POLY=0,PIXI.Graphics.RECT=1,PIXI.Graphics.CIRC=2,PIXI.Graphics.ELIP=3,PIXI.Graphics.RREC=4,PIXI.Polygon.prototype.type=PIXI.Graphics.POLY,PIXI.Rectangle.prototype.type=PIXI.Graphics.RECT,PIXI.Circle.prototype.type=PIXI.Graphics.CIRC,PIXI.Ellipse.prototype.type=PIXI.Graphics.ELIP,PIXI.RoundedRectangle.prototype.type=PIXI.Graphics.RREC,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.screenView=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={preUpdate:function(){this.totalInView=0},follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},resize:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return(this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render)&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[])},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===c.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===c.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},c.StateManager.prototype.constructor=c.StateManager,c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e){var f,g=this._indexOfListener(a,d);if(-1!==g){if(f=this._bindings[g],f.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else f=new c.SignalBinding(this,a,b,d,e),this._addBinding(f);return this.memorize&&this._prevParams&&f.execute(this._prevParams),f},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;"undefined"==typeof b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){return this.validateListener(a,"add"),this._registerListener(a,!1,b,c)},addOnce:function(a,b,c){return this.validateListener(a,"addOnce"),this._registerListener(a,!0,b,c)},remove:function(a,b){this.validateListener(a,"remove");var c=this._indexOfListener(a,b);return-1!==c&&(this._bindings[c]._destroy(),this._bindings.splice(c,1)),a},removeAll:function(a){if("undefined"==typeof a&&(a=null),this._bindings){for(var b=this._bindings.length;b--;)a?this._bindings[b].context===a&&(this._bindings[b]._destroy(),this._bindings.splice(b,1)):this._bindings[b]._destroy();a||(this._bindings.length=0)}},getNumListeners:function(){return this._bindings?this._bindings.length:0},halt:function(){this._shouldPropagate=!1},dispatch:function(){if(this.active&&this._bindings){var a,b=Array.prototype.slice.call(arguments),c=this._bindings.length;if(this.memorize&&(this._prevParams=b),c){a=this._bindings.slice(),this._shouldPropagate=!0;do c--;while(a[c]&&this._shouldPropagate&&a[c].execute(b)!==!1)}}},forget:function(){this._prevParams&&(this._prevParams=null)},dispose:function(){this.removeAll(),this._bindings=null,this._prevParams&&(this._prevParams=null)},toString:function(){return"[Phaser.Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}},Object.defineProperty(c.Signal.prototype,"boundDispatch",{get:function(){var a=this;return this._boundDispatch||(this._boundDispatch=function(){return a.dispatch.apply(a,arguments)})}}),c.Signal.prototype.constructor=c.Signal,c.SignalBinding=function(a,b,c,d,e){this._listener=b,c&&(this._isOnce=!0),null!=d&&(this.context=d),this._signal=a,e&&(this._priority=e)},c.SignalBinding.prototype={context:null,_isOnce:!1,_priority:0,callCount:0,active:!0,params:null,execute:function(a){var b,c;return this.active&&this._listener&&(c=this.params?this.params.concat(a):a,b=this._listener.apply(this.context,c),this.callCount++,this._isOnce&&this.detach()),b},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal,delete this._listener,delete this.context},toString:function(){return"[Phaser.SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}},c.SignalBinding.prototype.constructor=c.SignalBinding,c.Filter=function(a,b,d){this.game=a,this.type=c.WEBGL_FILTER,this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.prevPoint=new c.Point;var e=new Date;if(this.uniforms={resolution:{type:"2f",value:{x:256,y:256}},time:{type:"1f",value:0},mouse:{type:"2f",value:{x:0,y:0}},date:{type:"4fv",value:[e.getFullYear(),e.getMonth(),e.getDate(),60*e.getHours()*60+60*e.getMinutes()+e.getSeconds()]},sampleRate:{type:"1f",value:44100},iChannel0:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel1:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel2:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel3:{type:"sampler2D",value:null,textureData:{repeat:!0}}},b)for(var f in b)this.uniforms[f]=b[f];this.fragmentSrc=d||[]},c.Filter.prototype={init:function(){},setResolution:function(a,b){this.uniforms.resolution.value.x=a,this.uniforms.resolution.value.y=b},update:function(a){if("undefined"!=typeof a){var b=a.x/this.game.width,c=1-a.y/this.game.height;(b!==this.prevPoint.x||c!==this.prevPoint.y)&&(this.uniforms.mouse.value.x=b.toFixed(2),this.uniforms.mouse.value.y=c.toFixed(2),this.prevPoint.set(b,c))}this.uniforms.time.value=this.game.time.totalElapsedSeconds()},destroy:function(){this.game=null}},c.Filter.prototype.constructor=c.Filter,Object.defineProperty(c.Filter.prototype,"width",{get:function(){return this.uniforms.resolution.value.x},set:function(a){this.uniforms.resolution.value.x=a}}),Object.defineProperty(c.Filter.prototype,"height",{get:function(){return this.uniforms.resolution.value.y},set:function(a){this.uniforms.resolution.value.y=a}}),c.Plugin=function(a,b){"undefined"==typeof b&&(b=null),this.game=a,this.parent=b,this.active=!1,this.visible=!1,this.hasPreUpdate=!1,this.hasUpdate=!1,this.hasPostUpdate=!1,this.hasRender=!1,this.hasPostRender=!1},c.Plugin.prototype={preUpdate:function(){},update:function(){},render:function(){},postRender:function(){},destroy:function(){this.game=null,this.parent=null,this.active=!1,this.visible=!1}},c.Plugin.prototype.constructor=c.Plugin,c.PluginManager=function(a){this.game=a,this.plugins=[],this._len=0,this._i=0},c.PluginManager.prototype={add:function(a){var b=Array.prototype.splice.call(arguments,1),c=!1;return"function"==typeof a?a=new a(this.game,this):(a.game=this.game,a.parent=this),"function"==typeof a.preUpdate&&(a.hasPreUpdate=!0,c=!0),"function"==typeof a.update&&(a.hasUpdate=!0,c=!0),"function"==typeof a.postUpdate&&(a.hasPostUpdate=!0,c=!0),"function"==typeof a.render&&(a.hasRender=!0,c=!0),"function"==typeof a.postRender&&(a.hasPostRender=!0,c=!0),c?((a.hasPreUpdate||a.hasUpdate||a.hasPostUpdate)&&(a.active=!0),(a.hasRender||a.hasPostRender)&&(a.visible=!0),this._len=this.plugins.push(a),"function"==typeof a.init&&a.init.apply(a,b),a):null},remove:function(a){for(this._i=this._len;this._i--;)if(this.plugins[this._i]===a)return a.destroy(),this.plugins.splice(this._i,1),void this._len--},removeAll:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].destroy();this.plugins.length=0,this._len=0},preUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPreUpdate&&this.plugins[this._i].preUpdate()},update:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasUpdate&&this.plugins[this._i].update()},postUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPostUpdate&&this.plugins[this._i].postUpdate()},render:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasRender&&this.plugins[this._i].render()},postRender:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasPostRender&&this.plugins[this._i].postRender()},destroy:function(){this.removeAll(),this.game=null}},c.PluginManager.prototype.constructor=c.PluginManager,c.Stage=function(a){this.game=a,PIXI.Stage.call(this,0),this.name="_stage_root",this.interactive=!1,this.disableVisibilityChange=!1,this.exists=!0,this.currentRenderOrderID=0,this._hiddenVar="hidden",this._backgroundColor=0,a.config&&this.parseConfig(a.config)},c.Stage.prototype=Object.create(PIXI.Stage.prototype),c.Stage.prototype.constructor=c.Stage,c.Stage.prototype.parseConfig=function(a){a.disableVisibilityChange&&(this.disableVisibilityChange=a.disableVisibilityChange),a.backgroundColor&&(this.backgroundColor=a.backgroundColor)},c.Stage.prototype.boot=function(){c.DOM.getOffset(this.game.canvas,this.offset);var a=this;this._onChange=function(b){return a.visibilityChange(b)},c.Canvas.setUserSelect(this.game.canvas,"none"),c.Canvas.setTouchAction(this.game.canvas,"none"),this.checkVisibility()},c.Stage.prototype.preUpdate=function(){this.currentRenderOrderID=0;for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return PIXI.scaleModes.DEFAULT===PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.DEFAULT=a?PIXI.scaleModes.LINEAR:PIXI.scaleModes.NEAREST}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",this.z=0,PIXI.DisplayObjectContainer.call(this),e?(this.game.stage.addChild(this),this.z=this.game.stage.children.length):b&&(b.addChild(this),this.z=b.children.length),this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup$dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup$dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g)) },c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){var c;if(arguments.length>2){c=[];for(var d=2;dd;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}var e;if(arguments.length>2){e=[];for(var f=2;ff;f++)g=this.callbackFromArray(this.children[f],a,c),b&&g?(h=this.callbackFromArray(this.children[f],b,d),g&&g.apply(h,e)):g&&g.apply(this.children[f],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=[];++dd;d++)(!c||c&&this.children[d].exists)&&a.call(b,this.children[d]);else{for(var f=[null],d=3;dd;d++)(!c||c&&this.children[d].exists)&&(f[0]=this.children[d],a.apply(b,f))}},c.Group.prototype.forEachExists=function(a,b){var d;if(arguments.length>2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g?(g[0]=this.children[i],e.apply(f,g)):e.call(f,this.children[i])),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:null},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setScreenSize=c.ScaleManager.prototype.updateLayout,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode -},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.lockRender=!1,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug?(this.debug=new c.Utils.Debug(this),this.debug.boot()):this.debug={preUpdate:function(){},update:function(){}},this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start())},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounterg;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a)) },_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown$dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp$dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp$dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart$dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a},c.Events.prototype={destroy:function(){this._parent=null,this._onDestroy&&this._onDestroy.dispose(),this._onAddedToGroup&&this._onAddedToGroup.dispose(),this._onRemovedFromGroup&&this._onRemovedFromGroup.dispose(),this._onRemovedFromWorld&&this._onRemovedFromWorld.dispose(),this._onKilled&&this._onKilled.dispose(),this._onRevived&&this._onRevived.dispose(),this._onOutOfBounds&&this._onOutOfBounds.dispose(),this._onInputOver&&this._onInputOver.dispose(),this._onInputOut&&this._onInputOut.dispose(),this._onInputDown&&this._onInputDown.dispose(),this._onInputUp&&this._onInputUp.dispose(),this._onDragStart&&this._onDragStart.dispose(),this._onDragStop&&this._onDragStop.dispose(),this._onAnimationStart&&this._onAnimationStart.dispose(),this._onAnimationComplete&&this._onAnimationComplete.dispose(),this._onAnimationLoop&&this._onAnimationLoop.dispose()},onAddedToGroup:null,onRemovedFromGroup:null,onRemovedFromWorld:null,onDestroy:null,onKilled:null,onRevived:null,onOutOfBounds:null,onEnterBounds:null,onInputOver:null,onInputOut:null,onInputDown:null,onInputUp:null,onDragStart:null,onDragStop:null,onAnimationStart:null,onAnimationComplete:null,onAnimationLoop:null},c.Events.prototype.constructor=c.Events;for(var e in c.Events.prototype)if(c.Events.prototype.hasOwnProperty(e)&&0===e.indexOf("on")&&null===c.Events.prototype[e]){var f="this._"+e,g=e+"$dispatch";Object.defineProperty(c.Events.prototype,e,{get:new Function("return "+f+" || ("+f+" = new Phaser.Signal())")}),c.Events.prototype[g]=new Function("return "+f+" ? "+f+".dispatch.apply("+f+", arguments) : null")}c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof b||null===b)&&(b=!1),("undefined"==typeof d||null===d)&&(d=!1),a||b||d){"undefined"==typeof e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=c.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){"undefined"==typeof a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return"undefined"==typeof a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(("undefined"==typeof a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}return("undefined"==typeof b||null===b)&&(b=0),("undefined"==typeof d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),("undefined"==typeof g||null===g)&&(g=b),("undefined"==typeof h||null===h)&&(h=d),("undefined"==typeof i||null===i)&&(i=this._size.x),("undefined"==typeof j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),"undefined"==typeof q&&(q=null),"undefined"==typeof r&&(r=!1),this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y?void 0:(this._alpha.prev=this.context.globalAlpha,this.context.save(),this.context.globalAlpha=this._alpha.current,q&&(this.context.globalCompositeOperation=q),r&&(g|=0,h|=0),this.context.translate(g,h),this.context.scale(this._scale.x,this._scale.y),this.context.rotate(this._rotate),this.context.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),this.context.restore(),this.context.globalAlpha=this._alpha.prev,this.dirty=!0,this)},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},shadow:function(a,b,c,d){"undefined"==typeof a||null===a?this.context.shadowColor="rgba(0,0,0,0)":(this.context.shadowColor=a,this.context.shadowBlur=b||5,this.context.shadowOffsetX=c||10,this.context.shadowOffsetY=d||10)},alphaMask:function(a,b,c,d){return"undefined"==typeof d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),"undefined"==typeof c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},circle:function(a,b,c,d){return"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill(),this},textureLine:function(a,b,d){if("undefined"==typeof d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;return"no-repeat"===d&&e>b.width&&(e=b.width),this.context.fillStyle=this.context.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),this.context.save(),this.context.translate(this._pos.x,this._pos.y),this.context.rotate(a.angle),this.context.fillRect(0,0,e,b.height),this.context.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},blendReset:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceOver:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceIn:function(){return this.context.globalCompositeOperation="source-in",this},blendSourceOut:function(){return this.context.globalCompositeOperation="source-out",this},blendSourceAtop:function(){return this.context.globalCompositeOperation="source-atop",this},blendDestinationOver:function(){return this.context.globalCompositeOperation="destination-over",this},blendDestinationIn:function(){return this.context.globalCompositeOperation="destination-in",this},blendDestinationOut:function(){return this.context.globalCompositeOperation="destination-out",this},blendDestinationAtop:function(){return this.context.globalCompositeOperation="destination-atop",this},blendXor:function(){return this.context.globalCompositeOperation="xor",this},blendAdd:function(){return this.context.globalCompositeOperation="lighter",this},blendMultiply:function(){return this.context.globalCompositeOperation="multiply",this},blendScreen:function(){return this.context.globalCompositeOperation="screen",this},blendOverlay:function(){return this.context.globalCompositeOperation="overlay",this},blendDarken:function(){return this.context.globalCompositeOperation="darken",this},blendLighten:function(){return this.context.globalCompositeOperation="lighten",this},blendColorDodge:function(){return this.context.globalCompositeOperation="color-dodge",this},blendColorBurn:function(){return this.context.globalCompositeOperation="color-burn",this},blendHardLight:function(){return this.context.globalCompositeOperation="hard-light",this},blendSoftLight:function(){return this.context.globalCompositeOperation="soft-light",this},blendDifference:function(){return this.context.globalCompositeOperation="difference",this},blendExclusion:function(){return this.context.globalCompositeOperation="exclusion",this},blendHue:function(){return this.context.globalCompositeOperation="hue",this},blendSaturation:function(){return this.context.globalCompositeOperation="saturation",this},blendColor:function(){return this.context.globalCompositeOperation="color",this},blendLuminosity:function(){return this.context.globalCompositeOperation="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.SPRITE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this.scaleMin=null,this.scaleMax=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds$dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Sprite.prototype.update=function(){},c.Sprite.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Sprite.prototype.loadTexture=function(a,b,d){b=b||0,(d||"undefined"==typeof d)&&this.animations.stop(),this.key=a;var e=!0,f=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(e=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),e=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),e&&(this._frame=c.Rectangle.clone(this.texture.frame)),f||(this.smoothed=!1) },c.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Sprite.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived$dispatch(this),this},c.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this},c.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},c.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},c.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},c.Sprite.prototype.overlap=function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())},c.Sprite.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Sprite.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Sprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"inCamera",{get:function(){return this.autoCull||this.checkWorldBounds||(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y),this.game.world.camera.view.intersects(this._bounds)}}),Object.defineProperty(c.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(c.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(c.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(c.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(c.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(c.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=c.IMAGE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.alive=!0,this.autoCull=!1,this.input=null,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this._bounds.copyFrom(this.getBounds()),this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Image.prototype.update=function(){},c.Image.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Image.prototype.loadTexture=function(a,b){b=b||0,this.key=a;var d=!0,e=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),d&&(this._frame=c.Rectangle.clone(this.texture.frame)),e||(this.smoothed=!1)},c.Image.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Image.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Image.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Image.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived$dispatch(this),this},c.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this},c.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy(),this.animations&&this.animations.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},c.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Image.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Image.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Image.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},c.TileSprite.prototype.update=function(){},c.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},c.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},c.TileSprite.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty()},c.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.alive=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.TileSprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.ROPE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,this._frame=0,this._frameName="",this._scroll=new c.Point,PIXI.Rope.call(this,e,this.points),this.position.set(b,d),this.input=null,this.world=new c.Point(b,d),this.autoCull=!1,this.checkWorldBounds=!1,this.cameraOffset=new c.Point,this.body=null,this._cache=[0,0,0,0,1,0,1,0,0],this.loadTexture(e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Rope.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;(this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds&&(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds)?(this._cache[5]=0,this.events.onEnterBounds$dispatch(this)):0!==this._cache[5]||this.game.world.bounds.intersects(this._bounds)||(this._cache[5]=1,this.events.onOutOfBounds$dispatch(this))),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Rope.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},c.Rope.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.Rope.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Rope.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.Rope.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.Rope.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Rope.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.Rope.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.Rope.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Rope.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.Rope.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Rope.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;ka;a++)this.children[a].preUpdate();return!0},c.Text.prototype.update=function(){},c.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(!0),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]); this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Text.prototype.setShadow=function(a,b,c,d){"undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c="rgba(0, 0, 0, 1)"),"undefined"==typeof d&&(d=0),this.style.shadowOffsetX=a,this.style.shadowOffsetY=b,this.style.shadowColor=c,this.style.shadowBlur=d,this.dirty=!0},c.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},c.Text.prototype.updateText=function(){this.texture.baseTexture.resolution=this.resolution,this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=this.determineFontProperties(this.style.font),f=0;f0?this.updateLine(b[f],k,l):(this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(b[f],k,l),this.style.fill&&this.context.fillText(b[f],k,l));this.updateTexture()},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){"undefined"==typeof d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case c.RetroFont.ALIGN_LEFT:a=0;break;case c.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case c.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},c.RetroFont.prototype.pasteLine=function(a,b,d,e){for(var f=new c.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(b,d),this.render(this.stamp,f,!1),b+=this.characterWidth+e,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Particle=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},c.Particle.prototype=Object.create(c.Sprite.prototype),c.Particle.prototype.constructor=c.Particle,c.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},c.Particle.prototype.onEmit=function(){},c.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},c.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},c.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},c.Device=function(){this.deviceReadyAt=0,this.initialized=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.LITTLE_ENDIAN=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1},c.Device=new c.Device,c.Device.onInitialized=new c.Signal,c.Device.whenReady=function(a,b,c){var d=this._readyCheck;if(this.deviceReadyAt||!d)a.call(b,this);else if(d._monitor||c)d._queue=d._queue||[],d._queue.push([a,b]);else{d._monitor=d.bind(this),d._queue=d._queue||[],d._queue.push([a,b]);var e="undefined"!=typeof window.cordova,f=navigator.isCocoonJS;"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(d._monitor,0):e&&!f?document.addEventListener("deviceready",d._monitor,!1):(document.addEventListener("DOMContentLoaded",d._monitor,!1),window.addEventListener("load",d._monitor,!1))}},c.Device._readyCheck=function(){var a=this._readyCheck;if(document.body){if(!this.deviceReadyAt){this.deviceReadyAt=Date.now(),document.removeEventListener("deviceready",a._monitor),document.removeEventListener("DOMContentLoaded",a._monitor),window.removeEventListener("load",a._monitor),this._initialize(),this.initialized=!0,this.onInitialized.dispatch(this);for(var b;b=a._queue.shift();){var c=b[0],d=b[1];c.call(d,this)}this._readyCheck=null,this._initialize=null,this.onInitialized=null}}else window.setTimeout(a._monitor,20)},c.Device._initialize=function(){function a(){var a=navigator.userAgent;/Playstation Vita/.test(a)?k.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?k.kindle=!0:/Android/.test(a)?k.android=!0:/CrOS/.test(a)?k.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?k.iOS=!0:/Linux/.test(a)?k.linux=!0:/Mac OS/.test(a)?k.macOS=!0:/Windows/.test(a)&&(k.windows=!0,/Windows Phone/i.test(a)&&(k.windowsPhone=!0));var b=/Silk/.test(a);(k.windows||k.macOS||k.linux&&!b||k.chromeOS)&&(k.desktop=!0),(k.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(k.desktop=!1)}function b(){k.canvas=!!window.CanvasRenderingContext2D||k.cocoonJS;try{k.localStorage=!!localStorage.getItem}catch(a){k.localStorage=!1}k.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),k.fileSystem=!!window.requestFileSystem,k.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),k.webGL=null===k.webGL||k.webGL===!1?!1:!0,k.worker=!!window.Worker,k.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,k.quirksMode="CSS1Compat"===document.compatMode?!1:!0,k.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)}function c(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(k.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(k.mspointer=!0),k.cocoonJS||("onwheel"in window||k.ie&&"WheelEvent"in window?k.wheelEvent="wheel":"onmousewheel"in window?k.wheelEvent="mousewheel":k.firefox&&"MouseScrollEvent"in window&&(k.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var k=this;a(),f(),e(),j(),g(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"opus"==a&&this.opus?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return"undefined"==typeof b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.visualBounds:1===a.nodeType?this.getBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return document.documentElement.clientWidth},g=function(){return document.documentElement.clientHeight};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.Canvas={create:function(a,b,c){a=a||256,b=b||256;var d=document.createElement("canvas");return"string"==typeof c&&""!==c&&(d.id=c),d.width=a,d.height=b,d.style.display="block",d},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},getSmoothingEnabled:function(a){return a.imageSmoothingEnabled||a.mozImageSmoothingEnabled||a.oImageSmoothingEnabled||a.webkitImageSmoothingEnabled||a.msImageSmoothingEnabled},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style["image-rendering"]="pixelated",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.Canvas.getOffset=c.DOM.getOffset,c.Canvas.getAspectRatio=c.DOM.getAspectRatio,c.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},normalizeLatitude:function(a){return c.Math.clamp(a,-90,90)},normalizeLongitude:function(a){return c.Math.wrap(a,-180,180)},chanceRoll:function(a){return c.Utils.chanceRoll(a)},numberArray:function(a,b){return c.ArrayUtils.numberArray(a,b)},numberArrayStep:function(a,b,d){return c.ArrayUtils.numberArrayStep(a,b,d)},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,d){return c.Math.clamp(a,b,d)},randomSign:function(){return c.Utils.randomChoice(-1,1)},isOdd:function(a){return 1&a},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var l=Math.PI/180,m=180/Math.PI;c.Math.degToRad=function(a){return a*l},c.Math.radToDeg=function(a){return a*m},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d]._object&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d]._object&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b._object===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.repeatDelay=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if("undefined"==typeof a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this.onStart.dispatch(this.target,this),this},stop:function(a){return"undefined"==typeof a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},delay:function(a,b){if("undefined"==typeof b&&(b=0),-1===b)for(var c=0;c0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return"undefined"==typeof a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;"undefined"==typeof b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;this.vEnd[a]=[this.parent.properties[a]].concat(this.vEnd[a])}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(){if(!this.isRunning){if(!(this.game.time.time>=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var a in this.vEnd){var b=this.vStart[a],d=this.vEnd[a];this.parent.target[a]=Array.isArray(d)?this.interpolationFunction(d,this.value):b+(d-b)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE; -this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time+this.delay,this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.physicsElapsed=1/this.desiredFps,this.physicsElapsedMS=1e3*this.physicsElapsed,this.advancedTiming&&(this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(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.game.paused){this.events.update(this.time);for(var c=0,d=this._timers.length;d>c;)this._timers[c].update(this.time)?c++:(this._timers.splice(c,1),d--)}},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.now,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){"undefined"==typeof b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if("undefined"==typeof a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames.length=0,this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a]},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){"undefined"==typeof h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g,h){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name,this.uuid);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return"undefined"==typeof a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},c.FrameData.prototype.constructor=c.FrameData,Object.defineProperty(c.FrameData.prototype,"total",{get:function(){return this._frames.length}}),c.AnimationParser={spriteSheet:function(a,b,d,e,f,g,h){var i=a.cache.getImage(b);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new c.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[b],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,b,d){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var e,f=new c.FrameData,g=b.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new c.FrameData,r=b.getElementsByTagName("SubTexture"),s=0;s0&&"none"!==a}var k=this;a(),f(),e(),j(),g(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"opus"==a&&this.opus?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return"undefined"==typeof b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.visualBounds:1===a.nodeType?this.getBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return document.documentElement.clientWidth},g=function(){return document.documentElement.clientHeight};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.Canvas={create:function(a,b,c){a=a||256,b=b||256;var d=document.createElement("canvas");return"string"==typeof c&&""!==c&&(d.id=c),d.width=a,d.height=b,d.style.display="block",d},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},getSmoothingEnabled:function(a){return a.imageSmoothingEnabled||a.mozImageSmoothingEnabled||a.oImageSmoothingEnabled||a.webkitImageSmoothingEnabled||a.msImageSmoothingEnabled},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style["image-rendering"]="pixelated",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.Canvas.getOffset=c.DOM.getOffset,c.Canvas.getAspectRatio=c.DOM.getAspectRatio,c.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},normalizeLatitude:function(a){return c.Math.clamp(a,-90,90)},normalizeLongitude:function(a){return c.Math.wrap(a,-180,180)},chanceRoll:function(a){return c.Utils.chanceRoll(a)},numberArray:function(a,b){return c.ArrayUtils.numberArray(a,b)},numberArrayStep:function(a,b,d){return c.ArrayUtils.numberArrayStep(a,b,d)},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,d){return c.Math.clamp(a,b,d)},randomSign:function(){return c.Utils.randomChoice(-1,1)},isOdd:function(a){return 1&a},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var l=Math.PI/180,m=180/Math.PI;c.Math.degToRad=function(a){return a*l},c.Math.radToDeg=function(a){return a*m},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.repeatDelay=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if("undefined"==typeof a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this.onStart.dispatch(this.target,this),this},stop:function(a){return"undefined"==typeof a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},delay:function(a,b){if("undefined"==typeof b&&(b=0),-1===b)for(var c=0;c0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return"undefined"==typeof a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;"undefined"==typeof b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;this.vEnd[a]=[this.parent.properties[a]].concat(this.vEnd[a])}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(){if(!this.isRunning){if(!(this.game.time.time>=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var a in this.vEnd){var b=this.vStart[a],d=this.vEnd[a];this.parent.target[a]=Array.isArray(d)?this.interpolationFunction(d,this.value):b+(d-b)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE; +this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time+this.delay,this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.physicsElapsed=1/this.desiredFps,this.physicsElapsedMS=1e3*this.physicsElapsed,this.advancedTiming&&(this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(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.game.paused){this.events.update(this.time);for(var c=0,d=this._timers.length;d>c;)this._timers[c].update(this.time)?c++:(this._timers.splice(c,1),d--)}},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.now,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){"undefined"==typeof b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if("undefined"==typeof a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames.length=0,this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a]},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){"undefined"==typeof h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g,h){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name,this.uuid);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return"undefined"==typeof a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},c.FrameData.prototype.constructor=c.FrameData,Object.defineProperty(c.FrameData.prototype,"total",{get:function(){return this._frames.length}}),c.AnimationParser={spriteSheet:function(a,b,d,e,f,g,h){var i=a.cache.getImage(b);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new c.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[b],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,b,d){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var e,f=new c.FrameData,g=b.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new c.FrameData,r=b.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,b){if("undefined"==typeof b&&(b=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,b)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g=0&&(b=b.substr(0,b.indexOf("?"))),this.game.device.canPlayAudio(b))return a[c];return null},fileError:function(a){this._fileList[a].loaded=!0,this._fileList[a].error=!0,this.onFileError.dispatch(this._fileList[a].key,this._fileList[a]),console.warn("Phaser.Loader error loading file: "+this._fileList[a].key+" from URL "+this._fileList[a].url),this.nextFile(a,!1)},fileComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader fileComplete invalid index "+a);var b=this._fileList[a];b.loaded=!0;var d=!0;switch(b.type){case"image":this.game.cache.addImage(b.key,b.url,b.data);break;case"spritesheet":this.game.cache.addSpriteSheet(b.key,b.url,b.data,b.frameWidth,b.frameHeight,b.frameMax,b.margin,b.spacing);break;case"textureatlas":if(null==b.atlasURL)this.game.cache.addTextureAtlas(b.key,b.url,b.data,b.atlasData,b.format);else if(d=!1,b.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||b.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","jsonLoadComplete","dataLoadError");else{if(b.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+b.format);this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","xmlLoadComplete","dataLoadError")}break;case"bitmapfont":null==b.xmlURL?this.game.cache.addBitmapFont(b.key,b.url,b.data,b.xmlData,b.xSpacing,b.ySpacing):(d=!1,this.xhrLoad(this._fileIndex,this.baseURL+b.xmlURL,"text","xmlLoadComplete","dataLoadError"));break;case"audio":if(this.game.sound.usingWebAudio){if(b.data=this._xhr.response,this.game.cache.addSound(b.key,b.url,b.data,!0,!1),b.autoDecode){var e=this,f=b.key;this.game.cache.updateSound(f,"isDecoding",!0),this.game.sound.context.decodeAudioData(b.data,function(a){a&&(e.game.cache.decodedSound(f,a),e.game.sound.onSoundDecode.dispatch(f,e.game.cache.getSound(f)))})}}else b.data.removeEventListener("canplaythrough",c.GAMES[this.game.id].load.fileComplete),this.game.cache.addSound(b.key,b.url,b.data,!1,!0);break;case"text":b.data=this._xhr.responseText,this.game.cache.addText(b.key,b.url,b.data);break;case"physics":var g=JSON.parse(this._xhr.responseText);this.game.cache.addPhysicsData(b.key,b.url,g,b.format);break;case"script":b.data=document.createElement("script"),b.data.language="javascript",b.data.type="text/javascript",b.data.defer=!1,b.data.text=this._xhr.responseText,document.head.appendChild(b.data),b.callback&&(b.data=b.callback.call(b.callbackContext,b.key,this._xhr.responseText));break;case"binary":b.data=b.callback?b.callback.call(b.callbackContext,b.key,this._xhr.response):this._xhr.response,this.game.cache.addBinary(b.key,b.data)}d&&this.nextFile(a,!0)},jsonLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader jsonLoadComplete invalid index "+a);var b=this._fileList[a];if(this._ajax&&this._ajax.responseText)var c=JSON.parse(this._ajax.responseText);else var c=JSON.parse(this._xhr.responseText);b.loaded=!0,"tilemap"===b.type?this.game.cache.addTilemap(b.key,b.url,c,b.format):"json"===b.type?this.game.cache.addJSON(b.key,b.url,c):this.game.cache.addTextureAtlas(b.key,b.url,b.data,c,b.format),this.nextFile(a,!0)},csvLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader csvLoadComplete invalid index "+a);var b=this._fileList[a],c=this._xhr.responseText;b.loaded=!0,this.game.cache.addTilemap(b.key,b.url,c,b.format),this.nextFile(a,!0)},dataLoadError:function(a){var b=this._fileList[a];b.loaded=!0,b.error=!0,console.warn("Phaser.Loader dataLoadError: "+b.key),this.nextFile(a,!0)},xmlLoadComplete:function(a){""!==this._xhr.responseType&&"text"!==this._xhr.responseType&&(console.warn("Invalid XML Response Type",this._fileList[a]),console.warn(this._xhr));var b,c=this._xhr.responseText;try{if(window.DOMParser){var d=new DOMParser;b=d.parseFromString(c,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(c)}catch(e){b=void 0}if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw new Error("Phaser.Loader. Invalid XML given");var f=this._fileList[a];f.loaded=!0,"bitmapfont"===f.type?this.game.cache.addBitmapFont(f.key,f.url,f.data,b,f.xSpacing,f.ySpacing):"textureatlas"===f.type?this.game.cache.addTextureAtlas(f.key,f.url,f.data,b,f.format):"xml"===f.type&&this.game.cache.addXML(f.key,f.url,b),this.nextFile(a,!0)},nextFile:function(a,b){this.progressFloat+=this._progressChunk,this.progress=Math.round(this.progressFloat),this.progress>100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.updateCrop()),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this.isPlaying&&!this.allowMultiple&&(this.override||e)&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null===this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this },restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b){"undefined"==typeof b&&(b=!1),this.paused||(this.play("",0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if("undefined"==typeof a&&(a=1e3),"undefined"==typeof b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");var d=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0);d.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return("undefined"==typeof b||null===b)&&(b=c.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){"undefined"==typeof e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return j.color=c.Color.getColor(j.r,j.g,j.b),j.color32=c.Color.getColor32(j.a,j.r,j.g,j.b),c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){"undefined"==typeof a&&(a=.5),"undefined"==typeof b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){"undefined"==typeof f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=255),"undefined"==typeof d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D&&(null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset())},enable:function(a,b,d){"undefined"==typeof b&&(b=c.Physics.ARCADE),"undefined"==typeof d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d&&this.box2d.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.skipQuadTree=!0,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,b){"undefined"==typeof b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0); else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!0);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,g=a.length;g>f;f++)for(var h=0,i=b.length;i>h;h++)this.collideHandler(a[f],b[h],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!1);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,h=a.length;h>f;f++)for(var i=0,j=b.length;j>i;i++)this.collideHandler(a[f],b[i],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,d,e,f,g){return"undefined"!=typeof b||a.type!==c.GROUP&&a.type!==c.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==c.SPRITE||a.type==c.TILESPRITE?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideSpriteVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f):a.type==c.GROUP?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f):a.type==c.TILEMAPLAYER?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f):(b.type==c.GROUP||b.type==c.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,d,e,f):a.type==c.EMITTER&&(b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body)if(a.body.skipQuadTree||this.skipQuadTree)for(var g=0,h=b.children.length;h>g;g++)b.children[g]&&b.children[g].exists&&this.collideSpriteVsSprite(a,b.children[g],c,d,e,f);else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f-1>g;g++)for(var h=g+1;f>h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0,i=a.children.length;i>h;h++)a.children[h].exists&&(a.children[h].type===c.GROUP?this.collideGroupVsGroup(a.children[h],b,d,e,f,g):this.collideSpriteVsGroup(a.children[h],b,d,e,f,g))},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=this._overlap,b.overlapX=this._overlap,0!==this._overlap)?c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=this._overlap,b.overlapY=this._overlap,0!==this._overlap)?c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);var h=new c.Rectangle(a,b,1,1),i=[];this._potentials=this.quadTree.retrieve(h);for(var j=0,k=this._potentials.length;k>j;j++)this._potentials[j].hitTest(a,b)&&(e&&e.call(f,g,this._potentials[j].sprite),i.push(this._potentials[j].sprite));return i},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.phase=0,this.skipQuadTree=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Particles.Arcade={},c.Particles.Arcade.Emitter=function(a,b,d,e){this.maxParticles=e||50,c.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=c.EMITTER,this.area=new c.Rectangle(b,d,1,1),this.minParticleSpeed=new c.Point(-100,-100),this.maxParticleSpeed=new c.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=c.Particle,this.particleDrag=new c.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new c.Point,this.on=!1,this.particleAnchor=new c.Point(.5,.5),this.blendMode=c.blendModes.NORMAL,this.emitX=b,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new c.Point(1,1),this._maxParticleScale=new c.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},c.Particles.Arcade.Emitter.prototype=Object.create(c.Group.prototype),c.Particles.Arcade.Emitter.prototype.constructor=c.Particles.Arcade.Emitter,c.Particles.Arcade.Emitter.prototype.update=function(){this.on&&this.game.time.time>=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit())},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=c.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=c.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},c.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0) diff --git a/build/custom/phaser-no-physics.js b/build/custom/phaser-no-physics.js index 9c19b56f40..c08961846c 100644 --- a/build/custom/phaser-no-physics.js +++ b/build/custom/phaser-no-physics.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Dec 03 2014 09:34:03 +* v2.2.1 "Danabar" - Built: Thu Dec 04 2014 11:31:00 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -4782,7 +4782,7 @@ PIXI.PixiShader.defaultVertexSrc = [ 'void main(void) {', ' gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);', ' vTextureCoord = aTextureCoord;', - ' vColor = aColor;', + ' vColor = vec4(aColor.rgb * aColor.a, aColor.a);', '}' ]; /** @@ -7648,7 +7648,7 @@ PIXI.WebGLSpriteBatch.prototype.render = function(sprite) // color and alpha var tint = sprite.tint; - colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.alpha * 255 << 24); + colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.worldAlpha * 255 << 24); // increment the batchsize this.sprites[this.currentBatchSize++] = sprite; @@ -12238,7 +12238,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) */ var Phaser = Phaser || { - VERSION: '2.2.0', + VERSION: '2.2.1', GAMES: [], AUTO: 0, @@ -26220,7 +26220,7 @@ Phaser.Game.prototype = { } else { - this.debug = { preUpdate: function () {}, update: function () {} }; + this.debug = { preUpdate: function () {}, update: function () {}, reset: function () {} }; } this.showDebugHeader(); @@ -48604,7 +48604,7 @@ Phaser.TweenManager.prototype = { { for (i = 0, len = this._tweens.length; i < len; i++) { - if (obj === this._tweens[i]._object) + if (obj === this._tweens[i].target) { this.remove(this._tweens[i]); } @@ -48612,7 +48612,7 @@ Phaser.TweenManager.prototype = { for (i = 0, len = this._add.length; i < len; i++) { - if (obj === this._add[i]._object) + if (obj === this._add[i].target) { this.remove(this._add[i]); } @@ -48727,7 +48727,7 @@ Phaser.TweenManager.prototype = { isTweening: function(object) { return this._tweens.some(function(tween) { - return tween._object === object; + return tween.target === object; }); }, @@ -52645,7 +52645,7 @@ Object.defineProperty(Phaser.AnimationManager.prototype, 'frame', { set: function (value) { - if (typeof value === 'number' && this._frameData.getFrame(value) !== null) + if (typeof value === 'number' && this._frameData && this._frameData.getFrame(value) !== null) { this.currentFrame = this._frameData.getFrame(value); diff --git a/build/custom/phaser-no-physics.min.js b/build/custom/phaser-no-physics.min.js index 3fae18749a..1e25e4e051 100644 --- a/build/custom/phaser-no-physics.min.js +++ b/build/custom/phaser-no-physics.min.js @@ -1,17 +1,17 @@ -/* Phaser (NP) v2.2.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +/* Phaser (NP) v2.2.1 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ (function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.0",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.dontSayHello=!1,b.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://www.pixijs.com/");b.dontSayHello=!0}},b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),a[0]instanceof b.Point){for(var c=[],d=0,e=a.length;e>d;d++)c.push(a[d].x,a[d].y);a=c}this.closed=!0,this.points=a},b.Polygon.prototype.clone=function(){var a=this.points.slice();return new b.Polygon(a)},b.Polygon.prototype.contains=function(a,b){for(var c=!1,d=this.points.length/2,e=0,f=d-1;d>e;f=e++){var g=this.points[2*e],h=this.points[2*e+1],i=this.points[2*f],j=this.points[2*f+1],k=h>b!=j>b&&(i-g)*(b-h)/(j-h)+g>a;k&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new b.Float32Array(9));var c=this.array;return a?(c[0]=this.a,c[1]=this.b,c[2]=0,c[3]=this.c,c[4]=this.d,c[5]=0,c[6]=this.tx,c[7]=this.ty,c[8]=1):(c[0]=this.a,c[1]=this.c,c[2]=this.tx,c[3]=this.b,c[4]=this.d,c[5]=this.ty,c[6]=0,c[7]=0,c[8]=1),c},b.Matrix.prototype.apply=function(a,c){return c=c||new b.Point,c.x=this.a*a.x+this.c*a.y+this.tx,c.y=this.b*a.x+this.d*a.y+this.ty,c},b.Matrix.prototype.applyInverse=function(a,c){c=c||new b.Point;var d=1/(this.a*this.d+this.c*-this.b);return c.x=this.d*d*a.x+-this.c*d*a.y+(this.ty*this.c-this.tx*this.d)*d,c.y=this.a*d*a.y+-this.b*d*a.x+(-this.ty*this.a+this.tx*this.b)*d,c},b.Matrix.prototype.translate=function(a,b){return this.tx+=a,this.ty+=b,this},b.Matrix.prototype.scale=function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},b.Matrix.prototype.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},b.Matrix.prototype.append=function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},b.Matrix.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},b.identityMatrix=new b.Matrix,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.RoundedRectangle=function(a,b,c,d,e){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0,this.radius=e||20},b.RoundedRectangle.prototype.clone=function(){return new b.RoundedRectangle(this.x,this.y,this.width,this.height,this.radius)},b.RoundedRectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.RoundedRectangle.prototype.constructor=b.RoundedRectangle,b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.transformCallback=null,this.transformCallbackContext=null,this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform=b.DisplayObjectContainer.prototype.updateTransform,b.DisplayObjectContainer.prototype.getBounds=function(){if(0===this.children.length)return b.EmptyRectangle;for(var a,c,d,e=1/0,f=1/0,g=-1/0,h=-1/0,i=!1,j=0,k=this.children.length;k>j;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a||b.Texture.emptyTexture,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.shader=null,this.texture.baseTexture.hasLoaded?this.onTextureUpdate():this.texture.on("update",this.onTextureUpdate.bind(this)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.b,k=h.c,l=h.d,m=h.tx,n=h.ty,o=-1/0,p=-1/0,q=1/0,r=1/0;if(0===j&&0===k)0>i&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)&&this.renderable){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(!(this.visible===!1||0===this.alpha||this.renderable===!1||this.texture.crop.width<=0||this.texture.crop.height<=0)){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a),this.texture.valid){var c=this.texture.baseTexture.resolution/a.resolution;a.context.globalAlpha=this.worldAlpha,a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var d=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,e=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;a.roundPixels?(a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution|0,this.worldTransform.ty*a.resolution|0),d=0|d,e=0|e):a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution,this.worldTransform.ty*a.resolution),16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)}for(var f=0,g=this.children.length;g>f;f++)this.children[f]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.prototype.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){this.displayObjectUpdateTransform()},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){if(this.visible&&!(this.alpha<=0)&&this.children.length){var b=a.context;b.globalAlpha=this.worldAlpha,this.displayObjectUpdateTransform();for(var c=this.worldTransform,d=!0,e=0;ei;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(c.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}c.descent=i-g,c.fontSize=c.ascent+c.descent,b.Text.fontPropertiesCache[a]=c}return c},b.Text.prototype.wordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},function(a){for(var b=0,c=["ms","moz","webkit","o"],d=0;d>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){return function(a){function b(){for(var d=arguments.length,f=new Array(d);d--;)f[d]=arguments[d];return f=e.concat(f),c.apply(this instanceof b?this:a,f)}var c=this,d=arguments.length-1,e=[];if(d>0)for(e.length=d;d--;)e[d]=arguments[d+1];if("function"!=typeof c)throw new TypeError;return b.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(c.prototype),b}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.EventTarget={call:function(a){a&&(a=a.prototype||a,b.EventTarget.mixin(a))},mixin:function(a){a.listeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?this._listeners[a].slice():[]},a.emit=a.dispatchEvent=function(a,c){if(this._listeners=this._listeners||{},"object"==typeof a&&(c=a,a=a.type),c&&c.__isEventObject===!0||(c=new b.Event(this,a,c)),this._listeners&&this._listeners[a]){var d,e=this._listeners[a].slice(0),f=e.length,g=e[0];for(d=0;f>d;g=e[++d])if(g.call(this,c),c.stoppedImmediate)return this;if(c.stopped)return this -}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{};var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)) -},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.anchor.x,i=a.anchor.y;if(b.trim){var j=b.trim;e=j.x-h*j.width,d=e+b.crop.width,g=j.y-i*j.height,f=g+b.crop.height}else d=b.frame.width*(1-h),e=b.frame.width*-h,f=b.frame.height*(1-i),g=b.frame.height*-i;var k=4*this.currentBatchSize*this.vertSize,l=b.baseTexture.resolution,m=a.worldTransform,n=m.a/l,o=m.b/l,p=m.c/l,q=m.d/l,r=m.tx,s=m.ty,t=this.colors,u=this.positions;this.renderSession.roundPixels?(u[k]=n*e+p*g+r|0,u[k+1]=q*g+o*e+s|0,u[k+5]=n*d+p*g+r|0,u[k+6]=q*g+o*d+s|0,u[k+10]=n*d+p*f+r|0,u[k+11]=q*f+o*d+s|0,u[k+15]=n*e+p*f+r|0,u[k+16]=q*f+o*e+s|0):(u[k]=n*e+p*g+r,u[k+1]=q*g+o*e+s,u[k+5]=n*d+p*g+r,u[k+6]=q*g+o*d+s,u[k+10]=n*d+p*f+r,u[k+11]=q*f+o*d+s,u[k+15]=n*e+p*f+r,u[k+16]=q*f+o*e+s),u[k+2]=c.x0,u[k+3]=c.y0,u[k+7]=c.x1,u[k+8]=c.y1,u[k+12]=c.x2,u[k+13]=c.y2,u[k+17]=c.x3,u[k+18]=c.y3;var v=a.tint;t[k+4]=t[k+9]=t[k+14]=t[k+19]=(v>>16)+(65280&v)+((255&v)<<16)+(255*a.alpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.tint,j=(i>>16)+(65280&i)+((255&i)<<16)+(255*a.alpha<<24),k=this.positions,l=this.colors,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=c.baseTexture.resolution,w=a.worldTransform,x=w.a/v,y=w.b/v,z=w.c/v,A=w.d/v,B=w.tx,C=w.ty;k[u++]=x*r+z*t+B,k[u++]=A*t+y*r+C,k[u++]=d.x0,k[u++]=d.y0,l[u++]=j,k[u++]=x*q+z*t+B,k[u++]=A*t+y*q+C,k[u++]=d.x1,k[u++]=d.y1,l[u++]=j,k[u++]=x*q+z*s+B,k[u++]=A*s+y*q+C,k[u++]=d.x2,k[u++]=d.y2,l[u++]=j,k[u++]=x*r+z*s+B,k[u++]=A*s+y*r+C,k[u++]=d.x3,k[u++]=d.y3,l[u++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath() -}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.b*g,f.c*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d||e.baseTexture.width!==c||e.baseTexture.height||d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x) +}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{};var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)) +},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.anchor.x,i=a.anchor.y;if(b.trim){var j=b.trim;e=j.x-h*j.width,d=e+b.crop.width,g=j.y-i*j.height,f=g+b.crop.height}else d=b.frame.width*(1-h),e=b.frame.width*-h,f=b.frame.height*(1-i),g=b.frame.height*-i;var k=4*this.currentBatchSize*this.vertSize,l=b.baseTexture.resolution,m=a.worldTransform,n=m.a/l,o=m.b/l,p=m.c/l,q=m.d/l,r=m.tx,s=m.ty,t=this.colors,u=this.positions;this.renderSession.roundPixels?(u[k]=n*e+p*g+r|0,u[k+1]=q*g+o*e+s|0,u[k+5]=n*d+p*g+r|0,u[k+6]=q*g+o*d+s|0,u[k+10]=n*d+p*f+r|0,u[k+11]=q*f+o*d+s|0,u[k+15]=n*e+p*f+r|0,u[k+16]=q*f+o*e+s|0):(u[k]=n*e+p*g+r,u[k+1]=q*g+o*e+s,u[k+5]=n*d+p*g+r,u[k+6]=q*g+o*d+s,u[k+10]=n*d+p*f+r,u[k+11]=q*f+o*d+s,u[k+15]=n*e+p*f+r,u[k+16]=q*f+o*e+s),u[k+2]=c.x0,u[k+3]=c.y0,u[k+7]=c.x1,u[k+8]=c.y1,u[k+12]=c.x2,u[k+13]=c.y2,u[k+17]=c.x3,u[k+18]=c.y3;var v=a.tint;t[k+4]=t[k+9]=t[k+14]=t[k+19]=(v>>16)+(65280&v)+((255&v)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.tint,j=(i>>16)+(65280&i)+((255&i)<<16)+(255*a.alpha<<24),k=this.positions,l=this.colors,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=c.baseTexture.resolution,w=a.worldTransform,x=w.a/v,y=w.b/v,z=w.c/v,A=w.d/v,B=w.tx,C=w.ty;k[u++]=x*r+z*t+B,k[u++]=A*t+y*r+C,k[u++]=d.x0,k[u++]=d.y0,l[u++]=j,k[u++]=x*q+z*t+B,k[u++]=A*t+y*q+C,k[u++]=d.x1,k[u++]=d.y1,l[u++]=j,k[u++]=x*q+z*s+B,k[u++]=A*s+y*q+C,k[u++]=d.x2,k[u++]=d.y2,l[u++]=j,k[u++]=x*r+z*s+B,k[u++]=A*s+y*r+C,k[u++]=d.x3,k[u++]=d.y3,l[u++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath() +}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.b*g,f.c*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d||e.baseTexture.width!==c||e.baseTexture.height||d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.1",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x) },c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Ellipse=function(a,b,d,e){this.type=c.ELLIPSE,a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},c.Ellipse.prototype.getBounds=function(){return new c.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=c.Ellipse,c.Polygon=function(){this.type=c.POLYGON,this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0},c.Polygon.prototype={clone:function(a){var b=this._points.slice();return"undefined"==typeof a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){for(var c=this._points.length,d=!1,e=-1,f=c-1;++e=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,d=0,e=a.length;e>d;d++){if("number"==typeof a[d]){var f=new c.Point(a[d],a[d+1]);d++}else var f=new c.Point(a[d].x,a[d].y);this._points.push(f),f.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),PIXI.Graphics.prototype.lineStyle=function(a,b,c){if(this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=arguments.length<3?1:c,this.currentPath){if(this.currentPath.shape.points.length)return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))),this;this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha}return this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f){var g,h=a+Math.cos(d)*c,i=b+Math.sin(d)*c;if(this.currentPath?(g=this.currentPath.shape.points,0===g.length?g.push(h,i):(g[g.length-2]!==h||g[g.length-1]!==i)&&g.push(h,i)):(this.moveTo(h,i),g=this.currentPath.shape.points),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var j=f?-1*(d-e):e-d,k=Math.abs(j)/(2*Math.PI)*40;if(0===j)return this;for(var l=j/(2*k),m=2*l,n=Math.cos(l),o=Math.sin(l),p=k-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);g.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){return a instanceof Array||(a=Array.prototype.slice.call(arguments)),this.drawShape(new PIXI.Polygon(a)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this},PIXI.Graphics.prototype.generateTexture=function(a,b){a=a||1;var c=this.getBounds(),d=new PIXI.CanvasBuffer(c.width*a,c.height*a),e=PIXI.Texture.fromCanvas(d.canvas,b);return e.baseTexture.resolution=a,d.context.scale(a,a),d.context.translate(-c.x,-c.y),PIXI.CanvasGraphics.renderGraphics(this,d.context),e},PIXI.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,c.tx*d,c.ty*d),PIXI.CanvasGraphics.renderGraphics(this,b);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(this.isMask)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;return x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._bounds},PIXI.Graphics.prototype.updateLocalBounds=function(){var a=1/0,b=-1/0,c=1/0,d=-1/0;if(this.graphicsData.length)for(var e,f,g,h,i,j,k=0;kg?g:a,b=g+i>b?g+i:b,c=c>h?h:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.CIRC)g=e.x,h=e.y,i=e.radius+n/2,j=e.radius+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.ELIP)g=e.x,h=e.y,i=e.width+n/2,j=e.height+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else{f=e.points;for(var o=0;og-n?g-n:a,b=g+n>b?g+n:b,c=c>h-n?h-n:c,d=h+n>d?h+n:d}}else a=0,b=0,c=0,d=0;var p=this.boundsPadding;this._localBounds.x=a-p,this._localBounds.width=b-a+2*p,this._localBounds.y=c-p,this._localBounds.height=d-c+2*p},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.Graphics.POLY=0,PIXI.Graphics.RECT=1,PIXI.Graphics.CIRC=2,PIXI.Graphics.ELIP=3,PIXI.Graphics.RREC=4,PIXI.Polygon.prototype.type=PIXI.Graphics.POLY,PIXI.Rectangle.prototype.type=PIXI.Graphics.RECT,PIXI.Circle.prototype.type=PIXI.Graphics.CIRC,PIXI.Ellipse.prototype.type=PIXI.Graphics.ELIP,PIXI.RoundedRectangle.prototype.type=PIXI.Graphics.RREC,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.screenView=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={preUpdate:function(){this.totalInView=0},follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},resize:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return(this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render)&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics },unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[])},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===c.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===c.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},c.StateManager.prototype.constructor=c.StateManager,c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e){var f,g=this._indexOfListener(a,d);if(-1!==g){if(f=this._bindings[g],f.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else f=new c.SignalBinding(this,a,b,d,e),this._addBinding(f);return this.memorize&&this._prevParams&&f.execute(this._prevParams),f},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;"undefined"==typeof b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){return this.validateListener(a,"add"),this._registerListener(a,!1,b,c)},addOnce:function(a,b,c){return this.validateListener(a,"addOnce"),this._registerListener(a,!0,b,c)},remove:function(a,b){this.validateListener(a,"remove");var c=this._indexOfListener(a,b);return-1!==c&&(this._bindings[c]._destroy(),this._bindings.splice(c,1)),a},removeAll:function(a){if("undefined"==typeof a&&(a=null),this._bindings){for(var b=this._bindings.length;b--;)a?this._bindings[b].context===a&&(this._bindings[b]._destroy(),this._bindings.splice(b,1)):this._bindings[b]._destroy();a||(this._bindings.length=0)}},getNumListeners:function(){return this._bindings?this._bindings.length:0},halt:function(){this._shouldPropagate=!1},dispatch:function(){if(this.active&&this._bindings){var a,b=Array.prototype.slice.call(arguments),c=this._bindings.length;if(this.memorize&&(this._prevParams=b),c){a=this._bindings.slice(),this._shouldPropagate=!0;do c--;while(a[c]&&this._shouldPropagate&&a[c].execute(b)!==!1)}}},forget:function(){this._prevParams&&(this._prevParams=null)},dispose:function(){this.removeAll(),this._bindings=null,this._prevParams&&(this._prevParams=null)},toString:function(){return"[Phaser.Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}},Object.defineProperty(c.Signal.prototype,"boundDispatch",{get:function(){var a=this;return this._boundDispatch||(this._boundDispatch=function(){return a.dispatch.apply(a,arguments)})}}),c.Signal.prototype.constructor=c.Signal,c.SignalBinding=function(a,b,c,d,e){this._listener=b,c&&(this._isOnce=!0),null!=d&&(this.context=d),this._signal=a,e&&(this._priority=e)},c.SignalBinding.prototype={context:null,_isOnce:!1,_priority:0,callCount:0,active:!0,params:null,execute:function(a){var b,c;return this.active&&this._listener&&(c=this.params?this.params.concat(a):a,b=this._listener.apply(this.context,c),this.callCount++,this._isOnce&&this.detach()),b},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal,delete this._listener,delete this.context},toString:function(){return"[Phaser.SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}},c.SignalBinding.prototype.constructor=c.SignalBinding,c.Filter=function(a,b,d){this.game=a,this.type=c.WEBGL_FILTER,this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.prevPoint=new c.Point;var e=new Date;if(this.uniforms={resolution:{type:"2f",value:{x:256,y:256}},time:{type:"1f",value:0},mouse:{type:"2f",value:{x:0,y:0}},date:{type:"4fv",value:[e.getFullYear(),e.getMonth(),e.getDate(),60*e.getHours()*60+60*e.getMinutes()+e.getSeconds()]},sampleRate:{type:"1f",value:44100},iChannel0:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel1:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel2:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel3:{type:"sampler2D",value:null,textureData:{repeat:!0}}},b)for(var f in b)this.uniforms[f]=b[f];this.fragmentSrc=d||[]},c.Filter.prototype={init:function(){},setResolution:function(a,b){this.uniforms.resolution.value.x=a,this.uniforms.resolution.value.y=b},update:function(a){if("undefined"!=typeof a){var b=a.x/this.game.width,c=1-a.y/this.game.height;(b!==this.prevPoint.x||c!==this.prevPoint.y)&&(this.uniforms.mouse.value.x=b.toFixed(2),this.uniforms.mouse.value.y=c.toFixed(2),this.prevPoint.set(b,c))}this.uniforms.time.value=this.game.time.totalElapsedSeconds()},destroy:function(){this.game=null}},c.Filter.prototype.constructor=c.Filter,Object.defineProperty(c.Filter.prototype,"width",{get:function(){return this.uniforms.resolution.value.x},set:function(a){this.uniforms.resolution.value.x=a}}),Object.defineProperty(c.Filter.prototype,"height",{get:function(){return this.uniforms.resolution.value.y},set:function(a){this.uniforms.resolution.value.y=a}}),c.Plugin=function(a,b){"undefined"==typeof b&&(b=null),this.game=a,this.parent=b,this.active=!1,this.visible=!1,this.hasPreUpdate=!1,this.hasUpdate=!1,this.hasPostUpdate=!1,this.hasRender=!1,this.hasPostRender=!1},c.Plugin.prototype={preUpdate:function(){},update:function(){},render:function(){},postRender:function(){},destroy:function(){this.game=null,this.parent=null,this.active=!1,this.visible=!1}},c.Plugin.prototype.constructor=c.Plugin,c.PluginManager=function(a){this.game=a,this.plugins=[],this._len=0,this._i=0},c.PluginManager.prototype={add:function(a){var b=Array.prototype.splice.call(arguments,1),c=!1;return"function"==typeof a?a=new a(this.game,this):(a.game=this.game,a.parent=this),"function"==typeof a.preUpdate&&(a.hasPreUpdate=!0,c=!0),"function"==typeof a.update&&(a.hasUpdate=!0,c=!0),"function"==typeof a.postUpdate&&(a.hasPostUpdate=!0,c=!0),"function"==typeof a.render&&(a.hasRender=!0,c=!0),"function"==typeof a.postRender&&(a.hasPostRender=!0,c=!0),c?((a.hasPreUpdate||a.hasUpdate||a.hasPostUpdate)&&(a.active=!0),(a.hasRender||a.hasPostRender)&&(a.visible=!0),this._len=this.plugins.push(a),"function"==typeof a.init&&a.init.apply(a,b),a):null},remove:function(a){for(this._i=this._len;this._i--;)if(this.plugins[this._i]===a)return a.destroy(),this.plugins.splice(this._i,1),void this._len--},removeAll:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].destroy();this.plugins.length=0,this._len=0},preUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPreUpdate&&this.plugins[this._i].preUpdate()},update:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasUpdate&&this.plugins[this._i].update()},postUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPostUpdate&&this.plugins[this._i].postUpdate()},render:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasRender&&this.plugins[this._i].render()},postRender:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasPostRender&&this.plugins[this._i].postRender()},destroy:function(){this.removeAll(),this.game=null}},c.PluginManager.prototype.constructor=c.PluginManager,c.Stage=function(a){this.game=a,PIXI.Stage.call(this,0),this.name="_stage_root",this.interactive=!1,this.disableVisibilityChange=!1,this.exists=!0,this.currentRenderOrderID=0,this._hiddenVar="hidden",this._backgroundColor=0,a.config&&this.parseConfig(a.config)},c.Stage.prototype=Object.create(PIXI.Stage.prototype),c.Stage.prototype.constructor=c.Stage,c.Stage.prototype.parseConfig=function(a){a.disableVisibilityChange&&(this.disableVisibilityChange=a.disableVisibilityChange),a.backgroundColor&&(this.backgroundColor=a.backgroundColor)},c.Stage.prototype.boot=function(){c.DOM.getOffset(this.game.canvas,this.offset);var a=this;this._onChange=function(b){return a.visibilityChange(b)},c.Canvas.setUserSelect(this.game.canvas,"none"),c.Canvas.setTouchAction(this.game.canvas,"none"),this.checkVisibility()},c.Stage.prototype.preUpdate=function(){this.currentRenderOrderID=0;for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return PIXI.scaleModes.DEFAULT===PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.DEFAULT=a?PIXI.scaleModes.LINEAR:PIXI.scaleModes.NEAREST}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",this.z=0,PIXI.DisplayObjectContainer.call(this),e?(this.game.stage.addChild(this),this.z=this.game.stage.children.length):b&&(b.addChild(this),this.z=b.children.length),this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup$dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup$dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){var c;if(arguments.length>2){c=[];for(var d=2;dd;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}var e;if(arguments.length>2){e=[];for(var f=2;ff;f++)g=this.callbackFromArray(this.children[f],a,c),b&&g?(h=this.callbackFromArray(this.children[f],b,d),g&&g.apply(h,e)):g&&g.apply(this.children[f],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=[];++dd;d++)(!c||c&&this.children[d].exists)&&a.call(b,this.children[d]);else{for(var f=[null],d=3;dd;d++)(!c||c&&this.children[d].exists)&&(f[0]=this.children[d],a.apply(b,f))}},c.Group.prototype.forEachExists=function(a,b){var d;if(arguments.length>2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g?(g[0]=this.children[i],e.apply(f,g)):e.call(f,this.children[i])),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:null},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setScreenSize=c.ScaleManager.prototype.updateLayout,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.lockRender=!1,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug?(this.debug=new c.Utils.Debug(this),this.debug.boot()):this.debug={preUpdate:function(){},update:function(){}},this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start())},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setScreenSize=c.ScaleManager.prototype.updateLayout,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.lockRender=!1,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug?(this.debug=new c.Utils.Debug(this),this.debug.boot()):this.debug={preUpdate:function(){},update:function(){},reset:function(){}},this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start())},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown$dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp$dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp$dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart$dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a},c.Events.prototype={destroy:function(){this._parent=null,this._onDestroy&&this._onDestroy.dispose(),this._onAddedToGroup&&this._onAddedToGroup.dispose(),this._onRemovedFromGroup&&this._onRemovedFromGroup.dispose(),this._onRemovedFromWorld&&this._onRemovedFromWorld.dispose(),this._onKilled&&this._onKilled.dispose(),this._onRevived&&this._onRevived.dispose(),this._onOutOfBounds&&this._onOutOfBounds.dispose(),this._onInputOver&&this._onInputOver.dispose(),this._onInputOut&&this._onInputOut.dispose(),this._onInputDown&&this._onInputDown.dispose(),this._onInputUp&&this._onInputUp.dispose(),this._onDragStart&&this._onDragStart.dispose(),this._onDragStop&&this._onDragStop.dispose(),this._onAnimationStart&&this._onAnimationStart.dispose(),this._onAnimationComplete&&this._onAnimationComplete.dispose(),this._onAnimationLoop&&this._onAnimationLoop.dispose()},onAddedToGroup:null,onRemovedFromGroup:null,onRemovedFromWorld:null,onDestroy:null,onKilled:null,onRevived:null,onOutOfBounds:null,onEnterBounds:null,onInputOver:null,onInputOut:null,onInputDown:null,onInputUp:null,onDragStart:null,onDragStop:null,onAnimationStart:null,onAnimationComplete:null,onAnimationLoop:null},c.Events.prototype.constructor=c.Events;for(var e in c.Events.prototype)if(c.Events.prototype.hasOwnProperty(e)&&0===e.indexOf("on")&&null===c.Events.prototype[e]){var f="this._"+e,g=e+"$dispatch";Object.defineProperty(c.Events.prototype,e,{get:new Function("return "+f+" || ("+f+" = new Phaser.Signal())")}),c.Events.prototype[g]=new Function("return "+f+" ? "+f+".dispatch.apply("+f+", arguments) : null")}c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f)) },text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof b||null===b)&&(b=!1),("undefined"==typeof d||null===d)&&(d=!1),a||b||d){"undefined"==typeof e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=c.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){"undefined"==typeof a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return"undefined"==typeof a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(("undefined"==typeof a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}return("undefined"==typeof b||null===b)&&(b=0),("undefined"==typeof d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),("undefined"==typeof g||null===g)&&(g=b),("undefined"==typeof h||null===h)&&(h=d),("undefined"==typeof i||null===i)&&(i=this._size.x),("undefined"==typeof j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),"undefined"==typeof q&&(q=null),"undefined"==typeof r&&(r=!1),this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y?void 0:(this._alpha.prev=this.context.globalAlpha,this.context.save(),this.context.globalAlpha=this._alpha.current,q&&(this.context.globalCompositeOperation=q),r&&(g|=0,h|=0),this.context.translate(g,h),this.context.scale(this._scale.x,this._scale.y),this.context.rotate(this._rotate),this.context.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),this.context.restore(),this.context.globalAlpha=this._alpha.prev,this.dirty=!0,this)},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},shadow:function(a,b,c,d){"undefined"==typeof a||null===a?this.context.shadowColor="rgba(0,0,0,0)":(this.context.shadowColor=a,this.context.shadowBlur=b||5,this.context.shadowOffsetX=c||10,this.context.shadowOffsetY=d||10)},alphaMask:function(a,b,c,d){return"undefined"==typeof d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),"undefined"==typeof c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},circle:function(a,b,c,d){return"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill(),this},textureLine:function(a,b,d){if("undefined"==typeof d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;return"no-repeat"===d&&e>b.width&&(e=b.width),this.context.fillStyle=this.context.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),this.context.save(),this.context.translate(this._pos.x,this._pos.y),this.context.rotate(a.angle),this.context.fillRect(0,0,e,b.height),this.context.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},blendReset:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceOver:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceIn:function(){return this.context.globalCompositeOperation="source-in",this},blendSourceOut:function(){return this.context.globalCompositeOperation="source-out",this},blendSourceAtop:function(){return this.context.globalCompositeOperation="source-atop",this},blendDestinationOver:function(){return this.context.globalCompositeOperation="destination-over",this},blendDestinationIn:function(){return this.context.globalCompositeOperation="destination-in",this},blendDestinationOut:function(){return this.context.globalCompositeOperation="destination-out",this},blendDestinationAtop:function(){return this.context.globalCompositeOperation="destination-atop",this},blendXor:function(){return this.context.globalCompositeOperation="xor",this},blendAdd:function(){return this.context.globalCompositeOperation="lighter",this},blendMultiply:function(){return this.context.globalCompositeOperation="multiply",this},blendScreen:function(){return this.context.globalCompositeOperation="screen",this},blendOverlay:function(){return this.context.globalCompositeOperation="overlay",this},blendDarken:function(){return this.context.globalCompositeOperation="darken",this},blendLighten:function(){return this.context.globalCompositeOperation="lighten",this},blendColorDodge:function(){return this.context.globalCompositeOperation="color-dodge",this},blendColorBurn:function(){return this.context.globalCompositeOperation="color-burn",this},blendHardLight:function(){return this.context.globalCompositeOperation="hard-light",this},blendSoftLight:function(){return this.context.globalCompositeOperation="soft-light",this},blendDifference:function(){return this.context.globalCompositeOperation="difference",this},blendExclusion:function(){return this.context.globalCompositeOperation="exclusion",this},blendHue:function(){return this.context.globalCompositeOperation="hue",this},blendSaturation:function(){return this.context.globalCompositeOperation="saturation",this},blendColor:function(){return this.context.globalCompositeOperation="color",this},blendLuminosity:function(){return this.context.globalCompositeOperation="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.SPRITE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this.scaleMin=null,this.scaleMax=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds$dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Sprite.prototype.update=function(){},c.Sprite.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Sprite.prototype.loadTexture=function(a,b,d){b=b||0,(d||"undefined"==typeof d)&&this.animations.stop(),this.key=a;var e=!0,f=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(e=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),e=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),e&&(this._frame=c.Rectangle.clone(this.texture.frame)),f||(this.smoothed=!1)},c.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Sprite.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived$dispatch(this),this},c.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this},c.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},c.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},c.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},c.Sprite.prototype.overlap=function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())},c.Sprite.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Sprite.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Sprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"inCamera",{get:function(){return this.autoCull||this.checkWorldBounds||(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y),this.game.world.camera.view.intersects(this._bounds)}}),Object.defineProperty(c.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(c.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(c.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(c.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(c.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(c.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=c.IMAGE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.alive=!0,this.autoCull=!1,this.input=null,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this._bounds.copyFrom(this.getBounds()),this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Image.prototype.update=function(){},c.Image.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Image.prototype.loadTexture=function(a,b){b=b||0,this.key=a;var d=!0,e=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),d&&(this._frame=c.Rectangle.clone(this.texture.frame)),e||(this.smoothed=!1)},c.Image.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Image.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Image.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Image.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y; var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived$dispatch(this),this},c.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this},c.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy(),this.animations&&this.animations.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},c.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Image.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Image.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Image.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},c.TileSprite.prototype.update=function(){},c.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},c.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},c.TileSprite.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty()},c.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.alive=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.TileSprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.ROPE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,this._frame=0,this._frameName="",this._scroll=new c.Point,PIXI.Rope.call(this,e,this.points),this.position.set(b,d),this.input=null,this.world=new c.Point(b,d),this.autoCull=!1,this.checkWorldBounds=!1,this.cameraOffset=new c.Point,this.body=null,this._cache=[0,0,0,0,1,0,1,0,0],this.loadTexture(e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Rope.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;(this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds&&(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds)?(this._cache[5]=0,this.events.onEnterBounds$dispatch(this)):0!==this._cache[5]||this.game.world.bounds.intersects(this._bounds)||(this._cache[5]=1,this.events.onOutOfBounds$dispatch(this))),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Rope.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},c.Rope.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.Rope.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Rope.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.Rope.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.Rope.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Rope.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.Rope.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.Rope.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Rope.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.Rope.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Rope.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;ka;a++)this.children[a].preUpdate();return!0},c.Text.prototype.update=function(){},c.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(!0),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Text.prototype.setShadow=function(a,b,c,d){"undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c="rgba(0, 0, 0, 1)"),"undefined"==typeof d&&(d=0),this.style.shadowOffsetX=a,this.style.shadowOffsetY=b,this.style.shadowColor=c,this.style.shadowBlur=d,this.dirty=!0},c.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},c.Text.prototype.updateText=function(){this.texture.baseTexture.resolution=this.resolution,this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=this.determineFontProperties(this.style.font),f=0;f0?this.updateLine(b[f],k,l):(this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(b[f],k,l),this.style.fill&&this.context.fillText(b[f],k,l));this.updateTexture()},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){"undefined"==typeof d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case c.RetroFont.ALIGN_LEFT:a=0;break;case c.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case c.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},c.RetroFont.prototype.pasteLine=function(a,b,d,e){for(var f=new c.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(b,d),this.render(this.stamp,f,!1),b+=this.characterWidth+e,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Particle=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},c.Particle.prototype=Object.create(c.Sprite.prototype),c.Particle.prototype.constructor=c.Particle,c.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},c.Particle.prototype.onEmit=function(){},c.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},c.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},c.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},c.Device=function(){this.deviceReadyAt=0,this.initialized=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.LITTLE_ENDIAN=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1},c.Device=new c.Device,c.Device.onInitialized=new c.Signal,c.Device.whenReady=function(a,b,c){var d=this._readyCheck;if(this.deviceReadyAt||!d)a.call(b,this);else if(d._monitor||c)d._queue=d._queue||[],d._queue.push([a,b]);else{d._monitor=d.bind(this),d._queue=d._queue||[],d._queue.push([a,b]);var e="undefined"!=typeof window.cordova,f=navigator.isCocoonJS;"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(d._monitor,0):e&&!f?document.addEventListener("deviceready",d._monitor,!1):(document.addEventListener("DOMContentLoaded",d._monitor,!1),window.addEventListener("load",d._monitor,!1))}},c.Device._readyCheck=function(){var a=this._readyCheck;if(document.body){if(!this.deviceReadyAt){this.deviceReadyAt=Date.now(),document.removeEventListener("deviceready",a._monitor),document.removeEventListener("DOMContentLoaded",a._monitor),window.removeEventListener("load",a._monitor),this._initialize(),this.initialized=!0,this.onInitialized.dispatch(this);for(var b;b=a._queue.shift();){var c=b[0],d=b[1];c.call(d,this)}this._readyCheck=null,this._initialize=null,this.onInitialized=null}}else window.setTimeout(a._monitor,20)},c.Device._initialize=function(){function a(){var a=navigator.userAgent;/Playstation Vita/.test(a)?k.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?k.kindle=!0:/Android/.test(a)?k.android=!0:/CrOS/.test(a)?k.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?k.iOS=!0:/Linux/.test(a)?k.linux=!0:/Mac OS/.test(a)?k.macOS=!0:/Windows/.test(a)&&(k.windows=!0,/Windows Phone/i.test(a)&&(k.windowsPhone=!0));var b=/Silk/.test(a);(k.windows||k.macOS||k.linux&&!b||k.chromeOS)&&(k.desktop=!0),(k.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(k.desktop=!1)}function b(){k.canvas=!!window.CanvasRenderingContext2D||k.cocoonJS;try{k.localStorage=!!localStorage.getItem}catch(a){k.localStorage=!1}k.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),k.fileSystem=!!window.requestFileSystem,k.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),k.webGL=null===k.webGL||k.webGL===!1?!1:!0,k.worker=!!window.Worker,k.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,k.quirksMode="CSS1Compat"===document.compatMode?!1:!0,k.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)}function c(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(k.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(k.mspointer=!0),k.cocoonJS||("onwheel"in window||k.ie&&"WheelEvent"in window?k.wheelEvent="wheel":"onmousewheel"in window?k.wheelEvent="mousewheel":k.firefox&&"MouseScrollEvent"in window&&(k.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var k=this;a(),f(),e(),j(),g(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"opus"==a&&this.opus?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return"undefined"==typeof b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.visualBounds:1===a.nodeType?this.getBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return document.documentElement.clientWidth},g=function(){return document.documentElement.clientHeight};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.Canvas={create:function(a,b,c){a=a||256,b=b||256;var d=document.createElement("canvas");return"string"==typeof c&&""!==c&&(d.id=c),d.width=a,d.height=b,d.style.display="block",d},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},getSmoothingEnabled:function(a){return a.imageSmoothingEnabled||a.mozImageSmoothingEnabled||a.oImageSmoothingEnabled||a.webkitImageSmoothingEnabled||a.msImageSmoothingEnabled},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style["image-rendering"]="pixelated",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.Canvas.getOffset=c.DOM.getOffset,c.Canvas.getAspectRatio=c.DOM.getAspectRatio,c.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},normalizeLatitude:function(a){return c.Math.clamp(a,-90,90)},normalizeLongitude:function(a){return c.Math.wrap(a,-180,180)},chanceRoll:function(a){return c.Utils.chanceRoll(a)},numberArray:function(a,b){return c.ArrayUtils.numberArray(a,b)},numberArrayStep:function(a,b,d){return c.ArrayUtils.numberArrayStep(a,b,d)},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,d){return c.Math.clamp(a,b,d)},randomSign:function(){return c.Utils.randomChoice(-1,1)},isOdd:function(a){return 1&a},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var l=Math.PI/180,m=180/Math.PI;c.Math.degToRad=function(a){return a*l},c.Math.radToDeg=function(a){return a*m},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d]._object&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d]._object&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b._object===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.repeatDelay=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if("undefined"==typeof a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this.onStart.dispatch(this.target,this),this},stop:function(a){return"undefined"==typeof a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},delay:function(a,b){if("undefined"==typeof b&&(b=0),-1===b)for(var c=0;c0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return"undefined"==typeof a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;"undefined"==typeof b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;this.vEnd[a]=[this.parent.properties[a]].concat(this.vEnd[a])}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(){if(!this.isRunning){if(!(this.game.time.time>=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var a in this.vEnd){var b=this.vStart[a],d=this.vEnd[a];this.parent.target[a]=Array.isArray(d)?this.interpolationFunction(d,this.value):b+(d-b)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time+this.delay,this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.physicsElapsed=1/this.desiredFps,this.physicsElapsedMS=1e3*this.physicsElapsed,this.advancedTiming&&(this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(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.game.paused){this.events.update(this.time);for(var c=0,d=this._timers.length;d>c;)this._timers[c].update(this.time)?c++:(this._timers.splice(c,1),d--)}},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.now,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){"undefined"==typeof b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if("undefined"==typeof a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames.length=0,this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a]},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0 -},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){"undefined"==typeof h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g,h){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name,this.uuid);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return"undefined"==typeof a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},c.FrameData.prototype.constructor=c.FrameData,Object.defineProperty(c.FrameData.prototype,"total",{get:function(){return this._frames.length}}),c.AnimationParser={spriteSheet:function(a,b,d,e,f,g,h){var i=a.cache.getImage(b);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new c.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[b],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,b,d){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var e,f=new c.FrameData,g=b.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new c.FrameData,r=b.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,b){if("undefined"==typeof b&&(b=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,b)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g=0&&(b=b.substr(0,b.indexOf("?"))),this.game.device.canPlayAudio(b))return a[c];return null},fileError:function(a){this._fileList[a].loaded=!0,this._fileList[a].error=!0,this.onFileError.dispatch(this._fileList[a].key,this._fileList[a]),console.warn("Phaser.Loader error loading file: "+this._fileList[a].key+" from URL "+this._fileList[a].url),this.nextFile(a,!1)},fileComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader fileComplete invalid index "+a);var b=this._fileList[a];b.loaded=!0;var d=!0;switch(b.type){case"image":this.game.cache.addImage(b.key,b.url,b.data);break;case"spritesheet":this.game.cache.addSpriteSheet(b.key,b.url,b.data,b.frameWidth,b.frameHeight,b.frameMax,b.margin,b.spacing);break;case"textureatlas":if(null==b.atlasURL)this.game.cache.addTextureAtlas(b.key,b.url,b.data,b.atlasData,b.format);else if(d=!1,b.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||b.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","jsonLoadComplete","dataLoadError");else{if(b.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+b.format);this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","xmlLoadComplete","dataLoadError")}break;case"bitmapfont":null==b.xmlURL?this.game.cache.addBitmapFont(b.key,b.url,b.data,b.xmlData,b.xSpacing,b.ySpacing):(d=!1,this.xhrLoad(this._fileIndex,this.baseURL+b.xmlURL,"text","xmlLoadComplete","dataLoadError"));break;case"audio":if(this.game.sound.usingWebAudio){if(b.data=this._xhr.response,this.game.cache.addSound(b.key,b.url,b.data,!0,!1),b.autoDecode){var e=this,f=b.key;this.game.cache.updateSound(f,"isDecoding",!0),this.game.sound.context.decodeAudioData(b.data,function(a){a&&(e.game.cache.decodedSound(f,a),e.game.sound.onSoundDecode.dispatch(f,e.game.cache.getSound(f)))})}}else b.data.removeEventListener("canplaythrough",c.GAMES[this.game.id].load.fileComplete),this.game.cache.addSound(b.key,b.url,b.data,!1,!0);break;case"text":b.data=this._xhr.responseText,this.game.cache.addText(b.key,b.url,b.data);break;case"physics":var g=JSON.parse(this._xhr.responseText);this.game.cache.addPhysicsData(b.key,b.url,g,b.format);break;case"script":b.data=document.createElement("script"),b.data.language="javascript",b.data.type="text/javascript",b.data.defer=!1,b.data.text=this._xhr.responseText,document.head.appendChild(b.data),b.callback&&(b.data=b.callback.call(b.callbackContext,b.key,this._xhr.responseText));break;case"binary":b.data=b.callback?b.callback.call(b.callbackContext,b.key,this._xhr.response):this._xhr.response,this.game.cache.addBinary(b.key,b.data)}d&&this.nextFile(a,!0)},jsonLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader jsonLoadComplete invalid index "+a);var b=this._fileList[a];if(this._ajax&&this._ajax.responseText)var c=JSON.parse(this._ajax.responseText);else var c=JSON.parse(this._xhr.responseText);b.loaded=!0,"tilemap"===b.type?this.game.cache.addTilemap(b.key,b.url,c,b.format):"json"===b.type?this.game.cache.addJSON(b.key,b.url,c):this.game.cache.addTextureAtlas(b.key,b.url,b.data,c,b.format),this.nextFile(a,!0)},csvLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader csvLoadComplete invalid index "+a);var b=this._fileList[a],c=this._xhr.responseText;b.loaded=!0,this.game.cache.addTilemap(b.key,b.url,c,b.format),this.nextFile(a,!0)},dataLoadError:function(a){var b=this._fileList[a];b.loaded=!0,b.error=!0,console.warn("Phaser.Loader dataLoadError: "+b.key),this.nextFile(a,!0)},xmlLoadComplete:function(a){""!==this._xhr.responseType&&"text"!==this._xhr.responseType&&(console.warn("Invalid XML Response Type",this._fileList[a]),console.warn(this._xhr));var b,c=this._xhr.responseText;try{if(window.DOMParser){var d=new DOMParser;b=d.parseFromString(c,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(c)}catch(e){b=void 0}if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw new Error("Phaser.Loader. Invalid XML given");var f=this._fileList[a];f.loaded=!0,"bitmapfont"===f.type?this.game.cache.addBitmapFont(f.key,f.url,f.data,b,f.xSpacing,f.ySpacing):"textureatlas"===f.type?this.game.cache.addTextureAtlas(f.key,f.url,f.data,b,f.format):"xml"===f.type&&this.game.cache.addXML(f.key,f.url,b),this.nextFile(a,!0)},nextFile:function(a,b){this.progressFloat+=this._progressChunk,this.progress=Math.round(this.progressFloat),this.progress>100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.updateCrop()),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this.isPlaying&&!this.allowMultiple&&(this.override||e)&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null===this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b){"undefined"==typeof b&&(b=!1),this.paused||(this.play("",0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if("undefined"==typeof a&&(a=1e3),"undefined"==typeof b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");var d=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0);d.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return("undefined"==typeof b||null===b)&&(b=c.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){"undefined"==typeof e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return j.color=c.Color.getColor(j.r,j.g,j.b),j.color32=c.Color.getColor32(j.a,j.r,j.g,j.b),c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){"undefined"==typeof a&&(a=.5),"undefined"==typeof b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){"undefined"==typeof f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=255),"undefined"==typeof d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D&&(null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset())},enable:function(a,b,d){"undefined"==typeof b&&(b=c.Physics.ARCADE),"undefined"==typeof d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d&&this.box2d.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}.call(this); \ No newline at end of file +for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var l=Math.PI/180,m=180/Math.PI;c.Math.degToRad=function(a){return a*l},c.Math.radToDeg=function(a){return a*m},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.repeatDelay=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if("undefined"==typeof a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this.onStart.dispatch(this.target,this),this},stop:function(a){return"undefined"==typeof a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},delay:function(a,b){if("undefined"==typeof b&&(b=0),-1===b)for(var c=0;c0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return"undefined"==typeof a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;"undefined"==typeof b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;this.vEnd[a]=[this.parent.properties[a]].concat(this.vEnd[a])}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(){if(!this.isRunning){if(!(this.game.time.time>=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var a in this.vEnd){var b=this.vStart[a],d=this.vEnd[a];this.parent.target[a]=Array.isArray(d)?this.interpolationFunction(d,this.value):b+(d-b)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time+this.delay,this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.physicsElapsed=1/this.desiredFps,this.physicsElapsedMS=1e3*this.physicsElapsed,this.advancedTiming&&(this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(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.game.paused){this.events.update(this.time);for(var c=0,d=this._timers.length;d>c;)this._timers[c].update(this.time)?c++:(this._timers.splice(c,1),d--)}},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.now,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){"undefined"==typeof b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if("undefined"==typeof a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames.length=0,this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a]},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0 +},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){"undefined"==typeof h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g,h){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name,this.uuid);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return"undefined"==typeof a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},c.FrameData.prototype.constructor=c.FrameData,Object.defineProperty(c.FrameData.prototype,"total",{get:function(){return this._frames.length}}),c.AnimationParser={spriteSheet:function(a,b,d,e,f,g,h){var i=a.cache.getImage(b);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new c.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[b],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,b,d){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var e,f=new c.FrameData,g=b.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new c.FrameData,r=b.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,b){if("undefined"==typeof b&&(b=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,b)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g=0&&(b=b.substr(0,b.indexOf("?"))),this.game.device.canPlayAudio(b))return a[c];return null},fileError:function(a){this._fileList[a].loaded=!0,this._fileList[a].error=!0,this.onFileError.dispatch(this._fileList[a].key,this._fileList[a]),console.warn("Phaser.Loader error loading file: "+this._fileList[a].key+" from URL "+this._fileList[a].url),this.nextFile(a,!1)},fileComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader fileComplete invalid index "+a);var b=this._fileList[a];b.loaded=!0;var d=!0;switch(b.type){case"image":this.game.cache.addImage(b.key,b.url,b.data);break;case"spritesheet":this.game.cache.addSpriteSheet(b.key,b.url,b.data,b.frameWidth,b.frameHeight,b.frameMax,b.margin,b.spacing);break;case"textureatlas":if(null==b.atlasURL)this.game.cache.addTextureAtlas(b.key,b.url,b.data,b.atlasData,b.format);else if(d=!1,b.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||b.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","jsonLoadComplete","dataLoadError");else{if(b.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+b.format);this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","xmlLoadComplete","dataLoadError")}break;case"bitmapfont":null==b.xmlURL?this.game.cache.addBitmapFont(b.key,b.url,b.data,b.xmlData,b.xSpacing,b.ySpacing):(d=!1,this.xhrLoad(this._fileIndex,this.baseURL+b.xmlURL,"text","xmlLoadComplete","dataLoadError"));break;case"audio":if(this.game.sound.usingWebAudio){if(b.data=this._xhr.response,this.game.cache.addSound(b.key,b.url,b.data,!0,!1),b.autoDecode){var e=this,f=b.key;this.game.cache.updateSound(f,"isDecoding",!0),this.game.sound.context.decodeAudioData(b.data,function(a){a&&(e.game.cache.decodedSound(f,a),e.game.sound.onSoundDecode.dispatch(f,e.game.cache.getSound(f)))})}}else b.data.removeEventListener("canplaythrough",c.GAMES[this.game.id].load.fileComplete),this.game.cache.addSound(b.key,b.url,b.data,!1,!0);break;case"text":b.data=this._xhr.responseText,this.game.cache.addText(b.key,b.url,b.data);break;case"physics":var g=JSON.parse(this._xhr.responseText);this.game.cache.addPhysicsData(b.key,b.url,g,b.format);break;case"script":b.data=document.createElement("script"),b.data.language="javascript",b.data.type="text/javascript",b.data.defer=!1,b.data.text=this._xhr.responseText,document.head.appendChild(b.data),b.callback&&(b.data=b.callback.call(b.callbackContext,b.key,this._xhr.responseText));break;case"binary":b.data=b.callback?b.callback.call(b.callbackContext,b.key,this._xhr.response):this._xhr.response,this.game.cache.addBinary(b.key,b.data)}d&&this.nextFile(a,!0)},jsonLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader jsonLoadComplete invalid index "+a);var b=this._fileList[a];if(this._ajax&&this._ajax.responseText)var c=JSON.parse(this._ajax.responseText);else var c=JSON.parse(this._xhr.responseText);b.loaded=!0,"tilemap"===b.type?this.game.cache.addTilemap(b.key,b.url,c,b.format):"json"===b.type?this.game.cache.addJSON(b.key,b.url,c):this.game.cache.addTextureAtlas(b.key,b.url,b.data,c,b.format),this.nextFile(a,!0)},csvLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader csvLoadComplete invalid index "+a);var b=this._fileList[a],c=this._xhr.responseText;b.loaded=!0,this.game.cache.addTilemap(b.key,b.url,c,b.format),this.nextFile(a,!0)},dataLoadError:function(a){var b=this._fileList[a];b.loaded=!0,b.error=!0,console.warn("Phaser.Loader dataLoadError: "+b.key),this.nextFile(a,!0)},xmlLoadComplete:function(a){""!==this._xhr.responseType&&"text"!==this._xhr.responseType&&(console.warn("Invalid XML Response Type",this._fileList[a]),console.warn(this._xhr));var b,c=this._xhr.responseText;try{if(window.DOMParser){var d=new DOMParser;b=d.parseFromString(c,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(c)}catch(e){b=void 0}if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw new Error("Phaser.Loader. Invalid XML given");var f=this._fileList[a];f.loaded=!0,"bitmapfont"===f.type?this.game.cache.addBitmapFont(f.key,f.url,f.data,b,f.xSpacing,f.ySpacing):"textureatlas"===f.type?this.game.cache.addTextureAtlas(f.key,f.url,f.data,b,f.format):"xml"===f.type&&this.game.cache.addXML(f.key,f.url,b),this.nextFile(a,!0)},nextFile:function(a,b){this.progressFloat+=this._progressChunk,this.progress=Math.round(this.progressFloat),this.progress>100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.updateCrop()),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this.isPlaying&&!this.allowMultiple&&(this.override||e)&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null===this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b){"undefined"==typeof b&&(b=!1),this.paused||(this.play("",0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if("undefined"==typeof a&&(a=1e3),"undefined"==typeof b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");var d=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0);d.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d); +return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return("undefined"==typeof b||null===b)&&(b=c.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){"undefined"==typeof e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return j.color=c.Color.getColor(j.r,j.g,j.b),j.color32=c.Color.getColor32(j.a,j.r,j.g,j.b),c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){"undefined"==typeof a&&(a=.5),"undefined"==typeof b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){"undefined"==typeof f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=255),"undefined"==typeof d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D&&(null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset())},enable:function(a,b,d){"undefined"==typeof b&&(b=c.Physics.ARCADE),"undefined"==typeof d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d&&this.box2d.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}.call(this); \ No newline at end of file diff --git a/build/custom/pixi.js b/build/custom/pixi.js index 9d426004a8..421ee404bd 100644 --- a/build/custom/pixi.js +++ b/build/custom/pixi.js @@ -4752,7 +4752,7 @@ PIXI.PixiShader.defaultVertexSrc = [ 'void main(void) {', ' gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);', ' vTextureCoord = aTextureCoord;', - ' vColor = aColor;', + ' vColor = vec4(aColor.rgb * aColor.a, aColor.a);', '}' ]; /** @@ -7618,7 +7618,7 @@ PIXI.WebGLSpriteBatch.prototype.render = function(sprite) // color and alpha var tint = sprite.tint; - colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.alpha * 255 << 24); + colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.worldAlpha * 255 << 24); // increment the batchsize this.sprites[this.currentBatchSize++] = sprite; diff --git a/build/custom/pixi.min.js b/build/custom/pixi.min.js index 9482609c80..0c03cdaa33 100644 --- a/build/custom/pixi.min.js +++ b/build/custom/pixi.min.js @@ -1,5 +1,5 @@ -/* Pixi.js custom build for Phaser v2.2.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +/* Pixi.js custom build for Phaser v2.2.1 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ (function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.0",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.dontSayHello=!1,b.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://www.pixijs.com/");b.dontSayHello=!0}},b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),a[0]instanceof b.Point){for(var c=[],d=0,e=a.length;e>d;d++)c.push(a[d].x,a[d].y);a=c}this.closed=!0,this.points=a},b.Polygon.prototype.clone=function(){var a=this.points.slice();return new b.Polygon(a)},b.Polygon.prototype.contains=function(a,b){for(var c=!1,d=this.points.length/2,e=0,f=d-1;d>e;f=e++){var g=this.points[2*e],h=this.points[2*e+1],i=this.points[2*f],j=this.points[2*f+1],k=h>b!=j>b&&(i-g)*(b-h)/(j-h)+g>a;k&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new b.Float32Array(9));var c=this.array;return a?(c[0]=this.a,c[1]=this.b,c[2]=0,c[3]=this.c,c[4]=this.d,c[5]=0,c[6]=this.tx,c[7]=this.ty,c[8]=1):(c[0]=this.a,c[1]=this.c,c[2]=this.tx,c[3]=this.b,c[4]=this.d,c[5]=this.ty,c[6]=0,c[7]=0,c[8]=1),c},b.Matrix.prototype.apply=function(a,c){return c=c||new b.Point,c.x=this.a*a.x+this.c*a.y+this.tx,c.y=this.b*a.x+this.d*a.y+this.ty,c},b.Matrix.prototype.applyInverse=function(a,c){c=c||new b.Point;var d=1/(this.a*this.d+this.c*-this.b);return c.x=this.d*d*a.x+-this.c*d*a.y+(this.ty*this.c-this.tx*this.d)*d,c.y=this.a*d*a.y+-this.b*d*a.x+(-this.ty*this.a+this.tx*this.b)*d,c},b.Matrix.prototype.translate=function(a,b){return this.tx+=a,this.ty+=b,this},b.Matrix.prototype.scale=function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},b.Matrix.prototype.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},b.Matrix.prototype.append=function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},b.Matrix.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},b.identityMatrix=new b.Matrix,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.RoundedRectangle=function(a,b,c,d,e){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0,this.radius=e||20},b.RoundedRectangle.prototype.clone=function(){return new b.RoundedRectangle(this.x,this.y,this.width,this.height,this.radius)},b.RoundedRectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.RoundedRectangle.prototype.constructor=b.RoundedRectangle,b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.transformCallback=null,this.transformCallbackContext=null,this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform=b.DisplayObjectContainer.prototype.updateTransform,b.DisplayObjectContainer.prototype.getBounds=function(){if(0===this.children.length)return b.EmptyRectangle;for(var a,c,d,e=1/0,f=1/0,g=-1/0,h=-1/0,i=!1,j=0,k=this.children.length;k>j;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a||b.Texture.emptyTexture,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.shader=null,this.texture.baseTexture.hasLoaded?this.onTextureUpdate():this.texture.on("update",this.onTextureUpdate.bind(this)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.b,k=h.c,l=h.d,m=h.tx,n=h.ty,o=-1/0,p=-1/0,q=1/0,r=1/0;if(0===j&&0===k)0>i&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)&&this.renderable){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(!(this.visible===!1||0===this.alpha||this.renderable===!1||this.texture.crop.width<=0||this.texture.crop.height<=0)){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a),this.texture.valid){var c=this.texture.baseTexture.resolution/a.resolution;a.context.globalAlpha=this.worldAlpha,a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var d=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,e=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;a.roundPixels?(a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution|0,this.worldTransform.ty*a.resolution|0),d=0|d,e=0|e):a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution,this.worldTransform.ty*a.resolution),16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)}for(var f=0,g=this.children.length;g>f;f++)this.children[f]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.prototype.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){this.displayObjectUpdateTransform()},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){if(this.visible&&!(this.alpha<=0)&&this.children.length){var b=a.context;b.globalAlpha=this.worldAlpha,this.displayObjectUpdateTransform();for(var c=this.worldTransform,d=!0,e=0;ei;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(c.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}c.descent=i-g,c.fontSize=c.ascent+c.descent,b.Text.fontPropertiesCache[a]=c}return c},b.Text.prototype.wordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},function(a){for(var b=0,c=["ms","moz","webkit","o"],d=0;d>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){return function(a){function b(){for(var d=arguments.length,f=new Array(d);d--;)f[d]=arguments[d];return f=e.concat(f),c.apply(this instanceof b?this:a,f)}var c=this,d=arguments.length-1,e=[];if(d>0)for(e.length=d;d--;)e[d]=arguments[d+1];if("function"!=typeof c)throw new TypeError;return b.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(c.prototype),b}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.EventTarget={call:function(a){a&&(a=a.prototype||a,b.EventTarget.mixin(a))},mixin:function(a){a.listeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?this._listeners[a].slice():[]},a.emit=a.dispatchEvent=function(a,c){if(this._listeners=this._listeners||{},"object"==typeof a&&(c=a,a=a.type),c&&c.__isEventObject===!0||(c=new b.Event(this,a,c)),this._listeners&&this._listeners[a]){var d,e=this._listeners[a].slice(0),f=e.length,g=e[0];for(d=0;f>d;g=e[++d])if(g.call(this,c),c.stoppedImmediate)return this;if(c.stopped)return this -}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{};var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)) -},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.anchor.x,i=a.anchor.y;if(b.trim){var j=b.trim;e=j.x-h*j.width,d=e+b.crop.width,g=j.y-i*j.height,f=g+b.crop.height}else d=b.frame.width*(1-h),e=b.frame.width*-h,f=b.frame.height*(1-i),g=b.frame.height*-i;var k=4*this.currentBatchSize*this.vertSize,l=b.baseTexture.resolution,m=a.worldTransform,n=m.a/l,o=m.b/l,p=m.c/l,q=m.d/l,r=m.tx,s=m.ty,t=this.colors,u=this.positions;this.renderSession.roundPixels?(u[k]=n*e+p*g+r|0,u[k+1]=q*g+o*e+s|0,u[k+5]=n*d+p*g+r|0,u[k+6]=q*g+o*d+s|0,u[k+10]=n*d+p*f+r|0,u[k+11]=q*f+o*d+s|0,u[k+15]=n*e+p*f+r|0,u[k+16]=q*f+o*e+s|0):(u[k]=n*e+p*g+r,u[k+1]=q*g+o*e+s,u[k+5]=n*d+p*g+r,u[k+6]=q*g+o*d+s,u[k+10]=n*d+p*f+r,u[k+11]=q*f+o*d+s,u[k+15]=n*e+p*f+r,u[k+16]=q*f+o*e+s),u[k+2]=c.x0,u[k+3]=c.y0,u[k+7]=c.x1,u[k+8]=c.y1,u[k+12]=c.x2,u[k+13]=c.y2,u[k+17]=c.x3,u[k+18]=c.y3;var v=a.tint;t[k+4]=t[k+9]=t[k+14]=t[k+19]=(v>>16)+(65280&v)+((255&v)<<16)+(255*a.alpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.tint,j=(i>>16)+(65280&i)+((255&i)<<16)+(255*a.alpha<<24),k=this.positions,l=this.colors,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=c.baseTexture.resolution,w=a.worldTransform,x=w.a/v,y=w.b/v,z=w.c/v,A=w.d/v,B=w.tx,C=w.ty;k[u++]=x*r+z*t+B,k[u++]=A*t+y*r+C,k[u++]=d.x0,k[u++]=d.y0,l[u++]=j,k[u++]=x*q+z*t+B,k[u++]=A*t+y*q+C,k[u++]=d.x1,k[u++]=d.y1,l[u++]=j,k[u++]=x*q+z*s+B,k[u++]=A*s+y*q+C,k[u++]=d.x2,k[u++]=d.y2,l[u++]=j,k[u++]=x*r+z*s+B,k[u++]=A*s+y*r+C,k[u++]=d.x3,k[u++]=d.y3,l[u++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath() +}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{};var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)) +},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.anchor.x,i=a.anchor.y;if(b.trim){var j=b.trim;e=j.x-h*j.width,d=e+b.crop.width,g=j.y-i*j.height,f=g+b.crop.height}else d=b.frame.width*(1-h),e=b.frame.width*-h,f=b.frame.height*(1-i),g=b.frame.height*-i;var k=4*this.currentBatchSize*this.vertSize,l=b.baseTexture.resolution,m=a.worldTransform,n=m.a/l,o=m.b/l,p=m.c/l,q=m.d/l,r=m.tx,s=m.ty,t=this.colors,u=this.positions;this.renderSession.roundPixels?(u[k]=n*e+p*g+r|0,u[k+1]=q*g+o*e+s|0,u[k+5]=n*d+p*g+r|0,u[k+6]=q*g+o*d+s|0,u[k+10]=n*d+p*f+r|0,u[k+11]=q*f+o*d+s|0,u[k+15]=n*e+p*f+r|0,u[k+16]=q*f+o*e+s|0):(u[k]=n*e+p*g+r,u[k+1]=q*g+o*e+s,u[k+5]=n*d+p*g+r,u[k+6]=q*g+o*d+s,u[k+10]=n*d+p*f+r,u[k+11]=q*f+o*d+s,u[k+15]=n*e+p*f+r,u[k+16]=q*f+o*e+s),u[k+2]=c.x0,u[k+3]=c.y0,u[k+7]=c.x1,u[k+8]=c.y1,u[k+12]=c.x2,u[k+13]=c.y2,u[k+17]=c.x3,u[k+18]=c.y3;var v=a.tint;t[k+4]=t[k+9]=t[k+14]=t[k+19]=(v>>16)+(65280&v)+((255&v)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.tint,j=(i>>16)+(65280&i)+((255&i)<<16)+(255*a.alpha<<24),k=this.positions,l=this.colors,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=c.baseTexture.resolution,w=a.worldTransform,x=w.a/v,y=w.b/v,z=w.c/v,A=w.d/v,B=w.tx,C=w.ty;k[u++]=x*r+z*t+B,k[u++]=A*t+y*r+C,k[u++]=d.x0,k[u++]=d.y0,l[u++]=j,k[u++]=x*q+z*t+B,k[u++]=A*t+y*q+C,k[u++]=d.x1,k[u++]=d.y1,l[u++]=j,k[u++]=x*q+z*s+B,k[u++]=A*s+y*q+C,k[u++]=d.x2,k[u++]=d.y2,l[u++]=j,k[u++]=x*r+z*s+B,k[u++]=A*s+y*r+C,k[u++]=d.x3,k[u++]=d.y3,l[u++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath() }}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.b*g,f.c*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d||e.baseTexture.width!==c||e.baseTexture.height||d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this); \ No newline at end of file diff --git a/build/phaser.js b/build/phaser.js index bcc6e70baf..6668f20964 100644 --- a/build/phaser.js +++ b/build/phaser.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Dec 03 2014 09:34:03 +* v2.2.1 "Danabar" - Built: Thu Dec 04 2014 11:31:00 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -4782,7 +4782,7 @@ PIXI.PixiShader.defaultVertexSrc = [ 'void main(void) {', ' gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);', ' vTextureCoord = aTextureCoord;', - ' vColor = aColor;', + ' vColor = vec4(aColor.rgb * aColor.a, aColor.a);', '}' ]; /** @@ -7648,7 +7648,7 @@ PIXI.WebGLSpriteBatch.prototype.render = function(sprite) // color and alpha var tint = sprite.tint; - colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.alpha * 255 << 24); + colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.worldAlpha * 255 << 24); // increment the batchsize this.sprites[this.currentBatchSize++] = sprite; @@ -12225,7 +12225,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Dec 03 2014 09:34:03 +* v2.2.1 "Danabar" - Built: Thu Dec 04 2014 11:31:00 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -12268,7 +12268,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) */ var Phaser = Phaser || { - VERSION: '2.2.0', + VERSION: '2.2.1', GAMES: [], AUTO: 0, @@ -26250,7 +26250,7 @@ Phaser.Game.prototype = { } else { - this.debug = { preUpdate: function () {}, update: function () {} }; + this.debug = { preUpdate: function () {}, update: function () {}, reset: function () {} }; } this.showDebugHeader(); @@ -48634,7 +48634,7 @@ Phaser.TweenManager.prototype = { { for (i = 0, len = this._tweens.length; i < len; i++) { - if (obj === this._tweens[i]._object) + if (obj === this._tweens[i].target) { this.remove(this._tweens[i]); } @@ -48642,7 +48642,7 @@ Phaser.TweenManager.prototype = { for (i = 0, len = this._add.length; i < len; i++) { - if (obj === this._add[i]._object) + if (obj === this._add[i].target) { this.remove(this._add[i]); } @@ -48757,7 +48757,7 @@ Phaser.TweenManager.prototype = { isTweening: function(object) { return this._tweens.some(function(tween) { - return tween._object === object; + return tween.target === object; }); }, @@ -52675,7 +52675,7 @@ Object.defineProperty(Phaser.AnimationManager.prototype, 'frame', { set: function (value) { - if (typeof value === 'number' && this._frameData.getFrame(value) !== null) + if (typeof value === 'number' && this._frameData && this._frameData.getFrame(value) !== null) { this.currentFrame = this._frameData.getFrame(value); diff --git a/build/phaser.map b/build/phaser.map index a23d0e4743..8881ea5a09 100644 --- a/build/phaser.map +++ b/build/phaser.map @@ -1 +1 @@ -{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","blendModes","NORMAL","ADD","MULTIPLY","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","scaleModes","DEFAULT","LINEAR","NEAREST","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","INTERACTION_FREQUENCY","AUTO_PREVENT_DEFAULT","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","dontSayHello","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","sayHello","type","navigator","userAgent","toLowerCase","indexOf","args","console","log","apply","window","Polygon","points","prototype","slice","call","arguments","Point","p","i","il","length","push","x","y","closed","clone","contains","inside","j","xi","yi","xj","yj","intersect","constructor","Matrix","a","b","c","d","tx","ty","fromArray","array","toArray","transpose","pos","newPos","applyInverse","id","translate","scale","rotate","angle","cos","sin","a1","c1","tx1","append","matrix","b1","d1","identity","identityMatrix","Rectangle","width","height","x1","y1","EmptyRectangle","RoundedRectangle","radius","DisplayObject","position","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","buttonMode","renderable","parent","stage","worldAlpha","_interactive","defaultCursor","worldTransform","_sr","_cr","filterArea","_bounds","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","Object","defineProperty","get","set","value","dirty","item","isMask","_filters","passes","filterPasses","_filterBlock","target","_generateCachedSprite","_destroyCachedSprite","updateTransform","pt","wt","rotationCache","displayObjectUpdateTransform","getBounds","getLocalBounds","setStageReference","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","_tempMatrix","render","updateCache","toGlobal","toLocal","from","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","destroy","DisplayObjectContainer","children","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","Texture","emptyTexture","tint","blendMode","shader","baseTexture","hasLoaded","onTextureUpdate","on","bind","frame","setTexture","cachedTint","w0","w1","h0","h1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","valid","globalAlpha","smoothProperty","dx","trim","dy","roundPixels","setTransform","tintedTexture","CanvasTinter","getTintedTexture","drawImage","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","shaderManager","setShader","fastShader","transform","isRotated","childTransform","FilterBlock","Text","text","style","canvas","document","createElement","getContext","fromCanvas","setText","setStyle","updateText","font","fill","align","stroke","strokeThickness","wordWrap","wordWrapWidth","dropShadow","dropShadowAngle","dropShadowDistance","dropShadowColor","toString","outputText","lines","split","lineWidths","maxLineWidth","fontProperties","determineFontProperties","lineWidth","measureText","max","lineHeight","fontSize","isCocoonJS","clearRect","strokeStyle","textBaseline","linePositionX","linePositionY","fillStyle","xShadowOffset","yShadowOffset","ascent","fillText","strokeText","updateTexture","fontStyle","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","ceil","baseline","fillRect","imagedata","getImageData","data","pixels","line","idx","descent","result","spaceLeft","words","wordWidth","wordWidthWithSpace","destroyBaseTexture","BitmapText","textWidth","textHeight","_pool","fontName","parseInt","fonts","size","prevCharCode","chars","charCode","charCodeAt","test","charAt","charData","kerning","xOffset","yOffset","xAdvance","lineAlignOffsets","alignOffset","lenChildren","lenChars","pop","Stage","backgroundColor","interactive","interactionManager","InteractionManager","setBackgroundColor","setInteractionDelegate","domElement","setTargetDomElement","update","backgroundColorSplit","hex2rgb","hex","substr","backgroundColorString","getMousePosition","mouse","global","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","Date","getTime","timeToCall","setTimeout","clearTimeout","requestAnimFrame","rgb2hex","rgb","Function","thisArg","bound","boundArgs","concat","TypeError","F","proto","AjaxRequest","activexmodes","ActiveXObject","XMLHttpRequest","e","canUseNewCanvasBlendModes","getNextPowerOfTwo","number","isPowerOfTwo","EventTarget","obj","mixin","listeners","eventName","_listeners","emit","dispatchEvent","__isEventObject","Event","fn","stoppedImmediate","stopped","addEventListener","once","onceHandlerWrapper","self","off","_originalHandler","removeEventListener","list","removeAllListeners","name","content","timeStamp","now","stopPropagation","stopImmediatePropagation","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","vi","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","u","v","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","src","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","z","w","_dirty","instances","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","WebGLGraphics","renderGraphics","graphics","webGLData","projection","offset","primitiveShader","updateGraphics","webGL","_webGL","mode","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","uniform2f","uniform3fv","uniform1f","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","shape","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","triangles","fromX","fromY","cpX","cpY","toX","toY","getPt","n1","n2","perc","diff","xa","ya","xb","yb","circleData","totalSegs","seg","firstPoint","lastPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","sqrt","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","contextLostBound","handleContextLost","contextRestoredBound","handleContextRestored","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","setContext","contextLost","__stage","removeEvents","_interactiveEventsAdded","setTarget","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","event","preventDefault","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","SRC_ALPHA","DST_ALPHA","DST_COLOR","blendModeWebGL","blendFunc","maskData","stencilStack","reverse","count","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","EQUAL","DECR","INCR","_currentGraphics","complexPrimitiveShader","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingSprite","tilingTexture","TextureUvs","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","verticies","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","temp","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","roundColor","stringColor","tintCache","tintMethod","convertTintToImage","tintImage","Image","toDataURL","tintWithMultiply","tintWithOverlay","tintWithPerPixel","rgbValues","pixelData","putImageData","step","cacheStepsPerColorChannel","min","canUseMultiply","CanvasRenderer","refresh","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeRect","arc","h","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","quadraticCurveTo","len","rect","pts","tintR","tintG","tintB","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","refreshTexture","generateTilingTexture","needsUpdate","updateWebGLTexture","__tilePattern","createPattern","forcePowerOfTwo","targetWidth","targetHeight","originalTexture","isFrame","newTextureRequired","canvasBuffer","isTiling","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","scope","onload","onerror","imageUrl","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","TextureCacheIdGenerator","FrameCache","noFrame","requiresUpdate","setFrame","onBaseTextureLoaded","onLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","updateBase","realResolution","getImage","getBase64","getCanvas","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","tempMatrix","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","Phaser","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","trunc","floor","isArray","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","prop","parts","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","transposeArray","ArrayUtils","transposeMatrix","rotateArray","direction","rotateMatrix","shuffle","parseDimension","dimension","f","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","extend","copy","copyIsArray","deep","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","distance","round","output","circumferencePoint","asDegrees","out","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","atan2","angleSq","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","requiredAngle","centroid","pointslength","parse","xProp","yProp","centerOn","floorAll","inflate","containsRect","intersection","tolerance","intersectsRaw","union","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","xMax","Number","MIN_VALUE","xMin","MAX_VALUE","yMax","yMin","Line","fromSprite","startSprite","endSprite","useCenter","center","asSegment","intersectsPoints","pointOnLine","pointOnSegment","coordinatesOnLine","stepRate","results","sx","sy","err","e2","uc","ua","ub","Ellipse","normx","normy","area","_points","ix","iy","jx","jy","calculateArea","p1","p2","avgHeight","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","destroyCachedSprite","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","startX","startY","sweep","segs","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","filling","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","updateCachedSpriteTexture","updateLocalBounds","cachedSprite","GraphicsData","Camera","game","world","screenView","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","preUpdate","follow","helper","unfollow","focusOn","setPosition","focusOnXY","updateTarget","checkBounds","setBoundsToWorld","setSize","State","make","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","paused","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","onLoadComplete","loadComplete","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","removeAll","debug","link","unlink","getCurrentState","preRender","elapsedTime","renderType","Signal","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","replace","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","dispatch","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_backgroundColor","config","parseConfig","DOM","getOffset","_onChange","visibilityChange","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","onpagehide","onpageshow","onblur","onfocus","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","alive","ignoreDestroy","classType","cursor","cameraOffset","enableBodyDebug","onDestroy","_sortProperty","_cache","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","events","onAddedToGroup$dispatch","addMultiple","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","onRemovedFromGroup$dispatch","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","getRandomItem","destroyPhase","removeBetween","destroyChildren","soft","World","_definedSize","setBounds","wrap","useBounds","horizontal","vertical","integerInRange","FlexGrid","manager","boundsCustom","boundsFluid","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFluidInversed","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","multiplier","layers","createCustomLayer","addToWorld","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","onResize","fitSprite","scaleSprite","geom","uuid","grid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","maxIterations","onOrientationChange","enterLandscape","enterPortrait","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","enterFullScreen","leaveFullScreen","fullScreenFailed","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","fullscreen","cocoonJS","iPad","webApp","desktop","android","chrome","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","fullScreenScaleMode","getElementById","getParentBounds","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","checkResize","checkOrientation","setScreenSize","checkOrientationState","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiralling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","webAudio","addToDOM","updateRender","slowMotion","desiredFps","slowStep","elapsed","updateLogic","timeStep","enableStep","disableStep","removeFromDOM","setMute","unsetMute","hitCanvas","hitContext","moveCallbacks","moveCallback","moveCallbackContext","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","currentPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","addPointer","Mouse","Keyboard","Touch","MSPointer","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","worldVisible","TileSprite","processClickTrampolines","Key","keycode","_enabled","isDown","isUp","altKey","ctrlKey","shiftKey","timeDown","duration","timeUp","repeats","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","downDuration","upDuration","pressEvent","onDownCallback","onPressCallback","onUpCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","addCallbacks","onPress","addKey","addKeyCapture","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","A","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","UNDERSCORE","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","INSERT","DELETE","HELP","NUM_LOCK","PLUS","MINUS","mouseDownCallback","mouseMoveCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","justPressed","justReleased","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","changedTouches","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","callbacks","onConnect","onDisconnect","onAxis","onFloat","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","buttonCode","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","buttons","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","GamepadButton","disconnectingIndex","axis","axisCode","buttonValue","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","_dragPoint","dragOffset","globalToLocalY","fixedToCamera","checkBoundsRect","checkBoundsSprite","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","dragFromCenter","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","camerOffset","Events","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","existing","object","group","tween","physicsGroup","audio","loop","audioSprite","addSprite","tileSprite","rope","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","characterWidth","characterHeight","charsPerRow","xSpacing","ySpacing","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","bitmapData","BitmapData","addBitmapData","Tween","ctx","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","loadTexture","draw","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","HSLtoRGB","shiftHSL","limitValue","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","anchorX","anchorY","copyRect","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","animations","AnimationManager","checkTransform","autoCull","body","health","lifespan","checkWorldBounds","outOfBoundsKill","cropRect","scaleMin","scaleMax","_crop","_frame","physicsElapsedMS","kill","onEnterBounds$dispatch","onOutOfBounds$dispatch","stopAnimation","getFrameData","loadFrameData","checkImageKey","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","updateCrop","resetFrame","cw","ch","revive","onRevived$dispatch","onKilled$dispatch","onDestroy$dispatch","damage","_outOfBoundsFired","play","frameRate","killOnComplete","overlap","setScaleMinMax","wrapAngle","frameName","P2JS","removeFromWorld","phase","_reset","frameData","getFrame","_frameName","getFrameByName","_scroll","physicsElapsed","autoScroll","stopScroll","safeRemove","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_text","_font","_fontSize","_fontWeight","_lineSpacing","_charCount","setShadow","runWordWrap","lineCap","lineJoin","updateLine","letter","clearColors","addColor","parseFloat","_align","_tint","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","inputEnabled","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","FrameData","currentX","currentY","addFrame","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","characterSpacing","lineSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","deviceReadyAt","initialized","iOS","cordova","node","nodeWebkit","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","epiphany","firefox","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","_checkAudio","audioElement","canPlayType","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","match","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","truncate","shear","snapTo","gap","snapToFloor","snapToCeil","snapToInArray","arr","findClosest","roundTo","place","base","pow","floorTo","ceilTo","interpolateFloat","weight","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","normalizeLatitude","lat","normalizeLongitude","lng","numberArray","numberArrayStep","maxAdd","minSub","wrapValue","randomSign","isOdd","isEven","minProperty","maxProperty","radians","angleLimit","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","objects","removeRandom","removeRandomItem","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","shuffleArray","distancePow","distanceRounded","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","s1","s2","sow","hash","integer","frac","realInRange","between","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","url","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_object","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","repeatDelay","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","ease","yoyo","Default","TweenData","vEnd","loadValues","easing","easingFunction","interpolation","interpolationFunction","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","isFrom","yoyoCounter","fps","blob","reversed","asin","prevTime","elapsedMS","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","Animation","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","generateFrameNames","prefix","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","spacing","img","row","column","JSONData","json","cacheKey","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_canvases","_images","_textures","_sounds","_json","_xml","_physics","_tilemaps","_binary","_bitmapDatas","_bitmapFont","_urlMap","_urlResolver","_urlTemp","addDefaultImage","addMissingImage","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","addCanvas","addBinary","binaryData","addSpriteSheet","_resolveURL","addTilemap","mapData","addTextureAtlas","atlasData","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","TEXTURE_ATLAS_XML_STARLING","addBitmapFont","xmlData","LoaderParser","bitmapFont","addPhysicsData","addText","addJSON","addXML","addImage","addSound","audioTag","decoded","isDecoding","touchLocked","reloadSound","reloadSoundComplete","updateSound","decodedSound","getBitmapData","getBitmapFont","getPhysicsData","fixtureKey","fixtures","fixture","checkKey","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkURL","getTilemapData","map","getFrameByIndex","getTextureFrame","getRenderTexture","getTexture","getSound","getSoundData","isSoundDecoded","isSoundReady","getFrameCount","getText","getJSON","getXML","getBinary","getURL","getUrl","getKeys","removeCanvas","removeImage","removeFromPixi","removeSound","removeText","removeJSON","removeXML","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","baseURL","isLoading","progress","progressFloat","preloadSprite","onLoadStart","onFileStart","onFileComplete","onFileError","onPackComplete","useXDomainRequest","_packList","_packIndex","_fileList","_fileIndex","_progressChunk","_xhr","_ajax","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","getAsset","addToFileList","entry","loaded","replaceInFileList","pack","overwrite","script","binary","spritesheet","urls","autoDecode","audiosprite","atlasURL","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","xmlURL","domparser","DOMParser","parseFromString","async","loadXML","atlasJSONArray","atlas","atlasJSONHash","atlasXML","removeFile","loadPack","beginLoad","loadFile","packLoadComplete","xhrLoad","responseText","nextPack","packError","success","totalLoadedPacks","fileComplete","fileError","getAudioURL","usingWebAudio","usingAudioTag","Audio","XDomainRequest","timeout","dataLoadError","ontimeout","onprogress","jsonLoadComplete","open","send","responseType","extension","lastIndexOf","nextFile","loadNext","response","that","decodeAudioData","onSoundDecode","language","defer","head","csvLoadComplete","xmlLoadComplete","previousIndex","totalLoadedFiles","info","common","getAttribute","letters","textureRect","kernings","second","autoplayKey","autoplay","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","masterGain","createGain","createGainNode","gain","_sound","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","isDecoded","forceRestart","noteOff","createBufferSource","noteGrainOn","decode","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","_codeMuted","_unlockSource","noAudio","channels","fakeiOSTouchLock","unlock","disableAudio","disableWebAudio","audioContext","noteOn","stopAll","soundData","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","ArrayList","LinkedList","entity","randomIndex","sourceRowCount","sourceColCount","NaN","low","high","POSITIVE_INFINITY","bmd","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","segment","spriteInfo","inCamera","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","exec","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","arcade","ninja","chipmunk","CHIPMUNK","deltaCap","P2","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","TILE_BIAS","forceX","skipQuadTree","_overlap","_maxOverlap","_velocity1","_velocity2","_newVelocity1","_newVelocity2","_average","_mapData","_result","_total","_angle","updateMotion","_velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","_drag","object1","object2","overlapCallback","processCallback","collideHandler","len2","collide","collideCallback","len1","overlapOnly","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","collideGroupVsSelf","sprite1","sprite2","separate","_potentials","group1","group2","tilemapLayer","getTiles","tilePadding","separateTile","body1","body2","separateX","separateY","immovable","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","mass","deltaAbsY","overlapY","customSeparateY","moves","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","blocked","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","sourceWidth","sourceHeight","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","_sx","_sy","updateBounds","asx","asy","onFloor","onWall","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_explode","emitParticle","makeParticles","keys","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","setScale","at","Tile","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","tiles","collideIndexes","collision","images","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","gid","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","createFromTiles","replacements","getLayer","customClass","lw","lh","createLayer","getLayerIndex","TilemapLayer","indexes","bodies","getImageIndex","getObjectIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","shiftCanvas","copyW","copyH","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","tileColor","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","tilewidth","tileheight","opacity","firstgid","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","polyline","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","imageWidth","imageHeight","rowCount","colCount",1,"PcZj9L","Buffer","subject","encoding","stringtrim","coerce","byteLength","buf","augment","xUint8Array","isBuffer","isArrayIsh","readUInt8","write","_hexWrite","string","remaining","strLen","byte","_charsWritten","_utf8Write","blitBuffer","utf8ToBytes","_asciiWrite","asciiToBytes","_binaryWrite","_base64Write","base64ToBytes","BufferWrite","isFinite","BufferToString","ProxyBuffer","_proxy","_hexSlice","_utf8Slice","_asciiSlice","_binarySlice","_base64Slice","BufferToJSON","BufferCopy","target_start","bytes","fromByteArray","tmp","decodeUtf8Char","ret","toHex","BufferSlice","BufferReadUInt8","noAssert","_readUInt16","dv","xDataView","xArrayBuffer","setUint8","getUint16","_dataview","BufferReadUInt16LE","BufferReadUInt16BE","_readUInt32","getUint32","BufferReadUInt32LE","BufferReadUInt32BE","BufferReadInt8","getInt8","_readInt16","getInt16","BufferReadInt16LE","BufferReadInt16BE","_readInt32","getInt32","BufferReadInt32LE","BufferReadInt32BE","_readFloat","getFloat32","BufferReadFloatLE","BufferReadFloatBE","_readDouble","getFloat64","BufferReadDoubleLE","BufferReadDoubleBE","BufferWriteUInt8","verifuint","_writeUInt16","setUint16","getUint8","BufferWriteUInt16LE","BufferWriteUInt16BE","_writeUInt32","setUint32","BufferWriteUInt32LE","BufferWriteUInt32BE","BufferWriteInt8","verifsint","setInt8","_writeInt16","setInt16","BufferWriteInt16LE","BufferWriteInt16BE","_writeInt32","setInt32","BufferWriteInt32LE","BufferWriteInt32BE","_writeFloat","verifIEEE754","setFloat32","BufferWriteFloatLE","BufferWriteFloatBE","_writeDouble","setFloat64","BufferWriteDoubleLE","BufferWriteDoubleBE","BufferFill","BufferInspect","INSPECT_MAX_BYTES","BufferToArrayBuffer","_browserSupport","foo","_arr","byteOffset","browserSupport","toLocaleString","toJSON","readUInt16LE","readUInt16BE","readUInt32LE","readUInt32BE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","inspect","toArrayBuffer","_isBuffer","proxyBuffer","proxy","Proxy","ProxyHandler","defaultValue","byteArray","encodeURIComponent","toByteArray","dst","message","TA","DataView","SlowBuffer","poolSize","isEncoding","totalLength","base64-js","typedarray","native-buffer-browserify",3,"b64ToByteArray","b64","placeHolders","lookup","uint8ToBase64","uint8","tripletToBase64","extraBytes",4,"configureProperties","getOwnPropertyNames","props","writable","enumerable","configurable","makeArrayAccessors","makeArrayAccessor","_getter","_setter","MAX_ARRAY_LENGTH","RangeError","as_signed","bits","as_unsigned","packI8","unpackI8","packU8","unpackU8","packU8Clamped","packI16","unpackI16","packU16","unpackU16","packI32","unpackI32","packU32","unpackU32","packIEEE754","ebits","fbits","roundToEven","bias","LN2","unpackIEEE754","unpackF64","packF64","unpackF32","packF32","ECMAScript","opts","ophop","Class","HasProperty","HasOwnProperty","IsCallable","ToInt32","ToUint32","desc","__defineGetter__","__defineSetter__","makeConstructor","bytesPerElement","unpack","ctor","sequence","BYTES_PER_ELEMENT","ArrayBufferView","_pack","_unpack","SyntaxError","_bytes","Int16Array","Float64Array","makeGetter","arrayType","uint8Array","Boolean","IS_BIG_ENDIAN","makeSetter","byteView","typeArray","u16array","u8array",2,"canSetImmediate","setImmediate","canPost","postMessage","queue","ev","title","browser","env","argv","cwd","chdir","Scalar","lineInt","l1","l2","precision","det","eq","segmentsIntersect","q1","q2","da","db","./Scalar","__browserify_Buffer","__browserify_process","leftOn","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","bc","magA","magB","acos","sqdist",5,"getIntersectionPoint","poly","makeCCW","br","isReflex","tmpLine1","tmpLine2","canSee","targetPoly","getCutEdges","tmp1","tmp2","tmpPoly","nDiags","decomp","edges","cutEdges","polys","cutEdge","isSimple","quickDecomp","reflexVertices","steinerPoints","maxlevel","upperInt","lowerInt","upperDist","lowerDist","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","removeCollinearPoints","./Line","./Point",6,7,"./Polygon",8,"description","author","keywords","main","engines","repository","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","grunt-contrib-concat","dependencies","poly-decomp",9,"AABB","lowerBound","vec2","upperBound","setFromPoints","skinSize","cosAngle","sinAngle","overlaps","../math/vec2","../utils/Utils",10,"Broadphase","boundingVolumeType","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","STATIC","KINEMATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",11,"GridBroadphase","defaults","xmin","ymin","nx","ny","binsizeX","binsizeY","Ncolliding","bins","Nbins","xmult","ymult","bi","lowerX","lowerY","upperX","upperY","xi1","yi1","xi2","yi2","bin","NbodiesInBin","bj","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane",12,"NaiveBroadphase","../shapes/Shape",13,"Narrowphase","contactEquations","frictionEquations","enableFriction","slipForce","frictionCoefficient","surfaceVelocity","reuseObjects","reusableContactEquations","reusableFrictionEquations","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","enableFrictionReduction","collidingBodiesLastStep","TupleDictionary","contactSkinSize","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","pic_r1","lastCross","crossLength","ContactEquation","FrictionEquation","Convex","Shape","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","collidedLastStep","id1","id2","eqs","ce","fe","rfe","rce","appendArray","createContactEquation","shapeA","shapeB","firstImpact","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","LINE","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","RECTANGLE","lineRectangle","rectangleBody","rectangleShape","rectangleOffset","rectangleAngle","convexCapsule_tempRect","convexCapsule_tempVec","CAPSULE","convexCapsule","convexPosition","capsuleBody","capsulePosition","capsuleAngle","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","linePosition","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","si","ai","sj","aj","enableFrictionBefore","circlePosi","circlePosj","circleCircle","lineLine","positionA","angleA","positionB","angleB","PLANE","planeLine","planeBody","planeShape","planeOffset","planeAngle","worldVertex01","worldVertex11","worldEdge","worldEdgeUnit","worldNormal","worldTangent","PARTICLE","particleCapsule","particleBody","particleShape","particlePosition","particleAngle","circleLine","CIRCLE","circleBody","circleShape","circleOffset","circleAngle","lineRadius","circleRadius","orthoDist","lineToCircleOrthoUnit","projectedPoint","centerDist","lineToCircle","lineEndToLineRadius","radiusSum","pos0","pos1","circleCapsule","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","convexToparticle","minEdgeNormal","offsetA","offsetB","radiusA","radiusB","planeConvex","numReported","particlePlane","circleParticle","planeCapsule_tmpCircle","planeCapsule_tmp1","planeCapsule_tmp2","planeCapsule","capsuleOffset","end1","end2","numContacts1","circlePlane","numContacts2","numTotal","planeToCircle","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","edge","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","hfBody","hfShape","hfPos","hfAngle","elementWidth","minCandidateNormal","idxA","idxB","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Convex","../shapes/Rectangle","../utils/TupleDictionary",14,"SAPBroadphase","axisList","axisIndex","_addBodyHandler","_removeBodyHandler","sortAxisList","aabbNeedsUpdate","updateAABB",15,"Constraint","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation",16,"DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","violating","minForce","rixn","rjxn","getMaxForce","./Constraint",17,"GearConstraint","AngleLockEquation","setMaxTorque","maxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation",18,"LockConstraint","localAngleB","rot","localOffsetB","xAxis",19,"PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","upperLimitEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vj","wi","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation",20,"RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","getMotorSpeed","../equations/RotationalVelocityEquation",21,"./Equation",22,"computeB","GW","Gq","GiMf","computeGiMf",23,"ARRAY_TYPE","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps",24,"getSlipForce",25,"worldVectorA","worldVectorB",26,27,"EventEmitter","listenerArray",28,"ContactMaterial","materialA","materialB","Material","idCounter","friction","./Material",29,30,"GetArea",31,"crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","mul","div","squaredDistance","sqrDist","sqrLen","negate",32,"_idCounter","shapes","shapeOffsets","shapeAngles","invMass","inertia","invInertia","fixedRotation","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","timeLastSleepy","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","Icm","computeMomentOfInertia","Body_applyForce_r","applyForce","rotForce","toWorldFrame","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","idleTime","wakeUpEvent","sleep","sleepEvent","sleepTick","dontSleep","speedSquared","speedLimitSquared","SLEEPY","getVelocityFromPosition","store","getAngularVelocityFromPosition","overlapKeeper","bodiesAreOverlapping","sleepyEvent","../collision/AABB","../events/EventEmitter",33,"LinearSpring","Spring","setWorldAnchorA","setWorldAnchorB","getWorldAnchorA","getWorldAnchorB","worldDistance","restLength","applyForce_r","applyForce_r_unit","applyForce_u","applyForce_f","applyForce_worldAnchorA","applyForce_worldAnchorB","applyForce_ri","applyForce_rj","applyForce_tmp","r_unit","rlen","ri_x_f","rj_x_f","./Spring",34,"RotationalSpring","restAngle",35,36,"Capsule","GSSolver","Heightfield","Plane","Solver","../package.json","./collision/AABB","./collision/Broadphase","./collision/GridBroadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/SAPBroadphase","./constraints/Constraint","./constraints/DistanceConstraint","./constraints/GearConstraint","./constraints/LockConstraint","./constraints/PrismaticConstraint","./constraints/RevoluteConstraint","./equations/AngleLockEquation","./equations/ContactEquation","./equations/Equation","./equations/FrictionEquation","./equations/RotationalVelocityEquation","./events/EventEmitter","./material/ContactMaterial","./material/Material","./math/vec2","./objects/Body","./objects/LinearSpring","./objects/RotationalSpring","./objects/Spring","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Rectangle","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/Utils","./world/World",37,"updateArea","./Shape",38,39,"polyk","tmpVec1","tmpVec2","projectOntoLocalAxis","projectOntoWorldAxis","shapeOffset","shapeAngle","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","numer","../math/polyk",40,"maxValue","minValue",41,42,43,44,"./Convex",45,"collisionGroup","collisionMask","material","sensor",46,"GS","iterations","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","solve","sortEquations","iter","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",47,"equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","addEquation","removeEquation","ISLAND",48,"OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","tmpDict","tmpArray1","OverlapKeeperRecord","lastObject","getByKey","currentObject","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./TupleDictionary","./Utils",49,"getKey","dict",50,"howmany",51,"Island","bodyIds",52,"IslandManager","_nodePool","_islandPool","islands","IslandNode","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","neighbors","ni","nj","./Island","./IslandNode",53,54,"springs","disabledBodyCollisionPairs","solver","narrowphase","islandManager","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","doProfiling","lastStepTime","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","bodiesToBeRemoved","fixedStepTime","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","performance","nowOffset","timing","navigationStart","BODY_SLEEPING","ISLAND_SLEEPING","addConstraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","removeConstraint","step_mg","xiw","xjw","interpvelo","timeSinceLastCalled","maxSubSteps","internalStep","internalSteps","t0","h_div_dt","endOverlaps","t1","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","Nshapesi","Nshapesj","runNarrowphase","integrateBody","removeBody","ib_fhMinv","ib_velodt","minv","velo","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","removeSpring","addBody","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","fromJSON","hitTest_tmp1","hitTest_zero","hitTest_tmp2","pb","ps","pa","zero","NS","setGlobalEquationParameters","parameters","setGlobalStiffness","setGlobalRelaxation","../../package.json","../collision/NaiveBroadphase","../collision/Narrowphase","../collision/SAPBroadphase","../constraints/Constraint","../constraints/DistanceConstraint","../constraints/GearConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/LinearSpring","../objects/RotationalSpring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","../solver/Solver","../utils/OverlapKeeper","./IslandManager","useElapsedTime","materials","InversePointProxy","walls","onBodyAdded","onBodyRemoved","onSpringAdded","onSpringRemoved","onConstraintAdded","onConstraintRemoved","onContactMaterialAdded","onContactMaterialRemoved","postBroadphaseCallback","onBeginContact","onEndContact","mpx","mpxi","pxm","pxmi","beginContactHandler","endContactHandler","collisionGroups","nothingCollisionGroup","CollisionGroup","boundsCollisionGroup","everythingCollisionGroup","boundsCollidesWith","_toRemove","_collisionGroupID","removeBodyNextStep","setImpactEvents","impactHandler","setPostBroadphaseCallback","postBroadphaseHandler","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","updateBoundsCollisionGroup","impactCallback","createDistanceConstraint","getBody","createGearConstraint","createRevoluteConstraint","createLockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","constraint","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","filterStatic","physicsPosition","query","createCollisionGroup","bitmask","createSpring","worldA","worldB","localA","localB","createRotationalSpring","createBody","addPolygon","createParticle","convertCollisionObjects","clearTilemapLayerBodies","convertTilemap","optimize","addRectangle","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","flatten","getFixtureByKey","getGroup","groupID","_ref","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","_groupCallbacksContext","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","setZeroRotation","setZeroVelocity","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","moveLeft","moveRight","updateSpriteTransform","resetDamping","resetMass","clearShapes","shapeChanged","addCircle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","generatedShapes","categoryBits","maskBits","isSensor","polygons","loadPolygon","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","vrot","_j","_ref1","randomPastelHex","drawConvex","drawPlane","drawLine","drawRectangle","drawPath","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","blendModes","NORMAL","ADD","MULTIPLY","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","scaleModes","DEFAULT","LINEAR","NEAREST","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","INTERACTION_FREQUENCY","AUTO_PREVENT_DEFAULT","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","dontSayHello","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","sayHello","type","navigator","userAgent","toLowerCase","indexOf","args","console","log","apply","window","Polygon","points","prototype","slice","call","arguments","Point","p","i","il","length","push","x","y","closed","clone","contains","inside","j","xi","yi","xj","yj","intersect","constructor","Matrix","a","b","c","d","tx","ty","fromArray","array","toArray","transpose","pos","newPos","applyInverse","id","translate","scale","rotate","angle","cos","sin","a1","c1","tx1","append","matrix","b1","d1","identity","identityMatrix","Rectangle","width","height","x1","y1","EmptyRectangle","RoundedRectangle","radius","DisplayObject","position","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","buttonMode","renderable","parent","stage","worldAlpha","_interactive","defaultCursor","worldTransform","_sr","_cr","filterArea","_bounds","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","Object","defineProperty","get","set","value","dirty","item","isMask","_filters","passes","filterPasses","_filterBlock","target","_generateCachedSprite","_destroyCachedSprite","updateTransform","pt","wt","rotationCache","displayObjectUpdateTransform","getBounds","getLocalBounds","setStageReference","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","_tempMatrix","render","updateCache","toGlobal","toLocal","from","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","destroy","DisplayObjectContainer","children","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","Texture","emptyTexture","tint","blendMode","shader","baseTexture","hasLoaded","onTextureUpdate","on","bind","frame","setTexture","cachedTint","w0","w1","h0","h1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","valid","globalAlpha","smoothProperty","dx","trim","dy","roundPixels","setTransform","tintedTexture","CanvasTinter","getTintedTexture","drawImage","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","shaderManager","setShader","fastShader","transform","isRotated","childTransform","FilterBlock","Text","text","style","canvas","document","createElement","getContext","fromCanvas","setText","setStyle","updateText","font","fill","align","stroke","strokeThickness","wordWrap","wordWrapWidth","dropShadow","dropShadowAngle","dropShadowDistance","dropShadowColor","toString","outputText","lines","split","lineWidths","maxLineWidth","fontProperties","determineFontProperties","lineWidth","measureText","max","lineHeight","fontSize","isCocoonJS","clearRect","strokeStyle","textBaseline","linePositionX","linePositionY","fillStyle","xShadowOffset","yShadowOffset","ascent","fillText","strokeText","updateTexture","fontStyle","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","ceil","baseline","fillRect","imagedata","getImageData","data","pixels","line","idx","descent","result","spaceLeft","words","wordWidth","wordWidthWithSpace","destroyBaseTexture","BitmapText","textWidth","textHeight","_pool","fontName","parseInt","fonts","size","prevCharCode","chars","charCode","charCodeAt","test","charAt","charData","kerning","xOffset","yOffset","xAdvance","lineAlignOffsets","alignOffset","lenChildren","lenChars","pop","Stage","backgroundColor","interactive","interactionManager","InteractionManager","setBackgroundColor","setInteractionDelegate","domElement","setTargetDomElement","update","backgroundColorSplit","hex2rgb","hex","substr","backgroundColorString","getMousePosition","mouse","global","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","Date","getTime","timeToCall","setTimeout","clearTimeout","requestAnimFrame","rgb2hex","rgb","Function","thisArg","bound","boundArgs","concat","TypeError","F","proto","AjaxRequest","activexmodes","ActiveXObject","XMLHttpRequest","e","canUseNewCanvasBlendModes","getNextPowerOfTwo","number","isPowerOfTwo","EventTarget","obj","mixin","listeners","eventName","_listeners","emit","dispatchEvent","__isEventObject","Event","fn","stoppedImmediate","stopped","addEventListener","once","onceHandlerWrapper","self","off","_originalHandler","removeEventListener","list","removeAllListeners","name","content","timeStamp","now","stopPropagation","stopImmediatePropagation","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","vi","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","u","v","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","src","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","z","w","_dirty","instances","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","WebGLGraphics","renderGraphics","graphics","webGLData","projection","offset","primitiveShader","updateGraphics","webGL","_webGL","mode","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","uniform2f","uniform3fv","uniform1f","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","shape","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","triangles","fromX","fromY","cpX","cpY","toX","toY","getPt","n1","n2","perc","diff","xa","ya","xb","yb","circleData","totalSegs","seg","firstPoint","lastPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","sqrt","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","contextLostBound","handleContextLost","contextRestoredBound","handleContextRestored","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","setContext","contextLost","__stage","removeEvents","_interactiveEventsAdded","setTarget","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","event","preventDefault","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","SRC_ALPHA","DST_ALPHA","DST_COLOR","blendModeWebGL","blendFunc","maskData","stencilStack","reverse","count","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","EQUAL","DECR","INCR","_currentGraphics","complexPrimitiveShader","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingSprite","tilingTexture","TextureUvs","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","verticies","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","temp","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","roundColor","stringColor","tintCache","tintMethod","convertTintToImage","tintImage","Image","toDataURL","tintWithMultiply","tintWithOverlay","tintWithPerPixel","rgbValues","pixelData","putImageData","step","cacheStepsPerColorChannel","min","canUseMultiply","CanvasRenderer","refresh","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeRect","arc","h","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","quadraticCurveTo","len","rect","pts","tintR","tintG","tintB","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","refreshTexture","generateTilingTexture","needsUpdate","updateWebGLTexture","__tilePattern","createPattern","forcePowerOfTwo","targetWidth","targetHeight","originalTexture","isFrame","newTextureRequired","canvasBuffer","isTiling","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","scope","onload","onerror","imageUrl","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","TextureCacheIdGenerator","FrameCache","noFrame","requiresUpdate","setFrame","onBaseTextureLoaded","onLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","updateBase","realResolution","getImage","getBase64","getCanvas","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","tempMatrix","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","Phaser","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","trunc","floor","isArray","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","prop","parts","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","transposeArray","ArrayUtils","transposeMatrix","rotateArray","direction","rotateMatrix","shuffle","parseDimension","dimension","f","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","extend","copy","copyIsArray","deep","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","distance","round","output","circumferencePoint","asDegrees","out","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","atan2","angleSq","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","requiredAngle","centroid","pointslength","parse","xProp","yProp","centerOn","floorAll","inflate","containsRect","intersection","tolerance","intersectsRaw","union","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","xMax","Number","MIN_VALUE","xMin","MAX_VALUE","yMax","yMin","Line","fromSprite","startSprite","endSprite","useCenter","center","asSegment","intersectsPoints","pointOnLine","pointOnSegment","coordinatesOnLine","stepRate","results","sx","sy","err","e2","uc","ua","ub","Ellipse","normx","normy","area","_points","ix","iy","jx","jy","calculateArea","p1","p2","avgHeight","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","destroyCachedSprite","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","startX","startY","sweep","segs","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","filling","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","updateCachedSpriteTexture","updateLocalBounds","cachedSprite","GraphicsData","Camera","game","world","screenView","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","preUpdate","follow","helper","unfollow","focusOn","setPosition","focusOnXY","updateTarget","checkBounds","setBoundsToWorld","setSize","State","make","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","paused","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","onLoadComplete","loadComplete","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","removeAll","debug","link","unlink","getCurrentState","preRender","elapsedTime","renderType","Signal","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","replace","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","dispatch","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_backgroundColor","config","parseConfig","DOM","getOffset","_onChange","visibilityChange","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","onpagehide","onpageshow","onblur","onfocus","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","alive","ignoreDestroy","classType","cursor","cameraOffset","enableBodyDebug","onDestroy","_sortProperty","_cache","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","events","onAddedToGroup$dispatch","addMultiple","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","onRemovedFromGroup$dispatch","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","getRandomItem","destroyPhase","removeBetween","destroyChildren","soft","World","_definedSize","setBounds","wrap","useBounds","horizontal","vertical","integerInRange","FlexGrid","manager","boundsCustom","boundsFluid","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFluidInversed","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","multiplier","layers","createCustomLayer","addToWorld","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","onResize","fitSprite","scaleSprite","geom","uuid","grid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","maxIterations","onOrientationChange","enterLandscape","enterPortrait","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","enterFullScreen","leaveFullScreen","fullScreenFailed","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","fullscreen","cocoonJS","iPad","webApp","desktop","android","chrome","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","fullScreenScaleMode","getElementById","getParentBounds","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","checkResize","checkOrientation","setScreenSize","checkOrientationState","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiralling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","webAudio","addToDOM","updateRender","slowMotion","desiredFps","slowStep","elapsed","updateLogic","timeStep","enableStep","disableStep","removeFromDOM","setMute","unsetMute","hitCanvas","hitContext","moveCallbacks","moveCallback","moveCallbackContext","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","currentPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","addPointer","Mouse","Keyboard","Touch","MSPointer","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","worldVisible","TileSprite","processClickTrampolines","Key","keycode","_enabled","isDown","isUp","altKey","ctrlKey","shiftKey","timeDown","duration","timeUp","repeats","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","downDuration","upDuration","pressEvent","onDownCallback","onPressCallback","onUpCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","addCallbacks","onPress","addKey","addKeyCapture","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","A","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","UNDERSCORE","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","INSERT","DELETE","HELP","NUM_LOCK","PLUS","MINUS","mouseDownCallback","mouseMoveCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","justPressed","justReleased","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","changedTouches","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","callbacks","onConnect","onDisconnect","onAxis","onFloat","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","buttonCode","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","buttons","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","GamepadButton","disconnectingIndex","axis","axisCode","buttonValue","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","_dragPoint","dragOffset","globalToLocalY","fixedToCamera","checkBoundsRect","checkBoundsSprite","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","dragFromCenter","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","camerOffset","Events","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","existing","object","group","tween","physicsGroup","audio","loop","audioSprite","addSprite","tileSprite","rope","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","characterWidth","characterHeight","charsPerRow","xSpacing","ySpacing","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","bitmapData","BitmapData","addBitmapData","Tween","ctx","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","loadTexture","draw","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","HSLtoRGB","shiftHSL","limitValue","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","anchorX","anchorY","copyRect","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","animations","AnimationManager","checkTransform","autoCull","body","health","lifespan","checkWorldBounds","outOfBoundsKill","cropRect","scaleMin","scaleMax","_crop","_frame","physicsElapsedMS","kill","onEnterBounds$dispatch","onOutOfBounds$dispatch","stopAnimation","getFrameData","loadFrameData","checkImageKey","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","updateCrop","resetFrame","cw","ch","revive","onRevived$dispatch","onKilled$dispatch","onDestroy$dispatch","damage","_outOfBoundsFired","play","frameRate","killOnComplete","overlap","setScaleMinMax","wrapAngle","frameName","P2JS","removeFromWorld","phase","_reset","frameData","getFrame","_frameName","getFrameByName","_scroll","physicsElapsed","autoScroll","stopScroll","safeRemove","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_text","_font","_fontSize","_fontWeight","_lineSpacing","_charCount","setShadow","runWordWrap","lineCap","lineJoin","updateLine","letter","clearColors","addColor","parseFloat","_align","_tint","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","inputEnabled","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","FrameData","currentX","currentY","addFrame","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","characterSpacing","lineSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","deviceReadyAt","initialized","iOS","cordova","node","nodeWebkit","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","epiphany","firefox","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","_checkAudio","audioElement","canPlayType","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","match","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","truncate","shear","snapTo","gap","snapToFloor","snapToCeil","snapToInArray","arr","findClosest","roundTo","place","base","pow","floorTo","ceilTo","interpolateFloat","weight","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","normalizeLatitude","lat","normalizeLongitude","lng","numberArray","numberArrayStep","maxAdd","minSub","wrapValue","randomSign","isOdd","isEven","minProperty","maxProperty","radians","angleLimit","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","objects","removeRandom","removeRandomItem","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","shuffleArray","distancePow","distanceRounded","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","s1","s2","sow","hash","integer","frac","realInRange","between","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","url","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","repeatDelay","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","ease","yoyo","Default","TweenData","vEnd","loadValues","easing","easingFunction","interpolation","interpolationFunction","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","isFrom","yoyoCounter","fps","blob","reversed","asin","prevTime","elapsedMS","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","Animation","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","generateFrameNames","prefix","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","spacing","img","row","column","JSONData","json","cacheKey","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_canvases","_images","_textures","_sounds","_json","_xml","_physics","_tilemaps","_binary","_bitmapDatas","_bitmapFont","_urlMap","_urlResolver","_urlTemp","addDefaultImage","addMissingImage","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","addCanvas","addBinary","binaryData","addSpriteSheet","_resolveURL","addTilemap","mapData","addTextureAtlas","atlasData","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","TEXTURE_ATLAS_XML_STARLING","addBitmapFont","xmlData","LoaderParser","bitmapFont","addPhysicsData","addText","addJSON","addXML","addImage","addSound","audioTag","decoded","isDecoding","touchLocked","reloadSound","reloadSoundComplete","updateSound","decodedSound","getBitmapData","getBitmapFont","getPhysicsData","fixtureKey","fixtures","fixture","checkKey","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkURL","getTilemapData","map","getFrameByIndex","getTextureFrame","getRenderTexture","getTexture","getSound","getSoundData","isSoundDecoded","isSoundReady","getFrameCount","getText","getJSON","getXML","getBinary","getURL","getUrl","getKeys","removeCanvas","removeImage","removeFromPixi","removeSound","removeText","removeJSON","removeXML","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","baseURL","isLoading","progress","progressFloat","preloadSprite","onLoadStart","onFileStart","onFileComplete","onFileError","onPackComplete","useXDomainRequest","_packList","_packIndex","_fileList","_fileIndex","_progressChunk","_xhr","_ajax","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","getAsset","addToFileList","entry","loaded","replaceInFileList","pack","overwrite","script","binary","spritesheet","urls","autoDecode","audiosprite","atlasURL","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","xmlURL","domparser","DOMParser","parseFromString","async","loadXML","atlasJSONArray","atlas","atlasJSONHash","atlasXML","removeFile","loadPack","beginLoad","loadFile","packLoadComplete","xhrLoad","responseText","nextPack","packError","success","totalLoadedPacks","fileComplete","fileError","getAudioURL","usingWebAudio","usingAudioTag","Audio","XDomainRequest","timeout","dataLoadError","ontimeout","onprogress","jsonLoadComplete","open","send","responseType","extension","lastIndexOf","nextFile","loadNext","response","that","decodeAudioData","onSoundDecode","language","defer","head","csvLoadComplete","xmlLoadComplete","previousIndex","totalLoadedFiles","info","common","getAttribute","letters","textureRect","kernings","second","autoplayKey","autoplay","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","masterGain","createGain","createGainNode","gain","_sound","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","isDecoded","forceRestart","noteOff","createBufferSource","noteGrainOn","decode","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","_codeMuted","_unlockSource","noAudio","channels","fakeiOSTouchLock","unlock","disableAudio","disableWebAudio","audioContext","noteOn","stopAll","soundData","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","ArrayList","LinkedList","entity","randomIndex","sourceRowCount","sourceColCount","NaN","low","high","POSITIVE_INFINITY","bmd","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","segment","spriteInfo","inCamera","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","exec","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","arcade","ninja","chipmunk","CHIPMUNK","deltaCap","P2","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","TILE_BIAS","forceX","skipQuadTree","_overlap","_maxOverlap","_velocity1","_velocity2","_newVelocity1","_newVelocity2","_average","_mapData","_result","_total","_angle","updateMotion","_velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","_drag","object1","object2","overlapCallback","processCallback","collideHandler","len2","collide","collideCallback","len1","overlapOnly","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","collideGroupVsSelf","sprite1","sprite2","separate","_potentials","group1","group2","tilemapLayer","getTiles","tilePadding","separateTile","body1","body2","separateX","separateY","immovable","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","mass","deltaAbsY","overlapY","customSeparateY","moves","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","blocked","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","sourceWidth","sourceHeight","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","_sx","_sy","updateBounds","asx","asy","onFloor","onWall","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_explode","emitParticle","makeParticles","keys","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","setScale","at","Tile","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","tiles","collideIndexes","collision","images","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","gid","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","createFromTiles","replacements","getLayer","customClass","lw","lh","createLayer","getLayerIndex","TilemapLayer","indexes","bodies","getImageIndex","getObjectIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","shiftCanvas","copyW","copyH","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","tileColor","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","tilewidth","tileheight","opacity","firstgid","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","polyline","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","imageWidth","imageHeight","rowCount","colCount",1,"PcZj9L","Buffer","subject","encoding","stringtrim","coerce","byteLength","buf","augment","xUint8Array","isBuffer","isArrayIsh","readUInt8","write","_hexWrite","string","remaining","strLen","byte","_charsWritten","_utf8Write","blitBuffer","utf8ToBytes","_asciiWrite","asciiToBytes","_binaryWrite","_base64Write","base64ToBytes","BufferWrite","isFinite","BufferToString","ProxyBuffer","_proxy","_hexSlice","_utf8Slice","_asciiSlice","_binarySlice","_base64Slice","BufferToJSON","BufferCopy","target_start","bytes","fromByteArray","tmp","decodeUtf8Char","ret","toHex","BufferSlice","BufferReadUInt8","noAssert","_readUInt16","dv","xDataView","xArrayBuffer","setUint8","getUint16","_dataview","BufferReadUInt16LE","BufferReadUInt16BE","_readUInt32","getUint32","BufferReadUInt32LE","BufferReadUInt32BE","BufferReadInt8","getInt8","_readInt16","getInt16","BufferReadInt16LE","BufferReadInt16BE","_readInt32","getInt32","BufferReadInt32LE","BufferReadInt32BE","_readFloat","getFloat32","BufferReadFloatLE","BufferReadFloatBE","_readDouble","getFloat64","BufferReadDoubleLE","BufferReadDoubleBE","BufferWriteUInt8","verifuint","_writeUInt16","setUint16","getUint8","BufferWriteUInt16LE","BufferWriteUInt16BE","_writeUInt32","setUint32","BufferWriteUInt32LE","BufferWriteUInt32BE","BufferWriteInt8","verifsint","setInt8","_writeInt16","setInt16","BufferWriteInt16LE","BufferWriteInt16BE","_writeInt32","setInt32","BufferWriteInt32LE","BufferWriteInt32BE","_writeFloat","verifIEEE754","setFloat32","BufferWriteFloatLE","BufferWriteFloatBE","_writeDouble","setFloat64","BufferWriteDoubleLE","BufferWriteDoubleBE","BufferFill","BufferInspect","INSPECT_MAX_BYTES","BufferToArrayBuffer","_browserSupport","foo","_arr","byteOffset","browserSupport","toLocaleString","toJSON","readUInt16LE","readUInt16BE","readUInt32LE","readUInt32BE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","inspect","toArrayBuffer","_isBuffer","proxyBuffer","proxy","Proxy","ProxyHandler","defaultValue","byteArray","encodeURIComponent","toByteArray","dst","message","TA","DataView","SlowBuffer","poolSize","isEncoding","totalLength","base64-js","typedarray","native-buffer-browserify",3,"b64ToByteArray","b64","placeHolders","lookup","uint8ToBase64","uint8","tripletToBase64","extraBytes",4,"configureProperties","getOwnPropertyNames","props","writable","enumerable","configurable","makeArrayAccessors","makeArrayAccessor","_getter","_setter","MAX_ARRAY_LENGTH","RangeError","as_signed","bits","as_unsigned","packI8","unpackI8","packU8","unpackU8","packU8Clamped","packI16","unpackI16","packU16","unpackU16","packI32","unpackI32","packU32","unpackU32","packIEEE754","ebits","fbits","roundToEven","bias","LN2","unpackIEEE754","unpackF64","packF64","unpackF32","packF32","ECMAScript","opts","ophop","Class","HasProperty","HasOwnProperty","IsCallable","ToInt32","ToUint32","desc","__defineGetter__","__defineSetter__","makeConstructor","bytesPerElement","unpack","ctor","sequence","BYTES_PER_ELEMENT","ArrayBufferView","_pack","_unpack","SyntaxError","_bytes","Int16Array","Float64Array","makeGetter","arrayType","uint8Array","Boolean","IS_BIG_ENDIAN","makeSetter","byteView","typeArray","u16array","u8array",2,"canSetImmediate","setImmediate","canPost","postMessage","queue","ev","title","browser","env","argv","cwd","chdir","Scalar","lineInt","l1","l2","precision","det","eq","segmentsIntersect","q1","q2","da","db","./Scalar","__browserify_Buffer","__browserify_process","leftOn","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","bc","magA","magB","acos","sqdist",5,"getIntersectionPoint","poly","makeCCW","br","isReflex","tmpLine1","tmpLine2","canSee","targetPoly","getCutEdges","tmp1","tmp2","tmpPoly","nDiags","decomp","edges","cutEdges","polys","cutEdge","isSimple","quickDecomp","reflexVertices","steinerPoints","maxlevel","upperInt","lowerInt","upperDist","lowerDist","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","removeCollinearPoints","./Line","./Point",6,7,"./Polygon",8,"description","author","keywords","main","engines","repository","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","grunt-contrib-concat","dependencies","poly-decomp",9,"AABB","lowerBound","vec2","upperBound","setFromPoints","skinSize","cosAngle","sinAngle","overlaps","../math/vec2","../utils/Utils",10,"Broadphase","boundingVolumeType","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","STATIC","KINEMATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",11,"GridBroadphase","defaults","xmin","ymin","nx","ny","binsizeX","binsizeY","Ncolliding","bins","Nbins","xmult","ymult","bi","lowerX","lowerY","upperX","upperY","xi1","yi1","xi2","yi2","bin","NbodiesInBin","bj","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane",12,"NaiveBroadphase","../shapes/Shape",13,"Narrowphase","contactEquations","frictionEquations","enableFriction","slipForce","frictionCoefficient","surfaceVelocity","reuseObjects","reusableContactEquations","reusableFrictionEquations","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","enableFrictionReduction","collidingBodiesLastStep","TupleDictionary","contactSkinSize","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","pic_r1","lastCross","crossLength","ContactEquation","FrictionEquation","Convex","Shape","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","collidedLastStep","id1","id2","eqs","ce","fe","rfe","rce","appendArray","createContactEquation","shapeA","shapeB","firstImpact","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","LINE","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","RECTANGLE","lineRectangle","rectangleBody","rectangleShape","rectangleOffset","rectangleAngle","convexCapsule_tempRect","convexCapsule_tempVec","CAPSULE","convexCapsule","convexPosition","capsuleBody","capsulePosition","capsuleAngle","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","linePosition","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","si","ai","sj","aj","enableFrictionBefore","circlePosi","circlePosj","circleCircle","lineLine","positionA","angleA","positionB","angleB","PLANE","planeLine","planeBody","planeShape","planeOffset","planeAngle","worldVertex01","worldVertex11","worldEdge","worldEdgeUnit","worldNormal","worldTangent","PARTICLE","particleCapsule","particleBody","particleShape","particlePosition","particleAngle","circleLine","CIRCLE","circleBody","circleShape","circleOffset","circleAngle","lineRadius","circleRadius","orthoDist","lineToCircleOrthoUnit","projectedPoint","centerDist","lineToCircle","lineEndToLineRadius","radiusSum","pos0","pos1","circleCapsule","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","convexToparticle","minEdgeNormal","offsetA","offsetB","radiusA","radiusB","planeConvex","numReported","particlePlane","circleParticle","planeCapsule_tmpCircle","planeCapsule_tmp1","planeCapsule_tmp2","planeCapsule","capsuleOffset","end1","end2","numContacts1","circlePlane","numContacts2","numTotal","planeToCircle","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","edge","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","hfBody","hfShape","hfPos","hfAngle","elementWidth","minCandidateNormal","idxA","idxB","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Convex","../shapes/Rectangle","../utils/TupleDictionary",14,"SAPBroadphase","axisList","axisIndex","_addBodyHandler","_removeBodyHandler","sortAxisList","aabbNeedsUpdate","updateAABB",15,"Constraint","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation",16,"DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","violating","minForce","rixn","rjxn","getMaxForce","./Constraint",17,"GearConstraint","AngleLockEquation","setMaxTorque","maxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation",18,"LockConstraint","localAngleB","rot","localOffsetB","xAxis",19,"PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","upperLimitEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vj","wi","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation",20,"RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","getMotorSpeed","../equations/RotationalVelocityEquation",21,"./Equation",22,"computeB","GW","Gq","GiMf","computeGiMf",23,"ARRAY_TYPE","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps",24,"getSlipForce",25,"worldVectorA","worldVectorB",26,27,"EventEmitter","listenerArray",28,"ContactMaterial","materialA","materialB","Material","idCounter","friction","./Material",29,30,"GetArea",31,"crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","mul","div","squaredDistance","sqrDist","sqrLen","negate",32,"_idCounter","shapes","shapeOffsets","shapeAngles","invMass","inertia","invInertia","fixedRotation","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","timeLastSleepy","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","Icm","computeMomentOfInertia","Body_applyForce_r","applyForce","rotForce","toWorldFrame","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","idleTime","wakeUpEvent","sleep","sleepEvent","sleepTick","dontSleep","speedSquared","speedLimitSquared","SLEEPY","getVelocityFromPosition","store","getAngularVelocityFromPosition","overlapKeeper","bodiesAreOverlapping","sleepyEvent","../collision/AABB","../events/EventEmitter",33,"LinearSpring","Spring","setWorldAnchorA","setWorldAnchorB","getWorldAnchorA","getWorldAnchorB","worldDistance","restLength","applyForce_r","applyForce_r_unit","applyForce_u","applyForce_f","applyForce_worldAnchorA","applyForce_worldAnchorB","applyForce_ri","applyForce_rj","applyForce_tmp","r_unit","rlen","ri_x_f","rj_x_f","./Spring",34,"RotationalSpring","restAngle",35,36,"Capsule","GSSolver","Heightfield","Plane","Solver","../package.json","./collision/AABB","./collision/Broadphase","./collision/GridBroadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/SAPBroadphase","./constraints/Constraint","./constraints/DistanceConstraint","./constraints/GearConstraint","./constraints/LockConstraint","./constraints/PrismaticConstraint","./constraints/RevoluteConstraint","./equations/AngleLockEquation","./equations/ContactEquation","./equations/Equation","./equations/FrictionEquation","./equations/RotationalVelocityEquation","./events/EventEmitter","./material/ContactMaterial","./material/Material","./math/vec2","./objects/Body","./objects/LinearSpring","./objects/RotationalSpring","./objects/Spring","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Rectangle","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/Utils","./world/World",37,"updateArea","./Shape",38,39,"polyk","tmpVec1","tmpVec2","projectOntoLocalAxis","projectOntoWorldAxis","shapeOffset","shapeAngle","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","numer","../math/polyk",40,"maxValue","minValue",41,42,43,44,"./Convex",45,"collisionGroup","collisionMask","material","sensor",46,"GS","iterations","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","solve","sortEquations","iter","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",47,"equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","addEquation","removeEquation","ISLAND",48,"OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","tmpDict","tmpArray1","OverlapKeeperRecord","lastObject","getByKey","currentObject","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./TupleDictionary","./Utils",49,"getKey","dict",50,"howmany",51,"Island","bodyIds",52,"IslandManager","_nodePool","_islandPool","islands","IslandNode","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","neighbors","ni","nj","./Island","./IslandNode",53,54,"springs","disabledBodyCollisionPairs","solver","narrowphase","islandManager","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","doProfiling","lastStepTime","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","bodiesToBeRemoved","fixedStepTime","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","performance","nowOffset","timing","navigationStart","BODY_SLEEPING","ISLAND_SLEEPING","addConstraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","removeConstraint","step_mg","xiw","xjw","interpvelo","timeSinceLastCalled","maxSubSteps","internalStep","internalSteps","t0","h_div_dt","endOverlaps","t1","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","Nshapesi","Nshapesj","runNarrowphase","integrateBody","removeBody","ib_fhMinv","ib_velodt","minv","velo","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","removeSpring","addBody","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","fromJSON","hitTest_tmp1","hitTest_zero","hitTest_tmp2","pb","ps","pa","zero","NS","setGlobalEquationParameters","parameters","setGlobalStiffness","setGlobalRelaxation","../../package.json","../collision/NaiveBroadphase","../collision/Narrowphase","../collision/SAPBroadphase","../constraints/Constraint","../constraints/DistanceConstraint","../constraints/GearConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/LinearSpring","../objects/RotationalSpring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","../solver/Solver","../utils/OverlapKeeper","./IslandManager","useElapsedTime","materials","InversePointProxy","walls","onBodyAdded","onBodyRemoved","onSpringAdded","onSpringRemoved","onConstraintAdded","onConstraintRemoved","onContactMaterialAdded","onContactMaterialRemoved","postBroadphaseCallback","onBeginContact","onEndContact","mpx","mpxi","pxm","pxmi","beginContactHandler","endContactHandler","collisionGroups","nothingCollisionGroup","CollisionGroup","boundsCollisionGroup","everythingCollisionGroup","boundsCollidesWith","_toRemove","_collisionGroupID","removeBodyNextStep","setImpactEvents","impactHandler","setPostBroadphaseCallback","postBroadphaseHandler","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","updateBoundsCollisionGroup","impactCallback","createDistanceConstraint","getBody","createGearConstraint","createRevoluteConstraint","createLockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","constraint","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","filterStatic","physicsPosition","query","createCollisionGroup","bitmask","createSpring","worldA","worldB","localA","localB","createRotationalSpring","createBody","addPolygon","createParticle","convertCollisionObjects","clearTilemapLayerBodies","convertTilemap","optimize","addRectangle","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","flatten","getFixtureByKey","getGroup","groupID","_ref","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","_groupCallbacksContext","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","setZeroRotation","setZeroVelocity","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","moveLeft","moveRight","updateSpriteTransform","resetDamping","resetMass","clearShapes","shapeChanged","addCircle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","generatedShapes","categoryBits","maskBits","isSensor","polygons","loadPolygon","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","vrot","_j","_ref1","randomPastelHex","drawConvex","drawPlane","drawLine","drawRectangle","drawPath","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex"],"mappings":"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"} \ No newline at end of file diff --git a/build/phaser.min.js b/build/phaser.min.js index 9e01df2a3d..3319b43067 100644 --- a/build/phaser.min.js +++ b/build/phaser.min.js @@ -1,27 +1,27 @@ -/* Phaser v2.2.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +/* Phaser v2.2.1 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ (function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.0",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.dontSayHello=!1,b.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://www.pixijs.com/");b.dontSayHello=!0}},b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),a[0]instanceof b.Point){for(var c=[],d=0,e=a.length;e>d;d++)c.push(a[d].x,a[d].y);a=c}this.closed=!0,this.points=a},b.Polygon.prototype.clone=function(){var a=this.points.slice();return new b.Polygon(a)},b.Polygon.prototype.contains=function(a,b){for(var c=!1,d=this.points.length/2,e=0,f=d-1;d>e;f=e++){var g=this.points[2*e],h=this.points[2*e+1],i=this.points[2*f],j=this.points[2*f+1],k=h>b!=j>b&&(i-g)*(b-h)/(j-h)+g>a;k&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new b.Float32Array(9));var c=this.array;return a?(c[0]=this.a,c[1]=this.b,c[2]=0,c[3]=this.c,c[4]=this.d,c[5]=0,c[6]=this.tx,c[7]=this.ty,c[8]=1):(c[0]=this.a,c[1]=this.c,c[2]=this.tx,c[3]=this.b,c[4]=this.d,c[5]=this.ty,c[6]=0,c[7]=0,c[8]=1),c},b.Matrix.prototype.apply=function(a,c){return c=c||new b.Point,c.x=this.a*a.x+this.c*a.y+this.tx,c.y=this.b*a.x+this.d*a.y+this.ty,c},b.Matrix.prototype.applyInverse=function(a,c){c=c||new b.Point;var d=1/(this.a*this.d+this.c*-this.b);return c.x=this.d*d*a.x+-this.c*d*a.y+(this.ty*this.c-this.tx*this.d)*d,c.y=this.a*d*a.y+-this.b*d*a.x+(-this.ty*this.a+this.tx*this.b)*d,c},b.Matrix.prototype.translate=function(a,b){return this.tx+=a,this.ty+=b,this},b.Matrix.prototype.scale=function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},b.Matrix.prototype.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},b.Matrix.prototype.append=function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},b.Matrix.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},b.identityMatrix=new b.Matrix,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.RoundedRectangle=function(a,b,c,d,e){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0,this.radius=e||20},b.RoundedRectangle.prototype.clone=function(){return new b.RoundedRectangle(this.x,this.y,this.width,this.height,this.radius)},b.RoundedRectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.RoundedRectangle.prototype.constructor=b.RoundedRectangle,b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.transformCallback=null,this.transformCallbackContext=null,this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform=b.DisplayObjectContainer.prototype.updateTransform,b.DisplayObjectContainer.prototype.getBounds=function(){if(0===this.children.length)return b.EmptyRectangle;for(var a,c,d,e=1/0,f=1/0,g=-1/0,h=-1/0,i=!1,j=0,k=this.children.length;k>j;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a||b.Texture.emptyTexture,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.shader=null,this.texture.baseTexture.hasLoaded?this.onTextureUpdate():this.texture.on("update",this.onTextureUpdate.bind(this)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.b,k=h.c,l=h.d,m=h.tx,n=h.ty,o=-1/0,p=-1/0,q=1/0,r=1/0;if(0===j&&0===k)0>i&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)&&this.renderable){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(!(this.visible===!1||0===this.alpha||this.renderable===!1||this.texture.crop.width<=0||this.texture.crop.height<=0)){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a),this.texture.valid){var c=this.texture.baseTexture.resolution/a.resolution;a.context.globalAlpha=this.worldAlpha,a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var d=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,e=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;a.roundPixels?(a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution|0,this.worldTransform.ty*a.resolution|0),d=0|d,e=0|e):a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution,this.worldTransform.ty*a.resolution),16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)}for(var f=0,g=this.children.length;g>f;f++)this.children[f]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.prototype.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){this.displayObjectUpdateTransform()},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){if(this.visible&&!(this.alpha<=0)&&this.children.length){var b=a.context;b.globalAlpha=this.worldAlpha,this.displayObjectUpdateTransform();for(var c=this.worldTransform,d=!0,e=0;ei;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(c.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}c.descent=i-g,c.fontSize=c.ascent+c.descent,b.Text.fontPropertiesCache[a]=c}return c},b.Text.prototype.wordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},function(a){for(var b=0,c=["ms","moz","webkit","o"],d=0;d>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){return function(a){function b(){for(var d=arguments.length,f=new Array(d);d--;)f[d]=arguments[d];return f=e.concat(f),c.apply(this instanceof b?this:a,f)}var c=this,d=arguments.length-1,e=[];if(d>0)for(e.length=d;d--;)e[d]=arguments[d+1];if("function"!=typeof c)throw new TypeError;return b.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(c.prototype),b}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.EventTarget={call:function(a){a&&(a=a.prototype||a,b.EventTarget.mixin(a))},mixin:function(a){a.listeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?this._listeners[a].slice():[]},a.emit=a.dispatchEvent=function(a,c){if(this._listeners=this._listeners||{},"object"==typeof a&&(c=a,a=a.type),c&&c.__isEventObject===!0||(c=new b.Event(this,a,c)),this._listeners&&this._listeners[a]){var d,e=this._listeners[a].slice(0),f=e.length,g=e[0];for(d=0;f>d;g=e[++d])if(g.call(this,c),c.stoppedImmediate)return this;if(c.stopped)return this -}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{};var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)) -},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.anchor.x,i=a.anchor.y;if(b.trim){var j=b.trim;e=j.x-h*j.width,d=e+b.crop.width,g=j.y-i*j.height,f=g+b.crop.height}else d=b.frame.width*(1-h),e=b.frame.width*-h,f=b.frame.height*(1-i),g=b.frame.height*-i;var k=4*this.currentBatchSize*this.vertSize,l=b.baseTexture.resolution,m=a.worldTransform,n=m.a/l,o=m.b/l,p=m.c/l,q=m.d/l,r=m.tx,s=m.ty,t=this.colors,u=this.positions;this.renderSession.roundPixels?(u[k]=n*e+p*g+r|0,u[k+1]=q*g+o*e+s|0,u[k+5]=n*d+p*g+r|0,u[k+6]=q*g+o*d+s|0,u[k+10]=n*d+p*f+r|0,u[k+11]=q*f+o*d+s|0,u[k+15]=n*e+p*f+r|0,u[k+16]=q*f+o*e+s|0):(u[k]=n*e+p*g+r,u[k+1]=q*g+o*e+s,u[k+5]=n*d+p*g+r,u[k+6]=q*g+o*d+s,u[k+10]=n*d+p*f+r,u[k+11]=q*f+o*d+s,u[k+15]=n*e+p*f+r,u[k+16]=q*f+o*e+s),u[k+2]=c.x0,u[k+3]=c.y0,u[k+7]=c.x1,u[k+8]=c.y1,u[k+12]=c.x2,u[k+13]=c.y2,u[k+17]=c.x3,u[k+18]=c.y3;var v=a.tint;t[k+4]=t[k+9]=t[k+14]=t[k+19]=(v>>16)+(65280&v)+((255&v)<<16)+(255*a.alpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.tint,j=(i>>16)+(65280&i)+((255&i)<<16)+(255*a.alpha<<24),k=this.positions,l=this.colors,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=c.baseTexture.resolution,w=a.worldTransform,x=w.a/v,y=w.b/v,z=w.c/v,A=w.d/v,B=w.tx,C=w.ty;k[u++]=x*r+z*t+B,k[u++]=A*t+y*r+C,k[u++]=d.x0,k[u++]=d.y0,l[u++]=j,k[u++]=x*q+z*t+B,k[u++]=A*t+y*q+C,k[u++]=d.x1,k[u++]=d.y1,l[u++]=j,k[u++]=x*q+z*s+B,k[u++]=A*s+y*q+C,k[u++]=d.x2,k[u++]=d.y2,l[u++]=j,k[u++]=x*r+z*s+B,k[u++]=A*s+y*r+C,k[u++]=d.x3,k[u++]=d.y3,l[u++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath() -}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.b*g,f.c*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d||e.baseTexture.width!==c||e.baseTexture.height||d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x) +}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{};var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)) +},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.anchor.x,i=a.anchor.y;if(b.trim){var j=b.trim;e=j.x-h*j.width,d=e+b.crop.width,g=j.y-i*j.height,f=g+b.crop.height}else d=b.frame.width*(1-h),e=b.frame.width*-h,f=b.frame.height*(1-i),g=b.frame.height*-i;var k=4*this.currentBatchSize*this.vertSize,l=b.baseTexture.resolution,m=a.worldTransform,n=m.a/l,o=m.b/l,p=m.c/l,q=m.d/l,r=m.tx,s=m.ty,t=this.colors,u=this.positions;this.renderSession.roundPixels?(u[k]=n*e+p*g+r|0,u[k+1]=q*g+o*e+s|0,u[k+5]=n*d+p*g+r|0,u[k+6]=q*g+o*d+s|0,u[k+10]=n*d+p*f+r|0,u[k+11]=q*f+o*d+s|0,u[k+15]=n*e+p*f+r|0,u[k+16]=q*f+o*e+s|0):(u[k]=n*e+p*g+r,u[k+1]=q*g+o*e+s,u[k+5]=n*d+p*g+r,u[k+6]=q*g+o*d+s,u[k+10]=n*d+p*f+r,u[k+11]=q*f+o*d+s,u[k+15]=n*e+p*f+r,u[k+16]=q*f+o*e+s),u[k+2]=c.x0,u[k+3]=c.y0,u[k+7]=c.x1,u[k+8]=c.y1,u[k+12]=c.x2,u[k+13]=c.y2,u[k+17]=c.x3,u[k+18]=c.y3;var v=a.tint;t[k+4]=t[k+9]=t[k+14]=t[k+19]=(v>>16)+(65280&v)+((255&v)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.tint,j=(i>>16)+(65280&i)+((255&i)<<16)+(255*a.alpha<<24),k=this.positions,l=this.colors,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=c.baseTexture.resolution,w=a.worldTransform,x=w.a/v,y=w.b/v,z=w.c/v,A=w.d/v,B=w.tx,C=w.ty;k[u++]=x*r+z*t+B,k[u++]=A*t+y*r+C,k[u++]=d.x0,k[u++]=d.y0,l[u++]=j,k[u++]=x*q+z*t+B,k[u++]=A*t+y*q+C,k[u++]=d.x1,k[u++]=d.y1,l[u++]=j,k[u++]=x*q+z*s+B,k[u++]=A*s+y*q+C,k[u++]=d.x2,k[u++]=d.y2,l[u++]=j,k[u++]=x*r+z*s+B,k[u++]=A*s+y*r+C,k[u++]=d.x3,k[u++]=d.y3,l[u++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath() +}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.b*g,f.c*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d||e.baseTexture.width!==c||e.baseTexture.height||d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.1",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x) },c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Ellipse=function(a,b,d,e){this.type=c.ELLIPSE,a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},c.Ellipse.prototype.getBounds=function(){return new c.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=c.Ellipse,c.Polygon=function(){this.type=c.POLYGON,this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0},c.Polygon.prototype={clone:function(a){var b=this._points.slice();return"undefined"==typeof a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){for(var c=this._points.length,d=!1,e=-1,f=c-1;++e=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,d=0,e=a.length;e>d;d++){if("number"==typeof a[d]){var f=new c.Point(a[d],a[d+1]);d++}else var f=new c.Point(a[d].x,a[d].y);this._points.push(f),f.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),PIXI.Graphics.prototype.lineStyle=function(a,b,c){if(this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=arguments.length<3?1:c,this.currentPath){if(this.currentPath.shape.points.length)return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))),this;this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha}return this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f){var g,h=a+Math.cos(d)*c,i=b+Math.sin(d)*c;if(this.currentPath?(g=this.currentPath.shape.points,0===g.length?g.push(h,i):(g[g.length-2]!==h||g[g.length-1]!==i)&&g.push(h,i)):(this.moveTo(h,i),g=this.currentPath.shape.points),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var j=f?-1*(d-e):e-d,k=Math.abs(j)/(2*Math.PI)*40;if(0===j)return this;for(var l=j/(2*k),m=2*l,n=Math.cos(l),o=Math.sin(l),p=k-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);g.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){return a instanceof Array||(a=Array.prototype.slice.call(arguments)),this.drawShape(new PIXI.Polygon(a)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this},PIXI.Graphics.prototype.generateTexture=function(a,b){a=a||1;var c=this.getBounds(),d=new PIXI.CanvasBuffer(c.width*a,c.height*a),e=PIXI.Texture.fromCanvas(d.canvas,b);return e.baseTexture.resolution=a,d.context.scale(a,a),d.context.translate(-c.x,-c.y),PIXI.CanvasGraphics.renderGraphics(this,d.context),e},PIXI.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,c.tx*d,c.ty*d),PIXI.CanvasGraphics.renderGraphics(this,b);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(this.isMask)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;return x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._bounds},PIXI.Graphics.prototype.updateLocalBounds=function(){var a=1/0,b=-1/0,c=1/0,d=-1/0;if(this.graphicsData.length)for(var e,f,g,h,i,j,k=0;kg?g:a,b=g+i>b?g+i:b,c=c>h?h:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.CIRC)g=e.x,h=e.y,i=e.radius+n/2,j=e.radius+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.ELIP)g=e.x,h=e.y,i=e.width+n/2,j=e.height+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else{f=e.points;for(var o=0;og-n?g-n:a,b=g+n>b?g+n:b,c=c>h-n?h-n:c,d=h+n>d?h+n:d}}else a=0,b=0,c=0,d=0;var p=this.boundsPadding;this._localBounds.x=a-p,this._localBounds.width=b-a+2*p,this._localBounds.y=c-p,this._localBounds.height=d-c+2*p},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.Graphics.POLY=0,PIXI.Graphics.RECT=1,PIXI.Graphics.CIRC=2,PIXI.Graphics.ELIP=3,PIXI.Graphics.RREC=4,PIXI.Polygon.prototype.type=PIXI.Graphics.POLY,PIXI.Rectangle.prototype.type=PIXI.Graphics.RECT,PIXI.Circle.prototype.type=PIXI.Graphics.CIRC,PIXI.Ellipse.prototype.type=PIXI.Graphics.ELIP,PIXI.RoundedRectangle.prototype.type=PIXI.Graphics.RREC,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.screenView=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={preUpdate:function(){this.totalInView=0},follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},resize:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return(this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render)&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics },unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[])},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===c.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===c.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},c.StateManager.prototype.constructor=c.StateManager,c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e){var f,g=this._indexOfListener(a,d);if(-1!==g){if(f=this._bindings[g],f.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else f=new c.SignalBinding(this,a,b,d,e),this._addBinding(f);return this.memorize&&this._prevParams&&f.execute(this._prevParams),f},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;"undefined"==typeof b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){return this.validateListener(a,"add"),this._registerListener(a,!1,b,c)},addOnce:function(a,b,c){return this.validateListener(a,"addOnce"),this._registerListener(a,!0,b,c)},remove:function(a,b){this.validateListener(a,"remove");var c=this._indexOfListener(a,b);return-1!==c&&(this._bindings[c]._destroy(),this._bindings.splice(c,1)),a},removeAll:function(a){if("undefined"==typeof a&&(a=null),this._bindings){for(var b=this._bindings.length;b--;)a?this._bindings[b].context===a&&(this._bindings[b]._destroy(),this._bindings.splice(b,1)):this._bindings[b]._destroy();a||(this._bindings.length=0)}},getNumListeners:function(){return this._bindings?this._bindings.length:0},halt:function(){this._shouldPropagate=!1},dispatch:function(){if(this.active&&this._bindings){var a,b=Array.prototype.slice.call(arguments),c=this._bindings.length;if(this.memorize&&(this._prevParams=b),c){a=this._bindings.slice(),this._shouldPropagate=!0;do c--;while(a[c]&&this._shouldPropagate&&a[c].execute(b)!==!1)}}},forget:function(){this._prevParams&&(this._prevParams=null)},dispose:function(){this.removeAll(),this._bindings=null,this._prevParams&&(this._prevParams=null)},toString:function(){return"[Phaser.Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}},Object.defineProperty(c.Signal.prototype,"boundDispatch",{get:function(){var a=this;return this._boundDispatch||(this._boundDispatch=function(){return a.dispatch.apply(a,arguments)})}}),c.Signal.prototype.constructor=c.Signal,c.SignalBinding=function(a,b,c,d,e){this._listener=b,c&&(this._isOnce=!0),null!=d&&(this.context=d),this._signal=a,e&&(this._priority=e)},c.SignalBinding.prototype={context:null,_isOnce:!1,_priority:0,callCount:0,active:!0,params:null,execute:function(a){var b,c;return this.active&&this._listener&&(c=this.params?this.params.concat(a):a,b=this._listener.apply(this.context,c),this.callCount++,this._isOnce&&this.detach()),b},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal,delete this._listener,delete this.context},toString:function(){return"[Phaser.SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}},c.SignalBinding.prototype.constructor=c.SignalBinding,c.Filter=function(a,b,d){this.game=a,this.type=c.WEBGL_FILTER,this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.prevPoint=new c.Point;var e=new Date;if(this.uniforms={resolution:{type:"2f",value:{x:256,y:256}},time:{type:"1f",value:0},mouse:{type:"2f",value:{x:0,y:0}},date:{type:"4fv",value:[e.getFullYear(),e.getMonth(),e.getDate(),60*e.getHours()*60+60*e.getMinutes()+e.getSeconds()]},sampleRate:{type:"1f",value:44100},iChannel0:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel1:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel2:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel3:{type:"sampler2D",value:null,textureData:{repeat:!0}}},b)for(var f in b)this.uniforms[f]=b[f];this.fragmentSrc=d||[]},c.Filter.prototype={init:function(){},setResolution:function(a,b){this.uniforms.resolution.value.x=a,this.uniforms.resolution.value.y=b},update:function(a){if("undefined"!=typeof a){var b=a.x/this.game.width,c=1-a.y/this.game.height;(b!==this.prevPoint.x||c!==this.prevPoint.y)&&(this.uniforms.mouse.value.x=b.toFixed(2),this.uniforms.mouse.value.y=c.toFixed(2),this.prevPoint.set(b,c))}this.uniforms.time.value=this.game.time.totalElapsedSeconds()},destroy:function(){this.game=null}},c.Filter.prototype.constructor=c.Filter,Object.defineProperty(c.Filter.prototype,"width",{get:function(){return this.uniforms.resolution.value.x},set:function(a){this.uniforms.resolution.value.x=a}}),Object.defineProperty(c.Filter.prototype,"height",{get:function(){return this.uniforms.resolution.value.y},set:function(a){this.uniforms.resolution.value.y=a}}),c.Plugin=function(a,b){"undefined"==typeof b&&(b=null),this.game=a,this.parent=b,this.active=!1,this.visible=!1,this.hasPreUpdate=!1,this.hasUpdate=!1,this.hasPostUpdate=!1,this.hasRender=!1,this.hasPostRender=!1},c.Plugin.prototype={preUpdate:function(){},update:function(){},render:function(){},postRender:function(){},destroy:function(){this.game=null,this.parent=null,this.active=!1,this.visible=!1}},c.Plugin.prototype.constructor=c.Plugin,c.PluginManager=function(a){this.game=a,this.plugins=[],this._len=0,this._i=0},c.PluginManager.prototype={add:function(a){var b=Array.prototype.splice.call(arguments,1),c=!1;return"function"==typeof a?a=new a(this.game,this):(a.game=this.game,a.parent=this),"function"==typeof a.preUpdate&&(a.hasPreUpdate=!0,c=!0),"function"==typeof a.update&&(a.hasUpdate=!0,c=!0),"function"==typeof a.postUpdate&&(a.hasPostUpdate=!0,c=!0),"function"==typeof a.render&&(a.hasRender=!0,c=!0),"function"==typeof a.postRender&&(a.hasPostRender=!0,c=!0),c?((a.hasPreUpdate||a.hasUpdate||a.hasPostUpdate)&&(a.active=!0),(a.hasRender||a.hasPostRender)&&(a.visible=!0),this._len=this.plugins.push(a),"function"==typeof a.init&&a.init.apply(a,b),a):null},remove:function(a){for(this._i=this._len;this._i--;)if(this.plugins[this._i]===a)return a.destroy(),this.plugins.splice(this._i,1),void this._len--},removeAll:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].destroy();this.plugins.length=0,this._len=0},preUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPreUpdate&&this.plugins[this._i].preUpdate()},update:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasUpdate&&this.plugins[this._i].update()},postUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPostUpdate&&this.plugins[this._i].postUpdate()},render:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasRender&&this.plugins[this._i].render()},postRender:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasPostRender&&this.plugins[this._i].postRender()},destroy:function(){this.removeAll(),this.game=null}},c.PluginManager.prototype.constructor=c.PluginManager,c.Stage=function(a){this.game=a,PIXI.Stage.call(this,0),this.name="_stage_root",this.interactive=!1,this.disableVisibilityChange=!1,this.exists=!0,this.currentRenderOrderID=0,this._hiddenVar="hidden",this._backgroundColor=0,a.config&&this.parseConfig(a.config)},c.Stage.prototype=Object.create(PIXI.Stage.prototype),c.Stage.prototype.constructor=c.Stage,c.Stage.prototype.parseConfig=function(a){a.disableVisibilityChange&&(this.disableVisibilityChange=a.disableVisibilityChange),a.backgroundColor&&(this.backgroundColor=a.backgroundColor)},c.Stage.prototype.boot=function(){c.DOM.getOffset(this.game.canvas,this.offset);var a=this;this._onChange=function(b){return a.visibilityChange(b)},c.Canvas.setUserSelect(this.game.canvas,"none"),c.Canvas.setTouchAction(this.game.canvas,"none"),this.checkVisibility()},c.Stage.prototype.preUpdate=function(){this.currentRenderOrderID=0;for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return PIXI.scaleModes.DEFAULT===PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.DEFAULT=a?PIXI.scaleModes.LINEAR:PIXI.scaleModes.NEAREST}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",this.z=0,PIXI.DisplayObjectContainer.call(this),e?(this.game.stage.addChild(this),this.z=this.game.stage.children.length):b&&(b.addChild(this),this.z=b.children.length),this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup$dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup$dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){var c;if(arguments.length>2){c=[];for(var d=2;dd;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}var e;if(arguments.length>2){e=[];for(var f=2;ff;f++)g=this.callbackFromArray(this.children[f],a,c),b&&g?(h=this.callbackFromArray(this.children[f],b,d),g&&g.apply(h,e)):g&&g.apply(this.children[f],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=[];++dd;d++)(!c||c&&this.children[d].exists)&&a.call(b,this.children[d]);else{for(var f=[null],d=3;dd;d++)(!c||c&&this.children[d].exists)&&(f[0]=this.children[d],a.apply(b,f))}},c.Group.prototype.forEachExists=function(a,b){var d;if(arguments.length>2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g?(g[0]=this.children[i],e.apply(f,g)):e.call(f,this.children[i])),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:null},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setScreenSize=c.ScaleManager.prototype.updateLayout,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.lockRender=!1,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug?(this.debug=new c.Utils.Debug(this),this.debug.boot()):this.debug={preUpdate:function(){},update:function(){}},this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start())},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setScreenSize=c.ScaleManager.prototype.updateLayout,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.lockRender=!1,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug?(this.debug=new c.Utils.Debug(this),this.debug.boot()):this.debug={preUpdate:function(){},update:function(){},reset:function(){}},this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start())},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown$dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp$dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp$dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart$dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a},c.Events.prototype={destroy:function(){this._parent=null,this._onDestroy&&this._onDestroy.dispose(),this._onAddedToGroup&&this._onAddedToGroup.dispose(),this._onRemovedFromGroup&&this._onRemovedFromGroup.dispose(),this._onRemovedFromWorld&&this._onRemovedFromWorld.dispose(),this._onKilled&&this._onKilled.dispose(),this._onRevived&&this._onRevived.dispose(),this._onOutOfBounds&&this._onOutOfBounds.dispose(),this._onInputOver&&this._onInputOver.dispose(),this._onInputOut&&this._onInputOut.dispose(),this._onInputDown&&this._onInputDown.dispose(),this._onInputUp&&this._onInputUp.dispose(),this._onDragStart&&this._onDragStart.dispose(),this._onDragStop&&this._onDragStop.dispose(),this._onAnimationStart&&this._onAnimationStart.dispose(),this._onAnimationComplete&&this._onAnimationComplete.dispose(),this._onAnimationLoop&&this._onAnimationLoop.dispose()},onAddedToGroup:null,onRemovedFromGroup:null,onRemovedFromWorld:null,onDestroy:null,onKilled:null,onRevived:null,onOutOfBounds:null,onEnterBounds:null,onInputOver:null,onInputOut:null,onInputDown:null,onInputUp:null,onDragStart:null,onDragStop:null,onAnimationStart:null,onAnimationComplete:null,onAnimationLoop:null},c.Events.prototype.constructor=c.Events;for(var e in c.Events.prototype)if(c.Events.prototype.hasOwnProperty(e)&&0===e.indexOf("on")&&null===c.Events.prototype[e]){var f="this._"+e,g=e+"$dispatch";Object.defineProperty(c.Events.prototype,e,{get:new Function("return "+f+" || ("+f+" = new Phaser.Signal())")}),c.Events.prototype[g]=new Function("return "+f+" ? "+f+".dispatch.apply("+f+", arguments) : null")}c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f)) },text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof b||null===b)&&(b=!1),("undefined"==typeof d||null===d)&&(d=!1),a||b||d){"undefined"==typeof e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=c.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){"undefined"==typeof a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return"undefined"==typeof a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(("undefined"==typeof a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}return("undefined"==typeof b||null===b)&&(b=0),("undefined"==typeof d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),("undefined"==typeof g||null===g)&&(g=b),("undefined"==typeof h||null===h)&&(h=d),("undefined"==typeof i||null===i)&&(i=this._size.x),("undefined"==typeof j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),"undefined"==typeof q&&(q=null),"undefined"==typeof r&&(r=!1),this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y?void 0:(this._alpha.prev=this.context.globalAlpha,this.context.save(),this.context.globalAlpha=this._alpha.current,q&&(this.context.globalCompositeOperation=q),r&&(g|=0,h|=0),this.context.translate(g,h),this.context.scale(this._scale.x,this._scale.y),this.context.rotate(this._rotate),this.context.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),this.context.restore(),this.context.globalAlpha=this._alpha.prev,this.dirty=!0,this)},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},shadow:function(a,b,c,d){"undefined"==typeof a||null===a?this.context.shadowColor="rgba(0,0,0,0)":(this.context.shadowColor=a,this.context.shadowBlur=b||5,this.context.shadowOffsetX=c||10,this.context.shadowOffsetY=d||10)},alphaMask:function(a,b,c,d){return"undefined"==typeof d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),"undefined"==typeof c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},circle:function(a,b,c,d){return"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill(),this},textureLine:function(a,b,d){if("undefined"==typeof d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;return"no-repeat"===d&&e>b.width&&(e=b.width),this.context.fillStyle=this.context.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),this.context.save(),this.context.translate(this._pos.x,this._pos.y),this.context.rotate(a.angle),this.context.fillRect(0,0,e,b.height),this.context.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},blendReset:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceOver:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceIn:function(){return this.context.globalCompositeOperation="source-in",this},blendSourceOut:function(){return this.context.globalCompositeOperation="source-out",this},blendSourceAtop:function(){return this.context.globalCompositeOperation="source-atop",this},blendDestinationOver:function(){return this.context.globalCompositeOperation="destination-over",this},blendDestinationIn:function(){return this.context.globalCompositeOperation="destination-in",this},blendDestinationOut:function(){return this.context.globalCompositeOperation="destination-out",this},blendDestinationAtop:function(){return this.context.globalCompositeOperation="destination-atop",this},blendXor:function(){return this.context.globalCompositeOperation="xor",this},blendAdd:function(){return this.context.globalCompositeOperation="lighter",this},blendMultiply:function(){return this.context.globalCompositeOperation="multiply",this},blendScreen:function(){return this.context.globalCompositeOperation="screen",this},blendOverlay:function(){return this.context.globalCompositeOperation="overlay",this},blendDarken:function(){return this.context.globalCompositeOperation="darken",this},blendLighten:function(){return this.context.globalCompositeOperation="lighten",this},blendColorDodge:function(){return this.context.globalCompositeOperation="color-dodge",this},blendColorBurn:function(){return this.context.globalCompositeOperation="color-burn",this},blendHardLight:function(){return this.context.globalCompositeOperation="hard-light",this},blendSoftLight:function(){return this.context.globalCompositeOperation="soft-light",this},blendDifference:function(){return this.context.globalCompositeOperation="difference",this},blendExclusion:function(){return this.context.globalCompositeOperation="exclusion",this},blendHue:function(){return this.context.globalCompositeOperation="hue",this},blendSaturation:function(){return this.context.globalCompositeOperation="saturation",this},blendColor:function(){return this.context.globalCompositeOperation="color",this},blendLuminosity:function(){return this.context.globalCompositeOperation="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.SPRITE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this.scaleMin=null,this.scaleMax=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds$dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Sprite.prototype.update=function(){},c.Sprite.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Sprite.prototype.loadTexture=function(a,b,d){b=b||0,(d||"undefined"==typeof d)&&this.animations.stop(),this.key=a;var e=!0,f=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(e=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),e=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),e&&(this._frame=c.Rectangle.clone(this.texture.frame)),f||(this.smoothed=!1)},c.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Sprite.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived$dispatch(this),this},c.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this},c.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},c.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},c.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},c.Sprite.prototype.overlap=function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())},c.Sprite.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Sprite.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Sprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"inCamera",{get:function(){return this.autoCull||this.checkWorldBounds||(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y),this.game.world.camera.view.intersects(this._bounds)}}),Object.defineProperty(c.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(c.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(c.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(c.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(c.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(c.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=c.IMAGE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.alive=!0,this.autoCull=!1,this.input=null,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this._bounds.copyFrom(this.getBounds()),this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Image.prototype.update=function(){},c.Image.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Image.prototype.loadTexture=function(a,b){b=b||0,this.key=a;var d=!0,e=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),d&&(this._frame=c.Rectangle.clone(this.texture.frame)),e||(this.smoothed=!1)},c.Image.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Image.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Image.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Image.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y; var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived$dispatch(this),this},c.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this},c.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy(),this.animations&&this.animations.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},c.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Image.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Image.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Image.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},c.TileSprite.prototype.update=function(){},c.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},c.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},c.TileSprite.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty()},c.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.alive=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.TileSprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.ROPE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,this._frame=0,this._frameName="",this._scroll=new c.Point,PIXI.Rope.call(this,e,this.points),this.position.set(b,d),this.input=null,this.world=new c.Point(b,d),this.autoCull=!1,this.checkWorldBounds=!1,this.cameraOffset=new c.Point,this.body=null,this._cache=[0,0,0,0,1,0,1,0,0],this.loadTexture(e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Rope.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;(this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds&&(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds)?(this._cache[5]=0,this.events.onEnterBounds$dispatch(this)):0!==this._cache[5]||this.game.world.bounds.intersects(this._bounds)||(this._cache[5]=1,this.events.onOutOfBounds$dispatch(this))),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Rope.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},c.Rope.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.Rope.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Rope.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.Rope.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.Rope.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Rope.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.Rope.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.Rope.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Rope.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.Rope.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Rope.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;ka;a++)this.children[a].preUpdate();return!0},c.Text.prototype.update=function(){},c.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(!0),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Text.prototype.setShadow=function(a,b,c,d){"undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c="rgba(0, 0, 0, 1)"),"undefined"==typeof d&&(d=0),this.style.shadowOffsetX=a,this.style.shadowOffsetY=b,this.style.shadowColor=c,this.style.shadowBlur=d,this.dirty=!0},c.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},c.Text.prototype.updateText=function(){this.texture.baseTexture.resolution=this.resolution,this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=this.determineFontProperties(this.style.font),f=0;f0?this.updateLine(b[f],k,l):(this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(b[f],k,l),this.style.fill&&this.context.fillText(b[f],k,l));this.updateTexture()},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){"undefined"==typeof d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case c.RetroFont.ALIGN_LEFT:a=0;break;case c.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case c.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},c.RetroFont.prototype.pasteLine=function(a,b,d,e){for(var f=new c.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(b,d),this.render(this.stamp,f,!1),b+=this.characterWidth+e,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Particle=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},c.Particle.prototype=Object.create(c.Sprite.prototype),c.Particle.prototype.constructor=c.Particle,c.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},c.Particle.prototype.onEmit=function(){},c.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},c.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},c.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},c.Device=function(){this.deviceReadyAt=0,this.initialized=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.LITTLE_ENDIAN=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1},c.Device=new c.Device,c.Device.onInitialized=new c.Signal,c.Device.whenReady=function(a,b,c){var d=this._readyCheck;if(this.deviceReadyAt||!d)a.call(b,this);else if(d._monitor||c)d._queue=d._queue||[],d._queue.push([a,b]);else{d._monitor=d.bind(this),d._queue=d._queue||[],d._queue.push([a,b]);var e="undefined"!=typeof window.cordova,f=navigator.isCocoonJS;"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(d._monitor,0):e&&!f?document.addEventListener("deviceready",d._monitor,!1):(document.addEventListener("DOMContentLoaded",d._monitor,!1),window.addEventListener("load",d._monitor,!1))}},c.Device._readyCheck=function(){var a=this._readyCheck;if(document.body){if(!this.deviceReadyAt){this.deviceReadyAt=Date.now(),document.removeEventListener("deviceready",a._monitor),document.removeEventListener("DOMContentLoaded",a._monitor),window.removeEventListener("load",a._monitor),this._initialize(),this.initialized=!0,this.onInitialized.dispatch(this);for(var b;b=a._queue.shift();){var c=b[0],d=b[1];c.call(d,this)}this._readyCheck=null,this._initialize=null,this.onInitialized=null}}else window.setTimeout(a._monitor,20)},c.Device._initialize=function(){function a(){var a=navigator.userAgent;/Playstation Vita/.test(a)?k.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?k.kindle=!0:/Android/.test(a)?k.android=!0:/CrOS/.test(a)?k.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?k.iOS=!0:/Linux/.test(a)?k.linux=!0:/Mac OS/.test(a)?k.macOS=!0:/Windows/.test(a)&&(k.windows=!0,/Windows Phone/i.test(a)&&(k.windowsPhone=!0));var b=/Silk/.test(a);(k.windows||k.macOS||k.linux&&!b||k.chromeOS)&&(k.desktop=!0),(k.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(k.desktop=!1)}function b(){k.canvas=!!window.CanvasRenderingContext2D||k.cocoonJS;try{k.localStorage=!!localStorage.getItem}catch(a){k.localStorage=!1}k.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),k.fileSystem=!!window.requestFileSystem,k.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),k.webGL=null===k.webGL||k.webGL===!1?!1:!0,k.worker=!!window.Worker,k.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,k.quirksMode="CSS1Compat"===document.compatMode?!1:!0,k.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)}function c(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(k.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(k.mspointer=!0),k.cocoonJS||("onwheel"in window||k.ie&&"WheelEvent"in window?k.wheelEvent="wheel":"onmousewheel"in window?k.wheelEvent="mousewheel":k.firefox&&"MouseScrollEvent"in window&&(k.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var k=this;a(),f(),e(),j(),g(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"opus"==a&&this.opus?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return"undefined"==typeof b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.visualBounds:1===a.nodeType?this.getBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return document.documentElement.clientWidth},g=function(){return document.documentElement.clientHeight};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.Canvas={create:function(a,b,c){a=a||256,b=b||256;var d=document.createElement("canvas");return"string"==typeof c&&""!==c&&(d.id=c),d.width=a,d.height=b,d.style.display="block",d},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},getSmoothingEnabled:function(a){return a.imageSmoothingEnabled||a.mozImageSmoothingEnabled||a.oImageSmoothingEnabled||a.webkitImageSmoothingEnabled||a.msImageSmoothingEnabled},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style["image-rendering"]="pixelated",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.Canvas.getOffset=c.DOM.getOffset,c.Canvas.getAspectRatio=c.DOM.getAspectRatio,c.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},normalizeLatitude:function(a){return c.Math.clamp(a,-90,90)},normalizeLongitude:function(a){return c.Math.wrap(a,-180,180)},chanceRoll:function(a){return c.Utils.chanceRoll(a)},numberArray:function(a,b){return c.ArrayUtils.numberArray(a,b)},numberArrayStep:function(a,b,d){return c.ArrayUtils.numberArrayStep(a,b,d)},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,d){return c.Math.clamp(a,b,d)},randomSign:function(){return c.Utils.randomChoice(-1,1)},isOdd:function(a){return 1&a},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var l=Math.PI/180,m=180/Math.PI;c.Math.degToRad=function(a){return a*l},c.Math.radToDeg=function(a){return a*m},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d]._object&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d]._object&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b._object===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.repeatDelay=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if("undefined"==typeof a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this.onStart.dispatch(this.target,this),this},stop:function(a){return"undefined"==typeof a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},delay:function(a,b){if("undefined"==typeof b&&(b=0),-1===b)for(var c=0;c0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return"undefined"==typeof a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;"undefined"==typeof b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;this.vEnd[a]=[this.parent.properties[a]].concat(this.vEnd[a])}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(){if(!this.isRunning){if(!(this.game.time.time>=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var a in this.vEnd){var b=this.vStart[a],d=this.vEnd[a];this.parent.target[a]=Array.isArray(d)?this.interpolationFunction(d,this.value):b+(d-b)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time+this.delay,this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.physicsElapsed=1/this.desiredFps,this.physicsElapsedMS=1e3*this.physicsElapsed,this.advancedTiming&&(this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(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.game.paused){this.events.update(this.time);for(var c=0,d=this._timers.length;d>c;)this._timers[c].update(this.time)?c++:(this._timers.splice(c,1),d--)}},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.now,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){"undefined"==typeof b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if("undefined"==typeof a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames.length=0,this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a]},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0 -},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){"undefined"==typeof h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g,h){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name,this.uuid);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return"undefined"==typeof a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},c.FrameData.prototype.constructor=c.FrameData,Object.defineProperty(c.FrameData.prototype,"total",{get:function(){return this._frames.length}}),c.AnimationParser={spriteSheet:function(a,b,d,e,f,g,h){var i=a.cache.getImage(b);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new c.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[b],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,b,d){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var e,f=new c.FrameData,g=b.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new c.FrameData,r=b.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,b){if("undefined"==typeof b&&(b=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,b)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g=0&&(b=b.substr(0,b.indexOf("?"))),this.game.device.canPlayAudio(b))return a[c];return null},fileError:function(a){this._fileList[a].loaded=!0,this._fileList[a].error=!0,this.onFileError.dispatch(this._fileList[a].key,this._fileList[a]),console.warn("Phaser.Loader error loading file: "+this._fileList[a].key+" from URL "+this._fileList[a].url),this.nextFile(a,!1)},fileComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader fileComplete invalid index "+a);var b=this._fileList[a];b.loaded=!0;var d=!0;switch(b.type){case"image":this.game.cache.addImage(b.key,b.url,b.data);break;case"spritesheet":this.game.cache.addSpriteSheet(b.key,b.url,b.data,b.frameWidth,b.frameHeight,b.frameMax,b.margin,b.spacing);break;case"textureatlas":if(null==b.atlasURL)this.game.cache.addTextureAtlas(b.key,b.url,b.data,b.atlasData,b.format);else if(d=!1,b.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||b.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","jsonLoadComplete","dataLoadError");else{if(b.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+b.format);this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","xmlLoadComplete","dataLoadError")}break;case"bitmapfont":null==b.xmlURL?this.game.cache.addBitmapFont(b.key,b.url,b.data,b.xmlData,b.xSpacing,b.ySpacing):(d=!1,this.xhrLoad(this._fileIndex,this.baseURL+b.xmlURL,"text","xmlLoadComplete","dataLoadError"));break;case"audio":if(this.game.sound.usingWebAudio){if(b.data=this._xhr.response,this.game.cache.addSound(b.key,b.url,b.data,!0,!1),b.autoDecode){var e=this,f=b.key;this.game.cache.updateSound(f,"isDecoding",!0),this.game.sound.context.decodeAudioData(b.data,function(a){a&&(e.game.cache.decodedSound(f,a),e.game.sound.onSoundDecode.dispatch(f,e.game.cache.getSound(f)))})}}else b.data.removeEventListener("canplaythrough",c.GAMES[this.game.id].load.fileComplete),this.game.cache.addSound(b.key,b.url,b.data,!1,!0);break;case"text":b.data=this._xhr.responseText,this.game.cache.addText(b.key,b.url,b.data);break;case"physics":var g=JSON.parse(this._xhr.responseText);this.game.cache.addPhysicsData(b.key,b.url,g,b.format);break;case"script":b.data=document.createElement("script"),b.data.language="javascript",b.data.type="text/javascript",b.data.defer=!1,b.data.text=this._xhr.responseText,document.head.appendChild(b.data),b.callback&&(b.data=b.callback.call(b.callbackContext,b.key,this._xhr.responseText));break;case"binary":b.data=b.callback?b.callback.call(b.callbackContext,b.key,this._xhr.response):this._xhr.response,this.game.cache.addBinary(b.key,b.data)}d&&this.nextFile(a,!0)},jsonLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader jsonLoadComplete invalid index "+a);var b=this._fileList[a];if(this._ajax&&this._ajax.responseText)var c=JSON.parse(this._ajax.responseText);else var c=JSON.parse(this._xhr.responseText);b.loaded=!0,"tilemap"===b.type?this.game.cache.addTilemap(b.key,b.url,c,b.format):"json"===b.type?this.game.cache.addJSON(b.key,b.url,c):this.game.cache.addTextureAtlas(b.key,b.url,b.data,c,b.format),this.nextFile(a,!0)},csvLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader csvLoadComplete invalid index "+a);var b=this._fileList[a],c=this._xhr.responseText;b.loaded=!0,this.game.cache.addTilemap(b.key,b.url,c,b.format),this.nextFile(a,!0)},dataLoadError:function(a){var b=this._fileList[a];b.loaded=!0,b.error=!0,console.warn("Phaser.Loader dataLoadError: "+b.key),this.nextFile(a,!0)},xmlLoadComplete:function(a){""!==this._xhr.responseType&&"text"!==this._xhr.responseType&&(console.warn("Invalid XML Response Type",this._fileList[a]),console.warn(this._xhr));var b,c=this._xhr.responseText;try{if(window.DOMParser){var d=new DOMParser;b=d.parseFromString(c,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(c)}catch(e){b=void 0}if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw new Error("Phaser.Loader. Invalid XML given");var f=this._fileList[a];f.loaded=!0,"bitmapfont"===f.type?this.game.cache.addBitmapFont(f.key,f.url,f.data,b,f.xSpacing,f.ySpacing):"textureatlas"===f.type?this.game.cache.addTextureAtlas(f.key,f.url,f.data,b,f.format):"xml"===f.type&&this.game.cache.addXML(f.key,f.url,b),this.nextFile(a,!0)},nextFile:function(a,b){this.progressFloat+=this._progressChunk,this.progress=Math.round(this.progressFloat),this.progress>100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.updateCrop()),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this.isPlaying&&!this.allowMultiple&&(this.override||e)&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null===this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b){"undefined"==typeof b&&(b=!1),this.paused||(this.play("",0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if("undefined"==typeof a&&(a=1e3),"undefined"==typeof b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");var d=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0);d.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return("undefined"==typeof b||null===b)&&(b=c.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){"undefined"==typeof e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return j.color=c.Color.getColor(j.r,j.g,j.b),j.color32=c.Color.getColor32(j.a,j.r,j.g,j.b),c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){"undefined"==typeof a&&(a=.5),"undefined"==typeof b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){"undefined"==typeof f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=255),"undefined"==typeof d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D&&(null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset())},enable:function(a,b,d){"undefined"==typeof b&&(b=c.Physics.ARCADE),"undefined"==typeof d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d&&this.box2d.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.skipQuadTree=!0,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,b){"undefined"==typeof b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!0);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,g=a.length;g>f;f++)for(var h=0,i=b.length;i>h;h++)this.collideHandler(a[f],b[h],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!1);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,h=a.length;h>f;f++)for(var i=0,j=b.length;j>i;i++)this.collideHandler(a[f],b[i],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,d,e,f,g){return"undefined"!=typeof b||a.type!==c.GROUP&&a.type!==c.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==c.SPRITE||a.type==c.TILESPRITE?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideSpriteVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f):a.type==c.GROUP?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f):a.type==c.TILEMAPLAYER?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f):(b.type==c.GROUP||b.type==c.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,d,e,f):a.type==c.EMITTER&&(b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body)if(a.body.skipQuadTree||this.skipQuadTree)for(var g=0,h=b.children.length;h>g;g++)b.children[g]&&b.children[g].exists&&this.collideSpriteVsSprite(a,b.children[g],c,d,e,f);else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f-1>g;g++)for(var h=g+1;f>h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0,i=a.children.length;i>h;h++)a.children[h].exists&&(a.children[h].type===c.GROUP?this.collideGroupVsGroup(a.children[h],b,d,e,f,g):this.collideSpriteVsGroup(a.children[h],b,d,e,f,g))},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=this._overlap,b.overlapX=this._overlap,0!==this._overlap)?c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=this._overlap,b.overlapY=this._overlap,0!==this._overlap)?c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);var h=new c.Rectangle(a,b,1,1),i=[];this._potentials=this.quadTree.retrieve(h);for(var j=0,k=this._potentials.length;k>j;j++)this._potentials[j].hitTest(a,b)&&(e&&e.call(f,g,this._potentials[j].sprite),i.push(this._potentials[j].sprite));return i},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b) -},accelerationFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.phase=0,this.skipQuadTree=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Particles.Arcade={},c.Particles.Arcade.Emitter=function(a,b,d,e){this.maxParticles=e||50,c.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=c.EMITTER,this.area=new c.Rectangle(b,d,1,1),this.minParticleSpeed=new c.Point(-100,-100),this.maxParticleSpeed=new c.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=c.Particle,this.particleDrag=new c.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new c.Point,this.on=!1,this.particleAnchor=new c.Point(.5,.5),this.blendMode=c.blendModes.NORMAL,this.emitX=b,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new c.Point(1,1),this._maxParticleScale=new c.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},c.Particles.Arcade.Emitter.prototype=Object.create(c.Group.prototype),c.Particles.Arcade.Emitter.prototype.constructor=c.Particles.Arcade.Emitter,c.Particles.Arcade.Emitter.prototype.update=function(){this.on&&this.game.time.time>=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit())},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=c.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=c.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},c.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof b){if("string"!=typeof a)return null;if(b=a,!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===c.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+b+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(b)),this.tilesets[a];var i=new c.Tileset(b,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(b)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pl;l++)if(this.objects[a][l].gid===b){k=new i(this.game,this.objects[a][l].x,this.objects[a][l].y,d,e),k.name=this.objects[a][l].name,k.visible=this.objects[a][l].visible,k.autoCull=g,k.exists=f,j&&(k.y-=k.height),h.add(k);for(var n in this.objects[a][l].properties)h.set(k,n,this.objects[a][l].properties[n],!1,!1,0,!0)}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),"undefined"==typeof b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),"undefined"==typeof f&&(f=this.game.world),"undefined"==typeof g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;m>l;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;he;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d,e){if("undefined"==typeof c&&(c=!0),"undefined"==typeof e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=c[1].x-a,f=c[1].y-b,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,this.game=a,this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=c.Canvas.create(e,f,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),c.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=c.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new c.Point(0,0),this.renderSettings={enableScrollDelta:!0,overdrawRatio:.2},this.debug=!1,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[]},c.TilemapLayer.prototype=Object.create(c.Image.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,Object.defineProperty(c.TilemapLayer.prototype,"tileColor",{get:function(){return this.debugSettings.missingImageFill},set:function(a){this.debugSettings.missingImageFill=a}}),c.TilemapLayer.prototype.postUpdate=function(){c.Image.prototype.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX,this.scrollY=a.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(a.view.x+this.cameraOffset.x)/a.scale.x,this.position.y=(a.view.y+this.cameraOffset.y)/a.scale.y)},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=j;j+h>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0),a.save(),a.globalCompositeOperation="copy",a.drawImage(d,g,h,e,f,i,j,e,f),a.restore()},c.TilemapLayer.prototype.renderRegion=function(a,b,c,d,e,f){var g=this.context,h=this.layer.width,i=this.layer.height,j=this._mc.tileWidth,k=this._mc.tileHeight,l=this._mc.tilesets,m=0/0;this._wrap||(e>=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k++)i.push(a.layers[f].data[k]>0?new c.Tile(g,a.layers[f].data[k],h,j.length,a.tilewidth,a.tileheight):new c.Tile(g,-1,h,j.length,a.tilewidth,a.tileheight)),h++,h===a.layers[f].width&&(j.push(i),h=0,i=[]);g.data=j,e.push(g)}d.layers=e;for(var m=[],f=0;ft;t++)if(a.layers[f].objects[t].gid){var u={gid:a.layers[f].objects[t].gid,name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};r[a.layers[f].name].push(u)}else if(a.layers[f].objects[t].polyline){var u={name:a.layers[f].objects[t].name,type:a.layers[f].objects[t].type,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,width:a.layers[f].objects[t].width,height:a.layers[f].objects[t].height,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};u.polyline=[];for(var v=0;v=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&ag;g++)f[g]=d.isBuffer(a)?a.readUInt8(g):a[g];else"string"===c&&f.write(a,0,b);return f}function e(a,b,c,e){c=Number(c)||0;var f=a.length-c;e?(e=Number(e),e>f&&(e=f)):e=f;var g=b.length;if(g%2!==0)throw new Error("Invalid hex string");e>g/2&&(e=g/2);for(var h=0;e>h;h++){var i=parseInt(b.substr(2*h,2),16);if(isNaN(i))throw new Error("Invalid hex string");a[c+h]=i}return d._charsWritten=2*h,h}function f(a,b,c,e){return d._charsWritten=tb(qb(b),a,c,e)}function g(a,b,c,e){return d._charsWritten=tb(rb(b),a,c,e)}function h(a,b,c,d){return g(a,b,c,d)}function i(a,b,c,e){return d._charsWritten=tb(sb(b),a,c,e)}function j(a,b,c,d){if(isFinite(b))isFinite(c)||(d=c,c=void 0);else{var j=d;d=b,b=c,c=j}b=Number(b)||0;var k=this.length-b;switch(c?(c=Number(c),c>k&&(c=k)):c=k,d=String(d||"utf8").toLowerCase()){case"hex":return e(this,a,b,c);case"utf8":case"utf-8":return f(this,a,b,c);case"ascii":return g(this,a,b,c);case"binary":return h(this,a,b,c);case"base64":return i(this,a,b,c);default:throw new Error("Unknown encoding")}}function k(a,b,c){var d=this instanceof kb?this._proxy:this;if(a=String(a||"utf8").toLowerCase(),b=Number(b)||0,c=void 0!==c?Number(c):c=d.length,c===b)return"";switch(a){case"hex":return r(d,b,c);case"utf8":case"utf-8":return o(d,b,c);case"ascii":return p(d,b,c);case"binary":return q(d,b,c);case"base64":return n(d,b,c);default:throw new Error("Unknown encoding")}}function l(){return{type:"Buffer",data:Array.prototype.slice.call(this,0)}}function m(a,b,c,d){var e=this;if(c||(c=0),d||0===d||(d=this.length),b||(b=0),d!==c&&0!==a.length&&0!==e.length){if(c>d)throw new Error("sourceEnd < sourceStart");if(0>b||b>=a.length)throw new Error("targetStart out of bounds");if(0>c||c>=e.length)throw new Error("sourceStart out of bounds");if(0>d||d>e.length)throw new Error("sourceEnd out of bounds");d>this.length&&(d=this.length),a.length-bf;f++)a[f+b]=this[f+c]}}function n(b,c,d){var e=b.slice(c,d);return a("base64-js").fromByteArray(e)}function o(a,b,c){for(var d=a.slice(b,c),e="",f="",g=0;gb)&&(b=0),(!c||0>c||c>d)&&(c=d);for(var e="",f=b;c>f;f++)e+=pb(a[f]);return e}function s(a,b){var c=this.length;return a=mb(a,c,0),b=mb(b,c,c),lb(this.subarray(a,b))}function t(a,b){var c=this;return b||(yb(void 0!==a&&null!==a,"missing offset"),yb(a=c.length?void 0:c[a]}function u(a,b,c,d){d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(void 0!==b&&null!==b,"missing offset"),yb(b+1=e)){if(b+1===e){var f=new Ab(new Bb(2));return f.setUint8(0,a[e-1]),f.getUint16(0,c)}return a._dataview.getUint16(b,c)}}function v(a,b){return u(this,a,!0,b)}function w(a,b){return u(this,a,!1,b)}function x(a,b,c,d){d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(void 0!==b&&null!==b,"missing offset"),yb(b+3=e)){if(b+3>=e){for(var f=new Ab(new Bb(4)),g=0;e>g+b;g++)f.setUint8(g,a[g+b]);return f.getUint32(0,c)}return a._dataview.getUint32(b,c)}}function y(a,b){return x(this,a,!0,b)}function z(a,b){return x(this,a,!1,b)}function A(a,b){var c=this;return b||(yb(void 0!==a&&null!==a,"missing offset"),yb(a=c.length?void 0:c._dataview.getInt8(a)}function B(a,b,c,d){d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(void 0!==b&&null!==b,"missing offset"),yb(b+1=e)){if(b+1===e){var f=new Ab(new Bb(2));return f.setUint8(0,a[e-1]),f.getInt16(0,c)}return a._dataview.getInt16(b,c)}}function C(a,b){return B(this,a,!0,b)}function D(a,b){return B(this,a,!1,b)}function E(a,b,c,d){d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(void 0!==b&&null!==b,"missing offset"),yb(b+3=e)){if(b+3>=e){for(var f=new Ab(new Bb(4)),g=0;e>g+b;g++)f.setUint8(g,a[g+b]);return f.getInt32(0,c)}return a._dataview.getInt32(b,c)}}function F(a,b){return E(this,a,!0,b)}function G(a,b){return E(this,a,!1,b)}function H(a,b,c,d){return d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(b+3=d.length||(d[b]=a)}function O(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+1=f))if(c+1===f){var g=new Ab(new Bb(2));g.setUint16(0,b,d),a[c]=g.getUint8(0)}else a._dataview.setUint16(c,b,d)}function P(a,b,c){O(this,a,b,!0,c)}function Q(a,b,c){O(this,a,b,!1,c)}function R(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+3=f))if(c+3>=f){var g=new Ab(new Bb(4));g.setUint32(0,b,d);for(var h=0;f>h+c;h++)a[h+c]=g.getUint8(h)}else a._dataview.setUint32(c,b,d)}function S(a,b,c){R(this,a,b,!0,c)}function T(a,b,c){R(this,a,b,!1,c)}function U(a,b,c){var d=this;c||(yb(void 0!==a&&null!==a,"missing value"),yb(void 0!==b&&null!==b,"missing offset"),yb(b=d.length||d._dataview.setInt8(b,a)}function V(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+1=f))if(c+1===f){var g=new Ab(new Bb(2));g.setInt16(0,b,d),a[c]=g.getUint8(0)}else a._dataview.setInt16(c,b,d)}function W(a,b,c){V(this,a,b,!0,c)}function X(a,b,c){V(this,a,b,!1,c)}function Y(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+3=f))if(c+3>=f){var g=new Ab(new Bb(4));g.setInt32(0,b,d);for(var h=0;f>h+c;h++)a[h+c]=g.getUint8(h)}else a._dataview.setInt32(c,b,d)}function Z(a,b,c){Y(this,a,b,!0,c)}function $(a,b,c){Y(this,a,b,!1,c)}function _(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+3=f))if(c+3>=f){var g=new Ab(new Bb(4));g.setFloat32(0,b,d);for(var h=0;f>h+c;h++)a[h+c]=g.getUint8(h)}else a._dataview.setFloat32(c,b,d)}function ab(a,b,c){_(this,a,b,!0,c)}function bb(a,b,c){_(this,a,b,!1,c)}function cb(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+7=f))if(c+7>=f){var g=new Ab(new Bb(8));g.setFloat64(0,b,d);for(var h=0;f>h+c;h++)a[h+c]=g.getUint8(h)}else a._dataview.setFloat64(c,b,d)}function db(a,b,c){cb(this,a,b,!0,c)}function eb(a,b,c){cb(this,a,b,!1,c)}function fb(a,b,c){if(a||(a=0),b||(b=0),c||(c=this.length),"string"==typeof a&&(a=a.charCodeAt(0)),"number"!=typeof a||isNaN(a))throw new Error("value is not a number");if(b>c)throw new Error("end < start");if(c!==b&&0!==this.length){if(0>b||b>=this.length)throw new Error("start out of bounds");if(0>c||c>this.length)throw new Error("end out of bounds");for(var d=b;c>d;d++)this[d]=a}}function gb(){for(var a=[],b=this.length,d=0;b>d;d++)if(a[d]=pb(this[d]),d===c.INSPECT_MAX_BYTES){a[d+1]="...";break}return""}function hb(){return new d(this).buffer}function ib(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function jb(){var a=new Cb(0);a.foo=function(){return 42};try{return 42===a.foo()}catch(b){return!1}}function kb(a){this._arr=a,0!==a.byteLength&&(this._dataview=new Ab(a.buffer,a.byteOffset,a.byteLength))}function lb(a){if(void 0===Db&&(Db=jb()),Db)return a.write=j,a.toString=k,a.toLocaleString=k,a.toJSON=l,a.copy=m,a.slice=s,a.readUInt8=t,a.readUInt16LE=v,a.readUInt16BE=w,a.readUInt32LE=y,a.readUInt32BE=z,a.readInt8=A,a.readInt16LE=C,a.readInt16BE=D,a.readInt32LE=F,a.readInt32BE=G,a.readFloatLE=I,a.readFloatBE=J,a.readDoubleLE=L,a.readDoubleBE=M,a.writeUInt8=N,a.writeUInt16LE=P,a.writeUInt16BE=Q,a.writeUInt32LE=S,a.writeUInt32BE=T,a.writeInt8=U,a.writeInt16LE=W,a.writeInt16BE=X,a.writeInt32LE=Z,a.writeInt32BE=$,a.writeFloatLE=ab,a.writeFloatBE=bb,a.writeDoubleLE=db,a.writeDoubleBE=eb,a.fill=fb,a.inspect=gb,a.toArrayBuffer=hb,a._isBuffer=!0,0!==a.byteLength&&(a._dataview=new Ab(a.buffer,a.byteOffset,a.byteLength)),a;var b=new kb(a),c=new Proxy(b,Eb);return b._proxy=c,c}function mb(a,b,c){return"number"!=typeof a?c:(a=~~a,a>=b?b:a>=0?a:(a+=b,a>=0?a:0))}function nb(a){return a=~~Math.ceil(+a),0>a?0:a}function ob(a){return Array.isArray(a)||d.isBuffer(a)||a&&"object"==typeof a&&"number"==typeof a.length}function pb(a){return 16>a?"0"+a.toString(16):a.toString(16)}function qb(a){for(var b=[],c=0;ce&&!(e+c>=b.length||e>=a.length);)b[e+c]=a[e],e++;return e}function ub(a){try{return decodeURIComponent(a)}catch(b){return String.fromCharCode(65533)}}function vb(a,b){yb("number"==typeof a,"cannot write a non-number as a number"),yb(a>=0,"specified a negative value for writing an unsigned value"),yb(b>=a,"value is larger than maximum value for type"),yb(Math.floor(a)===a,"value has a fractional component")}function wb(a,b,c){yb("number"==typeof a,"cannot write a non-number as a number"),yb(b>=a,"value larger than maximum allowed value"),yb(a>=c,"value smaller than minimum allowed value"),yb(Math.floor(a)===a,"value has a fractional component")}function xb(a,b,c){yb("number"==typeof a,"cannot write a non-number as a number"),yb(b>=a,"value larger than maximum allowed value"),yb(a>=c,"value smaller than minimum allowed value")}function yb(a,b){if(!a)throw new Error(b||"Failed assertion")}var zb=a("typedarray"),Ab="undefined"==typeof DataView?zb.DataView:DataView,Bb="undefined"==typeof ArrayBuffer?zb.ArrayBuffer:ArrayBuffer,Cb="undefined"==typeof Uint8Array?zb.Uint8Array:Uint8Array;c.Buffer=d,c.SlowBuffer=d,c.INSPECT_MAX_BYTES=50,d.poolSize=8192;var Db;d.isEncoding=function(a){switch((a+"").toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},d.isBuffer=function(a){return a&&a._isBuffer},d.byteLength=function(a,b){switch(b||"utf8"){case"hex":return a.length/2;case"utf8":case"utf-8":return qb(a).length;case"ascii":case"binary":return a.length;case"base64":return sb(a).length;default:throw new Error("Unknown encoding")}},d.concat=function(a,b){if(!Array.isArray(a))throw new Error("Usage: Buffer.concat(list, [totalLength])\nlist should be an Array.");var c,e;if(0===a.length)return new d(0);if(1===a.length)return a[0];if("number"!=typeof b)for(b=0,c=0;c0)throw"Invalid string. Length must be a multiple of 4";for(g=a.indexOf("="),g=g>0?a.length-g:0,h=[],e=g>0?a.length-4:a.length,b=0,c=0;e>b;b+=4,c+=3)f=d.indexOf(a[b])<<18|d.indexOf(a[b+1])<<12|d.indexOf(a[b+2])<<6|d.indexOf(a[b+3]),h.push((16711680&f)>>16),h.push((65280&f)>>8),h.push(255&f);return 2===g?(f=d.indexOf(a[b])<<2|d.indexOf(a[b+1])>>4,h.push(255&f)):1===g&&(f=d.indexOf(a[b])<<10|d.indexOf(a[b+1])<<4|d.indexOf(a[b+2])>>2,h.push(f>>8&255),h.push(255&f)),h}function c(a){function b(a){return d[a>>18&63]+d[a>>12&63]+d[a>>6&63]+d[63&a]}var c,e,f,g=a.length%3,h="";for(c=0,f=a.length-g;f>c;c+=3)e=(a[c]<<16)+(a[c+1]<<8)+a[c+2],h+=b(e);switch(g){case 1:e=a[a.length-1],h+=d[e>>2],h+=d[e<<4&63],h+="==";break;case 2:e=(a[a.length-2]<<8)+a[a.length-1],h+=d[e>>10],h+=d[e>>4&63],h+=d[e<<2&63],h+="="}return h}var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";b.exports.toByteArray=a,b.exports.fromByteArray=c}()},{}],4:[function(a,b,c){function d(a){if(L&&K){var b,c=L(a);for(b=0;bB)throw new RangeError("Array too large for polyfill");var c;for(c=0;c>c}function g(a,b){var c=32-b;return a<>>c}function h(a){return[255&a]}function i(a){return f(a[0],8)}function j(a){return[255&a]}function k(a){return g(a[0],8)}function l(a){return a=J(Number(a)),[0>a?0:a>255?255:255&a]}function m(a){return[a>>8&255,255&a]}function n(a){return f(a[0]<<8|a[1],16)}function o(a){return[a>>8&255,255&a]}function p(a){return g(a[0]<<8|a[1],16)}function q(a){return[a>>24&255,a>>16&255,a>>8&255,255&a]}function r(a){return f(a[0]<<24|a[1]<<16|a[2]<<8|a[3],32)}function s(a){return[a>>24&255,a>>16&255,a>>8&255,255&a]}function t(a){return g(a[0]<<24|a[1]<<16|a[2]<<8|a[3],32)}function u(a,b,c){function d(a){var b=F(a),c=a-b;return.5>c?b:c>.5?b+1:b%2?b+1:b}var e,f,g,h,i,j,k,l=(1<a?1:0):0===a?(f=0,g=0,e=1/a===-1/0?1:0):(e=0>a,a=E(a),a>=I(2,1-l)?(f=H(F(G(a)/D),1023),g=d(a/I(2,f)*I(2,c)),g/I(2,c)>=2&&(f+=1,g=1),f>l?(f=(1<>=1;return l.reverse(),g=l.join(""),h=(1<0?i*I(2,j-h)*(1+k/I(2,c)):0!==k?i*I(2,-(h-1))*(k/I(2,c)):0>i?-0:0}function w(a){return v(a,11,52)}function x(a){return u(a,11,52)}function y(a){return v(a,8,23)}function z(a){return u(a,8,23)}var A=void 0,B=1e5,C=function(){var a=Object.prototype.toString,b=Object.prototype.hasOwnProperty;return{Class:function(b){return a.call(b).replace(/^\[object *|\]$/g,"")},HasProperty:function(a,b){return b in a},HasOwnProperty:function(a,c){return b.call(a,c)},IsCallable:function(a){return"function"==typeof a},ToInt32:function(a){return a>>0},ToUint32:function(a){return a>>>0}}}(),D=Math.LN2,E=Math.abs,F=Math.floor,G=Math.log,H=Math.min,I=Math.pow,J=Math.round,K=Object.defineProperty||function(a,b,c){if(!a===Object(a))throw new TypeError("Object.defineProperty called on non-object");return C.HasProperty(c,"get")&&Object.prototype.__defineGetter__&&Object.prototype.__defineGetter__.call(a,b,c.get),C.HasProperty(c,"set")&&Object.prototype.__defineSetter__&&Object.prototype.__defineSetter__.call(a,b,c.set),C.HasProperty(c,"value")&&(a[b]=c.value),a},L=Object.getOwnPropertyNames||function(a){if(a!==Object(a))throw new TypeError("Object.getOwnPropertyNames called on non-object");var b,c=[];for(b in a)C.HasOwnProperty(a,b)&&c.push(b);return c};!function(){function a(a,c,g){var h;return h=function(a,c,f){var g,i,j,k;if(arguments.length&&"number"!=typeof arguments[0])if("object"==typeof arguments[0]&&arguments[0].constructor===h)for(g=arguments[0],this.length=g.length,this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new b(this.byteLength),this.byteOffset=0,j=0;jthis.buffer.byteLength)throw new RangeError("byteOffset out of range");if(this.byteOffset%this.BYTES_PER_ELEMENT)throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size.");if(arguments.length<3){if(this.byteLength=this.buffer.byteLength-this.byteOffset,this.byteLength%this.BYTES_PER_ELEMENT)throw new RangeError("length of buffer minus byteOffset not a multiple of the element size");this.length=this.byteLength/this.BYTES_PER_ELEMENT}else this.length=C.ToUint32(f),this.byteLength=this.length*this.BYTES_PER_ELEMENT;if(this.byteOffset+this.byteLength>this.buffer.byteLength)throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}else for(i=arguments[0],this.length=C.ToUint32(i.length),this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new b(this.byteLength),this.byteOffset=0,j=0;jf)throw new RangeError("ArrayBufferView size is not a small enough positive integer");this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new b(this.byteLength),this.byteOffset=0}this.constructor=h,d(this),e(this)},h.prototype=new f,h.prototype.BYTES_PER_ELEMENT=a,h.prototype._pack=c,h.prototype._unpack=g,h.BYTES_PER_ELEMENT=a,h.prototype._getter=function(a){if(arguments.length<1)throw new SyntaxError("Not enough arguments");if(a=C.ToUint32(a),a>=this.length)return A;var b,c,d=[];for(b=0,c=this.byteOffset+a*this.BYTES_PER_ELEMENT;b=this.length)return A;var c,d,e=this._pack(b);for(c=0,d=this.byteOffset+a*this.BYTES_PER_ELEMENT;cthis.length)throw new RangeError("Offset plus length of array is out of range");if(h=this.byteOffset+c*this.BYTES_PER_ELEMENT,i=a.length*this.BYTES_PER_ELEMENT,a.buffer===this.buffer){for(j=[],e=0,f=a.byteOffset;i>e;e+=1,f+=1)j[e]=a.buffer._bytes[f];for(e=0,g=h;i>e;e+=1,g+=1)this.buffer._bytes[g]=j[e]}else for(e=0,f=a.byteOffset,g=h;i>e;e+=1,f+=1,g+=1)this.buffer._bytes[g]=a.buffer._bytes[f]}else{if("object"!=typeof arguments[0]||"undefined"==typeof arguments[0].length)throw new TypeError("Unexpected argument type(s)");if(b=arguments[0],d=C.ToUint32(b.length),c=C.ToUint32(arguments[1]),c+d>this.length)throw new RangeError("Offset plus length of array is out of range");for(e=0;d>e;e+=1)f=b[e],this._setter(c+e,Number(f))}},h.prototype.subarray=function(a,b){function c(a,b,c){return b>a?b:a>c?c:a}a=C.ToInt32(a),b=C.ToInt32(b),arguments.length<1&&(a=0),arguments.length<2&&(b=this.length),0>a&&(a=this.length+a),0>b&&(b=this.length+b),a=c(a,0,this.length),b=c(b,0,this.length);var d=b-a;return 0>d&&(d=0),new this.constructor(this.buffer,this.byteOffset+a*this.BYTES_PER_ELEMENT,d)},h}var b=function(a){if(a=C.ToInt32(a),0>a)throw new RangeError("ArrayBuffer size is not a small enough positive integer");this.byteLength=a,this._bytes=[],this._bytes.length=a;var b;for(b=0;bthis.byteLength)throw new RangeError("Array index out of range");c+=this.byteOffset;var e,g=new Uint8Array(this.buffer,c,b.BYTES_PER_ELEMENT),h=[];for(e=0;ethis.byteLength)throw new RangeError("Array index out of range");var g,h,i=new b([d]),j=new Uint8Array(i.buffer),k=[];for(g=0;gthis.buffer.byteLength)throw new RangeError("byteOffset out of range");if(this.byteLength=arguments.length<3?this.buffer.byteLength-this.byteOffset:C.ToUint32(c),this.byteOffset+this.byteLength>this.buffer.byteLength)throw new RangeError("byteOffset and length reference an area beyond the end of the buffer");d(this)};g.prototype.getUint8=b(c.Uint8Array),g.prototype.getInt8=b(c.Int8Array),g.prototype.getUint16=b(c.Uint16Array),g.prototype.getInt16=b(c.Int16Array),g.prototype.getUint32=b(c.Uint32Array),g.prototype.getInt32=b(c.Int32Array),g.prototype.getFloat32=b(c.Float32Array),g.prototype.getFloat64=b(c.Float64Array),g.prototype.setUint8=e(c.Uint8Array),g.prototype.setInt8=e(c.Int8Array),g.prototype.setUint16=e(c.Uint16Array),g.prototype.setInt16=e(c.Int16Array),g.prototype.setUint32=e(c.Uint32Array),g.prototype.setInt32=e(c.Int32Array),g.prototype.setFloat32=e(c.Float32Array),g.prototype.setFloat64=e(c.Float64Array),c.DataView=c.DataView||g}()},{}]},{},[]),b.exports=a("native-buffer-browserify").Buffer},{}],2:[function(a,b){var c=b.exports={};c.nextTick=function(){var a="undefined"!=typeof window&&window.setImmediate,b="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(a)return function(a){return window.setImmediate(a)};if(b){var c=[];return window.addEventListener("message",function(a){if(a.source===window&&"process-tick"===a.data&&(a.stopPropagation(),c.length>0)){var b=c.shift();b()}},!0),function(a){c.push(a),window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}(),c.title="browser",c.browser=!0,c.env={},c.argv=[],c.binding=function(){throw new Error("process.binding is not supported")},c.cwd=function(){return"/"},c.chdir=function(){throw new Error("process.chdir is not supported")}},{}],3:[function(a,b){function c(){}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Scalar"));b.exports=c,c.lineInt=function(a,b,c){c=c||0;var e,f,g,h,i,j,k,l=[0,0];return e=a[1][1]-a[0][1],f=a[0][0]-a[1][0],g=e*a[0][0]+f*a[0][1],h=b[1][1]-b[0][1],i=b[0][0]-b[1][0],j=h*b[0][0]+i*b[0][1],k=e*i-h*f,d.eq(k,0,c)||(l[0]=(i*g-f*j)/k,l[1]=(e*j-h*g)/k),l},c.segmentsIntersect=function(a,b,c,d){var e=b[0]-a[0],f=b[1]-a[1],g=d[0]-c[0],h=d[1]-c[1];if(g*f-h*e==0)return!1;var i=(e*(c[1]-a[1])+f*(a[0]-c[0]))/(g*f-h*e),j=(g*(a[1]-c[1])+h*(c[0]-a[0]))/(h*e-g*f);return i>=0&&1>=i&&j>=0&&1>=j}},{"./Scalar":6,__browserify_Buffer:1,__browserify_process:2}],4:[function(a,b){function c(){}a("__browserify_process"),a("__browserify_Buffer");b.exports=c,c.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},c.left=function(a,b,d){return c.area(a,b,d)>0},c.leftOn=function(a,b,d){return c.area(a,b,d)>=0},c.right=function(a,b,d){return c.area(a,b,d)<0},c.rightOn=function(a,b,d){return c.area(a,b,d)<=0};var d=[],e=[];c.collinear=function(a,b,f,g){if(g){var h=d,i=e;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=f[0]-b[0],i[1]=f[1]-b[1];var j=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]),m=Math.acos(j/(k*l));return g>m}return 0==c.area(a,b,f)},c.sqdist=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d}},{__browserify_Buffer:1,__browserify_process:2}],5:[function(a,b){function c(){this.vertices=[]}function d(a,b,c,d,e){e=e||0;var f=b[1]-a[1],h=a[0]-b[0],i=f*a[0]+h*a[1],j=d[1]-c[1],k=c[0]-d[0],l=j*c[0]+k*c[1],m=f*k-j*h;return g.eq(m,0,e)?[0,0]:[(k*i-h*l)/m,(f*l-j*i)/m]}var e=(a("__browserify_process"),a("__browserify_Buffer"),a("./Line")),f=a("./Point"),g=a("./Scalar");b.exports=c,c.prototype.at=function(a){var b=this.vertices,c=b.length;return b[0>a?a%c+c:a%c]},c.prototype.first=function(){return this.vertices[0]},c.prototype.last=function(){return this.vertices[this.vertices.length-1]},c.prototype.clear=function(){this.vertices.length=0},c.prototype.append=function(a,b,c){if("undefined"==typeof b)throw new Error("From is not given!");if("undefined"==typeof c)throw new Error("To is not given!");if(b>c-1)throw new Error("lol1");if(c>a.vertices.length)throw new Error("lol2");if(0>b)throw new Error("lol3");for(var d=b;c>d;d++)this.vertices.push(a.vertices[d])},c.prototype.makeCCW=function(){for(var a=0,b=this.vertices,c=1;cb[a][0])&&(a=c);f.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},c.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},c.prototype.isReflex=function(a){return f.right(this.at(a-1),this.at(a),this.at(a+1))};var h=[],i=[];c.prototype.canSee=function(a,b){var c,d,g=h,j=i;if(f.leftOn(this.at(a+1),this.at(a),this.at(b))&&f.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=f.sqdist(this.at(a),this.at(b));for(var k=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&f.leftOn(this.at(a),this.at(b),this.at(k+1))&&f.rightOn(this.at(a),this.at(b),this.at(k))&&(g[0]=this.at(a),g[1]=this.at(b),j[0]=this.at(k),j[1]=this.at(k+1),c=e.lineInt(g,j),f.sqdist(this.at(a),c)a)for(var f=a;b>=f;f++)e.vertices.push(this.vertices[f]);else{for(var f=0;b>=f;f++)e.vertices.push(this.vertices[f]);for(var f=a;f0?this.slice(a):[this]},c.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;cc;c++)if(e.segmentsIntersect(a[b],a[b+1],a[c],a[c+1]))return!1;for(var b=1;bh)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;xo&&(n=o,k=l,r=y))),f.left(v.at(x+1),v.at(x),v.at(y+1))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(l=d(v.at(x+1),v.at(x),v.at(y),v.at(y+1)),f.left(v.at(x-1),v.at(x),l)&&(o=f.sqdist(v.vertices[x],l),m>o&&(m=o,j=l,q=y)));if(r==(q+1)%this.vertices.length)l[0]=(k[0]+j[0])/2,l[1]=(k[1]+j[1])/2,e.push(l),q>x?(t.append(v,x,q+1),t.vertices.push(l),u.vertices.push(l),0!=r&&u.append(v,r,v.vertices.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,v.vertices.length),t.append(v,0,q+1),t.vertices.push(l),u.vertices.push(l),u.append(v,r,x+1));else{if(r>q&&(q+=this.vertices.length),p=Number.MAX_VALUE,r>q)return a;for(var y=r;q>=y;++y)f.leftOn(v.at(x-1),v.at(x),v.at(y))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(o=f.sqdist(v.at(x),v.at(y)),p>o&&(p=o,s=y%this.vertices.length));s>x?(t.append(v,x,s+1),0!=s&&u.append(v,s,w.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,w.length),t.append(v,0,s+1),u.append(v,s,x+1))}return t.vertices.length3&&c>=0;--c)f.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":3,"./Point":4,"./Scalar":6,__browserify_Buffer:1,__browserify_process:2}],6:[function(a,b){function c(){}a("__browserify_process"),a("__browserify_Buffer");b.exports=c,c.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"~0.4.0","grunt-contrib-jshint":"~0.9.2","grunt-contrib-nodeunit":"~0.1.2","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","grunt-contrib-concat":"^0.4.0"},dependencies:{"poly-decomp":"0.1.0"}}},{__browserify_Buffer:1,__browserify_process:2}],9:[function(a,b){function c(a){this.lowerBound=d.create(),a&&a.lowerBound&&d.copy(this.lowerBound,a.lowerBound),this.upperBound=d.create(),a&&a.upperBound&&d.copy(this.upperBound,a.upperBound)}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2"));a("../utils/Utils")}b.exports=c;var e=d.create();c.prototype.setFromPoints=function(a,b,c,f){var g=this.lowerBound,h=this.upperBound;"number"!=typeof c&&(c=0),0!==c?d.rotate(g,a[0],c):d.copy(g,a[0]),d.copy(h,g);for(var i=Math.cos(c),j=Math.sin(c),k=1;ko;o++)l[o]>h[o]&&(h[o]=l[o]),l[o]c&&(this.lowerBound[b]=c);var d=a.upperBound[b];this.upperBound[b]=c},c.aabbCheck=function(a,b){return a.getAABB().overlaps(b.getAABB())},c.prototype.boundingVolumeCheck=function(a,b){var d;switch(this.boundingVolumeType){case c.BOUNDING_CIRCLE:d=c.boundingRadiusCheck(a,b);break;case c.AABB:d=c.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return d},c.canCollide=function(a,b){return a.type===e.STATIC&&b.type===e.STATIC?!1:a.type===e.KINEMATIC&&b.type===e.STATIC||a.type===e.STATIC&&b.type===e.KINEMATIC?!1:a.type===e.KINEMATIC&&b.type===e.KINEMATIC?!1:a.sleepState===e.SLEEPING&&b.sleepState===e.SLEEPING?!1:a.sleepState===e.SLEEPING&&b.type===e.STATIC||b.sleepState===e.SLEEPING&&a.type===e.STATIC?!1:!0},c.NAIVE=1,c.SAP=2},{"../math/vec2":31,"../objects/Body":32,__browserify_Buffer:1,__browserify_process:2}],11:[function(a,b){function c(a){d.apply(this),a=e.defaults(a,{xmin:-100,xmax:100,ymin:-100,ymax:100,nx:10,ny:10}),this.xmin=a.xmin,this.ymin=a.ymin,this.xmax=a.xmax,this.ymax=a.ymax,this.nx=a.nx,this.ny=a.ny,this.binsizeX=(this.xmax-this.xmin)/this.nx,this.binsizeY=(this.ymax-this.ymin)/this.ny}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Particle"),a("../collision/Broadphase")),e=(a("../math/vec2"),a("../utils/Utils"));b.exports=c,c.prototype=new d,c.prototype.getCollisionPairs=function(a){for(var b=[],c=a.bodies,e=c.length,f=(this.binsizeX,this.binsizeY,this.nx),g=this.ny,h=this.xmin,i=this.ymin,j=this.xmax,k=this.ymax,l=[],m=f*g,n=0;m>n;n++)l.push([]);for(var o=f/(j-h),p=g/(k-i),n=0;n!==e;n++)for(var q=c[n],r=q.aabb,s=Math.max(r.lowerBound[0],h),t=Math.max(r.lowerBound[1],i),u=Math.min(r.upperBound[0],j),v=Math.min(r.upperBound[1],k),w=Math.floor(o*(s-h)),x=Math.floor(p*(t-i)),y=Math.floor(o*(u-h)),z=Math.floor(p*(v-i)),A=w;y>=A;A++)for(var B=x;z>=B;B++){var C=A,D=B,E=C*(g-1)+D;E>=0&&m>E&&l[E].push(q)}for(var n=0;n!==m;n++)for(var F=l[n],A=0,G=F.length;A!==G;A++)for(var q=F[A],B=0;B!==A;B++){var H=F[B];d.canCollide(q,H)&&this.boundingVolumeCheck(q,H)&&b.push(q,H)}return b}},{"../collision/Broadphase":10,"../math/vec2":31,"../shapes/Circle":38,"../shapes/Particle":42,"../shapes/Plane":43,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],12:[function(a,b){function c(){d.call(this,d.NAIVE)}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var e=0,f=b.length;e!==f;e++)for(var g=b[e],h=0;e>h;h++){var i=b[h];d.canCollide(g,i)&&this.boundingVolumeCheck(g,i)&&c.push(g,i)}return c}},{"../collision/Broadphase":10,"../math/vec2":31,"../shapes/Circle":38,"../shapes/Particle":42,"../shapes/Plane":43,"../shapes/Shape":45,__browserify_Buffer:1,__browserify_process:2}],13:[function(a,b){function c(){this.contactEquations=[],this.frictionEquations=[],this.enableFriction=!0,this.slipForce=10,this.frictionCoefficient=.3,this.surfaceVelocity=0,this.reuseObjects=!0,this.reusableContactEquations=[],this.reusableFrictionEquations=[],this.restitution=0,this.stiffness=l.DEFAULT_STIFFNESS,this.relaxation=l.DEFAULT_RELAXATION,this.frictionStiffness=l.DEFAULT_STIFFNESS,this.frictionRelaxation=l.DEFAULT_RELAXATION,this.enableFrictionReduction=!0,this.collidingBodiesLastStep=new k,this.contactSkinSize=.01}function d(a,b){f.set(a.vertices[0],.5*-b.length,-b.radius),f.set(a.vertices[1],.5*b.length,-b.radius),f.set(a.vertices[2],.5*b.length,b.radius),f.set(a.vertices[3],.5*-b.length,b.radius)}function e(a,b,c,d){for(var e=R,i=S,j=T,k=U,l=a,m=b.vertices,n=null,o=0;o!==m.length+1;o++){var p=m[o%m.length],q=m[(o+1)%m.length];f.rotate(e,p,d),f.rotate(i,q,d),h(e,e,c),h(i,i,c),g(j,e,l),g(k,i,l);var r=f.crossLength(j,k);if(null===n&&(n=r),0>=r*n)return!1;n=r}return!0}var f=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2")),g=f.sub,h=f.add,i=f.dot,j=a("../utils/Utils"),k=a("../utils/TupleDictionary"),l=a("../equations/Equation"),m=a("../equations/ContactEquation"),n=a("../equations/FrictionEquation"),o=a("../shapes/Circle"),p=a("../shapes/Convex"),q=a("../shapes/Shape"),r=(a("../objects/Body"),a("../shapes/Rectangle"));b.exports=c;var s=f.fromValues(0,1),t=f.fromValues(0,0),u=f.fromValues(0,0),v=f.fromValues(0,0),w=f.fromValues(0,0),x=f.fromValues(0,0),y=f.fromValues(0,0),z=f.fromValues(0,0),A=f.fromValues(0,0),B=f.fromValues(0,0),C=f.fromValues(0,0),D=f.fromValues(0,0),E=f.fromValues(0,0),F=f.fromValues(0,0),G=f.fromValues(0,0),H=f.fromValues(0,0),I=f.fromValues(0,0),J=f.fromValues(0,0),K=f.fromValues(0,0),L=[];c.prototype.collidedLastStep=function(a,b){var c=0|a.id,d=0|b.id;return!!this.collidingBodiesLastStep.get(c,d)},c.prototype.reset=function(){this.collidingBodiesLastStep.reset();for(var a=this.contactEquations,b=a.length;b--;){var c=a[b],d=c.bodyA.id,e=c.bodyB.id;this.collidingBodiesLastStep.set(d,e,!0)}if(this.reuseObjects){var f=this.contactEquations,g=this.frictionEquations,h=this.reusableFrictionEquations,i=this.reusableContactEquations;j.appendArray(i,f),j.appendArray(h,g)}this.contactEquations.length=this.frictionEquations.length=0},c.prototype.createContactEquation=function(a,b,c,d){var e=this.reusableContactEquations.length?this.reusableContactEquations.pop():new m(a,b);return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.restitution=this.restitution,e.firstImpact=!this.collidedLastStep(a,b),e.stiffness=this.stiffness,e.relaxation=this.relaxation,e.needsUpdate=!0,e.enabled=!0,e.offset=this.contactSkinSize,e},c.prototype.createFrictionEquation=function(a,b,c,d){var e=this.reusableFrictionEquations.length?this.reusableFrictionEquations.pop():new n(a,b);return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.setSlipForce(this.slipForce),e.frictionCoefficient=this.frictionCoefficient,e.relativeVelocity=this.surfaceVelocity,e.enabled=!0,e.needsUpdate=!0,e.stiffness=this.frictionStiffness,e.relaxation=this.frictionRelaxation,e.contactEquations.length=0,e},c.prototype.createFrictionFromContact=function(a){var b=this.createFrictionEquation(a.bodyA,a.bodyB,a.shapeA,a.shapeB);return f.copy(b.contactPointA,a.contactPointA),f.copy(b.contactPointB,a.contactPointB),f.rotate90cw(b.t,a.normalA),b.contactEquations.push(a),b},c.prototype.createFrictionFromAverage=function(a){if(!a)throw new Error("numContacts == 0!");{var b=this.contactEquations[this.contactEquations.length-1],c=this.createFrictionEquation(b.bodyA,b.bodyB,b.shapeA,b.shapeB),d=b.bodyA;b.bodyB}f.set(c.contactPointA,0,0),f.set(c.contactPointB,0,0),f.set(c.t,0,0);for(var e=0;e!==a;e++)b=this.contactEquations[this.contactEquations.length-1-e],b.bodyA===d?(f.add(c.t,c.t,b.normalA),f.add(c.contactPointA,c.contactPointA,b.contactPointA),f.add(c.contactPointB,c.contactPointB,b.contactPointB)):(f.sub(c.t,c.t,b.normalA),f.add(c.contactPointA,c.contactPointA,b.contactPointB),f.add(c.contactPointB,c.contactPointB,b.contactPointA)),c.contactEquations.push(b);var g=1/a;return f.scale(c.contactPointA,c.contactPointA,g),f.scale(c.contactPointB,c.contactPointB,g),f.normalize(c.t,c.t),f.rotate90cw(c.t,c.t),c},c.prototype[q.LINE|q.CONVEX]=c.prototype.convexLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[q.LINE|q.RECTANGLE]=c.prototype.lineRectangle=function(a,b,c,d,e,f,g,h,i){return i?!1:0};var M=new r(1,1),N=f.create();c.prototype[q.CAPSULE|q.CONVEX]=c.prototype[q.CAPSULE|q.RECTANGLE]=c.prototype.convexCapsule=function(a,b,c,e,g,h,i,j,k){var l=N;f.set(l,h.length/2,0),f.rotate(l,l,j),f.add(l,l,i);var m=this.circleConvex(g,h,l,j,a,b,c,e,k,h.radius);f.set(l,-h.length/2,0),f.rotate(l,l,j),f.add(l,l,i);var n=this.circleConvex(g,h,l,j,a,b,c,e,k,h.radius);if(k&&(m||n))return!0;var o=M;d(o,h);var p=this.convexConvex(a,b,c,e,g,o,i,j,k);return p+m+n},c.prototype[q.CAPSULE|q.LINE]=c.prototype.lineCapsule=function(a,b,c,d,e,f,g,h,i){return i?!1:0};var O=f.create(),P=f.create(),Q=new r(1,1);c.prototype[q.CAPSULE|q.CAPSULE]=c.prototype.capsuleCapsule=function(a,b,c,e,g,h,i,j,k){for(var l,m=O,n=P,o=0,p=0;2>p;p++){f.set(m,(0===p?-1:1)*b.length/2,0),f.rotate(m,m,e),f.add(m,m,c);for(var q=0;2>q;q++){f.set(n,(0===q?-1:1)*h.length/2,0),f.rotate(n,n,j),f.add(n,n,i),this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var r=this.circleCircle(a,b,m,e,g,h,n,j,k,b.radius,h.radius);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&r)return!0;o+=r}}this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var s=Q;d(s,b);var t=this.convexCapsule(a,s,c,e,g,h,i,j,k);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&t)return!0;if(o+=t,this.enableFrictionReduction){var l=this.enableFriction;this.enableFriction=!1}d(s,h);var u=this.convexCapsule(g,s,i,j,a,b,c,e,k);return this.enableFrictionReduction&&(this.enableFriction=l),k&&u?!0:(o+=u,this.enableFrictionReduction&&o&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(o)),o)},c.prototype[q.LINE|q.LINE]=c.prototype.lineLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0 -},c.prototype[q.PLANE|q.LINE]=c.prototype.planeLine=function(a,b,c,d,e,j,k,l,m){var n=t,o=u,p=v,q=w,r=x,C=y,D=z,E=A,F=B,G=L,H=0;f.set(n,-j.length/2,0),f.set(o,j.length/2,0),f.rotate(p,n,l),f.rotate(q,o,l),h(p,p,k),h(q,q,k),f.copy(n,p),f.copy(o,q),g(r,o,n),f.normalize(C,r),f.rotate90cw(F,C),f.rotate(E,s,d),G[0]=n,G[1]=o;for(var I=0;IK){if(m)return!0;var M=this.createContactEquation(a,e,b,j);H++,f.copy(M.normalA,E),f.normalize(M.normalA,M.normalA),f.scale(D,E,K),g(M.contactPointA,J,D),g(M.contactPointA,M.contactPointA,a.position),g(M.contactPointB,J,k),h(M.contactPointB,M.contactPointB,k),g(M.contactPointB,M.contactPointB,e.position),this.contactEquations.push(M),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(M))}}return m?!1:(this.enableFrictionReduction||H&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(H)),H)},c.prototype[q.PARTICLE|q.CAPSULE]=c.prototype.particleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius,0)},c.prototype[q.CIRCLE|q.LINE]=c.prototype.circleLine=function(a,b,c,d,e,j,k,l,m,n,o){var n=n||0,o="undefined"!=typeof o?o:b.radius,p=t,q=u,r=v,s=w,H=x,I=y,J=z,K=A,M=B,N=C,O=D,P=E,Q=F,R=G,S=L;f.set(K,-j.length/2,0),f.set(M,j.length/2,0),f.rotate(N,K,l),f.rotate(O,M,l),h(N,N,k),h(O,O,k),f.copy(K,N),f.copy(M,O),g(I,M,K),f.normalize(J,I),f.rotate90cw(H,J),g(P,c,K);var T=i(P,H);g(s,K,k),g(Q,c,k);var U=o+n;if(Math.abs(T)W&&X>V){if(m)return!0;var Y=this.createContactEquation(a,e,b,j);return f.scale(Y.normalA,p,-1),f.normalize(Y.normalA,Y.normalA),f.scale(Y.contactPointA,Y.normalA,o),h(Y.contactPointA,Y.contactPointA,c),g(Y.contactPointA,Y.contactPointA,a.position),g(Y.contactPointB,r,k),h(Y.contactPointB,Y.contactPointB,k),g(Y.contactPointB,Y.contactPointB,e.position),this.contactEquations.push(Y),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(Y)),1}}S[0]=K,S[1]=M;for(var Z=0;ZQ&&(f.copy(J,B),L=Q,f.scale(A,s,Q),f.add(A,A,B),K=!0)}}if(K){if(m)return!0;var R=this.createContactEquation(a,i,b,j);return f.sub(R.normalA,J,c),f.normalize(R.normalA,R.normalA),f.scale(R.contactPointA,R.normalA,n),h(R.contactPointA,R.contactPointA,c),g(R.contactPointA,R.contactPointA,a.position),g(R.contactPointB,A,k),h(R.contactPointB,R.contactPointB,k),g(R.contactPointB,R.contactPointB,i.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}if(n>0)for(var N=0;NQ&&(I=Q,f.scale(E,s,Q),f.add(E,E,c),f.copy(H,s),L=!0)}if(L){var R=this.createContactEquation(a,j,b,k);return f.scale(R.normalA,H,-1),f.normalize(R.normalA,R.normalA),f.set(R.contactPointA,0,0),h(R.contactPointA,R.contactPointA,c),g(R.contactPointA,R.contactPointA,a.position),g(R.contactPointB,E,l),h(R.contactPointB,R.contactPointB,l),g(R.contactPointB,R.contactPointB,j.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}return 0},c.prototype[q.CIRCLE]=c.prototype.circleCircle=function(a,b,c,d,e,i,j,k,l,m,n){var o=t,m=m||b.radius,n=n||i.radius;g(o,c,j);var p=m+n;if(f.squaredLength(o)>Math.pow(p,2))return 0;if(l)return!0;var q=this.createContactEquation(a,e,b,i);return g(q.normalA,j,c),f.normalize(q.normalA,q.normalA),f.scale(q.contactPointA,q.normalA,m),f.scale(q.contactPointB,q.normalA,-n),h(q.contactPointA,q.contactPointA,c),g(q.contactPointA,q.contactPointA,a.position),h(q.contactPointB,q.contactPointB,j),g(q.contactPointB,q.contactPointB,e.position),this.contactEquations.push(q),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(q)),1},c.prototype[q.PLANE|q.CONVEX]=c.prototype[q.PLANE|q.RECTANGLE]=c.prototype.planeConvex=function(a,b,c,d,e,j,k,l,m){var n=t,o=u,p=v,q=0;f.rotate(o,s,d);for(var r=0;r!==j.vertices.length;r++){var w=j.vertices[r];if(f.rotate(n,w,l),h(n,n,k),g(p,n,c),i(p,o)<=0){if(m)return!0;q++;var x=this.createContactEquation(a,e,b,j);g(p,n,c),f.copy(x.normalA,o);var y=i(p,x.normalA);f.scale(p,x.normalA,y),g(x.contactPointB,n,e.position),g(x.contactPointA,n,p),g(x.contactPointA,x.contactPointA,a.position),this.contactEquations.push(x),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x))}}return this.enableFrictionReduction&&this.enableFriction&&q&&this.frictionEquations.push(this.createFrictionFromAverage(q)),q},c.prototype[q.PARTICLE|q.PLANE]=c.prototype.particlePlane=function(a,b,c,d,e,h,j,k,l){var m=t,n=u;k=k||0,g(m,c,j),f.rotate(n,s,k);var o=i(m,n);if(o>0)return 0;if(l)return!0;var p=this.createContactEquation(e,a,h,b);return f.copy(p.normalA,n),f.scale(m,p.normalA,o),g(p.contactPointA,c,m),g(p.contactPointA,p.contactPointA,e.position),g(p.contactPointB,c,a.position),this.contactEquations.push(p),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(p)),1},c.prototype[q.CIRCLE|q.PARTICLE]=c.prototype.circleParticle=function(a,b,c,d,e,i,j,k,l){var m=t;if(g(m,j,c),f.squaredLength(m)>Math.pow(b.radius,2))return 0;if(l)return!0;var n=this.createContactEquation(a,e,b,i);return f.copy(n.normalA,m),f.normalize(n.normalA,n.normalA),f.scale(n.contactPointA,n.normalA,b.radius),h(n.contactPointA,n.contactPointA,c),g(n.contactPointA,n.contactPointA,a.position),g(n.contactPointB,j,e.position),this.contactEquations.push(n),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(n)),1};{var V=new o(1),W=f.create(),X=f.create();f.create()}c.prototype[q.PLANE|q.CAPSULE]=c.prototype.planeCapsule=function(a,b,c,d,e,g,i,j,k){var l=W,m=X,n=V;f.set(l,-g.length/2,0),f.rotate(l,l,j),h(l,l,i),f.set(m,g.length/2,0),f.rotate(m,m,j),h(m,m,i),n.radius=g.radius;var o;this.enableFrictionReduction&&(o=this.enableFriction,this.enableFriction=!1);var p=this.circlePlane(e,n,l,0,a,b,c,d,k),q=this.circlePlane(e,n,m,0,a,b,c,d,k);if(this.enableFrictionReduction&&(this.enableFriction=o),k)return p||q;var r=p+q;return this.enableFrictionReduction&&r&&this.frictionEquations.push(this.createFrictionFromAverage(r)),r},c.prototype[q.CIRCLE|q.PLANE]=c.prototype.circlePlane=function(a,b,c,d,e,j,k,l,m){var n=a,o=b,p=c,q=e,r=k,w=l;w=w||0;var x=t,y=u,z=v;g(x,p,r),f.rotate(y,s,w);var A=i(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,j,b);return f.copy(B.normalA,y),f.scale(B.contactPointB,B.normalA,-o.radius),h(B.contactPointB,B.contactPointB,p),g(B.contactPointB,B.contactPointB,n.position),f.scale(z,B.normalA,A),g(B.contactPointA,x,z),h(B.contactPointA,B.contactPointA,r),g(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},c.prototype[q.CONVEX]=c.prototype[q.CONVEX|q.RECTANGLE]=c.prototype[q.RECTANGLE]=c.prototype.convexConvex=function(a,b,d,e,j,k,l,m,n,o){var p=t,q=u,r=v,s=w,y=x,C=z,D=A,E=B,F=0,o="number"==typeof o?o:0,G=c.findSeparatingAxis(b,d,e,k,l,m,p);if(!G)return 0;g(D,l,d),i(p,D)>0&&f.scale(p,p,-1);var H=c.getClosestEdge(b,e,p,!0),I=c.getClosestEdge(k,m,p);if(-1===H||-1===I)return 0;for(var J=0;2>J;J++){var K=H,L=I,M=b,N=k,O=d,P=l,Q=e,R=m,S=a,T=j;if(0===J){var U;U=K,K=L,L=U,U=M,M=N,N=U,U=O,O=P,P=U,U=Q,Q=R,R=U,U=S,S=T,T=U}for(var V=L;L+2>V;V++){var W=N.vertices[(V+N.vertices.length)%N.vertices.length];f.rotate(q,W,R),h(q,q,P);for(var X=0,Y=K-1;K+2>Y;Y++){var Z=M.vertices[(Y+M.vertices.length)%M.vertices.length],$=M.vertices[(Y+1+M.vertices.length)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(s,$,Q),h(r,r,O),h(s,s,O),g(y,s,r),f.rotate90cw(E,y),f.normalize(E,E),g(D,q,r);var _=i(E,D);(Y===K&&o>=_||Y!==K&&0>=_)&&X++}if(X>=3){if(n)return!0;var ab=this.createContactEquation(S,T,M,N);F++;var Z=M.vertices[K%M.vertices.length],$=M.vertices[(K+1)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(s,$,Q),h(r,r,O),h(s,s,O),g(y,s,r),f.rotate90cw(ab.normalA,y),f.normalize(ab.normalA,ab.normalA),g(D,q,r);var _=i(ab.normalA,D);f.scale(C,ab.normalA,_),g(ab.contactPointA,q,O),g(ab.contactPointA,ab.contactPointA,C),h(ab.contactPointA,ab.contactPointA,O),g(ab.contactPointA,ab.contactPointA,S.position),g(ab.contactPointB,q,P),h(ab.contactPointB,ab.contactPointB,P),g(ab.contactPointB,ab.contactPointB,T.position),this.contactEquations.push(ab),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(ab))}}}return this.enableFrictionReduction&&this.enableFriction&&F&&this.frictionEquations.push(this.createFrictionFromAverage(F)),F};var Y=f.fromValues(0,0);c.projectConvexOntoAxis=function(a,b,c,d,e){var g,h,j=null,k=null,l=Y;f.rotate(l,d,-c);for(var m=0;mj)&&(j=h),(null===k||k>h)&&(k=h);if(k>j){var n=k;k=j,j=n}var o=i(b,d);f.set(e,k+o,j+o)};var Z=f.fromValues(0,0),$=f.fromValues(0,0),_=f.fromValues(0,0),ab=f.fromValues(0,0),bb=f.fromValues(0,0),cb=f.fromValues(0,0);c.findSeparatingAxis=function(a,b,d,e,h,i,j){var k=null,l=!1,m=!1,n=Z,o=$,p=_,q=ab,s=bb,t=cb;if(a instanceof r&&e instanceof r)for(var u=0;2!==u;u++){var v=a,w=d;1===u&&(v=e,w=i);for(var x=0;2!==x;x++){0===x?f.set(q,0,1):1===x&&f.set(q,1,0),0!==w&&f.rotate(q,q,w),c.projectConvexOntoAxis(a,b,d,q,s),c.projectConvexOntoAxis(e,h,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(f.copy(j,q),k=B,m=l)}}else for(var u=0;2!==u;u++){var v=a,w=d;1===u&&(v=e,w=i);for(var x=0;x!==v.vertices.length;x++){f.rotate(o,v.vertices[x],w),f.rotate(p,v.vertices[(x+1)%v.vertices.length],w),g(n,p,o),f.rotate90cw(q,n),f.normalize(q,q),c.projectConvexOntoAxis(a,b,d,q,s),c.projectConvexOntoAxis(e,h,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(f.copy(j,q),k=B,m=l)}}return m};var db=f.fromValues(0,0),eb=f.fromValues(0,0),fb=f.fromValues(0,0);c.getClosestEdge=function(a,b,c,d){var e=db,h=eb,j=fb;f.rotate(e,c,-b),d&&f.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=-1,n=0;n!==l;n++){g(h,a.vertices[(n+1)%l],a.vertices[n%l]),f.rotate90cw(j,h),f.normalize(j,j);var o=i(j,e);(-1===k||o>m)&&(k=n%l,m=o)}return k};var gb=f.create(),hb=f.create(),ib=f.create(),jb=f.create(),kb=f.create(),lb=f.create(),mb=f.create();c.prototype[q.CIRCLE|q.HEIGHTFIELD]=c.prototype.circleHeightfield=function(a,b,c,d,e,i,j,k,l,m){var n=i.data,m=m||b.radius,o=i.elementWidth,p=hb,q=gb,r=kb,s=mb,t=lb,u=ib,v=jb,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);0>w&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;x>A;A++)n[A]y&&(y=n[A]);if(c[1]-m>y)return l?!1:0;for(var B=!1,A=w;x>A;A++){f.set(u,A*o,n[A]),f.set(v,(A+1)*o,n[A+1]),f.add(u,u,j),f.add(v,v,j),f.sub(t,v,u),f.rotate(t,t,Math.PI/2),f.normalize(t,t),f.scale(q,t,-m),f.add(q,q,c),f.sub(p,q,u);var C=f.dot(p,t);if(q[0]>=u[0]&&q[0]=C){if(l)return!0;B=!0,f.scale(p,t,-C),f.add(r,q,p),f.copy(s,t);var D=this.createContactEquation(e,a,i,b);f.copy(D.normalA,s),f.scale(D.contactPointB,D.normalA,-m),h(D.contactPointB,D.contactPointB,c),g(D.contactPointB,D.contactPointB,a.position),f.copy(D.contactPointA,r),f.sub(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}}if(B=!1,m>0)for(var A=w;x>=A;A++)if(f.set(u,A*o,n[A]),f.add(u,u,j),f.sub(p,c,u),f.squaredLength(p)q&&(q=0),r>=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;r>u;u++)k[u]s&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return j?!1:0;for(var v=0,u=q;r>u;u++){f.set(m,u*l,k[u]),f.set(n,(u+1)*l,k[u+1]),f.add(m,m,h),f.add(n,n,h);var w=100;f.set(o,.5*(n[0]+m[0]),.5*(n[1]+m[1]-w)),f.sub(p.vertices[0],n,o),f.sub(p.vertices[1],m,o),f.copy(p.vertices[2],p.vertices[1]),f.copy(p.vertices[3],p.vertices[0]),p.vertices[2][1]-=w,p.vertices[3][1]-=w,v+=this.convexConvex(a,b,c,d,e,p,o,0,j)}return v}},{"../equations/ContactEquation":22,"../equations/Equation":23,"../equations/FrictionEquation":24,"../math/vec2":31,"../objects/Body":32,"../shapes/Circle":38,"../shapes/Convex":39,"../shapes/Rectangle":44,"../shapes/Shape":45,"../utils/TupleDictionary":49,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],14:[function(a,b){function c(){e.call(this,e.SAP),this.axisList=[],this.axisIndex=0;var a=this;this._addBodyHandler=function(b){a.axisList.push(b.body)},this._removeBodyHandler=function(b){var c=a.axisList.indexOf(b.body);-1!==c&&a.axisList.splice(c,1)}}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../utils/Utils")),e=a("../collision/Broadphase");b.exports=c,c.prototype=new e,c.prototype.setWorld=function(a){this.axisList.length=0,d.appendArray(this.axisList,a.bodies),a.off("addBody",this._addBodyHandler).off("removeBody",this._removeBodyHandler),a.on("addBody",this._addBodyHandler).on("removeBody",this._removeBodyHandler),this.world=a},c.sortAxisList=function(a,b){b=0|b;for(var c=1,d=a.length;d>c;c++){for(var e=a[c],f=c-1;f>=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},c.prototype.getCollisionPairs=function(){var a=this.axisList,b=this.result,d=this.axisIndex;b.length=0;for(var f=a.length;f--;){var g=a[f];g.aabbNeedsUpdate&&g.updateAABB()}c.sortAxisList(a,d);for(var h=0,i=0|a.length;h!==i;h++)for(var j=a[h],k=h+1;i>k;k++){var l=a[k],m=l.aabb.lowerBound[d]<=j.aabb.upperBound[d];if(!m)break;e.canCollide(j,l)&&this.boundingVolumeCheck(j,l)&&b.push(j,l)}return b}},{"../collision/Broadphase":10,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],15:[function(a,b){function c(a,b,c,e){this.type=c,e=d.defaults(e,{collideConnected:!0,wakeUpBodies:!0}),this.equations=[],this.bodyA=a,this.bodyB=b,this.collideConnected=e.collideConnected,e.wakeUpBodies&&(a&&a.wakeUp(),b&&b.wakeUp())}a("__browserify_process"),a("__browserify_Buffer");b.exports=c;var d=a("../utils/Utils");c.prototype.update=function(){throw new Error("method update() not implmemented in this Constraint subclass!")},c.DISTANCE=1,c.GEAR=2,c.LOCK=3,c.PRISMATIC=4,c.REVOLUTE=5,c.prototype.setStiffness=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.stiffness=a,d.needsUpdate=!0}},c.prototype.setRelaxation=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.relaxation=a,d.needsUpdate=!0}}},{"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],16:[function(a,b){function c(a,b,c){c=g.defaults(c,{localAnchorA:[0,0],localAnchorB:[0,0]}),d.call(this,a,b,d.DISTANCE,c),this.localAnchorA=f.fromValues(c.localAnchorA[0],c.localAnchorA[1]),this.localAnchorB=f.fromValues(c.localAnchorB[0],c.localAnchorB[1]);var h=this.localAnchorA,i=this.localAnchorB;if(this.distance=0,"number"==typeof c.distance)this.distance=c.distance;else{var j=f.create(),k=f.create(),l=f.create();f.rotate(j,h,a.angle),f.rotate(k,i,b.angle),f.add(l,b.position,k),f.sub(l,l,j),f.sub(l,l,a.position),this.distance=f.length(l)}var m;m="undefined"==typeof c.maxForce?Number.MAX_VALUE:c.maxForce;var n=new e(a,b,-m,m);this.equations=[n],this.maxForce=m;var l=f.create(),o=f.create(),p=f.create(),q=this;n.computeGq=function(){var a=this.bodyA,b=this.bodyB,c=a.position,d=b.position;return f.rotate(o,h,a.angle),f.rotate(p,i,b.angle),f.add(l,d,p),f.sub(l,l,o),f.sub(l,l,c),f.length(l)-q.distance},this.setMaxForce(m),this.upperLimitEnabled=!1,this.upperLimit=1,this.lowerLimitEnabled=!1,this.lowerLimit=0,this.position=0}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Constraint")),e=a("../equations/Equation"),f=a("../math/vec2"),g=a("../utils/Utils");b.exports=c,c.prototype=new d;var h=f.create(),i=f.create(),j=f.create();c.prototype.update=function(){var a=this.equations[0],b=this.bodyA,c=this.bodyB,d=(this.distance,b.position),e=c.position,g=this.equations[0],k=a.G;f.rotate(i,this.localAnchorA,b.angle),f.rotate(j,this.localAnchorB,c.angle),f.add(h,e,j),f.sub(h,h,i),f.sub(h,h,d),this.position=f.length(h);var l=!1;if(this.upperLimitEnabled&&this.position>this.upperLimit&&(g.maxForce=0,g.minForce=-this.maxForce,this.distance=this.upperLimit,l=!0),this.lowerLimitEnabled&&this.positionc)g.scale(e.normalA,i,-1),g.sub(e.contactPointA,j,h.position),g.sub(e.contactPointB,k,o.position),g.scale(n,i,c),g.add(e.contactPointA,e.contactPointA,n),-1===a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!==u&&a.splice(u,1)}if(this.lowerLimitEnabled&&d>s)g.scale(f.normalA,i,1),g.sub(f.contactPointA,j,h.position),g.sub(f.contactPointB,k,o.position),g.scale(n,i,d),g.sub(f.contactPointB,f.contactPointB,n),-1===a.indexOf(f)&&a.push(f);else{var u=a.indexOf(f);-1!==u&&a.splice(u,1)}},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)}},{"../equations/ContactEquation":22,"../equations/Equation":23,"../equations/RotationalLockEquation":25,"../math/vec2":31,"./Constraint":15,__browserify_Buffer:1,__browserify_process:2}],20:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,d.REVOLUTE,c);var n=this.maxForce="undefined"!=typeof c.maxForce?c.maxForce:Number.MAX_VALUE;this.pivotA=h.create(),this.pivotB=h.create(),c.worldPivot?(h.sub(this.pivotA,c.worldPivot,a.position),h.sub(this.pivotB,c.worldPivot,b.position),h.rotate(this.pivotA,this.pivotA,-a.angle),h.rotate(this.pivotB,this.pivotB,-b.angle)):(h.copy(this.pivotA,c.localPivotA),h.copy(this.pivotB,c.localPivotB));var o=this.equations=[new e(a,b,-n,n),new e(a,b,-n,n)],p=o[0],q=o[1],r=this;p.computeGq=function(){return h.rotate(i,r.pivotA,a.angle),h.rotate(j,r.pivotB,b.angle),h.add(m,b.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,k)},q.computeGq=function(){return h.rotate(i,r.pivotA,a.angle),h.rotate(j,r.pivotB,b.angle),h.add(m,b.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,l)},q.minForce=p.minForce=-n,q.maxForce=p.maxForce=n,this.motorEquation=new f(a,b),this.motorEnabled=!1,this.angle=0,this.lowerLimitEnabled=!1,this.upperLimitEnabled=!1,this.lowerLimit=0,this.upperLimit=0,this.upperLimitEquation=new g(a,b),this.lowerLimitEquation=new g(a,b),this.upperLimitEquation.minForce=0,this.lowerLimitEquation.maxForce=0}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Constraint")),e=a("../equations/Equation"),f=a("../equations/RotationalVelocityEquation"),g=a("../equations/RotationalLockEquation"),h=a("../math/vec2");b.exports=c;var i=h.create(),j=h.create(),k=h.fromValues(1,0),l=h.fromValues(0,1),m=h.create();c.prototype=new d,c.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)},c.prototype.update=function(){var a=this.bodyA,b=this.bodyB,c=this.pivotA,d=this.pivotB,e=this.equations,f=(e[0],e[1],e[0]),g=e[1],m=this.upperLimit,n=this.lowerLimit,o=this.upperLimitEquation,p=this.lowerLimitEquation,q=this.angle=b.angle-a.angle;if(this.upperLimitEnabled&&q>m)o.angle=m,-1===e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!==r&&e.splice(r,1)}if(this.lowerLimitEnabled&&n>q)p.angle=n,-1===e.indexOf(p)&&e.push(p);else{var r=e.indexOf(p);-1!==r&&e.splice(r,1)}h.rotate(i,c,a.angle),h.rotate(j,d,b.angle),f.G[0]=-1,f.G[1]=0,f.G[2]=-h.crossLength(i,k),f.G[3]=1,f.G[4]=0,f.G[5]=h.crossLength(j,k),g.G[0]=0,g.G[1]=-1,g.G[2]=-h.crossLength(i,l),g.G[3]=0,g.G[4]=1,g.G[5]=h.crossLength(j,l)},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.motorIsEnabled=function(){return!!this.motorEnabled},c.prototype.setMotorSpeed=function(a){if(this.motorEnabled){var b=this.equations.indexOf(this.motorEquation);this.equations[b].relativeVelocity=a}},c.prototype.getMotorSpeed=function(){return this.motorEnabled?this.motorEquation.relativeVelocity:!1}},{"../equations/Equation":23,"../equations/RotationalLockEquation":25,"../equations/RotationalVelocityEquation":26,"../math/vec2":31,"./Constraint":15,__browserify_Buffer:1,__browserify_process:2}],21:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0,this.ratio="number"==typeof c.ratio?c.ratio:1,this.setRatio(this.ratio)}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Equation"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeGq=function(){return this.ratio*this.bodyA.angle-this.bodyB.angle+this.angle},c.prototype.setRatio=function(a){var b=this.G;b[2]=a,b[5]=-1,this.ratio=a},c.prototype.setMaxTorque=function(a){this.maxForce=a,this.minForce=-a}},{"../math/vec2":31,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],22:[function(a,b){function c(a,b){d.call(this,a,b,0,Number.MAX_VALUE),this.contactPointA=e.create(),this.penetrationVec=e.create(),this.contactPointB=e.create(),this.normalA=e.create(),this.restitution=0,this.firstImpact=!1,this.shapeA=null,this.shapeB=null}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Equation")),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.bodyA,f=this.bodyB,g=this.contactPointA,h=this.contactPointB,i=d.position,j=f.position,k=this.penetrationVec,l=this.normalA,m=this.G,n=e.crossLength(g,l),o=e.crossLength(h,l);m[0]=-l[0],m[1]=-l[1],m[2]=-n,m[3]=l[0],m[4]=l[1],m[5]=o,e.add(k,j,h),e.sub(k,k,i),e.sub(k,k,g);var p,q;this.firstImpact&&0!==this.restitution?(q=0,p=1/b*(1+this.restitution)*this.computeGW()):(q=e.dot(l,k)+this.offset,p=this.computeGW());var r=this.computeGiMf(),s=-q*a-p*b-c*r;return s}},{"../math/vec2":31,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],23:[function(a,b){function c(a,b,d,f){this.minForce="undefined"==typeof d?-Number.MAX_VALUE:d,this.maxForce="undefined"==typeof f?Number.MAX_VALUE:f,this.bodyA=a,this.bodyB=b,this.stiffness=c.DEFAULT_STIFFNESS,this.relaxation=c.DEFAULT_RELAXATION,this.G=new e.ARRAY_TYPE(6);for(var g=0;6>g;g++)this.G[g]=0; -this.offset=0,this.a=0,this.b=0,this.epsilon=0,this.timeStep=1/60,this.needsUpdate=!0,this.multiplier=0,this.relativeVelocity=0,this.enabled=!0}a("__browserify_process"),a("__browserify_Buffer");b.exports=c;{var d=a("../math/vec2"),e=a("../utils/Utils");a("../objects/Body")}c.prototype.constructor=c,c.DEFAULT_STIFFNESS=1e6,c.DEFAULT_RELAXATION=4,c.prototype.update=function(){var a=this.stiffness,b=this.relaxation,c=this.timeStep;this.a=4/(c*(1+4*b)),this.b=4*b/(1+4*b),this.epsilon=4/(c*c*a*(1+4*b)),this.needsUpdate=!1},c.prototype.gmult=function(a,b,c,d,e){return a[0]*b[0]+a[1]*b[1]+a[2]*c+a[3]*d[0]+a[4]*d[1]+a[5]*e},c.prototype.computeB=function(a,b,c){var d=this.computeGW(),e=this.computeGq(),f=this.computeGiMf();return-e*a-d*b-f*c};var f=d.create(),g=d.create();c.prototype.computeGq=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=(b.position,c.position,b.angle),e=c.angle;return this.gmult(a,f,d,g,e)+this.offset},c.prototype.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.velocity,e=c.velocity,f=b.angularVelocity,g=c.angularVelocity;return this.gmult(a,d,f,e,g)+this.relativeVelocity},c.prototype.computeGWlambda=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.vlambda,e=c.vlambda,f=b.wlambda,g=c.wlambda;return this.gmult(a,d,f,e,g)};var h=d.create(),i=d.create();c.prototype.computeGiMf=function(){var a=this.bodyA,b=this.bodyB,c=a.force,e=a.angularForce,f=b.force,g=b.angularForce,j=a.invMassSolve,k=b.invMassSolve,l=a.invInertiaSolve,m=b.invInertiaSolve,n=this.G;return d.scale(h,c,j),d.scale(i,f,k),this.gmult(n,h,e*l,i,g*m)},c.prototype.computeGiMGt=function(){var a=this.bodyA,b=this.bodyB,c=a.invMassSolve,d=b.invMassSolve,e=a.invInertiaSolve,f=b.invInertiaSolve,g=this.G;return g[0]*g[0]*c+g[1]*g[1]*c+g[2]*g[2]*e+g[3]*g[3]*d+g[4]*g[4]*d+g[5]*g[5]*f};{var j=d.create(),k=d.create(),l=d.create();d.create(),d.create(),d.create()}c.prototype.addToWlambda=function(a){var b=this.bodyA,c=this.bodyB,e=j,f=k,g=l,h=b.invMassSolve,i=c.invMassSolve,m=b.invInertiaSolve,n=c.invInertiaSolve,o=this.G;f[0]=o[0],f[1]=o[1],g[0]=o[3],g[1]=o[4],d.scale(e,f,h*a),d.add(b.vlambda,b.vlambda,e),b.wlambda+=m*o[2]*a,d.scale(e,g,i*a),d.add(c.vlambda,c.vlambda,e),c.wlambda+=n*o[5]*a},c.prototype.computeInvC=function(a){return 1/(this.computeGiMGt()+a)}},{"../math/vec2":31,"../objects/Body":32,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],24:[function(a,b){function c(a,b,c){e.call(this,a,b,-c,c),this.contactPointA=d.create(),this.contactPointB=d.create(),this.t=d.create(),this.contactEquations=[],this.shapeA=null,this.shapeB=null,this.frictionCoefficient=.3}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2")),e=a("./Equation");a("../utils/Utils")}b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.setSlipForce=function(a){this.maxForce=a,this.minForce=-a},c.prototype.getSlipForce=function(){return this.maxForce},c.prototype.computeB=function(a,b,c){var e=(this.bodyA,this.bodyB,this.contactPointA),f=this.contactPointB,g=this.t,h=this.G;h[0]=-g[0],h[1]=-g[1],h[2]=-d.crossLength(e,g),h[3]=g[0],h[4]=g[1],h[5]=d.crossLength(f,g);var i=this.computeGW(),j=this.computeGiMf(),k=-i*b-c*j;return k}},{"../math/vec2":31,"../utils/Utils":50,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],25:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0;var e=this.G;e[2]=1,e[5]=-1}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Equation")),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c;var f=e.create(),g=e.create(),h=e.fromValues(1,0),i=e.fromValues(0,1);c.prototype.computeGq=function(){return e.rotate(f,h,this.bodyA.angle+this.angle),e.rotate(g,i,this.bodyB.angle),e.dot(f,g)}},{"../math/vec2":31,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],26:[function(a,b){function c(a,b){d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.relativeVelocity=1,this.ratio=1}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Equation"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.G;d[2]=-1,d[5]=this.ratio;var e=this.computeGiMf(),f=this.computeGW(),g=-f*b-c*e;return g}},{"../math/vec2":31,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],27:[function(a,b){var c=(a("__browserify_process"),a("__browserify_Buffer"),function(){});b.exports=c,c.prototype={constructor:c,on:function(a,b,c){b.context=c||this,void 0===this._listeners&&(this._listeners={});var d=this._listeners;return void 0===d[a]&&(d[a]=[]),-1===d[a].indexOf(b)&&d[a].push(b),this},has:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;if(b){if(void 0!==c[a]&&-1!==c[a].indexOf(b))return!0}else if(void 0!==c[a])return!0;return!1},off:function(a,b){if(void 0===this._listeners)return this;var c=this._listeners,d=c[a].indexOf(b);return-1!==d&&c[a].splice(d,1),this},emit:function(a){if(void 0===this._listeners)return this;var b=this._listeners,c=b[a.type];if(void 0!==c){a.target=this;for(var d=0,e=c.length;e>d;d++){var f=c[d];f.call(f.context,a)}}return this}}},{__browserify_Buffer:1,__browserify_process:2}],28:[function(a,b){function c(a,b,f){if(f=f||{},!(a instanceof d&&b instanceof d))throw new Error("First two arguments must be Material instances.");this.id=c.idCounter++,this.materialA=a,this.materialB=b,this.friction="undefined"!=typeof f.friction?Number(f.friction):.3,this.restitution="undefined"!=typeof f.restitution?Number(f.restitution):0,this.stiffness="undefined"!=typeof f.stiffness?Number(f.stiffness):e.DEFAULT_STIFFNESS,this.relaxation="undefined"!=typeof f.relaxation?Number(f.relaxation):e.DEFAULT_RELAXATION,this.frictionStiffness="undefined"!=typeof f.frictionStiffness?Number(f.frictionStiffness):e.DEFAULT_STIFFNESS,this.frictionRelaxation="undefined"!=typeof f.frictionRelaxation?Number(f.frictionRelaxation):e.DEFAULT_RELAXATION,this.surfaceVelocity="undefined"!=typeof f.surfaceVelocity?Number(f.surfaceVelocity):0,this.contactSkinSize=.005}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Material")),e=a("../equations/Equation");b.exports=c,c.idCounter=0},{"../equations/Equation":23,"./Material":29,__browserify_Buffer:1,__browserify_process:2}],29:[function(a,b){function c(a){this.id=a||c.idCounter++}a("__browserify_process"),a("__browserify_Buffer");b.exports=c,c.idCounter=0},{__browserify_Buffer:1,__browserify_process:2}],30:[function(a,b){var c=(a("__browserify_process"),a("__browserify_Buffer"),{});c.GetArea=function(a){if(a.length<6)return 0;for(var b=a.length-2,c=0,d=0;b>d;d+=2)c+=(a[d+2]-a[d])*(a[d+1]+a[d+3]);return c+=(a[0]-a[b])*(a[b+1]+a[1]),.5*-c},c.Triangulate=function(a){var b=a.length>>1;if(3>b)return[];for(var d=[],e=[],f=0;b>f;f++)e.push(f);for(var f=0,g=b;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(c._convex(k,l,m,n,o,p)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!=h&&s!=i&&s!=j&&c._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g)break}return d.push(e[0],e[1],e[2]),d},c._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},c._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=c},{__browserify_Buffer:1,__browserify_process:2}],31:[function(a,b){var c=(a("__browserify_process"),a("__browserify_Buffer"),b.exports={}),d=a("../utils/Utils");c.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},c.crossVZ=function(a,b,d){return c.rotate(a,b,-Math.PI/2),c.scale(a,a,d),a},c.crossZV=function(a,b,d){return c.rotate(a,d,Math.PI/2),c.scale(a,a,b),a},c.rotate=function(a,b,c){if(0!==c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g}else a[0]=b[0],a[1]=b[1]},c.rotate90cw=function(a,b){var c=b[0],d=b[1];a[0]=d,a[1]=-c},c.toLocalFrame=function(a,b,d,e){c.copy(a,b),c.sub(a,a,d),c.rotate(a,a,-e)},c.toGlobalFrame=function(a,b,d,e){c.copy(a,b),c.rotate(a,a,e),c.add(a,a,d)},c.centroid=function(a,b,d,e){return c.add(a,b,d),c.add(a,a,e),c.scale(a,a,1/3),a},c.create=function(){var a=new d.ARRAY_TYPE(2);return a[0]=0,a[1]=0,a},c.clone=function(a){var b=new d.ARRAY_TYPE(2);return b[0]=a[0],b[1]=a[1],b},c.fromValues=function(a,b){var c=new d.ARRAY_TYPE(2);return c[0]=a,c[1]=b,c},c.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a},c.set=function(a,b,c){return a[0]=b,a[1]=c,a},c.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a},c.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a},c.sub=c.subtract,c.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a},c.mul=c.multiply,c.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a},c.div=c.divide,c.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a},c.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},c.dist=c.distance,c.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d},c.sqrDist=c.squaredDistance,c.length=function(a){var b=a[0],c=a[1];return Math.sqrt(b*b+c*c)},c.len=c.length,c.squaredLength=function(a){var b=a[0],c=a[1];return b*b+c*c},c.sqrLen=c.squaredLength,c.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a},c.normalize=function(a,b){var c=b[0],d=b[1],e=c*c+d*d;return e>0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},c.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},c.str=function(a){return"vec2("+a[0]+", "+a[1]+")"}},{"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],32:[function(a,b){function c(a){a=a||{},h.call(this),this.id=++c._idCounter,this.world=null,this.shapes=[],this.shapeOffsets=[],this.shapeAngles=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.invMassSolve=0,this.invInertiaSolve=0,this.fixedRotation=!!a.fixedRotation,this.position=d.fromValues(0,0),a.position&&d.copy(this.position,a.position),this.interpolatedPosition=d.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=d.fromValues(0,0),this.previousAngle=0,this.velocity=d.fromValues(0,0),a.velocity&&d.copy(this.velocity,a.velocity),this.vlambda=d.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=d.create(),a.force&&d.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.type=c.STATIC,this.type="undefined"!=typeof a.type?a.type:a.mass?c.DYNAMIC:c.STATIC,this.boundingRadius=0,this.aabb=new g,this.aabbNeedsUpdate=!0,this.allowSleep=!0,this.wantsToSleep=!1,this.sleepState=c.AWAKE,this.sleepSpeedLimit=.2,this.sleepTimeLimit=1,this.gravityScale=1,this.timeLastSleepy=0,this.concavePath=null,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2")),e=a("poly-decomp"),f=a("../shapes/Convex"),g=a("../collision/AABB"),h=a("../events/EventEmitter");b.exports=c,c.prototype=new h,c._idCounter=0,c.prototype.updateSolveMassProperties=function(){this.sleepState===c.SLEEPING||this.type===c.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve=0):(this.invMassSolve=this.invMass,this.invInertiaSolve=this.invInertia)},c.prototype.setDensity=function(a){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},c.prototype.getArea=function(){for(var a=0,b=0;be&&(e=h+i)}this.boundingRadius=e},c.prototype.addShape=function(a,b,c){c=c||0,b=b?d.fromValues(b[0],b[1]):d.fromValues(0,0),this.shapes.push(a),this.shapeOffsets.push(b),this.shapeAngles.push(c),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},c.prototype.removeShape=function(a){var b=this.shapes.indexOf(a);return-1!==b?(this.shapes.splice(b,1),this.shapeOffsets.splice(b,1),this.shapeAngles.splice(b,1),this.aabbNeedsUpdate=!0,!0):!1},c.prototype.updateMassProperties=function(){if(this.type===c.STATIC||this.type===c.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{var a=this.shapes,b=a.length,e=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;b>g;g++){var h=a[g],i=d.squaredLength(this.shapeOffsets[g]),j=h.computeMomentOfInertia(e);f+=j+e*i}this.inertia=f,this.invInertia=f>0?1/f:0}this.invMass=1/this.mass}};var k=d.create();c.prototype.applyForce=function(a,b){var c=k;d.sub(c,b,this.position),d.add(this.force,this.force,a);var e=d.crossLength(c,a);this.angularForce+=e},c.prototype.toLocalFrame=function(a,b){d.toLocalFrame(a,b,this.position,this.angle)},c.prototype.toWorldFrame=function(a,b){d.toGlobalFrame(a,b,this.position,this.angle)},c.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var g=new e.Polygon;if(g.vertices=a,g.makeCCW(),"number"==typeof b.removeCollinearPoints&&g.removeCollinearPoints(b.removeCollinearPoints),"undefined"==typeof b.skipSimpleCheck&&!g.isSimple())return!1;this.concavePath=g.vertices.slice(0);for(var c=0;c=g?(this.idleTime=0,this.sleepState=c.AWAKE):(this.idleTime+=e,this.sleepState=c.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},c.prototype.getVelocityFromPosition=function(a,b){return a=a||d.create(),d.sub(a,this.position,this.previousPosition),d.scale(a,a,1/b),a},c.prototype.getAngularVelocityFromPosition=function(a){return(this.angle-this.previousAngle)/a},c.prototype.overlaps=function(a){return this.world.overlapKeeper.bodiesAreOverlapping(this,a)},c.sleepyEvent={type:"sleepy"},c.sleepEvent={type:"sleep"},c.wakeUpEvent={type:"wakeup"},c.DYNAMIC=1,c.STATIC=2,c.KINEMATIC=4,c.AWAKE=0,c.SLEEPY=1,c.SLEEPING=2},{"../collision/AABB":9,"../events/EventEmitter":27,"../math/vec2":31,"../shapes/Convex":39,__browserify_Buffer:1,__browserify_process:2,"poly-decomp":7}],33:[function(a,b){function c(a,b,c){c=c||{},e.call(this,a,b,c),this.localAnchorA=d.fromValues(0,0),this.localAnchorB=d.fromValues(0,0),c.localAnchorA&&d.copy(this.localAnchorA,c.localAnchorA),c.localAnchorB&&d.copy(this.localAnchorB,c.localAnchorB),c.worldAnchorA&&this.setWorldAnchorA(c.worldAnchorA),c.worldAnchorB&&this.setWorldAnchorB(c.worldAnchorB);var f=d.create(),g=d.create();this.getWorldAnchorA(f),this.getWorldAnchorB(g);var h=d.distance(f,g);this.restLength="number"==typeof c.restLength?c.restLength:h}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2")),e=a("./Spring");a("../utils/Utils")}b.exports=c,c.prototype=new e,c.prototype.setWorldAnchorA=function(a){this.bodyA.toLocalFrame(this.localAnchorA,a)},c.prototype.setWorldAnchorB=function(a){this.bodyB.toLocalFrame(this.localAnchorB,a)},c.prototype.getWorldAnchorA=function(a){this.bodyA.toWorldFrame(a,this.localAnchorA)},c.prototype.getWorldAnchorB=function(a){this.bodyB.toWorldFrame(a,this.localAnchorB)};var f=d.create(),g=d.create(),h=d.create(),i=d.create(),j=d.create(),k=d.create(),l=d.create(),m=d.create(),n=d.create();c.prototype.applyForce=function(){var a=this.stiffness,b=this.damping,c=this.restLength,e=this.bodyA,o=this.bodyB,p=f,q=g,r=h,s=i,t=n,u=j,v=k,w=l,x=m;this.getWorldAnchorA(u),this.getWorldAnchorB(v),d.sub(w,u,e.position),d.sub(x,v,o.position),d.sub(p,v,u);var y=d.len(p);d.normalize(q,p),d.sub(r,o.velocity,e.velocity),d.crossZV(t,o.angularVelocity,x),d.add(r,r,t),d.crossZV(t,e.angularVelocity,w),d.sub(r,r,t),d.scale(s,q,-a*(y-c)-b*d.dot(r,q)),d.sub(e.force,e.force,s),d.add(o.force,o.force,s);var z=d.crossLength(w,s),A=d.crossLength(x,s);e.angularForce-=z,o.angularForce+=A}},{"../math/vec2":31,"../utils/Utils":50,"./Spring":35,__browserify_Buffer:1,__browserify_process:2}],34:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,c),this.restAngle="number"==typeof c.restAngle?c.restAngle:b.angle-a.angle}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2"),a("./Spring"));b.exports=c,c.prototype=new d,c.prototype.applyForce=function(){var a=this.stiffness,b=this.damping,c=this.restAngle,d=this.bodyA,e=this.bodyB,f=e.angle-d.angle,g=e.angularVelocity-d.angularVelocity,h=-a*(f-c)-b*g*0;d.angularForce-=h,e.angularForce+=h}},{"../math/vec2":31,"./Spring":35,__browserify_Buffer:1,__browserify_process:2}],35:[function(a,b){function c(a,b,c){c=d.defaults(c,{stiffness:100,damping:1}),this.stiffness=c.stiffness,this.damping=c.damping,this.bodyA=a,this.bodyB=b}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2"),a("../utils/Utils"));b.exports=c,c.prototype.applyForce=function(){}},{"../math/vec2":31,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],36:[function(a,b){a("__browserify_process"),a("__browserify_Buffer");b.exports={AABB:a("./collision/AABB"),AngleLockEquation:a("./equations/AngleLockEquation"),Body:a("./objects/Body"),Broadphase:a("./collision/Broadphase"),Capsule:a("./shapes/Capsule"),Circle:a("./shapes/Circle"),Constraint:a("./constraints/Constraint"),ContactEquation:a("./equations/ContactEquation"),ContactMaterial:a("./material/ContactMaterial"),Convex:a("./shapes/Convex"),DistanceConstraint:a("./constraints/DistanceConstraint"),Equation:a("./equations/Equation"),EventEmitter:a("./events/EventEmitter"),FrictionEquation:a("./equations/FrictionEquation"),GearConstraint:a("./constraints/GearConstraint"),GridBroadphase:a("./collision/GridBroadphase"),GSSolver:a("./solver/GSSolver"),Heightfield:a("./shapes/Heightfield"),Line:a("./shapes/Line"),LockConstraint:a("./constraints/LockConstraint"),Material:a("./material/Material"),Narrowphase:a("./collision/Narrowphase"),NaiveBroadphase:a("./collision/NaiveBroadphase"),Particle:a("./shapes/Particle"),Plane:a("./shapes/Plane"),RevoluteConstraint:a("./constraints/RevoluteConstraint"),PrismaticConstraint:a("./constraints/PrismaticConstraint"),Rectangle:a("./shapes/Rectangle"),RotationalVelocityEquation:a("./equations/RotationalVelocityEquation"),SAPBroadphase:a("./collision/SAPBroadphase"),Shape:a("./shapes/Shape"),Solver:a("./solver/Solver"),Spring:a("./objects/Spring"),LinearSpring:a("./objects/LinearSpring"),RotationalSpring:a("./objects/RotationalSpring"),Utils:a("./utils/Utils"),World:a("./world/World"),vec2:a("./math/vec2"),version:a("../package.json").version}},{"../package.json":8,"./collision/AABB":9,"./collision/Broadphase":10,"./collision/GridBroadphase":11,"./collision/NaiveBroadphase":12,"./collision/Narrowphase":13,"./collision/SAPBroadphase":14,"./constraints/Constraint":15,"./constraints/DistanceConstraint":16,"./constraints/GearConstraint":17,"./constraints/LockConstraint":18,"./constraints/PrismaticConstraint":19,"./constraints/RevoluteConstraint":20,"./equations/AngleLockEquation":21,"./equations/ContactEquation":22,"./equations/Equation":23,"./equations/FrictionEquation":24,"./equations/RotationalVelocityEquation":26,"./events/EventEmitter":27,"./material/ContactMaterial":28,"./material/Material":29,"./math/vec2":31,"./objects/Body":32,"./objects/LinearSpring":33,"./objects/RotationalSpring":34,"./objects/Spring":35,"./shapes/Capsule":37,"./shapes/Circle":38,"./shapes/Convex":39,"./shapes/Heightfield":40,"./shapes/Line":41,"./shapes/Particle":42,"./shapes/Plane":43,"./shapes/Rectangle":44,"./shapes/Shape":45,"./solver/GSSolver":46,"./solver/Solver":47,"./utils/Utils":50,"./world/World":54,__browserify_Buffer:1,__browserify_process:2}],37:[function(a,b){function c(a,b){this.length=a||1,this.radius=b||1,d.call(this,d.CAPSULE)}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Shape")),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.computeMomentOfInertia=function(a){var b=this.radius,c=this.length+b,d=2*b;return a*(d*d+c*c)/12},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius+this.length/2},c.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius+2*this.radius*this.length};var f=e.create();c.prototype.computeAABB=function(a,b,c){var d=this.radius;e.set(f,this.length/2,0),0!==c&&e.rotate(f,f,c),e.set(a.upperBound,Math.max(f[0]+d,-f[0]+d),Math.max(f[1]+d,-f[1]+d)),e.set(a.lowerBound,Math.min(f[0]-d,-f[0]-d),Math.min(f[1]-d,-f[1]-d)),e.add(a.lowerBound,a.lowerBound,b),e.add(a.upperBound,a.upperBound,b)}},{"../math/vec2":31,"./Shape":45,__browserify_Buffer:1,__browserify_process:2}],38:[function(a,b){function c(a){this.radius=a||1,d.call(this,d.CIRCLE)}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Shape")),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.computeMomentOfInertia=function(a){var b=this.radius;return a*b*b/2},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius},c.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius},c.prototype.computeAABB=function(a,b){var c=this.radius;e.set(a.upperBound,c,c),e.set(a.lowerBound,-c,-c),b&&(e.add(a.lowerBound,a.lowerBound,b),e.add(a.upperBound,a.upperBound,b))}},{"../math/vec2":31,"./Shape":45,__browserify_Buffer:1,__browserify_process:2}],39:[function(a,b){function c(a,b){this.vertices=[],this.axes=[];for(var c=0;cf)&&(f=d),(null===h||h>d)&&(h=d);if(h>f){var j=h;h=f,f=j}e.set(b,h,f)},c.prototype.projectOntoWorldAxis=function(a,b,c,d){var f=h;this.projectOntoLocalAxis(a,d),0!==c?e.rotate(f,a,c):f=a;var g=e.dot(b,f);e.set(d,d[0]+g,d[1]+g)},c.prototype.updateTriangles=function(){this.triangles.length=0;for(var a=[],b=0;bg;f=g,g++){var h=this.vertices[f],i=this.vertices[g],j=Math.abs(e.crossLength(h,i)),k=e.dot(i,i)+e.dot(i,h)+e.dot(h,h);b+=j*k,c+=j}return a/6*(b/c)},c.prototype.updateBoundingRadius=function(){for(var a=this.vertices,b=0,c=0;c!==a.length;c++){var d=e.squaredLength(a[c]);d>b&&(b=d)}this.boundingRadius=Math.sqrt(b)},c.triangleArea=function(a,b,c){return.5*((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))},c.prototype.updateArea=function(){this.updateTriangles(),this.area=0;for(var a=this.triangles,b=this.vertices,d=0;d!==a.length;d++){var e=a[d],f=b[e[0]],g=b[e[1]],h=b[e[2]],i=c.triangleArea(f,g,h);this.area+=i}},c.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c,0)}},{"../math/polyk":30,"../math/vec2":31,"./Shape":45,__browserify_Buffer:1,__browserify_process:2,"poly-decomp":7}],40:[function(a,b){function c(a,b){if(b=e.defaults(b,{maxValue:null,minValue:null,elementWidth:.1}),null===b.minValue||null===b.maxValue){b.maxValue=a[0],b.minValue=a[0];for(var c=0;c!==a.length;c++){var f=a[c];f>b.maxValue&&(b.maxValue=f),f=w*w)break}for(c.updateMultipliers(k,q,1/a),x=0;x!==l;x++){var z=k[x];if(z instanceof h){for(var A=0,B=0;B!==z.contactEquations.length;B++)A+=z.contactEquations[B].multiplier;A*=z.frictionCoefficient/z.contactEquations.length,z.maxForce=A,z.minForce=-A}}}for(f=0;f!==i;f++){for(w=0,x=0;x!==l;x++){v=k[x];var y=c.iterateEquation(x,v,v.epsilon,u,t,q,p,a,f);w+=Math.abs(y)}if(this.usedIterations++,m>=w*w)break}for(r=0;r!==o;r++)n[r].addConstraintVelocity();c.updateMultipliers(k,q,1/a)}},c.updateMultipliers=function(a,b,c){for(var d=a.length;d--;)a[d].multiplier=b[d]*c},c.iterateEquation=function(a,b,c,d,e,f,g,h){var i=d[a],j=e[a],k=f[a],l=b.computeGWlambda(),m=b.maxForce,n=b.minForce;g&&(i=0);var o=j*(i-l-c*k),p=k+o;return n*h>p?o=n*h-k:p>m*h&&(o=m*h-k),f[a]+=o,b.addToWlambda(o),o}},{"../equations/FrictionEquation":24,"../math/vec2":31,"../utils/Utils":50,"./Solver":47,__browserify_Buffer:1,__browserify_process:2}],47:[function(a,b){function c(a,b){a=a||{},d.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../utils/Utils"),a("../events/EventEmitter"));b.exports=c,c.prototype=new d,c.prototype.solve=function(){throw new Error("Solver.solve should be implemented by subclasses!")};var e={bodies:[]};c.prototype.solveIsland=function(a,b){this.removeAllEquations(),b.equations.length&&(this.addEquations(b.equations),e.bodies.length=0,b.getBodies(e.bodies),e.bodies.length&&this.solve(a,e))},c.prototype.sortEquations=function(){this.equationSortFunction&&this.equations.sort(this.equationSortFunction)},c.prototype.addEquation=function(a){a.enabled&&this.equations.push(a)},c.prototype.addEquations=function(a){for(var b=0,c=a.length;b!==c;b++){var d=a[b];d.enabled&&this.equations.push(d)}},c.prototype.removeEquation=function(a){var b=this.equations.indexOf(a);-1!==b&&this.equations.splice(b,1)},c.prototype.removeAllEquations=function(){this.equations.length=0},c.GS=1,c.ISLAND=2},{"../events/EventEmitter":27,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],48:[function(a,b){function c(){this.overlappingShapesLastState=new e,this.overlappingShapesCurrentState=new e,this.recordPool=[],this.tmpDict=new e,this.tmpArray1=[]}function d(a,b,c,d){this.shapeA=b,this.shapeB=d,this.bodyA=a,this.bodyB=c}{var e=(a("__browserify_process"),a("__browserify_Buffer"),a("./TupleDictionary"));a("./Utils")}b.exports=c,c.prototype.tick=function(){for(var a=this.overlappingShapesLastState,b=this.overlappingShapesCurrentState,c=a.keys.length;c--;){var d=a.keys[c],e=a.getByKey(d),f=b.getByKey(d);e&&!f&&this.recordPool.push(e)}a.reset(),a.copy(b),b.reset()},c.prototype.setOverlapping=function(a,b,c,e){var f=(this.overlappingShapesLastState,this.overlappingShapesCurrentState);if(!f.get(b.id,e.id)){var g;this.recordPool.length?(g=this.recordPool.pop(),g.set(a,b,c,e)):g=new d(a,b,c,e),f.set(b.id,e.id,g)}},c.prototype.getNewOverlaps=function(a){return this.getDiff(this.overlappingShapesLastState,this.overlappingShapesCurrentState,a)},c.prototype.getEndOverlaps=function(a){return this.getDiff(this.overlappingShapesCurrentState,this.overlappingShapesLastState,a)},c.prototype.bodiesAreOverlapping=function(a,b){for(var c=this.overlappingShapesCurrentState,d=c.keys.length;d--;){var e=c.keys[d],f=c.data[e];if(f.bodyA===a&&f.bodyB===b||f.bodyA===b&&f.bodyB===a)return!0}return!1},c.prototype.getDiff=function(a,b,c){var c=c||[],d=a,e=b;c.length=0;for(var f=e.keys.length;f--;){var g=e.keys[f],h=e.data[g];if(!h)throw new Error("Key "+g+" had no data!");var i=d.data[g];i||c.push(h)}return c},c.prototype.isNewOverlap=function(a,b){var c=0|a.id,d=0|b.id,e=this.overlappingShapesLastState,f=this.overlappingShapesCurrentState;return!e.get(c,d)&&!!f.get(c,d)},c.prototype.getNewBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getNewOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getEndBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getEndOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getBodyDiff=function(a,b){b=b||[];for(var c=this.tmpDict,d=a.length;d--;){var e=a[d];c.set(0|e.bodyA.id,0|e.bodyB.id,e)}for(d=c.keys.length;d--;){var e=c.getByKey(c.keys[d]);e&&b.push(e.bodyA,e.bodyB)}return c.reset(),b},d.prototype.set=function(a,b,c,e){d.call(this,a,b,c,e)}},{"./TupleDictionary":49,"./Utils":50,__browserify_Buffer:1,__browserify_process:2}],49:[function(a,b){function c(){this.data={},this.keys=[]}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Utils"));b.exports=c,c.prototype.getKey=function(a,b){return a=0|a,b=0|b,(0|a)===(0|b)?-1:0|((0|a)>(0|b)?a<<16|65535&b:b<<16|65535&a)},c.prototype.getByKey=function(a){return a=0|a,this.data[a]},c.prototype.get=function(a,b){return this.data[this.getKey(a,b)]},c.prototype.set=function(a,b,c){if(!c)throw new Error("No data!");var d=this.getKey(a,b);return this.data[d]||this.keys.push(d),this.data[d]=c,d},c.prototype.reset=function(){for(var a=this.data,b=this.keys,c=b.length;c--;)delete a[b[c]];b.length=0},c.prototype.copy=function(a){this.reset(),d.appendArray(this.keys,a.keys);for(var b=a.keys.length;b--;){var c=a.keys[b];this.data[c]=a.data[c]}}},{"./Utils":50,__browserify_Buffer:1,__browserify_process:2}],50:[function(a,b){function c(){}a("__browserify_process"),a("__browserify_Buffer");b.exports=c,c.appendArray=function(a,b){if(b.length<15e4)a.push.apply(a,b);else for(var c=0,d=b.length;c!==d;++c)a.push(b[c])},c.splice=function(a,b,c){c=c||1;for(var d=b,e=a.length-c;e>d;d++)a[d]=a[d+c];a.length=e},c.ARRAY_TYPE=window.Float32Array||Array,c.extend=function(a,b){for(var c in b)a[c]=b[c]},c.defaults=function(a,b){a=a||{};for(var c in b)c in a||(a[c]=b[c]);return a}},{__browserify_Buffer:1,__browserify_process:2}],51:[function(a,b){function c(){this.equations=[],this.bodies=[]}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../objects/Body"));b.exports=c,c.prototype.reset=function(){this.equations.length=this.bodies.length=0};var e=[];c.prototype.getBodies=function(a){var b=a||[],c=this.equations;e.length=0;for(var d=0;d!==c.length;d++){var f=c[d];-1===e.indexOf(f.bodyA.id)&&(b.push(f.bodyA),e.push(f.bodyA.id)),-1===e.indexOf(f.bodyB.id)&&(b.push(f.bodyB),e.push(f.bodyB.id))}return b},c.prototype.wantsToSleep=function(){for(var a=0;a1e3*a));g++);this.time+=b;for(var h=this.time%a,i=h/a,j=0;j!==this.bodies.length;j++){var k=this.bodies[j];k.type!==l.STATIC&&k.sleepState!==l.SLEEPING?(e.sub(x,k.position,k.previousPosition),e.scale(x,x,i),e.add(k.interpolatedPosition,k.position,x),k.interpolatedAngle=k.angle+(k.angle-k.previousAngle)*i):(e.copy(k.interpolatedPosition,k.position),k.interpolatedAngle=k.angle)}}};var y=[];c.prototype.internalStep=function(a){this.stepping=!0;var b,d,f=this,g=this.doProfiling,h=this.springs.length,i=this.springs,j=this.bodies,k=this.gravity,m=this.solver,n=this.bodies.length,o=this.broadphase,p=this.narrowphase,r=this.constraints,s=u,t=(e.scale,e.add),v=(e.rotate,this.islandManager);if(this.overlapKeeper.tick(),this.lastTimeStep=a,g&&(b=performance.now()),this.useWorldGravityAsFrictionGravity){var w=e.length(this.gravity);0===w&&this.useFrictionGravityOnZeroGravity||(this.frictionGravity=w)}if(this.applyGravity)for(var x=0;x!==n;x++){var z=j[x],A=z.force;z.type===l.DYNAMIC&&z.sleepState!==l.SLEEPING&&(e.scale(s,k,z.mass*z.gravityScale),t(A,A,s))}if(this.applySpringForces)for(var x=0;x!==h;x++){var B=i[x];B.applyForce()}if(this.applyDamping)for(var x=0;x!==n;x++){var z=j[x];z.type===l.DYNAMIC&&z.applyDamping(a)}for(var C=o.getCollisionPairs(this),D=this.disabledBodyCollisionPairs,x=D.length-2;x>=0;x-=2)for(var E=C.length-2;E>=0;E-=2)(D[x]===C[E]&&D[x+1]===C[E+1]||D[x+1]===C[E]&&D[x]===C[E+1])&&C.splice(E,2);var F=r.length;for(x=0;x!==F;x++){var G=r[x];if(!G.collideConnected)for(var E=C.length-2;E>=0;E-=2)(G.bodyA===C[E]&&G.bodyB===C[E+1]||G.bodyB===C[E]&&G.bodyA===C[E+1])&&C.splice(E,2)}this.postBroadphaseEvent.pairs=C,this.emit(this.postBroadphaseEvent),p.reset(this);for(var x=0,H=C.length;x!==H;x+=2)for(var I=C[x],J=C[x+1],K=0,L=I.shapes.length;K!==L;K++)for(var M=I.shapes[K],N=I.shapeOffsets[K],O=I.shapeAngles[K],P=0,Q=J.shapes.length;P!==Q;P++){var R=J.shapes[P],S=J.shapeOffsets[P],T=J.shapeAngles[P],U=this.defaultContactMaterial;if(M.material&&R.material){var V=this.getContactMaterial(M.material,R.material);V&&(U=V)}this.runNarrowphase(p,I,M,N,O,J,R,S,T,U,this.frictionGravity)}for(var x=0;x!==n;x++){var W=j[x];W._wakeUpAfterNarrowphase&&(W.wakeUp(),W._wakeUpAfterNarrowphase=!1)}if(this.has("endContact")){this.overlapKeeper.getEndOverlaps(y);for(var X=this.endContactEvent,P=y.length;P--;){var Y=y[P];X.shapeA=Y.shapeA,X.shapeB=Y.shapeB,X.bodyA=Y.bodyA,X.bodyB=Y.bodyB,this.emit(X)}}var Z=this.preSolveEvent;Z.contactEquations=p.contactEquations,Z.frictionEquations=p.frictionEquations,this.emit(Z);var F=r.length;for(x=0;x!==F;x++)r[x].update();if(p.contactEquations.length||p.frictionEquations.length||r.length)if(this.islandSplit){for(v.equations.length=0,q.appendArray(v.equations,p.contactEquations),q.appendArray(v.equations,p.frictionEquations),x=0;x!==F;x++)q.appendArray(v.equations,r[x].equations);v.split(this);for(var x=0;x!==v.islands.length;x++){var $=v.islands[x];$.equations.length&&m.solveIsland(a,$)}}else{for(m.addEquations(p.contactEquations),m.addEquations(p.frictionEquations),x=0;x!==F;x++)m.addEquations(r[x].equations);this.solveConstraints&&m.solve(a,this),m.removeAllEquations()}for(var x=0;x!==n;x++){var W=j[x];W.sleepState!==l.SLEEPING&&W.type!==l.STATIC&&c.integrateBody(W,a)}for(var x=0;x!==n;x++)j[x].setZeroForce();if(g&&(d=performance.now(),f.lastStepTime=d-b),this.emitImpactEvent&&this.has("impact"))for(var _=this.impactEvent,x=0;x!==p.contactEquations.length;x++){var ab=p.contactEquations[x];ab.firstImpact&&(_.bodyA=ab.bodyA,_.bodyB=ab.bodyB,_.shapeA=ab.shapeA,_.shapeB=ab.shapeB,_.contactEquation=ab,this.emit(_))}if(this.sleepMode===c.BODY_SLEEPING)for(x=0;x!==n;x++)j[x].sleepTick(this.time,!1,a);else if(this.sleepMode===c.ISLAND_SLEEPING&&this.islandSplit){for(x=0;x!==n;x++)j[x].sleepTick(this.time,!0,a);for(var x=0;x0,a.frictionCoefficient=k.friction;var p;p=b.type===l.STATIC||b.type===l.KINEMATIC?g.mass:g.type===l.STATIC||g.type===l.KINEMATIC?b.mass:b.mass*g.mass/(b.mass+g.mass),a.slipForce=k.friction*m*p,a.restitution=k.restitution,a.surfaceVelocity=k.surfaceVelocity,a.frictionStiffness=k.frictionStiffness,a.frictionRelaxation=k.frictionRelaxation,a.stiffness=k.stiffness,a.relaxation=k.relaxation,a.contactSkinSize=k.contactSkinSize;var q=a[c.type|h.type],r=0;if(q){var s=c.sensor||h.sensor,t=a.frictionEquations.length;r=c.type=2*y&&(b._wakeUpAfterNarrowphase=!0)}if(g.allowSleep&&g.type===l.DYNAMIC&&g.sleepState===l.SLEEPING&&b.sleepState===l.AWAKE&&b.type!==l.STATIC){var z=e.squaredLength(b.velocity)+Math.pow(b.angularVelocity,2),A=Math.pow(b.sleepSpeedLimit,2);z>=2*A&&(g._wakeUpAfterNarrowphase=!0)}if(this.overlapKeeper.setOverlapping(b,c,g,h),this.has("beginContact")&&this.overlapKeeper.isNewOverlap(c,h)){var B=this.beginContactEvent;if(B.shapeA=c,B.shapeB=h,B.bodyA=b,B.bodyB=g,B.contactEquations.length=0,"number"==typeof r)for(var C=a.contactEquations.length-r;C1)for(var C=a.frictionEquations.length-u;C=0;b--)this.removeConstraint(a[b]);for(var d=this.bodies,b=d.length-1;b>=0;b--)this.removeBody(d[b]);for(var e=this.springs,b=e.length-1;b>=0;b--)this.removeSpring(e[b]);for(var f=this.contactMaterials,b=f.length-1;b>=0;b--)this.removeContactMaterial(f[b]);c.apply(this)},c.prototype.clone=function(){var a=new c;return a.fromJSON(this.toJSON()),a};var B=e.create(),C=e.fromValues(0,0),D=e.fromValues(0,0);c.prototype.hitTest=function(a,b,c){c=c||0;var d=new l({position:a}),k=new j,m=a,n=0,o=B,p=C,q=D;d.addShape(k);for(var r=this.narrowphase,s=[],t=0,u=b.length;t!==u;t++)for(var v=b[t],w=0,x=v.shapes.length;w!==x;w++){var y=v.shapes[w],z=v.shapeOffsets[w]||p,A=v.shapeAngles[w]||0;e.rotate(o,z,v.angle),e.add(o,o,v.position);var E=A+v.angle;(y instanceof f&&r.circleParticle(v,y,o,E,d,k,m,n,!0)||y instanceof g&&r.particleConvex(d,k,m,n,v,y,o,E,!0)||y instanceof h&&r.particlePlane(d,k,m,n,v,y,o,E,!0)||y instanceof i&&r.particleCapsule(d,k,m,n,v,y,o,E,!0)||y instanceof j&&e.squaredLength(e.sub(q,o,a))0&&this.enable(a[d],b,!0));else a instanceof Phaser.Group?this.enable(a.children,b,c):(this.enableBody(a,b),c&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new Phaser.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){var b=a.pairs.length;if(this.postBroadphaseCallback&&b>0)for(;b-=2;)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.shapeB,a.shapeA,a.contactEquations)},endContactHandler:function(a){this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.shapeB,a.shapeA)},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){var b=this.everythingCollisionGroup.mask;"undefined"==typeof a&&(b=this.boundsCollisionGroup.mask),this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b)},setBounds:function(a,b,c,d,e,f,g,h,i){"undefined"==typeof e&&(e=!0),"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=!0),"undefined"==typeof h&&(h=!0),"undefined"==typeof i&&(i=!0),this.walls.left&&this.world.removeBody(this.walls.left),this.walls.right&&this.world.removeBody(this.walls.right),this.walls.top&&this.world.removeBody(this.walls.top),this.walls.bottom&&this.world.removeBody(this.walls.bottom),e&&(this.walls.left=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:1.5707963267948966}),this.walls.left.addShape(new p2.Plane),i&&(this.walls.left.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.left)),f&&(this.walls.right=new p2.Body({mass:0,position:[this.pxmi(a+c),this.pxmi(b)],angle:-1.5707963267948966}),this.walls.right.addShape(new p2.Plane),i&&(this.walls.right.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.right)),g&&(this.walls.top=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:-3.141592653589793}),this.walls.top.addShape(new p2.Plane),i&&(this.walls.top.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.top)),h&&(this.walls.bottom=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b+d)]}),this.walls.bottom.addShape(new p2.Plane),i&&(this.walls.bottom.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.bottom))},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||this.world.step(this.useElapsedTime?this.game.time.physicsElapsed:this.frameRate)},reset:function(){this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.nothingCollisionGroup=new Phaser.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new Phaser.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new Phaser.Physics.P2.CollisionGroup(2147483648),this._collisionGroupID=2,this.setBoundsToWorld(!0,!0,!0,!0,!1)},clear:function(){this.world.time=0,this.world.fixedStepTime=0,this.world.solver&&this.world.solver.equations.length&&this.world.solver.removeAllEquations();for(var a=this.world.constraints,b=a.length-1;b>=0;b--)this.world.removeConstraint(a[b]);for(var c=this.world.bodies,b=c.length-1;b>=0;b--)this.world.removeBody(c[b]);for(var d=this.world.springs,b=d.length-1;b>=0;b--)this.world.removeSpring(d[b]);for(var e=this.world.contactMaterials,b=e.length-1;b>=0;b--)this.world.removeContactMaterial(e[b]); -this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this.boundsCollidesWith=[]},destroy:function(){this.clear(),this.game=null},addBody:function(a){return a.data.world?!1:(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world==this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return this.world.addSpring(a instanceof Phaser.Physics.P2.Spring||a instanceof Phaser.Physics.P2.RotationalSpring?a.data:a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return this.world.removeSpring(a instanceof Phaser.Physics.P2.Spring||a instanceof Phaser.Physics.P2.RotationalSpring?a.data:a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,c,d,e,f){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.DistanceConstraint(this,a,b,c,d,e,f)):void console.warn("Cannot create Constraint, invalid body objects given")},createGearConstraint:function(a,b,c,d){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.GearConstraint(this,a,b,c,d)):void console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,c,d,e,f){return a=this.getBody(a),c=this.getBody(c),a&&c?this.addConstraint(new Phaser.Physics.P2.RevoluteConstraint(this,a,b,c,d,e,f)):void console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,c,d,e){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.LockConstraint(this,a,b,c,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,c,d,e,f,g){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.PrismaticConstraint(this,a,b,c,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var c=new Phaser.Physics.P2.Material(a);return this.materials.push(c),"undefined"!=typeof b&&b.setMaterial(c),c},createContactMaterial:function(a,b,c){"undefined"==typeof a&&(a=this.createMaterial()),"undefined"==typeof b&&(b=this.createMaterial());var d=new Phaser.Physics.P2.ContactMaterial(a,b,c);return this.addContactMaterial(d)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof Phaser.Physics.P2.Body?a.data:a.body&&a.body.type===Phaser.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b].parent);return a},hitTest:function(a,b,c,d){"undefined"==typeof b&&(b=this.world.bodies),"undefined"==typeof c&&(c=5),"undefined"==typeof d&&(d=!1);for(var e=[this.pxmi(a.x),this.pxmi(a.y)],f=[],g=b.length;g--;)b[g]instanceof Phaser.Physics.P2.Body&&(!d||b[g].data.type!==p2.Body.STATIC)?f.push(b[g].data):b[g]instanceof p2.Body&&b[g].parent&&(!d||b[g].type!==p2.Body.STATIC)?f.push(b[g]):b[g]instanceof Phaser.Sprite&&b[g].hasOwnProperty("body")&&(!d||b[g].body.data.type!==p2.Body.STATIC)&&f.push(b[g].body.data);return this.world.hitTest(e,f,c)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var c=new Phaser.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(c),a&&this.setCollisionGroup(a,c),c},setCollisionGroup:function(a,b){if(a instanceof Phaser.Group)for(var c=0;ce;e++){var g=a.collision[b][e],h=this.createBody(g.x,g.y,0,c,{},g.polyline);h&&d.push(h)}return d},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;i>h;h++){e=0;for(var j=0,k=a.layers[b].width;k>j;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=this.createBody(f,g,0,!1);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},mpx:function(a){return a*=20},pxm:function(a){return.05*a},mpxi:function(a){return a*=-20},pxmi:function(a){return a*-.05}},Object.defineProperty(Phaser.Physics.P2.prototype,"friction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"restitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"contactMaterial",{get:function(){return this.world.defaultContactMaterial},set:function(a){this.world.defaultContactMaterial=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(Phaser.Physics.P2.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"sleepMode",{get:function(){return this.world.sleepMode},set:function(a){this.world.sleepMode=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"total",{get:function(){return this.world.bodies.length}}),Phaser.Physics.P2.FixtureList=function(a){Array.isArray(a)||(a=[a]),this.rawList=a,this.init(),this.parse(this.rawList)},Phaser.Physics.P2.FixtureList.prototype={init:function(){this.namedFixtures={},this.groupedFixtures=[],this.allFixtures=[]},setCategory:function(a,b){var c=function(b){b.collisionGroup=a};this.getFixtures(b).forEach(c)},setMask:function(a,b){var c=function(b){b.collisionMask=a};this.getFixtures(b).forEach(c)},setSensor:function(a,b){var c=function(b){b.sensor=a};this.getFixtures(b).forEach(c)},setMaterial:function(a,b){var c=function(b){b.material=a};this.getFixtures(b).forEach(c)},getFixtures:function(a){var b=[];if(a){a instanceof Array||(a=[a]);var c=this;return a.forEach(function(a){c.namedFixtures[a]&&b.push(c.namedFixtures[a])}),this.flatten(b)}return this.allFixtures},getFixtureByKey:function(a){return this.namedFixtures[a]},getGroup:function(a){return this.groupedFixtures[a]},parse:function(){var a,b,c,d;c=this.rawList,d=[];for(a in c)b=c[a],isNaN(a-0)?this.namedFixtures[a]=this.flatten(b):(this.groupedFixtures[a]=this.groupedFixtures[a]||[],this.groupedFixtures[a]=this.groupedFixtures[a].concat(b)),d.push(this.allFixtures=this.flatten(this.groupedFixtures))},flatten:function(a){var b,c;return b=[],c=arguments.callee,a.forEach(function(a){return Array.prototype.push.apply(b,Array.isArray(a)?c(a):[a])}),b}},Phaser.Physics.P2.PointProxy=function(a,b){this.world=a,this.destination=b},Phaser.Physics.P2.PointProxy.prototype.constructor=Phaser.Physics.P2.PointProxy,Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype,"x",{get:function(){return this.world.mpx(this.destination[0])},set:function(a){this.destination[0]=this.world.pxm(a)}}),Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype,"y",{get:function(){return this.world.mpx(this.destination[1])},set:function(a){this.destination[1]=this.world.pxm(a)}}),Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=a}}),Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=a}}),Phaser.Physics.P2.InversePointProxy=function(a,b){this.world=a,this.destination=b},Phaser.Physics.P2.InversePointProxy.prototype.constructor=Phaser.Physics.P2.InversePointProxy,Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype,"x",{get:function(){return this.world.mpxi(this.destination[0])},set:function(a){this.destination[0]=this.world.pxmi(a)}}),Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype,"y",{get:function(){return this.world.mpxi(this.destination[1])},set:function(a){this.destination[1]=this.world.pxmi(a)}}),Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=-a}}),Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=-a}}),Phaser.Physics.P2.Body=function(a,b,c,d,e){b=b||null,c=c||0,d=d||0,"undefined"==typeof e&&(e=1),this.game=a,this.world=a.physics.p2,this.sprite=b,this.type=Phaser.Physics.P2JS,this.offset=new Phaser.Point,this.data=new p2.Body({position:[this.world.pxmi(c),this.world.pxmi(d)],mass:e}),this.data.parent=this,this.velocity=new Phaser.Physics.P2.InversePointProxy(this.world,this.data.velocity),this.force=new Phaser.Physics.P2.InversePointProxy(this.world,this.data.force),this.gravity=new Phaser.Point,this.onBeginContact=new Phaser.Signal,this.onEndContact=new Phaser.Signal,this.collidesWith=[],this.removeNextStep=!1,this.debugBody=null,this._collideWorldBounds=!0,this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},b&&(this.setRectangleFromSprite(b),b.exists&&this.game.physics.p2.addBody(this))},Phaser.Physics.P2.Body.prototype={createBodyCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyCallbacks[d],delete this._bodyCallbackContext[d]):(this._bodyCallbacks[d]=b,this._bodyCallbackContext[d]=c))},createGroupCallback:function(a,b,c){null===b?(delete this._groupCallbacks[a.mask],delete this._groupCallbacksContext[a.mask]):(this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c)},getCollisionMask:function(){var a=0;this._collideWorldBounds&&(a=this.game.physics.p2.boundsCollisionGroup.mask);for(var b=0;b=0;c--)this.data.shapes[c].collisionMask=b;else a.collisionMask=b},setCollisionGroup:function(a,b){var c=this.getCollisionMask();if("undefined"==typeof b)for(var d=this.data.shapes.length-1;d>=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,b.collisionMask=c},clearCollision:function(a,b,c){if("undefined"==typeof c)for(var d=this.data.shapes.length-1;d>=0;d--)a&&(this.data.shapes[d].collisionGroup=null),b&&(this.data.shapes[d].collisionMask=null);else a&&(c.collisionGroup=null),b&&(c.collisionMask=null);a&&(this.collidesWith.length=0)},collides:function(a,b,c,d){if(Array.isArray(a))for(var e=0;e=0;e--)this.data.shapes[e].collisionMask=f;else d.collisionMask=f},adjustCenterOfMass:function(){this.data.adjustCenterOfMass()},applyDamping:function(a){this.data.applyDamping(a)},applyForce:function(a,b,c){this.data.applyForce(a,[this.world.pxmi(b),this.world.pxmi(c)])},setZeroForce:function(){this.data.setZeroForce()},setZeroRotation:function(){this.data.angularVelocity=0},setZeroVelocity:function(){this.data.velocity[0]=0,this.data.velocity[1]=0},setZeroDamping:function(){this.data.damping=0,this.data.angularDamping=0},toLocalFrame:function(a,b){return this.data.toLocalFrame(a,b)},toWorldFrame:function(a,b){return this.data.toWorldFrame(a,b)},rotateLeft:function(a){this.data.angularVelocity=this.world.pxm(-a)},rotateRight:function(a){this.data.angularVelocity=this.world.pxm(a)},moveForward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=b*Math.cos(c),this.data.velocity[1]=b*Math.sin(c)},moveBackward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=-(b*Math.cos(c)),this.data.velocity[1]=-(b*Math.sin(c))},thrust:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},reverse:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},moveLeft:function(a){this.data.velocity[0]=this.world.pxmi(-a)},moveRight:function(a){this.data.velocity[0]=this.world.pxmi(a)},moveUp:function(a){this.data.velocity[1]=this.world.pxmi(-a)},moveDown:function(a){this.data.velocity[1]=this.world.pxmi(a)},preUpdate:function(){this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite.x=this.world.mpxi(this.data.position[0]),this.sprite.y=this.world.mpxi(this.data.position[1]),this.fixedRotation||(this.sprite.rotation=this.data.angle),this.debugBody&&this.debugBody.updateSpriteTransform()},reset:function(a,b,c,d){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),this.setZeroForce(),this.setZeroVelocity(),this.setZeroRotation(),c&&this.setZeroDamping(),d&&(this.mass=1),this.x=a,this.y=b},addToWorld:function(){if(this.game.physics.p2._toRemove)for(var a=0;ad;d+=2)c.push([b[d],b[d+1]]);var f=c.length-1;c[f][0]===c[0][0]&&c[f][1]===c[0][1]&&c.pop();for(var g=0;g=0;c--)this.data.shapes[c].material=a;else b.material=a},shapeChanged:function(){this.debugBody&&this.debugBody.draw()},addPhaserPolygon:function(a,b){for(var c=this.game.cache.getPhysicsData(a,b),d=[],e=0;e=0?o>n:n>o;e=o>=0?++n:--n)k=b.vertices[e],p2.vec2.rotate(m,k,a),l.push([(m[0]+i[0])*this.ppu,-(m[1]+i[1])*this.ppu]);this.drawConvex(j,l,b.triangles,f,c,g,this.settings.debugPolygons,[i[0]*this.ppu,-i[1]*this.ppu])}else b instanceof p2.Plane?this.drawPlane(j,i[0]*this.ppu,-i[1]*this.ppu,c,f,5*g,10*g,10*g,100*this.ppu,a):b instanceof p2.Line?this.drawLine(j,b.length*this.ppu,f,g):b instanceof p2.Rectangle&&this.drawRectangle(j,i[0]*this.ppu,-i[1]*this.ppu,a,b.width*this.ppu,b.height*this.ppu,f,c,g);d++}}},drawRectangle:function(a,b,c,d,e,f,g,h,i){"undefined"==typeof i&&(i=1),"undefined"==typeof g&&(g=0),a.lineStyle(i,g,1),a.beginFill(h),a.drawRect(b-e/2,c-f/2,e,f)},drawCircle:function(a,b,c,d,e,f,g){"undefined"==typeof g&&(g=1),"undefined"==typeof f&&(f=16777215),a.lineStyle(g,0,1),a.beginFill(f,1),a.drawCircle(b,c,2*-e),a.endFill(),a.moveTo(b,c),a.lineTo(b+e*Math.cos(-d),c+e*Math.sin(-d))},drawLine:function(a,b,c,d){"undefined"==typeof d&&(d=1),"undefined"==typeof c&&(c=0),a.lineStyle(5*d,c,1),a.moveTo(-b/2,0),a.lineTo(b/2,0)},drawConvex:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s;if("undefined"==typeof f&&(f=1),"undefined"==typeof d&&(d=0),g){for(i=[16711680,65280,255],j=0;j!==b.length+1;)l=b[j%b.length],m=b[(j+1)%b.length],o=l[0],r=l[1],p=m[0],s=m[1],a.lineStyle(f,i[j%i.length],1),a.moveTo(o,-r),a.lineTo(p,-s),a.drawCircle(o,-r,2*f),j++;return a.lineStyle(f,0,1),a.drawCircle(h[0],h[1],2*f)}for(a.lineStyle(f,d,1),a.beginFill(e),j=0;j!==b.length;)k=b[j],n=k[0],q=k[1],0===j?a.moveTo(n,-q):a.lineTo(n,-q),j++;return a.endFill(),b.length>2?(a.moveTo(b[b.length-1][0],-b[b.length-1][1]),a.lineTo(b[0][0],-b[0][1])):void 0},drawPath:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;for("undefined"==typeof e&&(e=1),"undefined"==typeof c&&(c=0),a.lineStyle(e,c,1),"number"==typeof d&&a.beginFill(d),h=null,i=null,g=0;g2&&"number"==typeof d&&(a.moveTo(b[b.length-1][0],b[b.length-1][1]),a.lineTo(b[0][0],b[0][1]))},drawPlane:function(a,b,c,d,e,f,g,h,i,j){var k,l,m;"undefined"==typeof f&&(f=1),"undefined"==typeof d&&(d=16777215),a.lineStyle(f,e,11),a.beginFill(d),k=i,a.moveTo(b,-c),l=b+Math.cos(j)*this.game.width,m=c+Math.sin(j)*this.game.height,a.lineTo(l,-m),a.moveTo(b,-c),l=b+Math.cos(j)*-this.game.width,m=c+Math.sin(j)*-this.game.height,a.lineTo(l,-m)},randomPastelHex:function(){var a,b,c,d;return c=[255,255,255],d=Math.floor(256*Math.random()),b=Math.floor(256*Math.random()),a=Math.floor(256*Math.random()),d=Math.floor((d+3*c[0])/4),b=Math.floor((b+3*c[1])/4),a=Math.floor((a+3*c[2])/4),this.rgbToHex(d,b,a)},rgbToHex:function(a,b,c){return this.componentToHex(a)+this.componentToHex(b)+this.componentToHex(c)},componentToHex:function(a){var b;return b=a.toString(16),2===b.len?b:b+"0"}}),Phaser.Physics.P2.Spring=function(a,b,c,d,e,f,g,h,i,j){this.game=a.game,this.world=a,"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=100),"undefined"==typeof f&&(f=1),d=a.pxm(d);var k={restLength:d,stiffness:e,damping:f};"undefined"!=typeof g&&null!==g&&(k.worldAnchorA=[a.pxm(g[0]),a.pxm(g[1])]),"undefined"!=typeof h&&null!==h&&(k.worldAnchorB=[a.pxm(h[0]),a.pxm(h[1])]),"undefined"!=typeof i&&null!==i&&(k.localAnchorA=[a.pxm(i[0]),a.pxm(i[1])]),"undefined"!=typeof j&&null!==j&&(k.localAnchorB=[a.pxm(j[0]),a.pxm(j[1])]),this.data=new p2.LinearSpring(b,c,k),this.data.parent=this},Phaser.Physics.P2.Spring.prototype.constructor=Phaser.Physics.P2.Spring,Phaser.Physics.P2.RotationalSpring=function(a,b,c,d,e,f){this.game=a.game,this.world=a,"undefined"==typeof d&&(d=null),"undefined"==typeof e&&(e=100),"undefined"==typeof f&&(f=1),d&&(d=a.pxm(d));var g={restAngle:d,stiffness:e,damping:f};this.data=new p2.RotationalSpring(b,c,g),this.data.parent=this},Phaser.Physics.P2.Spring.prototype.constructor=Phaser.Physics.P2.Spring,Phaser.Physics.P2.Material=function(a){this.name=a,p2.Material.call(this)},Phaser.Physics.P2.Material.prototype=Object.create(p2.Material.prototype),Phaser.Physics.P2.Material.prototype.constructor=Phaser.Physics.P2.Material,Phaser.Physics.P2.ContactMaterial=function(a,b,c){p2.ContactMaterial.call(this,a,b,c)},Phaser.Physics.P2.ContactMaterial.prototype=Object.create(p2.ContactMaterial.prototype),Phaser.Physics.P2.ContactMaterial.prototype.constructor=Phaser.Physics.P2.ContactMaterial,Phaser.Physics.P2.CollisionGroup=function(a){this.mask=a},Phaser.Physics.P2.DistanceConstraint=function(a,b,c,d,e,f,g){"undefined"==typeof d&&(d=100),"undefined"==typeof e&&(e=[0,0]),"undefined"==typeof f&&(f=[0,0]),"undefined"==typeof g&&(g=Number.MAX_VALUE),this.game=a.game,this.world=a,d=a.pxm(d),e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var h={distance:d,localAnchorA:e,localAnchorB:f,maxForce:g}; -p2.DistanceConstraint.call(this,b,c,h)},Phaser.Physics.P2.DistanceConstraint.prototype=Object.create(p2.DistanceConstraint.prototype),Phaser.Physics.P2.DistanceConstraint.prototype.constructor=Phaser.Physics.P2.DistanceConstraint,Phaser.Physics.P2.GearConstraint=function(a,b,c,d,e){"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=1),this.game=a.game,this.world=a;var f={angle:d,ratio:e};p2.GearConstraint.call(this,b,c,f)},Phaser.Physics.P2.GearConstraint.prototype=Object.create(p2.GearConstraint.prototype),Phaser.Physics.P2.GearConstraint.prototype.constructor=Phaser.Physics.P2.GearConstraint,Phaser.Physics.P2.LockConstraint=function(a,b,c,d,e,f){"undefined"==typeof d&&(d=[0,0]),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,d=[a.pxm(d[0]),a.pxm(d[1])];var g={localOffsetB:d,localAngleB:e,maxForce:f};p2.LockConstraint.call(this,b,c,g)},Phaser.Physics.P2.LockConstraint.prototype=Object.create(p2.LockConstraint.prototype),Phaser.Physics.P2.LockConstraint.prototype.constructor=Phaser.Physics.P2.LockConstraint,Phaser.Physics.P2.PrismaticConstraint=function(a,b,c,d,e,f,g,h){"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=[0,0]),"undefined"==typeof f&&(f=[0,0]),"undefined"==typeof g&&(g=[0,0]),"undefined"==typeof h&&(h=Number.MAX_VALUE),this.game=a.game,this.world=a,e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var i={localAnchorA:e,localAnchorB:f,localAxisA:g,maxForce:h,disableRotationalLock:!d};p2.PrismaticConstraint.call(this,b,c,i)},Phaser.Physics.P2.PrismaticConstraint.prototype=Object.create(p2.PrismaticConstraint.prototype),Phaser.Physics.P2.PrismaticConstraint.prototype.constructor=Phaser.Physics.P2.PrismaticConstraint,Phaser.Physics.P2.RevoluteConstraint=function(a,b,c,d,e,f,g){"undefined"==typeof f&&(f=Number.MAX_VALUE),"undefined"==typeof g&&(g=null),this.game=a.game,this.world=a,c=[a.pxmi(c[0]),a.pxmi(c[1])],e=[a.pxmi(e[0]),a.pxmi(e[1])],g&&(g=[a.pxmi(g[0]),a.pxmi(g[1])]);var h={worldPivot:g,localPivotA:c,localPivotB:e,maxForce:f};p2.RevoluteConstraint.call(this,b,d,h)},Phaser.Physics.P2.RevoluteConstraint.prototype=Object.create(p2.RevoluteConstraint.prototype),Phaser.Physics.P2.RevoluteConstraint.prototype.constructor=Phaser.Physics.P2.RevoluteConstraint; +for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var l=Math.PI/180,m=180/Math.PI;c.Math.degToRad=function(a){return a*l},c.Math.radToDeg=function(a){return a*m},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.repeatDelay=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if("undefined"==typeof a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this.onStart.dispatch(this.target,this),this},stop:function(a){return"undefined"==typeof a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},delay:function(a,b){if("undefined"==typeof b&&(b=0),-1===b)for(var c=0;c0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return"undefined"==typeof a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;"undefined"==typeof b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;this.vEnd[a]=[this.parent.properties[a]].concat(this.vEnd[a])}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(){if(!this.isRunning){if(!(this.game.time.time>=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var a in this.vEnd){var b=this.vStart[a],d=this.vEnd[a];this.parent.target[a]=Array.isArray(d)?this.interpolationFunction(d,this.value):b+(d-b)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time+this.delay,this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.physicsElapsed=1/this.desiredFps,this.physicsElapsedMS=1e3*this.physicsElapsed,this.advancedTiming&&(this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(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.game.paused){this.events.update(this.time);for(var c=0,d=this._timers.length;d>c;)this._timers[c].update(this.time)?c++:(this._timers.splice(c,1),d--)}},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.now,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){"undefined"==typeof b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if("undefined"==typeof a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames.length=0,this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a]},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0 +},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){"undefined"==typeof h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g,h){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name,this.uuid);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return"undefined"==typeof a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},c.FrameData.prototype.constructor=c.FrameData,Object.defineProperty(c.FrameData.prototype,"total",{get:function(){return this._frames.length}}),c.AnimationParser={spriteSheet:function(a,b,d,e,f,g,h){var i=a.cache.getImage(b);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new c.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[b],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,b,d){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var e,f=new c.FrameData,g=b.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new c.FrameData,r=b.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,b){if("undefined"==typeof b&&(b=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,b)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g=0&&(b=b.substr(0,b.indexOf("?"))),this.game.device.canPlayAudio(b))return a[c];return null},fileError:function(a){this._fileList[a].loaded=!0,this._fileList[a].error=!0,this.onFileError.dispatch(this._fileList[a].key,this._fileList[a]),console.warn("Phaser.Loader error loading file: "+this._fileList[a].key+" from URL "+this._fileList[a].url),this.nextFile(a,!1)},fileComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader fileComplete invalid index "+a);var b=this._fileList[a];b.loaded=!0;var d=!0;switch(b.type){case"image":this.game.cache.addImage(b.key,b.url,b.data);break;case"spritesheet":this.game.cache.addSpriteSheet(b.key,b.url,b.data,b.frameWidth,b.frameHeight,b.frameMax,b.margin,b.spacing);break;case"textureatlas":if(null==b.atlasURL)this.game.cache.addTextureAtlas(b.key,b.url,b.data,b.atlasData,b.format);else if(d=!1,b.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||b.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","jsonLoadComplete","dataLoadError");else{if(b.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+b.format);this.xhrLoad(this._fileIndex,this.baseURL+b.atlasURL,"text","xmlLoadComplete","dataLoadError")}break;case"bitmapfont":null==b.xmlURL?this.game.cache.addBitmapFont(b.key,b.url,b.data,b.xmlData,b.xSpacing,b.ySpacing):(d=!1,this.xhrLoad(this._fileIndex,this.baseURL+b.xmlURL,"text","xmlLoadComplete","dataLoadError"));break;case"audio":if(this.game.sound.usingWebAudio){if(b.data=this._xhr.response,this.game.cache.addSound(b.key,b.url,b.data,!0,!1),b.autoDecode){var e=this,f=b.key;this.game.cache.updateSound(f,"isDecoding",!0),this.game.sound.context.decodeAudioData(b.data,function(a){a&&(e.game.cache.decodedSound(f,a),e.game.sound.onSoundDecode.dispatch(f,e.game.cache.getSound(f)))})}}else b.data.removeEventListener("canplaythrough",c.GAMES[this.game.id].load.fileComplete),this.game.cache.addSound(b.key,b.url,b.data,!1,!0);break;case"text":b.data=this._xhr.responseText,this.game.cache.addText(b.key,b.url,b.data);break;case"physics":var g=JSON.parse(this._xhr.responseText);this.game.cache.addPhysicsData(b.key,b.url,g,b.format);break;case"script":b.data=document.createElement("script"),b.data.language="javascript",b.data.type="text/javascript",b.data.defer=!1,b.data.text=this._xhr.responseText,document.head.appendChild(b.data),b.callback&&(b.data=b.callback.call(b.callbackContext,b.key,this._xhr.responseText));break;case"binary":b.data=b.callback?b.callback.call(b.callbackContext,b.key,this._xhr.response):this._xhr.response,this.game.cache.addBinary(b.key,b.data)}d&&this.nextFile(a,!0)},jsonLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader jsonLoadComplete invalid index "+a);var b=this._fileList[a];if(this._ajax&&this._ajax.responseText)var c=JSON.parse(this._ajax.responseText);else var c=JSON.parse(this._xhr.responseText);b.loaded=!0,"tilemap"===b.type?this.game.cache.addTilemap(b.key,b.url,c,b.format):"json"===b.type?this.game.cache.addJSON(b.key,b.url,c):this.game.cache.addTextureAtlas(b.key,b.url,b.data,c,b.format),this.nextFile(a,!0)},csvLoadComplete:function(a){if(!this._fileList[a])return void console.warn("Phaser.Loader csvLoadComplete invalid index "+a);var b=this._fileList[a],c=this._xhr.responseText;b.loaded=!0,this.game.cache.addTilemap(b.key,b.url,c,b.format),this.nextFile(a,!0)},dataLoadError:function(a){var b=this._fileList[a];b.loaded=!0,b.error=!0,console.warn("Phaser.Loader dataLoadError: "+b.key),this.nextFile(a,!0)},xmlLoadComplete:function(a){""!==this._xhr.responseType&&"text"!==this._xhr.responseType&&(console.warn("Invalid XML Response Type",this._fileList[a]),console.warn(this._xhr));var b,c=this._xhr.responseText;try{if(window.DOMParser){var d=new DOMParser;b=d.parseFromString(c,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(c)}catch(e){b=void 0}if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw new Error("Phaser.Loader. Invalid XML given");var f=this._fileList[a];f.loaded=!0,"bitmapfont"===f.type?this.game.cache.addBitmapFont(f.key,f.url,f.data,b,f.xSpacing,f.ySpacing):"textureatlas"===f.type?this.game.cache.addTextureAtlas(f.key,f.url,f.data,b,f.format):"xml"===f.type&&this.game.cache.addXML(f.key,f.url,b),this.nextFile(a,!0)},nextFile:function(a,b){this.progressFloat+=this._progressChunk,this.progress=Math.round(this.progressFloat),this.progress>100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.updateCrop()),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this.isPlaying&&!this.allowMultiple&&(this.override||e)&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null===this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b){"undefined"==typeof b&&(b=!1),this.paused||(this.play("",0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if("undefined"==typeof a&&(a=1e3),"undefined"==typeof b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");var d=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0);d.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d); +return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return("undefined"==typeof b||null===b)&&(b=c.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){"undefined"==typeof e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return j.color=c.Color.getColor(j.r,j.g,j.b),j.color32=c.Color.getColor32(j.a,j.r,j.g,j.b),c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){"undefined"==typeof a&&(a=.5),"undefined"==typeof b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){"undefined"==typeof f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=255),"undefined"==typeof d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D&&(null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset())},enable:function(a,b,d){"undefined"==typeof b&&(b=c.Physics.ARCADE),"undefined"==typeof d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d&&this.box2d.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.skipQuadTree=!0,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,b){"undefined"==typeof b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!0);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,g=a.length;g>f;f++)for(var h=0,i=b.length;i>h;h++)this.collideHandler(a[f],b[h],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0,g=a.length;g>f;f++)this.collideHandler(a[f],b,c,d,e,!1);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0,h=a.length;h>f;f++)for(var i=0,j=b.length;j>i;i++)this.collideHandler(a[f],b[i],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,d,e,f,g){return"undefined"!=typeof b||a.type!==c.GROUP&&a.type!==c.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==c.SPRITE||a.type==c.TILESPRITE?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideSpriteVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f):a.type==c.GROUP?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f):a.type==c.TILEMAPLAYER?b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f):(b.type==c.GROUP||b.type==c.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,d,e,f):a.type==c.EMITTER&&(b.type==c.SPRITE||b.type==c.TILESPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.type==c.GROUP||b.type==c.EMITTER?this.collideGroupVsGroup(a,b,d,e,f,g):b.type==c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body)if(a.body.skipQuadTree||this.skipQuadTree)for(var g=0,h=b.children.length;h>g;g++)b.children[g]&&b.children[g].exists&&this.collideSpriteVsSprite(a,b.children[g],c,d,e,f);else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f-1>g;g++)for(var h=g+1;f>h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0,i=a.children.length;i>h;h++)a.children[h].exists&&(a.children[h].type===c.GROUP?this.collideGroupVsGroup(a.children[h],b,d,e,f,g):this.collideSpriteVsGroup(a.children[h],b,d,e,f,g))},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=this._overlap,b.overlapX=this._overlap,0!==this._overlap)?c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=this._overlap,b.overlapY=this._overlap,0!==this._overlap)?c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);var h=new c.Rectangle(a,b,1,1),i=[];this._potentials=this.quadTree.retrieve(h);for(var j=0,k=this._potentials.length;k>j;j++)this._potentials[j].hitTest(a,b)&&(e&&e.call(f,g,this._potentials[j].sprite),i.push(this._potentials[j].sprite));return i},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle +},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.phase=0,this.skipQuadTree=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Particles.Arcade={},c.Particles.Arcade.Emitter=function(a,b,d,e){this.maxParticles=e||50,c.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=c.EMITTER,this.area=new c.Rectangle(b,d,1,1),this.minParticleSpeed=new c.Point(-100,-100),this.maxParticleSpeed=new c.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=c.Particle,this.particleDrag=new c.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new c.Point,this.on=!1,this.particleAnchor=new c.Point(.5,.5),this.blendMode=c.blendModes.NORMAL,this.emitX=b,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new c.Point(1,1),this._maxParticleScale=new c.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},c.Particles.Arcade.Emitter.prototype=Object.create(c.Group.prototype),c.Particles.Arcade.Emitter.prototype.constructor=c.Particles.Arcade.Emitter,c.Particles.Arcade.Emitter.prototype.update=function(){this.on&&this.game.time.time>=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit())},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=c.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=c.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},c.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof b){if("string"!=typeof a)return null;if(b=a,!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===c.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+b+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(b)),this.tilesets[a];var i=new c.Tileset(b,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(b)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pl;l++)if(this.objects[a][l].gid===b){k=new i(this.game,this.objects[a][l].x,this.objects[a][l].y,d,e),k.name=this.objects[a][l].name,k.visible=this.objects[a][l].visible,k.autoCull=g,k.exists=f,j&&(k.y-=k.height),h.add(k);for(var n in this.objects[a][l].properties)h.set(k,n,this.objects[a][l].properties[n],!1,!1,0,!0)}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),"undefined"==typeof b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),"undefined"==typeof f&&(f=this.game.world),"undefined"==typeof g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;m>l;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;he;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d,e){if("undefined"==typeof c&&(c=!0),"undefined"==typeof e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=c[1].x-a,f=c[1].y-b,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,this.game=a,this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=c.Canvas.create(e,f,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),c.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=c.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new c.Point(0,0),this.renderSettings={enableScrollDelta:!0,overdrawRatio:.2},this.debug=!1,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[]},c.TilemapLayer.prototype=Object.create(c.Image.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,Object.defineProperty(c.TilemapLayer.prototype,"tileColor",{get:function(){return this.debugSettings.missingImageFill},set:function(a){this.debugSettings.missingImageFill=a}}),c.TilemapLayer.prototype.postUpdate=function(){c.Image.prototype.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX,this.scrollY=a.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(a.view.x+this.cameraOffset.x)/a.scale.x,this.position.y=(a.view.y+this.cameraOffset.y)/a.scale.y)},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=j;j+h>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0),a.save(),a.globalCompositeOperation="copy",a.drawImage(d,g,h,e,f,i,j,e,f),a.restore()},c.TilemapLayer.prototype.renderRegion=function(a,b,c,d,e,f){var g=this.context,h=this.layer.width,i=this.layer.height,j=this._mc.tileWidth,k=this._mc.tileHeight,l=this._mc.tilesets,m=0/0;this._wrap||(e>=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k++)i.push(a.layers[f].data[k]>0?new c.Tile(g,a.layers[f].data[k],h,j.length,a.tilewidth,a.tileheight):new c.Tile(g,-1,h,j.length,a.tilewidth,a.tileheight)),h++,h===a.layers[f].width&&(j.push(i),h=0,i=[]);g.data=j,e.push(g)}d.layers=e;for(var m=[],f=0;ft;t++)if(a.layers[f].objects[t].gid){var u={gid:a.layers[f].objects[t].gid,name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};r[a.layers[f].name].push(u)}else if(a.layers[f].objects[t].polyline){var u={name:a.layers[f].objects[t].name,type:a.layers[f].objects[t].type,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,width:a.layers[f].objects[t].width,height:a.layers[f].objects[t].height,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};u.polyline=[];for(var v=0;v=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&ag;g++)f[g]=d.isBuffer(a)?a.readUInt8(g):a[g];else"string"===c&&f.write(a,0,b);return f}function e(a,b,c,e){c=Number(c)||0;var f=a.length-c;e?(e=Number(e),e>f&&(e=f)):e=f;var g=b.length;if(g%2!==0)throw new Error("Invalid hex string");e>g/2&&(e=g/2);for(var h=0;e>h;h++){var i=parseInt(b.substr(2*h,2),16);if(isNaN(i))throw new Error("Invalid hex string");a[c+h]=i}return d._charsWritten=2*h,h}function f(a,b,c,e){return d._charsWritten=tb(qb(b),a,c,e)}function g(a,b,c,e){return d._charsWritten=tb(rb(b),a,c,e)}function h(a,b,c,d){return g(a,b,c,d)}function i(a,b,c,e){return d._charsWritten=tb(sb(b),a,c,e)}function j(a,b,c,d){if(isFinite(b))isFinite(c)||(d=c,c=void 0);else{var j=d;d=b,b=c,c=j}b=Number(b)||0;var k=this.length-b;switch(c?(c=Number(c),c>k&&(c=k)):c=k,d=String(d||"utf8").toLowerCase()){case"hex":return e(this,a,b,c);case"utf8":case"utf-8":return f(this,a,b,c);case"ascii":return g(this,a,b,c);case"binary":return h(this,a,b,c);case"base64":return i(this,a,b,c);default:throw new Error("Unknown encoding")}}function k(a,b,c){var d=this instanceof kb?this._proxy:this;if(a=String(a||"utf8").toLowerCase(),b=Number(b)||0,c=void 0!==c?Number(c):c=d.length,c===b)return"";switch(a){case"hex":return r(d,b,c);case"utf8":case"utf-8":return o(d,b,c);case"ascii":return p(d,b,c);case"binary":return q(d,b,c);case"base64":return n(d,b,c);default:throw new Error("Unknown encoding")}}function l(){return{type:"Buffer",data:Array.prototype.slice.call(this,0)}}function m(a,b,c,d){var e=this;if(c||(c=0),d||0===d||(d=this.length),b||(b=0),d!==c&&0!==a.length&&0!==e.length){if(c>d)throw new Error("sourceEnd < sourceStart");if(0>b||b>=a.length)throw new Error("targetStart out of bounds");if(0>c||c>=e.length)throw new Error("sourceStart out of bounds");if(0>d||d>e.length)throw new Error("sourceEnd out of bounds");d>this.length&&(d=this.length),a.length-bf;f++)a[f+b]=this[f+c]}}function n(b,c,d){var e=b.slice(c,d);return a("base64-js").fromByteArray(e)}function o(a,b,c){for(var d=a.slice(b,c),e="",f="",g=0;gb)&&(b=0),(!c||0>c||c>d)&&(c=d);for(var e="",f=b;c>f;f++)e+=pb(a[f]);return e}function s(a,b){var c=this.length;return a=mb(a,c,0),b=mb(b,c,c),lb(this.subarray(a,b))}function t(a,b){var c=this;return b||(yb(void 0!==a&&null!==a,"missing offset"),yb(a=c.length?void 0:c[a]}function u(a,b,c,d){d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(void 0!==b&&null!==b,"missing offset"),yb(b+1=e)){if(b+1===e){var f=new Ab(new Bb(2));return f.setUint8(0,a[e-1]),f.getUint16(0,c)}return a._dataview.getUint16(b,c)}}function v(a,b){return u(this,a,!0,b)}function w(a,b){return u(this,a,!1,b)}function x(a,b,c,d){d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(void 0!==b&&null!==b,"missing offset"),yb(b+3=e)){if(b+3>=e){for(var f=new Ab(new Bb(4)),g=0;e>g+b;g++)f.setUint8(g,a[g+b]);return f.getUint32(0,c)}return a._dataview.getUint32(b,c)}}function y(a,b){return x(this,a,!0,b)}function z(a,b){return x(this,a,!1,b)}function A(a,b){var c=this;return b||(yb(void 0!==a&&null!==a,"missing offset"),yb(a=c.length?void 0:c._dataview.getInt8(a)}function B(a,b,c,d){d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(void 0!==b&&null!==b,"missing offset"),yb(b+1=e)){if(b+1===e){var f=new Ab(new Bb(2));return f.setUint8(0,a[e-1]),f.getInt16(0,c)}return a._dataview.getInt16(b,c)}}function C(a,b){return B(this,a,!0,b)}function D(a,b){return B(this,a,!1,b)}function E(a,b,c,d){d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(void 0!==b&&null!==b,"missing offset"),yb(b+3=e)){if(b+3>=e){for(var f=new Ab(new Bb(4)),g=0;e>g+b;g++)f.setUint8(g,a[g+b]);return f.getInt32(0,c)}return a._dataview.getInt32(b,c)}}function F(a,b){return E(this,a,!0,b)}function G(a,b){return E(this,a,!1,b)}function H(a,b,c,d){return d||(yb("boolean"==typeof c,"missing or invalid endian"),yb(b+3=d.length||(d[b]=a)}function O(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+1=f))if(c+1===f){var g=new Ab(new Bb(2));g.setUint16(0,b,d),a[c]=g.getUint8(0)}else a._dataview.setUint16(c,b,d)}function P(a,b,c){O(this,a,b,!0,c)}function Q(a,b,c){O(this,a,b,!1,c)}function R(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+3=f))if(c+3>=f){var g=new Ab(new Bb(4));g.setUint32(0,b,d);for(var h=0;f>h+c;h++)a[h+c]=g.getUint8(h)}else a._dataview.setUint32(c,b,d)}function S(a,b,c){R(this,a,b,!0,c)}function T(a,b,c){R(this,a,b,!1,c)}function U(a,b,c){var d=this;c||(yb(void 0!==a&&null!==a,"missing value"),yb(void 0!==b&&null!==b,"missing offset"),yb(b=d.length||d._dataview.setInt8(b,a)}function V(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+1=f))if(c+1===f){var g=new Ab(new Bb(2));g.setInt16(0,b,d),a[c]=g.getUint8(0)}else a._dataview.setInt16(c,b,d)}function W(a,b,c){V(this,a,b,!0,c)}function X(a,b,c){V(this,a,b,!1,c)}function Y(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+3=f))if(c+3>=f){var g=new Ab(new Bb(4));g.setInt32(0,b,d);for(var h=0;f>h+c;h++)a[h+c]=g.getUint8(h)}else a._dataview.setInt32(c,b,d)}function Z(a,b,c){Y(this,a,b,!0,c)}function $(a,b,c){Y(this,a,b,!1,c)}function _(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+3=f))if(c+3>=f){var g=new Ab(new Bb(4));g.setFloat32(0,b,d);for(var h=0;f>h+c;h++)a[h+c]=g.getUint8(h)}else a._dataview.setFloat32(c,b,d)}function ab(a,b,c){_(this,a,b,!0,c)}function bb(a,b,c){_(this,a,b,!1,c)}function cb(a,b,c,d,e){e||(yb(void 0!==b&&null!==b,"missing value"),yb("boolean"==typeof d,"missing or invalid endian"),yb(void 0!==c&&null!==c,"missing offset"),yb(c+7=f))if(c+7>=f){var g=new Ab(new Bb(8));g.setFloat64(0,b,d);for(var h=0;f>h+c;h++)a[h+c]=g.getUint8(h)}else a._dataview.setFloat64(c,b,d)}function db(a,b,c){cb(this,a,b,!0,c)}function eb(a,b,c){cb(this,a,b,!1,c)}function fb(a,b,c){if(a||(a=0),b||(b=0),c||(c=this.length),"string"==typeof a&&(a=a.charCodeAt(0)),"number"!=typeof a||isNaN(a))throw new Error("value is not a number");if(b>c)throw new Error("end < start");if(c!==b&&0!==this.length){if(0>b||b>=this.length)throw new Error("start out of bounds");if(0>c||c>this.length)throw new Error("end out of bounds");for(var d=b;c>d;d++)this[d]=a}}function gb(){for(var a=[],b=this.length,d=0;b>d;d++)if(a[d]=pb(this[d]),d===c.INSPECT_MAX_BYTES){a[d+1]="...";break}return""}function hb(){return new d(this).buffer}function ib(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function jb(){var a=new Cb(0);a.foo=function(){return 42};try{return 42===a.foo()}catch(b){return!1}}function kb(a){this._arr=a,0!==a.byteLength&&(this._dataview=new Ab(a.buffer,a.byteOffset,a.byteLength))}function lb(a){if(void 0===Db&&(Db=jb()),Db)return a.write=j,a.toString=k,a.toLocaleString=k,a.toJSON=l,a.copy=m,a.slice=s,a.readUInt8=t,a.readUInt16LE=v,a.readUInt16BE=w,a.readUInt32LE=y,a.readUInt32BE=z,a.readInt8=A,a.readInt16LE=C,a.readInt16BE=D,a.readInt32LE=F,a.readInt32BE=G,a.readFloatLE=I,a.readFloatBE=J,a.readDoubleLE=L,a.readDoubleBE=M,a.writeUInt8=N,a.writeUInt16LE=P,a.writeUInt16BE=Q,a.writeUInt32LE=S,a.writeUInt32BE=T,a.writeInt8=U,a.writeInt16LE=W,a.writeInt16BE=X,a.writeInt32LE=Z,a.writeInt32BE=$,a.writeFloatLE=ab,a.writeFloatBE=bb,a.writeDoubleLE=db,a.writeDoubleBE=eb,a.fill=fb,a.inspect=gb,a.toArrayBuffer=hb,a._isBuffer=!0,0!==a.byteLength&&(a._dataview=new Ab(a.buffer,a.byteOffset,a.byteLength)),a;var b=new kb(a),c=new Proxy(b,Eb);return b._proxy=c,c}function mb(a,b,c){return"number"!=typeof a?c:(a=~~a,a>=b?b:a>=0?a:(a+=b,a>=0?a:0))}function nb(a){return a=~~Math.ceil(+a),0>a?0:a}function ob(a){return Array.isArray(a)||d.isBuffer(a)||a&&"object"==typeof a&&"number"==typeof a.length}function pb(a){return 16>a?"0"+a.toString(16):a.toString(16)}function qb(a){for(var b=[],c=0;ce&&!(e+c>=b.length||e>=a.length);)b[e+c]=a[e],e++;return e}function ub(a){try{return decodeURIComponent(a)}catch(b){return String.fromCharCode(65533)}}function vb(a,b){yb("number"==typeof a,"cannot write a non-number as a number"),yb(a>=0,"specified a negative value for writing an unsigned value"),yb(b>=a,"value is larger than maximum value for type"),yb(Math.floor(a)===a,"value has a fractional component")}function wb(a,b,c){yb("number"==typeof a,"cannot write a non-number as a number"),yb(b>=a,"value larger than maximum allowed value"),yb(a>=c,"value smaller than minimum allowed value"),yb(Math.floor(a)===a,"value has a fractional component")}function xb(a,b,c){yb("number"==typeof a,"cannot write a non-number as a number"),yb(b>=a,"value larger than maximum allowed value"),yb(a>=c,"value smaller than minimum allowed value")}function yb(a,b){if(!a)throw new Error(b||"Failed assertion")}var zb=a("typedarray"),Ab="undefined"==typeof DataView?zb.DataView:DataView,Bb="undefined"==typeof ArrayBuffer?zb.ArrayBuffer:ArrayBuffer,Cb="undefined"==typeof Uint8Array?zb.Uint8Array:Uint8Array;c.Buffer=d,c.SlowBuffer=d,c.INSPECT_MAX_BYTES=50,d.poolSize=8192;var Db;d.isEncoding=function(a){switch((a+"").toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},d.isBuffer=function(a){return a&&a._isBuffer},d.byteLength=function(a,b){switch(b||"utf8"){case"hex":return a.length/2;case"utf8":case"utf-8":return qb(a).length;case"ascii":case"binary":return a.length;case"base64":return sb(a).length;default:throw new Error("Unknown encoding")}},d.concat=function(a,b){if(!Array.isArray(a))throw new Error("Usage: Buffer.concat(list, [totalLength])\nlist should be an Array.");var c,e;if(0===a.length)return new d(0);if(1===a.length)return a[0];if("number"!=typeof b)for(b=0,c=0;c0)throw"Invalid string. Length must be a multiple of 4";for(g=a.indexOf("="),g=g>0?a.length-g:0,h=[],e=g>0?a.length-4:a.length,b=0,c=0;e>b;b+=4,c+=3)f=d.indexOf(a[b])<<18|d.indexOf(a[b+1])<<12|d.indexOf(a[b+2])<<6|d.indexOf(a[b+3]),h.push((16711680&f)>>16),h.push((65280&f)>>8),h.push(255&f);return 2===g?(f=d.indexOf(a[b])<<2|d.indexOf(a[b+1])>>4,h.push(255&f)):1===g&&(f=d.indexOf(a[b])<<10|d.indexOf(a[b+1])<<4|d.indexOf(a[b+2])>>2,h.push(f>>8&255),h.push(255&f)),h}function c(a){function b(a){return d[a>>18&63]+d[a>>12&63]+d[a>>6&63]+d[63&a]}var c,e,f,g=a.length%3,h="";for(c=0,f=a.length-g;f>c;c+=3)e=(a[c]<<16)+(a[c+1]<<8)+a[c+2],h+=b(e);switch(g){case 1:e=a[a.length-1],h+=d[e>>2],h+=d[e<<4&63],h+="==";break;case 2:e=(a[a.length-2]<<8)+a[a.length-1],h+=d[e>>10],h+=d[e>>4&63],h+=d[e<<2&63],h+="="}return h}var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";b.exports.toByteArray=a,b.exports.fromByteArray=c}()},{}],4:[function(a,b,c){function d(a){if(L&&K){var b,c=L(a);for(b=0;bB)throw new RangeError("Array too large for polyfill");var c;for(c=0;c>c}function g(a,b){var c=32-b;return a<>>c}function h(a){return[255&a]}function i(a){return f(a[0],8)}function j(a){return[255&a]}function k(a){return g(a[0],8)}function l(a){return a=J(Number(a)),[0>a?0:a>255?255:255&a]}function m(a){return[a>>8&255,255&a]}function n(a){return f(a[0]<<8|a[1],16)}function o(a){return[a>>8&255,255&a]}function p(a){return g(a[0]<<8|a[1],16)}function q(a){return[a>>24&255,a>>16&255,a>>8&255,255&a]}function r(a){return f(a[0]<<24|a[1]<<16|a[2]<<8|a[3],32)}function s(a){return[a>>24&255,a>>16&255,a>>8&255,255&a]}function t(a){return g(a[0]<<24|a[1]<<16|a[2]<<8|a[3],32)}function u(a,b,c){function d(a){var b=F(a),c=a-b;return.5>c?b:c>.5?b+1:b%2?b+1:b}var e,f,g,h,i,j,k,l=(1<a?1:0):0===a?(f=0,g=0,e=1/a===-1/0?1:0):(e=0>a,a=E(a),a>=I(2,1-l)?(f=H(F(G(a)/D),1023),g=d(a/I(2,f)*I(2,c)),g/I(2,c)>=2&&(f+=1,g=1),f>l?(f=(1<>=1;return l.reverse(),g=l.join(""),h=(1<0?i*I(2,j-h)*(1+k/I(2,c)):0!==k?i*I(2,-(h-1))*(k/I(2,c)):0>i?-0:0}function w(a){return v(a,11,52)}function x(a){return u(a,11,52)}function y(a){return v(a,8,23)}function z(a){return u(a,8,23)}var A=void 0,B=1e5,C=function(){var a=Object.prototype.toString,b=Object.prototype.hasOwnProperty;return{Class:function(b){return a.call(b).replace(/^\[object *|\]$/g,"")},HasProperty:function(a,b){return b in a},HasOwnProperty:function(a,c){return b.call(a,c)},IsCallable:function(a){return"function"==typeof a},ToInt32:function(a){return a>>0},ToUint32:function(a){return a>>>0}}}(),D=Math.LN2,E=Math.abs,F=Math.floor,G=Math.log,H=Math.min,I=Math.pow,J=Math.round,K=Object.defineProperty||function(a,b,c){if(!a===Object(a))throw new TypeError("Object.defineProperty called on non-object");return C.HasProperty(c,"get")&&Object.prototype.__defineGetter__&&Object.prototype.__defineGetter__.call(a,b,c.get),C.HasProperty(c,"set")&&Object.prototype.__defineSetter__&&Object.prototype.__defineSetter__.call(a,b,c.set),C.HasProperty(c,"value")&&(a[b]=c.value),a},L=Object.getOwnPropertyNames||function(a){if(a!==Object(a))throw new TypeError("Object.getOwnPropertyNames called on non-object");var b,c=[];for(b in a)C.HasOwnProperty(a,b)&&c.push(b);return c};!function(){function a(a,c,g){var h;return h=function(a,c,f){var g,i,j,k;if(arguments.length&&"number"!=typeof arguments[0])if("object"==typeof arguments[0]&&arguments[0].constructor===h)for(g=arguments[0],this.length=g.length,this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new b(this.byteLength),this.byteOffset=0,j=0;jthis.buffer.byteLength)throw new RangeError("byteOffset out of range");if(this.byteOffset%this.BYTES_PER_ELEMENT)throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size.");if(arguments.length<3){if(this.byteLength=this.buffer.byteLength-this.byteOffset,this.byteLength%this.BYTES_PER_ELEMENT)throw new RangeError("length of buffer minus byteOffset not a multiple of the element size");this.length=this.byteLength/this.BYTES_PER_ELEMENT}else this.length=C.ToUint32(f),this.byteLength=this.length*this.BYTES_PER_ELEMENT;if(this.byteOffset+this.byteLength>this.buffer.byteLength)throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}else for(i=arguments[0],this.length=C.ToUint32(i.length),this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new b(this.byteLength),this.byteOffset=0,j=0;jf)throw new RangeError("ArrayBufferView size is not a small enough positive integer");this.byteLength=this.length*this.BYTES_PER_ELEMENT,this.buffer=new b(this.byteLength),this.byteOffset=0}this.constructor=h,d(this),e(this)},h.prototype=new f,h.prototype.BYTES_PER_ELEMENT=a,h.prototype._pack=c,h.prototype._unpack=g,h.BYTES_PER_ELEMENT=a,h.prototype._getter=function(a){if(arguments.length<1)throw new SyntaxError("Not enough arguments");if(a=C.ToUint32(a),a>=this.length)return A;var b,c,d=[];for(b=0,c=this.byteOffset+a*this.BYTES_PER_ELEMENT;b=this.length)return A;var c,d,e=this._pack(b);for(c=0,d=this.byteOffset+a*this.BYTES_PER_ELEMENT;cthis.length)throw new RangeError("Offset plus length of array is out of range");if(h=this.byteOffset+c*this.BYTES_PER_ELEMENT,i=a.length*this.BYTES_PER_ELEMENT,a.buffer===this.buffer){for(j=[],e=0,f=a.byteOffset;i>e;e+=1,f+=1)j[e]=a.buffer._bytes[f];for(e=0,g=h;i>e;e+=1,g+=1)this.buffer._bytes[g]=j[e]}else for(e=0,f=a.byteOffset,g=h;i>e;e+=1,f+=1,g+=1)this.buffer._bytes[g]=a.buffer._bytes[f]}else{if("object"!=typeof arguments[0]||"undefined"==typeof arguments[0].length)throw new TypeError("Unexpected argument type(s)");if(b=arguments[0],d=C.ToUint32(b.length),c=C.ToUint32(arguments[1]),c+d>this.length)throw new RangeError("Offset plus length of array is out of range");for(e=0;d>e;e+=1)f=b[e],this._setter(c+e,Number(f))}},h.prototype.subarray=function(a,b){function c(a,b,c){return b>a?b:a>c?c:a}a=C.ToInt32(a),b=C.ToInt32(b),arguments.length<1&&(a=0),arguments.length<2&&(b=this.length),0>a&&(a=this.length+a),0>b&&(b=this.length+b),a=c(a,0,this.length),b=c(b,0,this.length);var d=b-a;return 0>d&&(d=0),new this.constructor(this.buffer,this.byteOffset+a*this.BYTES_PER_ELEMENT,d)},h}var b=function(a){if(a=C.ToInt32(a),0>a)throw new RangeError("ArrayBuffer size is not a small enough positive integer");this.byteLength=a,this._bytes=[],this._bytes.length=a;var b;for(b=0;bthis.byteLength)throw new RangeError("Array index out of range");c+=this.byteOffset;var e,g=new Uint8Array(this.buffer,c,b.BYTES_PER_ELEMENT),h=[];for(e=0;ethis.byteLength)throw new RangeError("Array index out of range");var g,h,i=new b([d]),j=new Uint8Array(i.buffer),k=[];for(g=0;gthis.buffer.byteLength)throw new RangeError("byteOffset out of range");if(this.byteLength=arguments.length<3?this.buffer.byteLength-this.byteOffset:C.ToUint32(c),this.byteOffset+this.byteLength>this.buffer.byteLength)throw new RangeError("byteOffset and length reference an area beyond the end of the buffer");d(this)};g.prototype.getUint8=b(c.Uint8Array),g.prototype.getInt8=b(c.Int8Array),g.prototype.getUint16=b(c.Uint16Array),g.prototype.getInt16=b(c.Int16Array),g.prototype.getUint32=b(c.Uint32Array),g.prototype.getInt32=b(c.Int32Array),g.prototype.getFloat32=b(c.Float32Array),g.prototype.getFloat64=b(c.Float64Array),g.prototype.setUint8=e(c.Uint8Array),g.prototype.setInt8=e(c.Int8Array),g.prototype.setUint16=e(c.Uint16Array),g.prototype.setInt16=e(c.Int16Array),g.prototype.setUint32=e(c.Uint32Array),g.prototype.setInt32=e(c.Int32Array),g.prototype.setFloat32=e(c.Float32Array),g.prototype.setFloat64=e(c.Float64Array),c.DataView=c.DataView||g}()},{}]},{},[]),b.exports=a("native-buffer-browserify").Buffer},{}],2:[function(a,b){var c=b.exports={};c.nextTick=function(){var a="undefined"!=typeof window&&window.setImmediate,b="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(a)return function(a){return window.setImmediate(a)};if(b){var c=[];return window.addEventListener("message",function(a){if(a.source===window&&"process-tick"===a.data&&(a.stopPropagation(),c.length>0)){var b=c.shift();b()}},!0),function(a){c.push(a),window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}(),c.title="browser",c.browser=!0,c.env={},c.argv=[],c.binding=function(){throw new Error("process.binding is not supported")},c.cwd=function(){return"/"},c.chdir=function(){throw new Error("process.chdir is not supported")}},{}],3:[function(a,b){function c(){}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Scalar"));b.exports=c,c.lineInt=function(a,b,c){c=c||0;var e,f,g,h,i,j,k,l=[0,0];return e=a[1][1]-a[0][1],f=a[0][0]-a[1][0],g=e*a[0][0]+f*a[0][1],h=b[1][1]-b[0][1],i=b[0][0]-b[1][0],j=h*b[0][0]+i*b[0][1],k=e*i-h*f,d.eq(k,0,c)||(l[0]=(i*g-f*j)/k,l[1]=(e*j-h*g)/k),l},c.segmentsIntersect=function(a,b,c,d){var e=b[0]-a[0],f=b[1]-a[1],g=d[0]-c[0],h=d[1]-c[1];if(g*f-h*e==0)return!1;var i=(e*(c[1]-a[1])+f*(a[0]-c[0]))/(g*f-h*e),j=(g*(a[1]-c[1])+h*(c[0]-a[0]))/(h*e-g*f);return i>=0&&1>=i&&j>=0&&1>=j}},{"./Scalar":6,__browserify_Buffer:1,__browserify_process:2}],4:[function(a,b){function c(){}a("__browserify_process"),a("__browserify_Buffer");b.exports=c,c.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},c.left=function(a,b,d){return c.area(a,b,d)>0},c.leftOn=function(a,b,d){return c.area(a,b,d)>=0},c.right=function(a,b,d){return c.area(a,b,d)<0},c.rightOn=function(a,b,d){return c.area(a,b,d)<=0};var d=[],e=[];c.collinear=function(a,b,f,g){if(g){var h=d,i=e;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=f[0]-b[0],i[1]=f[1]-b[1];var j=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]),m=Math.acos(j/(k*l));return g>m}return 0==c.area(a,b,f)},c.sqdist=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d}},{__browserify_Buffer:1,__browserify_process:2}],5:[function(a,b){function c(){this.vertices=[]}function d(a,b,c,d,e){e=e||0;var f=b[1]-a[1],h=a[0]-b[0],i=f*a[0]+h*a[1],j=d[1]-c[1],k=c[0]-d[0],l=j*c[0]+k*c[1],m=f*k-j*h;return g.eq(m,0,e)?[0,0]:[(k*i-h*l)/m,(f*l-j*i)/m]}var e=(a("__browserify_process"),a("__browserify_Buffer"),a("./Line")),f=a("./Point"),g=a("./Scalar");b.exports=c,c.prototype.at=function(a){var b=this.vertices,c=b.length;return b[0>a?a%c+c:a%c]},c.prototype.first=function(){return this.vertices[0]},c.prototype.last=function(){return this.vertices[this.vertices.length-1]},c.prototype.clear=function(){this.vertices.length=0},c.prototype.append=function(a,b,c){if("undefined"==typeof b)throw new Error("From is not given!");if("undefined"==typeof c)throw new Error("To is not given!");if(b>c-1)throw new Error("lol1");if(c>a.vertices.length)throw new Error("lol2");if(0>b)throw new Error("lol3");for(var d=b;c>d;d++)this.vertices.push(a.vertices[d])},c.prototype.makeCCW=function(){for(var a=0,b=this.vertices,c=1;cb[a][0])&&(a=c);f.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},c.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},c.prototype.isReflex=function(a){return f.right(this.at(a-1),this.at(a),this.at(a+1))};var h=[],i=[];c.prototype.canSee=function(a,b){var c,d,g=h,j=i;if(f.leftOn(this.at(a+1),this.at(a),this.at(b))&&f.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=f.sqdist(this.at(a),this.at(b));for(var k=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&f.leftOn(this.at(a),this.at(b),this.at(k+1))&&f.rightOn(this.at(a),this.at(b),this.at(k))&&(g[0]=this.at(a),g[1]=this.at(b),j[0]=this.at(k),j[1]=this.at(k+1),c=e.lineInt(g,j),f.sqdist(this.at(a),c)a)for(var f=a;b>=f;f++)e.vertices.push(this.vertices[f]);else{for(var f=0;b>=f;f++)e.vertices.push(this.vertices[f]);for(var f=a;f0?this.slice(a):[this]},c.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;cc;c++)if(e.segmentsIntersect(a[b],a[b+1],a[c],a[c+1]))return!1;for(var b=1;bh)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;xo&&(n=o,k=l,r=y))),f.left(v.at(x+1),v.at(x),v.at(y+1))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(l=d(v.at(x+1),v.at(x),v.at(y),v.at(y+1)),f.left(v.at(x-1),v.at(x),l)&&(o=f.sqdist(v.vertices[x],l),m>o&&(m=o,j=l,q=y)));if(r==(q+1)%this.vertices.length)l[0]=(k[0]+j[0])/2,l[1]=(k[1]+j[1])/2,e.push(l),q>x?(t.append(v,x,q+1),t.vertices.push(l),u.vertices.push(l),0!=r&&u.append(v,r,v.vertices.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,v.vertices.length),t.append(v,0,q+1),t.vertices.push(l),u.vertices.push(l),u.append(v,r,x+1));else{if(r>q&&(q+=this.vertices.length),p=Number.MAX_VALUE,r>q)return a;for(var y=r;q>=y;++y)f.leftOn(v.at(x-1),v.at(x),v.at(y))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(o=f.sqdist(v.at(x),v.at(y)),p>o&&(p=o,s=y%this.vertices.length));s>x?(t.append(v,x,s+1),0!=s&&u.append(v,s,w.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,w.length),t.append(v,0,s+1),u.append(v,s,x+1))}return t.vertices.length3&&c>=0;--c)f.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":3,"./Point":4,"./Scalar":6,__browserify_Buffer:1,__browserify_process:2}],6:[function(a,b){function c(){}a("__browserify_process"),a("__browserify_Buffer");b.exports=c,c.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"~0.4.0","grunt-contrib-jshint":"~0.9.2","grunt-contrib-nodeunit":"~0.1.2","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","grunt-contrib-concat":"^0.4.0"},dependencies:{"poly-decomp":"0.1.0"}}},{__browserify_Buffer:1,__browserify_process:2}],9:[function(a,b){function c(a){this.lowerBound=d.create(),a&&a.lowerBound&&d.copy(this.lowerBound,a.lowerBound),this.upperBound=d.create(),a&&a.upperBound&&d.copy(this.upperBound,a.upperBound)}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2"));a("../utils/Utils")}b.exports=c;var e=d.create();c.prototype.setFromPoints=function(a,b,c,f){var g=this.lowerBound,h=this.upperBound;"number"!=typeof c&&(c=0),0!==c?d.rotate(g,a[0],c):d.copy(g,a[0]),d.copy(h,g);for(var i=Math.cos(c),j=Math.sin(c),k=1;ko;o++)l[o]>h[o]&&(h[o]=l[o]),l[o]c&&(this.lowerBound[b]=c);var d=a.upperBound[b];this.upperBound[b]=c},c.aabbCheck=function(a,b){return a.getAABB().overlaps(b.getAABB())},c.prototype.boundingVolumeCheck=function(a,b){var d;switch(this.boundingVolumeType){case c.BOUNDING_CIRCLE:d=c.boundingRadiusCheck(a,b);break;case c.AABB:d=c.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return d},c.canCollide=function(a,b){return a.type===e.STATIC&&b.type===e.STATIC?!1:a.type===e.KINEMATIC&&b.type===e.STATIC||a.type===e.STATIC&&b.type===e.KINEMATIC?!1:a.type===e.KINEMATIC&&b.type===e.KINEMATIC?!1:a.sleepState===e.SLEEPING&&b.sleepState===e.SLEEPING?!1:a.sleepState===e.SLEEPING&&b.type===e.STATIC||b.sleepState===e.SLEEPING&&a.type===e.STATIC?!1:!0},c.NAIVE=1,c.SAP=2},{"../math/vec2":31,"../objects/Body":32,__browserify_Buffer:1,__browserify_process:2}],11:[function(a,b){function c(a){d.apply(this),a=e.defaults(a,{xmin:-100,xmax:100,ymin:-100,ymax:100,nx:10,ny:10}),this.xmin=a.xmin,this.ymin=a.ymin,this.xmax=a.xmax,this.ymax=a.ymax,this.nx=a.nx,this.ny=a.ny,this.binsizeX=(this.xmax-this.xmin)/this.nx,this.binsizeY=(this.ymax-this.ymin)/this.ny}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Particle"),a("../collision/Broadphase")),e=(a("../math/vec2"),a("../utils/Utils"));b.exports=c,c.prototype=new d,c.prototype.getCollisionPairs=function(a){for(var b=[],c=a.bodies,e=c.length,f=(this.binsizeX,this.binsizeY,this.nx),g=this.ny,h=this.xmin,i=this.ymin,j=this.xmax,k=this.ymax,l=[],m=f*g,n=0;m>n;n++)l.push([]);for(var o=f/(j-h),p=g/(k-i),n=0;n!==e;n++)for(var q=c[n],r=q.aabb,s=Math.max(r.lowerBound[0],h),t=Math.max(r.lowerBound[1],i),u=Math.min(r.upperBound[0],j),v=Math.min(r.upperBound[1],k),w=Math.floor(o*(s-h)),x=Math.floor(p*(t-i)),y=Math.floor(o*(u-h)),z=Math.floor(p*(v-i)),A=w;y>=A;A++)for(var B=x;z>=B;B++){var C=A,D=B,E=C*(g-1)+D;E>=0&&m>E&&l[E].push(q)}for(var n=0;n!==m;n++)for(var F=l[n],A=0,G=F.length;A!==G;A++)for(var q=F[A],B=0;B!==A;B++){var H=F[B];d.canCollide(q,H)&&this.boundingVolumeCheck(q,H)&&b.push(q,H)}return b}},{"../collision/Broadphase":10,"../math/vec2":31,"../shapes/Circle":38,"../shapes/Particle":42,"../shapes/Plane":43,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],12:[function(a,b){function c(){d.call(this,d.NAIVE)}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var e=0,f=b.length;e!==f;e++)for(var g=b[e],h=0;e>h;h++){var i=b[h];d.canCollide(g,i)&&this.boundingVolumeCheck(g,i)&&c.push(g,i)}return c}},{"../collision/Broadphase":10,"../math/vec2":31,"../shapes/Circle":38,"../shapes/Particle":42,"../shapes/Plane":43,"../shapes/Shape":45,__browserify_Buffer:1,__browserify_process:2}],13:[function(a,b){function c(){this.contactEquations=[],this.frictionEquations=[],this.enableFriction=!0,this.slipForce=10,this.frictionCoefficient=.3,this.surfaceVelocity=0,this.reuseObjects=!0,this.reusableContactEquations=[],this.reusableFrictionEquations=[],this.restitution=0,this.stiffness=l.DEFAULT_STIFFNESS,this.relaxation=l.DEFAULT_RELAXATION,this.frictionStiffness=l.DEFAULT_STIFFNESS,this.frictionRelaxation=l.DEFAULT_RELAXATION,this.enableFrictionReduction=!0,this.collidingBodiesLastStep=new k,this.contactSkinSize=.01}function d(a,b){f.set(a.vertices[0],.5*-b.length,-b.radius),f.set(a.vertices[1],.5*b.length,-b.radius),f.set(a.vertices[2],.5*b.length,b.radius),f.set(a.vertices[3],.5*-b.length,b.radius)}function e(a,b,c,d){for(var e=R,i=S,j=T,k=U,l=a,m=b.vertices,n=null,o=0;o!==m.length+1;o++){var p=m[o%m.length],q=m[(o+1)%m.length];f.rotate(e,p,d),f.rotate(i,q,d),h(e,e,c),h(i,i,c),g(j,e,l),g(k,i,l);var r=f.crossLength(j,k);if(null===n&&(n=r),0>=r*n)return!1;n=r}return!0}var f=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2")),g=f.sub,h=f.add,i=f.dot,j=a("../utils/Utils"),k=a("../utils/TupleDictionary"),l=a("../equations/Equation"),m=a("../equations/ContactEquation"),n=a("../equations/FrictionEquation"),o=a("../shapes/Circle"),p=a("../shapes/Convex"),q=a("../shapes/Shape"),r=(a("../objects/Body"),a("../shapes/Rectangle"));b.exports=c;var s=f.fromValues(0,1),t=f.fromValues(0,0),u=f.fromValues(0,0),v=f.fromValues(0,0),w=f.fromValues(0,0),x=f.fromValues(0,0),y=f.fromValues(0,0),z=f.fromValues(0,0),A=f.fromValues(0,0),B=f.fromValues(0,0),C=f.fromValues(0,0),D=f.fromValues(0,0),E=f.fromValues(0,0),F=f.fromValues(0,0),G=f.fromValues(0,0),H=f.fromValues(0,0),I=f.fromValues(0,0),J=f.fromValues(0,0),K=f.fromValues(0,0),L=[];c.prototype.collidedLastStep=function(a,b){var c=0|a.id,d=0|b.id;return!!this.collidingBodiesLastStep.get(c,d)},c.prototype.reset=function(){this.collidingBodiesLastStep.reset();for(var a=this.contactEquations,b=a.length;b--;){var c=a[b],d=c.bodyA.id,e=c.bodyB.id;this.collidingBodiesLastStep.set(d,e,!0)}if(this.reuseObjects){var f=this.contactEquations,g=this.frictionEquations,h=this.reusableFrictionEquations,i=this.reusableContactEquations;j.appendArray(i,f),j.appendArray(h,g)}this.contactEquations.length=this.frictionEquations.length=0},c.prototype.createContactEquation=function(a,b,c,d){var e=this.reusableContactEquations.length?this.reusableContactEquations.pop():new m(a,b);return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.restitution=this.restitution,e.firstImpact=!this.collidedLastStep(a,b),e.stiffness=this.stiffness,e.relaxation=this.relaxation,e.needsUpdate=!0,e.enabled=!0,e.offset=this.contactSkinSize,e},c.prototype.createFrictionEquation=function(a,b,c,d){var e=this.reusableFrictionEquations.length?this.reusableFrictionEquations.pop():new n(a,b);return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.setSlipForce(this.slipForce),e.frictionCoefficient=this.frictionCoefficient,e.relativeVelocity=this.surfaceVelocity,e.enabled=!0,e.needsUpdate=!0,e.stiffness=this.frictionStiffness,e.relaxation=this.frictionRelaxation,e.contactEquations.length=0,e},c.prototype.createFrictionFromContact=function(a){var b=this.createFrictionEquation(a.bodyA,a.bodyB,a.shapeA,a.shapeB);return f.copy(b.contactPointA,a.contactPointA),f.copy(b.contactPointB,a.contactPointB),f.rotate90cw(b.t,a.normalA),b.contactEquations.push(a),b},c.prototype.createFrictionFromAverage=function(a){if(!a)throw new Error("numContacts == 0!");{var b=this.contactEquations[this.contactEquations.length-1],c=this.createFrictionEquation(b.bodyA,b.bodyB,b.shapeA,b.shapeB),d=b.bodyA;b.bodyB}f.set(c.contactPointA,0,0),f.set(c.contactPointB,0,0),f.set(c.t,0,0);for(var e=0;e!==a;e++)b=this.contactEquations[this.contactEquations.length-1-e],b.bodyA===d?(f.add(c.t,c.t,b.normalA),f.add(c.contactPointA,c.contactPointA,b.contactPointA),f.add(c.contactPointB,c.contactPointB,b.contactPointB)):(f.sub(c.t,c.t,b.normalA),f.add(c.contactPointA,c.contactPointA,b.contactPointB),f.add(c.contactPointB,c.contactPointB,b.contactPointA)),c.contactEquations.push(b);var g=1/a;return f.scale(c.contactPointA,c.contactPointA,g),f.scale(c.contactPointB,c.contactPointB,g),f.normalize(c.t,c.t),f.rotate90cw(c.t,c.t),c},c.prototype[q.LINE|q.CONVEX]=c.prototype.convexLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[q.LINE|q.RECTANGLE]=c.prototype.lineRectangle=function(a,b,c,d,e,f,g,h,i){return i?!1:0};var M=new r(1,1),N=f.create();c.prototype[q.CAPSULE|q.CONVEX]=c.prototype[q.CAPSULE|q.RECTANGLE]=c.prototype.convexCapsule=function(a,b,c,e,g,h,i,j,k){var l=N;f.set(l,h.length/2,0),f.rotate(l,l,j),f.add(l,l,i);var m=this.circleConvex(g,h,l,j,a,b,c,e,k,h.radius);f.set(l,-h.length/2,0),f.rotate(l,l,j),f.add(l,l,i);var n=this.circleConvex(g,h,l,j,a,b,c,e,k,h.radius);if(k&&(m||n))return!0;var o=M;d(o,h);var p=this.convexConvex(a,b,c,e,g,o,i,j,k);return p+m+n},c.prototype[q.CAPSULE|q.LINE]=c.prototype.lineCapsule=function(a,b,c,d,e,f,g,h,i){return i?!1:0};var O=f.create(),P=f.create(),Q=new r(1,1);c.prototype[q.CAPSULE|q.CAPSULE]=c.prototype.capsuleCapsule=function(a,b,c,e,g,h,i,j,k){for(var l,m=O,n=P,o=0,p=0;2>p;p++){f.set(m,(0===p?-1:1)*b.length/2,0),f.rotate(m,m,e),f.add(m,m,c);for(var q=0;2>q;q++){f.set(n,(0===q?-1:1)*h.length/2,0),f.rotate(n,n,j),f.add(n,n,i),this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var r=this.circleCircle(a,b,m,e,g,h,n,j,k,b.radius,h.radius);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&r)return!0;o+=r}}this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var s=Q;d(s,b);var t=this.convexCapsule(a,s,c,e,g,h,i,j,k);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&t)return!0;if(o+=t,this.enableFrictionReduction){var l=this.enableFriction;this.enableFriction=!1}d(s,h);var u=this.convexCapsule(g,s,i,j,a,b,c,e,k);return this.enableFrictionReduction&&(this.enableFriction=l),k&&u?!0:(o+=u,this.enableFrictionReduction&&o&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(o)),o)},c.prototype[q.LINE|q.LINE]=c.prototype.lineLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[q.PLANE|q.LINE]=c.prototype.planeLine=function(a,b,c,d,e,j,k,l,m){var n=t,o=u,p=v,q=w,r=x,C=y,D=z,E=A,F=B,G=L,H=0;f.set(n,-j.length/2,0),f.set(o,j.length/2,0),f.rotate(p,n,l),f.rotate(q,o,l),h(p,p,k),h(q,q,k),f.copy(n,p),f.copy(o,q),g(r,o,n),f.normalize(C,r),f.rotate90cw(F,C),f.rotate(E,s,d),G[0]=n,G[1]=o;for(var I=0;IK){if(m)return!0;var M=this.createContactEquation(a,e,b,j);H++,f.copy(M.normalA,E),f.normalize(M.normalA,M.normalA),f.scale(D,E,K),g(M.contactPointA,J,D),g(M.contactPointA,M.contactPointA,a.position),g(M.contactPointB,J,k),h(M.contactPointB,M.contactPointB,k),g(M.contactPointB,M.contactPointB,e.position),this.contactEquations.push(M),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(M))}}return m?!1:(this.enableFrictionReduction||H&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(H)),H)},c.prototype[q.PARTICLE|q.CAPSULE]=c.prototype.particleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius,0) +},c.prototype[q.CIRCLE|q.LINE]=c.prototype.circleLine=function(a,b,c,d,e,j,k,l,m,n,o){var n=n||0,o="undefined"!=typeof o?o:b.radius,p=t,q=u,r=v,s=w,H=x,I=y,J=z,K=A,M=B,N=C,O=D,P=E,Q=F,R=G,S=L;f.set(K,-j.length/2,0),f.set(M,j.length/2,0),f.rotate(N,K,l),f.rotate(O,M,l),h(N,N,k),h(O,O,k),f.copy(K,N),f.copy(M,O),g(I,M,K),f.normalize(J,I),f.rotate90cw(H,J),g(P,c,K);var T=i(P,H);g(s,K,k),g(Q,c,k);var U=o+n;if(Math.abs(T)W&&X>V){if(m)return!0;var Y=this.createContactEquation(a,e,b,j);return f.scale(Y.normalA,p,-1),f.normalize(Y.normalA,Y.normalA),f.scale(Y.contactPointA,Y.normalA,o),h(Y.contactPointA,Y.contactPointA,c),g(Y.contactPointA,Y.contactPointA,a.position),g(Y.contactPointB,r,k),h(Y.contactPointB,Y.contactPointB,k),g(Y.contactPointB,Y.contactPointB,e.position),this.contactEquations.push(Y),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(Y)),1}}S[0]=K,S[1]=M;for(var Z=0;ZQ&&(f.copy(J,B),L=Q,f.scale(A,s,Q),f.add(A,A,B),K=!0)}}if(K){if(m)return!0;var R=this.createContactEquation(a,i,b,j);return f.sub(R.normalA,J,c),f.normalize(R.normalA,R.normalA),f.scale(R.contactPointA,R.normalA,n),h(R.contactPointA,R.contactPointA,c),g(R.contactPointA,R.contactPointA,a.position),g(R.contactPointB,A,k),h(R.contactPointB,R.contactPointB,k),g(R.contactPointB,R.contactPointB,i.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}if(n>0)for(var N=0;NQ&&(I=Q,f.scale(E,s,Q),f.add(E,E,c),f.copy(H,s),L=!0)}if(L){var R=this.createContactEquation(a,j,b,k);return f.scale(R.normalA,H,-1),f.normalize(R.normalA,R.normalA),f.set(R.contactPointA,0,0),h(R.contactPointA,R.contactPointA,c),g(R.contactPointA,R.contactPointA,a.position),g(R.contactPointB,E,l),h(R.contactPointB,R.contactPointB,l),g(R.contactPointB,R.contactPointB,j.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}return 0},c.prototype[q.CIRCLE]=c.prototype.circleCircle=function(a,b,c,d,e,i,j,k,l,m,n){var o=t,m=m||b.radius,n=n||i.radius;g(o,c,j);var p=m+n;if(f.squaredLength(o)>Math.pow(p,2))return 0;if(l)return!0;var q=this.createContactEquation(a,e,b,i);return g(q.normalA,j,c),f.normalize(q.normalA,q.normalA),f.scale(q.contactPointA,q.normalA,m),f.scale(q.contactPointB,q.normalA,-n),h(q.contactPointA,q.contactPointA,c),g(q.contactPointA,q.contactPointA,a.position),h(q.contactPointB,q.contactPointB,j),g(q.contactPointB,q.contactPointB,e.position),this.contactEquations.push(q),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(q)),1},c.prototype[q.PLANE|q.CONVEX]=c.prototype[q.PLANE|q.RECTANGLE]=c.prototype.planeConvex=function(a,b,c,d,e,j,k,l,m){var n=t,o=u,p=v,q=0;f.rotate(o,s,d);for(var r=0;r!==j.vertices.length;r++){var w=j.vertices[r];if(f.rotate(n,w,l),h(n,n,k),g(p,n,c),i(p,o)<=0){if(m)return!0;q++;var x=this.createContactEquation(a,e,b,j);g(p,n,c),f.copy(x.normalA,o);var y=i(p,x.normalA);f.scale(p,x.normalA,y),g(x.contactPointB,n,e.position),g(x.contactPointA,n,p),g(x.contactPointA,x.contactPointA,a.position),this.contactEquations.push(x),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x))}}return this.enableFrictionReduction&&this.enableFriction&&q&&this.frictionEquations.push(this.createFrictionFromAverage(q)),q},c.prototype[q.PARTICLE|q.PLANE]=c.prototype.particlePlane=function(a,b,c,d,e,h,j,k,l){var m=t,n=u;k=k||0,g(m,c,j),f.rotate(n,s,k);var o=i(m,n);if(o>0)return 0;if(l)return!0;var p=this.createContactEquation(e,a,h,b);return f.copy(p.normalA,n),f.scale(m,p.normalA,o),g(p.contactPointA,c,m),g(p.contactPointA,p.contactPointA,e.position),g(p.contactPointB,c,a.position),this.contactEquations.push(p),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(p)),1},c.prototype[q.CIRCLE|q.PARTICLE]=c.prototype.circleParticle=function(a,b,c,d,e,i,j,k,l){var m=t;if(g(m,j,c),f.squaredLength(m)>Math.pow(b.radius,2))return 0;if(l)return!0;var n=this.createContactEquation(a,e,b,i);return f.copy(n.normalA,m),f.normalize(n.normalA,n.normalA),f.scale(n.contactPointA,n.normalA,b.radius),h(n.contactPointA,n.contactPointA,c),g(n.contactPointA,n.contactPointA,a.position),g(n.contactPointB,j,e.position),this.contactEquations.push(n),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(n)),1};{var V=new o(1),W=f.create(),X=f.create();f.create()}c.prototype[q.PLANE|q.CAPSULE]=c.prototype.planeCapsule=function(a,b,c,d,e,g,i,j,k){var l=W,m=X,n=V;f.set(l,-g.length/2,0),f.rotate(l,l,j),h(l,l,i),f.set(m,g.length/2,0),f.rotate(m,m,j),h(m,m,i),n.radius=g.radius;var o;this.enableFrictionReduction&&(o=this.enableFriction,this.enableFriction=!1);var p=this.circlePlane(e,n,l,0,a,b,c,d,k),q=this.circlePlane(e,n,m,0,a,b,c,d,k);if(this.enableFrictionReduction&&(this.enableFriction=o),k)return p||q;var r=p+q;return this.enableFrictionReduction&&r&&this.frictionEquations.push(this.createFrictionFromAverage(r)),r},c.prototype[q.CIRCLE|q.PLANE]=c.prototype.circlePlane=function(a,b,c,d,e,j,k,l,m){var n=a,o=b,p=c,q=e,r=k,w=l;w=w||0;var x=t,y=u,z=v;g(x,p,r),f.rotate(y,s,w);var A=i(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,j,b);return f.copy(B.normalA,y),f.scale(B.contactPointB,B.normalA,-o.radius),h(B.contactPointB,B.contactPointB,p),g(B.contactPointB,B.contactPointB,n.position),f.scale(z,B.normalA,A),g(B.contactPointA,x,z),h(B.contactPointA,B.contactPointA,r),g(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},c.prototype[q.CONVEX]=c.prototype[q.CONVEX|q.RECTANGLE]=c.prototype[q.RECTANGLE]=c.prototype.convexConvex=function(a,b,d,e,j,k,l,m,n,o){var p=t,q=u,r=v,s=w,y=x,C=z,D=A,E=B,F=0,o="number"==typeof o?o:0,G=c.findSeparatingAxis(b,d,e,k,l,m,p);if(!G)return 0;g(D,l,d),i(p,D)>0&&f.scale(p,p,-1);var H=c.getClosestEdge(b,e,p,!0),I=c.getClosestEdge(k,m,p);if(-1===H||-1===I)return 0;for(var J=0;2>J;J++){var K=H,L=I,M=b,N=k,O=d,P=l,Q=e,R=m,S=a,T=j;if(0===J){var U;U=K,K=L,L=U,U=M,M=N,N=U,U=O,O=P,P=U,U=Q,Q=R,R=U,U=S,S=T,T=U}for(var V=L;L+2>V;V++){var W=N.vertices[(V+N.vertices.length)%N.vertices.length];f.rotate(q,W,R),h(q,q,P);for(var X=0,Y=K-1;K+2>Y;Y++){var Z=M.vertices[(Y+M.vertices.length)%M.vertices.length],$=M.vertices[(Y+1+M.vertices.length)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(s,$,Q),h(r,r,O),h(s,s,O),g(y,s,r),f.rotate90cw(E,y),f.normalize(E,E),g(D,q,r);var _=i(E,D);(Y===K&&o>=_||Y!==K&&0>=_)&&X++}if(X>=3){if(n)return!0;var ab=this.createContactEquation(S,T,M,N);F++;var Z=M.vertices[K%M.vertices.length],$=M.vertices[(K+1)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(s,$,Q),h(r,r,O),h(s,s,O),g(y,s,r),f.rotate90cw(ab.normalA,y),f.normalize(ab.normalA,ab.normalA),g(D,q,r);var _=i(ab.normalA,D);f.scale(C,ab.normalA,_),g(ab.contactPointA,q,O),g(ab.contactPointA,ab.contactPointA,C),h(ab.contactPointA,ab.contactPointA,O),g(ab.contactPointA,ab.contactPointA,S.position),g(ab.contactPointB,q,P),h(ab.contactPointB,ab.contactPointB,P),g(ab.contactPointB,ab.contactPointB,T.position),this.contactEquations.push(ab),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(ab))}}}return this.enableFrictionReduction&&this.enableFriction&&F&&this.frictionEquations.push(this.createFrictionFromAverage(F)),F};var Y=f.fromValues(0,0);c.projectConvexOntoAxis=function(a,b,c,d,e){var g,h,j=null,k=null,l=Y;f.rotate(l,d,-c);for(var m=0;mj)&&(j=h),(null===k||k>h)&&(k=h);if(k>j){var n=k;k=j,j=n}var o=i(b,d);f.set(e,k+o,j+o)};var Z=f.fromValues(0,0),$=f.fromValues(0,0),_=f.fromValues(0,0),ab=f.fromValues(0,0),bb=f.fromValues(0,0),cb=f.fromValues(0,0);c.findSeparatingAxis=function(a,b,d,e,h,i,j){var k=null,l=!1,m=!1,n=Z,o=$,p=_,q=ab,s=bb,t=cb;if(a instanceof r&&e instanceof r)for(var u=0;2!==u;u++){var v=a,w=d;1===u&&(v=e,w=i);for(var x=0;2!==x;x++){0===x?f.set(q,0,1):1===x&&f.set(q,1,0),0!==w&&f.rotate(q,q,w),c.projectConvexOntoAxis(a,b,d,q,s),c.projectConvexOntoAxis(e,h,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(f.copy(j,q),k=B,m=l)}}else for(var u=0;2!==u;u++){var v=a,w=d;1===u&&(v=e,w=i);for(var x=0;x!==v.vertices.length;x++){f.rotate(o,v.vertices[x],w),f.rotate(p,v.vertices[(x+1)%v.vertices.length],w),g(n,p,o),f.rotate90cw(q,n),f.normalize(q,q),c.projectConvexOntoAxis(a,b,d,q,s),c.projectConvexOntoAxis(e,h,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(f.copy(j,q),k=B,m=l)}}return m};var db=f.fromValues(0,0),eb=f.fromValues(0,0),fb=f.fromValues(0,0);c.getClosestEdge=function(a,b,c,d){var e=db,h=eb,j=fb;f.rotate(e,c,-b),d&&f.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=-1,n=0;n!==l;n++){g(h,a.vertices[(n+1)%l],a.vertices[n%l]),f.rotate90cw(j,h),f.normalize(j,j);var o=i(j,e);(-1===k||o>m)&&(k=n%l,m=o)}return k};var gb=f.create(),hb=f.create(),ib=f.create(),jb=f.create(),kb=f.create(),lb=f.create(),mb=f.create();c.prototype[q.CIRCLE|q.HEIGHTFIELD]=c.prototype.circleHeightfield=function(a,b,c,d,e,i,j,k,l,m){var n=i.data,m=m||b.radius,o=i.elementWidth,p=hb,q=gb,r=kb,s=mb,t=lb,u=ib,v=jb,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);0>w&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;x>A;A++)n[A]y&&(y=n[A]);if(c[1]-m>y)return l?!1:0;for(var B=!1,A=w;x>A;A++){f.set(u,A*o,n[A]),f.set(v,(A+1)*o,n[A+1]),f.add(u,u,j),f.add(v,v,j),f.sub(t,v,u),f.rotate(t,t,Math.PI/2),f.normalize(t,t),f.scale(q,t,-m),f.add(q,q,c),f.sub(p,q,u);var C=f.dot(p,t);if(q[0]>=u[0]&&q[0]=C){if(l)return!0;B=!0,f.scale(p,t,-C),f.add(r,q,p),f.copy(s,t);var D=this.createContactEquation(e,a,i,b);f.copy(D.normalA,s),f.scale(D.contactPointB,D.normalA,-m),h(D.contactPointB,D.contactPointB,c),g(D.contactPointB,D.contactPointB,a.position),f.copy(D.contactPointA,r),f.sub(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}}if(B=!1,m>0)for(var A=w;x>=A;A++)if(f.set(u,A*o,n[A]),f.add(u,u,j),f.sub(p,c,u),f.squaredLength(p)q&&(q=0),r>=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;r>u;u++)k[u]s&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return j?!1:0;for(var v=0,u=q;r>u;u++){f.set(m,u*l,k[u]),f.set(n,(u+1)*l,k[u+1]),f.add(m,m,h),f.add(n,n,h);var w=100;f.set(o,.5*(n[0]+m[0]),.5*(n[1]+m[1]-w)),f.sub(p.vertices[0],n,o),f.sub(p.vertices[1],m,o),f.copy(p.vertices[2],p.vertices[1]),f.copy(p.vertices[3],p.vertices[0]),p.vertices[2][1]-=w,p.vertices[3][1]-=w,v+=this.convexConvex(a,b,c,d,e,p,o,0,j)}return v}},{"../equations/ContactEquation":22,"../equations/Equation":23,"../equations/FrictionEquation":24,"../math/vec2":31,"../objects/Body":32,"../shapes/Circle":38,"../shapes/Convex":39,"../shapes/Rectangle":44,"../shapes/Shape":45,"../utils/TupleDictionary":49,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],14:[function(a,b){function c(){e.call(this,e.SAP),this.axisList=[],this.axisIndex=0;var a=this;this._addBodyHandler=function(b){a.axisList.push(b.body)},this._removeBodyHandler=function(b){var c=a.axisList.indexOf(b.body);-1!==c&&a.axisList.splice(c,1)}}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../utils/Utils")),e=a("../collision/Broadphase");b.exports=c,c.prototype=new e,c.prototype.setWorld=function(a){this.axisList.length=0,d.appendArray(this.axisList,a.bodies),a.off("addBody",this._addBodyHandler).off("removeBody",this._removeBodyHandler),a.on("addBody",this._addBodyHandler).on("removeBody",this._removeBodyHandler),this.world=a},c.sortAxisList=function(a,b){b=0|b;for(var c=1,d=a.length;d>c;c++){for(var e=a[c],f=c-1;f>=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},c.prototype.getCollisionPairs=function(){var a=this.axisList,b=this.result,d=this.axisIndex;b.length=0;for(var f=a.length;f--;){var g=a[f];g.aabbNeedsUpdate&&g.updateAABB()}c.sortAxisList(a,d);for(var h=0,i=0|a.length;h!==i;h++)for(var j=a[h],k=h+1;i>k;k++){var l=a[k],m=l.aabb.lowerBound[d]<=j.aabb.upperBound[d];if(!m)break;e.canCollide(j,l)&&this.boundingVolumeCheck(j,l)&&b.push(j,l)}return b}},{"../collision/Broadphase":10,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],15:[function(a,b){function c(a,b,c,e){this.type=c,e=d.defaults(e,{collideConnected:!0,wakeUpBodies:!0}),this.equations=[],this.bodyA=a,this.bodyB=b,this.collideConnected=e.collideConnected,e.wakeUpBodies&&(a&&a.wakeUp(),b&&b.wakeUp())}a("__browserify_process"),a("__browserify_Buffer");b.exports=c;var d=a("../utils/Utils");c.prototype.update=function(){throw new Error("method update() not implmemented in this Constraint subclass!")},c.DISTANCE=1,c.GEAR=2,c.LOCK=3,c.PRISMATIC=4,c.REVOLUTE=5,c.prototype.setStiffness=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.stiffness=a,d.needsUpdate=!0}},c.prototype.setRelaxation=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.relaxation=a,d.needsUpdate=!0}}},{"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],16:[function(a,b){function c(a,b,c){c=g.defaults(c,{localAnchorA:[0,0],localAnchorB:[0,0]}),d.call(this,a,b,d.DISTANCE,c),this.localAnchorA=f.fromValues(c.localAnchorA[0],c.localAnchorA[1]),this.localAnchorB=f.fromValues(c.localAnchorB[0],c.localAnchorB[1]);var h=this.localAnchorA,i=this.localAnchorB;if(this.distance=0,"number"==typeof c.distance)this.distance=c.distance;else{var j=f.create(),k=f.create(),l=f.create();f.rotate(j,h,a.angle),f.rotate(k,i,b.angle),f.add(l,b.position,k),f.sub(l,l,j),f.sub(l,l,a.position),this.distance=f.length(l)}var m;m="undefined"==typeof c.maxForce?Number.MAX_VALUE:c.maxForce;var n=new e(a,b,-m,m);this.equations=[n],this.maxForce=m;var l=f.create(),o=f.create(),p=f.create(),q=this;n.computeGq=function(){var a=this.bodyA,b=this.bodyB,c=a.position,d=b.position;return f.rotate(o,h,a.angle),f.rotate(p,i,b.angle),f.add(l,d,p),f.sub(l,l,o),f.sub(l,l,c),f.length(l)-q.distance},this.setMaxForce(m),this.upperLimitEnabled=!1,this.upperLimit=1,this.lowerLimitEnabled=!1,this.lowerLimit=0,this.position=0}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Constraint")),e=a("../equations/Equation"),f=a("../math/vec2"),g=a("../utils/Utils");b.exports=c,c.prototype=new d;var h=f.create(),i=f.create(),j=f.create();c.prototype.update=function(){var a=this.equations[0],b=this.bodyA,c=this.bodyB,d=(this.distance,b.position),e=c.position,g=this.equations[0],k=a.G;f.rotate(i,this.localAnchorA,b.angle),f.rotate(j,this.localAnchorB,c.angle),f.add(h,e,j),f.sub(h,h,i),f.sub(h,h,d),this.position=f.length(h);var l=!1;if(this.upperLimitEnabled&&this.position>this.upperLimit&&(g.maxForce=0,g.minForce=-this.maxForce,this.distance=this.upperLimit,l=!0),this.lowerLimitEnabled&&this.positionc)g.scale(e.normalA,i,-1),g.sub(e.contactPointA,j,h.position),g.sub(e.contactPointB,k,o.position),g.scale(n,i,c),g.add(e.contactPointA,e.contactPointA,n),-1===a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!==u&&a.splice(u,1)}if(this.lowerLimitEnabled&&d>s)g.scale(f.normalA,i,1),g.sub(f.contactPointA,j,h.position),g.sub(f.contactPointB,k,o.position),g.scale(n,i,d),g.sub(f.contactPointB,f.contactPointB,n),-1===a.indexOf(f)&&a.push(f);else{var u=a.indexOf(f);-1!==u&&a.splice(u,1)}},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)}},{"../equations/ContactEquation":22,"../equations/Equation":23,"../equations/RotationalLockEquation":25,"../math/vec2":31,"./Constraint":15,__browserify_Buffer:1,__browserify_process:2}],20:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,d.REVOLUTE,c);var n=this.maxForce="undefined"!=typeof c.maxForce?c.maxForce:Number.MAX_VALUE;this.pivotA=h.create(),this.pivotB=h.create(),c.worldPivot?(h.sub(this.pivotA,c.worldPivot,a.position),h.sub(this.pivotB,c.worldPivot,b.position),h.rotate(this.pivotA,this.pivotA,-a.angle),h.rotate(this.pivotB,this.pivotB,-b.angle)):(h.copy(this.pivotA,c.localPivotA),h.copy(this.pivotB,c.localPivotB));var o=this.equations=[new e(a,b,-n,n),new e(a,b,-n,n)],p=o[0],q=o[1],r=this;p.computeGq=function(){return h.rotate(i,r.pivotA,a.angle),h.rotate(j,r.pivotB,b.angle),h.add(m,b.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,k)},q.computeGq=function(){return h.rotate(i,r.pivotA,a.angle),h.rotate(j,r.pivotB,b.angle),h.add(m,b.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,l)},q.minForce=p.minForce=-n,q.maxForce=p.maxForce=n,this.motorEquation=new f(a,b),this.motorEnabled=!1,this.angle=0,this.lowerLimitEnabled=!1,this.upperLimitEnabled=!1,this.lowerLimit=0,this.upperLimit=0,this.upperLimitEquation=new g(a,b),this.lowerLimitEquation=new g(a,b),this.upperLimitEquation.minForce=0,this.lowerLimitEquation.maxForce=0}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Constraint")),e=a("../equations/Equation"),f=a("../equations/RotationalVelocityEquation"),g=a("../equations/RotationalLockEquation"),h=a("../math/vec2");b.exports=c;var i=h.create(),j=h.create(),k=h.fromValues(1,0),l=h.fromValues(0,1),m=h.create();c.prototype=new d,c.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)},c.prototype.update=function(){var a=this.bodyA,b=this.bodyB,c=this.pivotA,d=this.pivotB,e=this.equations,f=(e[0],e[1],e[0]),g=e[1],m=this.upperLimit,n=this.lowerLimit,o=this.upperLimitEquation,p=this.lowerLimitEquation,q=this.angle=b.angle-a.angle;if(this.upperLimitEnabled&&q>m)o.angle=m,-1===e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!==r&&e.splice(r,1)}if(this.lowerLimitEnabled&&n>q)p.angle=n,-1===e.indexOf(p)&&e.push(p);else{var r=e.indexOf(p);-1!==r&&e.splice(r,1)}h.rotate(i,c,a.angle),h.rotate(j,d,b.angle),f.G[0]=-1,f.G[1]=0,f.G[2]=-h.crossLength(i,k),f.G[3]=1,f.G[4]=0,f.G[5]=h.crossLength(j,k),g.G[0]=0,g.G[1]=-1,g.G[2]=-h.crossLength(i,l),g.G[3]=0,g.G[4]=1,g.G[5]=h.crossLength(j,l)},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.motorIsEnabled=function(){return!!this.motorEnabled},c.prototype.setMotorSpeed=function(a){if(this.motorEnabled){var b=this.equations.indexOf(this.motorEquation);this.equations[b].relativeVelocity=a}},c.prototype.getMotorSpeed=function(){return this.motorEnabled?this.motorEquation.relativeVelocity:!1}},{"../equations/Equation":23,"../equations/RotationalLockEquation":25,"../equations/RotationalVelocityEquation":26,"../math/vec2":31,"./Constraint":15,__browserify_Buffer:1,__browserify_process:2}],21:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0,this.ratio="number"==typeof c.ratio?c.ratio:1,this.setRatio(this.ratio)}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Equation"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeGq=function(){return this.ratio*this.bodyA.angle-this.bodyB.angle+this.angle},c.prototype.setRatio=function(a){var b=this.G;b[2]=a,b[5]=-1,this.ratio=a},c.prototype.setMaxTorque=function(a){this.maxForce=a,this.minForce=-a}},{"../math/vec2":31,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],22:[function(a,b){function c(a,b){d.call(this,a,b,0,Number.MAX_VALUE),this.contactPointA=e.create(),this.penetrationVec=e.create(),this.contactPointB=e.create(),this.normalA=e.create(),this.restitution=0,this.firstImpact=!1,this.shapeA=null,this.shapeB=null}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Equation")),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.bodyA,f=this.bodyB,g=this.contactPointA,h=this.contactPointB,i=d.position,j=f.position,k=this.penetrationVec,l=this.normalA,m=this.G,n=e.crossLength(g,l),o=e.crossLength(h,l);m[0]=-l[0],m[1]=-l[1],m[2]=-n,m[3]=l[0],m[4]=l[1],m[5]=o,e.add(k,j,h),e.sub(k,k,i),e.sub(k,k,g);var p,q;this.firstImpact&&0!==this.restitution?(q=0,p=1/b*(1+this.restitution)*this.computeGW()):(q=e.dot(l,k)+this.offset,p=this.computeGW());var r=this.computeGiMf(),s=-q*a-p*b-c*r;return s}},{"../math/vec2":31,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],23:[function(a,b){function c(a,b,d,f){this.minForce="undefined"==typeof d?-Number.MAX_VALUE:d,this.maxForce="undefined"==typeof f?Number.MAX_VALUE:f,this.bodyA=a,this.bodyB=b,this.stiffness=c.DEFAULT_STIFFNESS,this.relaxation=c.DEFAULT_RELAXATION,this.G=new e.ARRAY_TYPE(6);for(var g=0;6>g;g++)this.G[g]=0;this.offset=0,this.a=0,this.b=0,this.epsilon=0,this.timeStep=1/60,this.needsUpdate=!0,this.multiplier=0,this.relativeVelocity=0,this.enabled=!0}a("__browserify_process"),a("__browserify_Buffer");b.exports=c;{var d=a("../math/vec2"),e=a("../utils/Utils");a("../objects/Body")}c.prototype.constructor=c,c.DEFAULT_STIFFNESS=1e6,c.DEFAULT_RELAXATION=4,c.prototype.update=function(){var a=this.stiffness,b=this.relaxation,c=this.timeStep;this.a=4/(c*(1+4*b)),this.b=4*b/(1+4*b),this.epsilon=4/(c*c*a*(1+4*b)),this.needsUpdate=!1},c.prototype.gmult=function(a,b,c,d,e){return a[0]*b[0]+a[1]*b[1]+a[2]*c+a[3]*d[0]+a[4]*d[1]+a[5]*e},c.prototype.computeB=function(a,b,c){var d=this.computeGW(),e=this.computeGq(),f=this.computeGiMf();return-e*a-d*b-f*c};var f=d.create(),g=d.create();c.prototype.computeGq=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=(b.position,c.position,b.angle),e=c.angle;return this.gmult(a,f,d,g,e)+this.offset},c.prototype.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.velocity,e=c.velocity,f=b.angularVelocity,g=c.angularVelocity;return this.gmult(a,d,f,e,g)+this.relativeVelocity +},c.prototype.computeGWlambda=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.vlambda,e=c.vlambda,f=b.wlambda,g=c.wlambda;return this.gmult(a,d,f,e,g)};var h=d.create(),i=d.create();c.prototype.computeGiMf=function(){var a=this.bodyA,b=this.bodyB,c=a.force,e=a.angularForce,f=b.force,g=b.angularForce,j=a.invMassSolve,k=b.invMassSolve,l=a.invInertiaSolve,m=b.invInertiaSolve,n=this.G;return d.scale(h,c,j),d.scale(i,f,k),this.gmult(n,h,e*l,i,g*m)},c.prototype.computeGiMGt=function(){var a=this.bodyA,b=this.bodyB,c=a.invMassSolve,d=b.invMassSolve,e=a.invInertiaSolve,f=b.invInertiaSolve,g=this.G;return g[0]*g[0]*c+g[1]*g[1]*c+g[2]*g[2]*e+g[3]*g[3]*d+g[4]*g[4]*d+g[5]*g[5]*f};{var j=d.create(),k=d.create(),l=d.create();d.create(),d.create(),d.create()}c.prototype.addToWlambda=function(a){var b=this.bodyA,c=this.bodyB,e=j,f=k,g=l,h=b.invMassSolve,i=c.invMassSolve,m=b.invInertiaSolve,n=c.invInertiaSolve,o=this.G;f[0]=o[0],f[1]=o[1],g[0]=o[3],g[1]=o[4],d.scale(e,f,h*a),d.add(b.vlambda,b.vlambda,e),b.wlambda+=m*o[2]*a,d.scale(e,g,i*a),d.add(c.vlambda,c.vlambda,e),c.wlambda+=n*o[5]*a},c.prototype.computeInvC=function(a){return 1/(this.computeGiMGt()+a)}},{"../math/vec2":31,"../objects/Body":32,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],24:[function(a,b){function c(a,b,c){e.call(this,a,b,-c,c),this.contactPointA=d.create(),this.contactPointB=d.create(),this.t=d.create(),this.contactEquations=[],this.shapeA=null,this.shapeB=null,this.frictionCoefficient=.3}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2")),e=a("./Equation");a("../utils/Utils")}b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.setSlipForce=function(a){this.maxForce=a,this.minForce=-a},c.prototype.getSlipForce=function(){return this.maxForce},c.prototype.computeB=function(a,b,c){var e=(this.bodyA,this.bodyB,this.contactPointA),f=this.contactPointB,g=this.t,h=this.G;h[0]=-g[0],h[1]=-g[1],h[2]=-d.crossLength(e,g),h[3]=g[0],h[4]=g[1],h[5]=d.crossLength(f,g);var i=this.computeGW(),j=this.computeGiMf(),k=-i*b-c*j;return k}},{"../math/vec2":31,"../utils/Utils":50,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],25:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0;var e=this.G;e[2]=1,e[5]=-1}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Equation")),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c;var f=e.create(),g=e.create(),h=e.fromValues(1,0),i=e.fromValues(0,1);c.prototype.computeGq=function(){return e.rotate(f,h,this.bodyA.angle+this.angle),e.rotate(g,i,this.bodyB.angle),e.dot(f,g)}},{"../math/vec2":31,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],26:[function(a,b){function c(a,b){d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.relativeVelocity=1,this.ratio=1}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Equation"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.G;d[2]=-1,d[5]=this.ratio;var e=this.computeGiMf(),f=this.computeGW(),g=-f*b-c*e;return g}},{"../math/vec2":31,"./Equation":23,__browserify_Buffer:1,__browserify_process:2}],27:[function(a,b){var c=(a("__browserify_process"),a("__browserify_Buffer"),function(){});b.exports=c,c.prototype={constructor:c,on:function(a,b,c){b.context=c||this,void 0===this._listeners&&(this._listeners={});var d=this._listeners;return void 0===d[a]&&(d[a]=[]),-1===d[a].indexOf(b)&&d[a].push(b),this},has:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;if(b){if(void 0!==c[a]&&-1!==c[a].indexOf(b))return!0}else if(void 0!==c[a])return!0;return!1},off:function(a,b){if(void 0===this._listeners)return this;var c=this._listeners,d=c[a].indexOf(b);return-1!==d&&c[a].splice(d,1),this},emit:function(a){if(void 0===this._listeners)return this;var b=this._listeners,c=b[a.type];if(void 0!==c){a.target=this;for(var d=0,e=c.length;e>d;d++){var f=c[d];f.call(f.context,a)}}return this}}},{__browserify_Buffer:1,__browserify_process:2}],28:[function(a,b){function c(a,b,f){if(f=f||{},!(a instanceof d&&b instanceof d))throw new Error("First two arguments must be Material instances.");this.id=c.idCounter++,this.materialA=a,this.materialB=b,this.friction="undefined"!=typeof f.friction?Number(f.friction):.3,this.restitution="undefined"!=typeof f.restitution?Number(f.restitution):0,this.stiffness="undefined"!=typeof f.stiffness?Number(f.stiffness):e.DEFAULT_STIFFNESS,this.relaxation="undefined"!=typeof f.relaxation?Number(f.relaxation):e.DEFAULT_RELAXATION,this.frictionStiffness="undefined"!=typeof f.frictionStiffness?Number(f.frictionStiffness):e.DEFAULT_STIFFNESS,this.frictionRelaxation="undefined"!=typeof f.frictionRelaxation?Number(f.frictionRelaxation):e.DEFAULT_RELAXATION,this.surfaceVelocity="undefined"!=typeof f.surfaceVelocity?Number(f.surfaceVelocity):0,this.contactSkinSize=.005}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Material")),e=a("../equations/Equation");b.exports=c,c.idCounter=0},{"../equations/Equation":23,"./Material":29,__browserify_Buffer:1,__browserify_process:2}],29:[function(a,b){function c(a){this.id=a||c.idCounter++}a("__browserify_process"),a("__browserify_Buffer");b.exports=c,c.idCounter=0},{__browserify_Buffer:1,__browserify_process:2}],30:[function(a,b){var c=(a("__browserify_process"),a("__browserify_Buffer"),{});c.GetArea=function(a){if(a.length<6)return 0;for(var b=a.length-2,c=0,d=0;b>d;d+=2)c+=(a[d+2]-a[d])*(a[d+1]+a[d+3]);return c+=(a[0]-a[b])*(a[b+1]+a[1]),.5*-c},c.Triangulate=function(a){var b=a.length>>1;if(3>b)return[];for(var d=[],e=[],f=0;b>f;f++)e.push(f);for(var f=0,g=b;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(c._convex(k,l,m,n,o,p)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!=h&&s!=i&&s!=j&&c._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g)break}return d.push(e[0],e[1],e[2]),d},c._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},c._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=c},{__browserify_Buffer:1,__browserify_process:2}],31:[function(a,b){var c=(a("__browserify_process"),a("__browserify_Buffer"),b.exports={}),d=a("../utils/Utils");c.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},c.crossVZ=function(a,b,d){return c.rotate(a,b,-Math.PI/2),c.scale(a,a,d),a},c.crossZV=function(a,b,d){return c.rotate(a,d,Math.PI/2),c.scale(a,a,b),a},c.rotate=function(a,b,c){if(0!==c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g}else a[0]=b[0],a[1]=b[1]},c.rotate90cw=function(a,b){var c=b[0],d=b[1];a[0]=d,a[1]=-c},c.toLocalFrame=function(a,b,d,e){c.copy(a,b),c.sub(a,a,d),c.rotate(a,a,-e)},c.toGlobalFrame=function(a,b,d,e){c.copy(a,b),c.rotate(a,a,e),c.add(a,a,d)},c.centroid=function(a,b,d,e){return c.add(a,b,d),c.add(a,a,e),c.scale(a,a,1/3),a},c.create=function(){var a=new d.ARRAY_TYPE(2);return a[0]=0,a[1]=0,a},c.clone=function(a){var b=new d.ARRAY_TYPE(2);return b[0]=a[0],b[1]=a[1],b},c.fromValues=function(a,b){var c=new d.ARRAY_TYPE(2);return c[0]=a,c[1]=b,c},c.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a},c.set=function(a,b,c){return a[0]=b,a[1]=c,a},c.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a},c.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a},c.sub=c.subtract,c.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a},c.mul=c.multiply,c.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a},c.div=c.divide,c.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a},c.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},c.dist=c.distance,c.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d},c.sqrDist=c.squaredDistance,c.length=function(a){var b=a[0],c=a[1];return Math.sqrt(b*b+c*c)},c.len=c.length,c.squaredLength=function(a){var b=a[0],c=a[1];return b*b+c*c},c.sqrLen=c.squaredLength,c.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a},c.normalize=function(a,b){var c=b[0],d=b[1],e=c*c+d*d;return e>0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},c.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},c.str=function(a){return"vec2("+a[0]+", "+a[1]+")"}},{"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],32:[function(a,b){function c(a){a=a||{},h.call(this),this.id=++c._idCounter,this.world=null,this.shapes=[],this.shapeOffsets=[],this.shapeAngles=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.invMassSolve=0,this.invInertiaSolve=0,this.fixedRotation=!!a.fixedRotation,this.position=d.fromValues(0,0),a.position&&d.copy(this.position,a.position),this.interpolatedPosition=d.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=d.fromValues(0,0),this.previousAngle=0,this.velocity=d.fromValues(0,0),a.velocity&&d.copy(this.velocity,a.velocity),this.vlambda=d.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=d.create(),a.force&&d.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.type=c.STATIC,this.type="undefined"!=typeof a.type?a.type:a.mass?c.DYNAMIC:c.STATIC,this.boundingRadius=0,this.aabb=new g,this.aabbNeedsUpdate=!0,this.allowSleep=!0,this.wantsToSleep=!1,this.sleepState=c.AWAKE,this.sleepSpeedLimit=.2,this.sleepTimeLimit=1,this.gravityScale=1,this.timeLastSleepy=0,this.concavePath=null,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2")),e=a("poly-decomp"),f=a("../shapes/Convex"),g=a("../collision/AABB"),h=a("../events/EventEmitter");b.exports=c,c.prototype=new h,c._idCounter=0,c.prototype.updateSolveMassProperties=function(){this.sleepState===c.SLEEPING||this.type===c.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve=0):(this.invMassSolve=this.invMass,this.invInertiaSolve=this.invInertia)},c.prototype.setDensity=function(a){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},c.prototype.getArea=function(){for(var a=0,b=0;be&&(e=h+i)}this.boundingRadius=e},c.prototype.addShape=function(a,b,c){c=c||0,b=b?d.fromValues(b[0],b[1]):d.fromValues(0,0),this.shapes.push(a),this.shapeOffsets.push(b),this.shapeAngles.push(c),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},c.prototype.removeShape=function(a){var b=this.shapes.indexOf(a);return-1!==b?(this.shapes.splice(b,1),this.shapeOffsets.splice(b,1),this.shapeAngles.splice(b,1),this.aabbNeedsUpdate=!0,!0):!1},c.prototype.updateMassProperties=function(){if(this.type===c.STATIC||this.type===c.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{var a=this.shapes,b=a.length,e=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;b>g;g++){var h=a[g],i=d.squaredLength(this.shapeOffsets[g]),j=h.computeMomentOfInertia(e);f+=j+e*i}this.inertia=f,this.invInertia=f>0?1/f:0}this.invMass=1/this.mass}};var k=d.create();c.prototype.applyForce=function(a,b){var c=k;d.sub(c,b,this.position),d.add(this.force,this.force,a);var e=d.crossLength(c,a);this.angularForce+=e},c.prototype.toLocalFrame=function(a,b){d.toLocalFrame(a,b,this.position,this.angle)},c.prototype.toWorldFrame=function(a,b){d.toGlobalFrame(a,b,this.position,this.angle)},c.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var g=new e.Polygon;if(g.vertices=a,g.makeCCW(),"number"==typeof b.removeCollinearPoints&&g.removeCollinearPoints(b.removeCollinearPoints),"undefined"==typeof b.skipSimpleCheck&&!g.isSimple())return!1;this.concavePath=g.vertices.slice(0);for(var c=0;c=g?(this.idleTime=0,this.sleepState=c.AWAKE):(this.idleTime+=e,this.sleepState=c.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},c.prototype.getVelocityFromPosition=function(a,b){return a=a||d.create(),d.sub(a,this.position,this.previousPosition),d.scale(a,a,1/b),a},c.prototype.getAngularVelocityFromPosition=function(a){return(this.angle-this.previousAngle)/a},c.prototype.overlaps=function(a){return this.world.overlapKeeper.bodiesAreOverlapping(this,a)},c.sleepyEvent={type:"sleepy"},c.sleepEvent={type:"sleep"},c.wakeUpEvent={type:"wakeup"},c.DYNAMIC=1,c.STATIC=2,c.KINEMATIC=4,c.AWAKE=0,c.SLEEPY=1,c.SLEEPING=2},{"../collision/AABB":9,"../events/EventEmitter":27,"../math/vec2":31,"../shapes/Convex":39,__browserify_Buffer:1,__browserify_process:2,"poly-decomp":7}],33:[function(a,b){function c(a,b,c){c=c||{},e.call(this,a,b,c),this.localAnchorA=d.fromValues(0,0),this.localAnchorB=d.fromValues(0,0),c.localAnchorA&&d.copy(this.localAnchorA,c.localAnchorA),c.localAnchorB&&d.copy(this.localAnchorB,c.localAnchorB),c.worldAnchorA&&this.setWorldAnchorA(c.worldAnchorA),c.worldAnchorB&&this.setWorldAnchorB(c.worldAnchorB);var f=d.create(),g=d.create();this.getWorldAnchorA(f),this.getWorldAnchorB(g);var h=d.distance(f,g);this.restLength="number"==typeof c.restLength?c.restLength:h}{var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2")),e=a("./Spring");a("../utils/Utils")}b.exports=c,c.prototype=new e,c.prototype.setWorldAnchorA=function(a){this.bodyA.toLocalFrame(this.localAnchorA,a)},c.prototype.setWorldAnchorB=function(a){this.bodyB.toLocalFrame(this.localAnchorB,a)},c.prototype.getWorldAnchorA=function(a){this.bodyA.toWorldFrame(a,this.localAnchorA)},c.prototype.getWorldAnchorB=function(a){this.bodyB.toWorldFrame(a,this.localAnchorB)};var f=d.create(),g=d.create(),h=d.create(),i=d.create(),j=d.create(),k=d.create(),l=d.create(),m=d.create(),n=d.create();c.prototype.applyForce=function(){var a=this.stiffness,b=this.damping,c=this.restLength,e=this.bodyA,o=this.bodyB,p=f,q=g,r=h,s=i,t=n,u=j,v=k,w=l,x=m;this.getWorldAnchorA(u),this.getWorldAnchorB(v),d.sub(w,u,e.position),d.sub(x,v,o.position),d.sub(p,v,u);var y=d.len(p);d.normalize(q,p),d.sub(r,o.velocity,e.velocity),d.crossZV(t,o.angularVelocity,x),d.add(r,r,t),d.crossZV(t,e.angularVelocity,w),d.sub(r,r,t),d.scale(s,q,-a*(y-c)-b*d.dot(r,q)),d.sub(e.force,e.force,s),d.add(o.force,o.force,s);var z=d.crossLength(w,s),A=d.crossLength(x,s);e.angularForce-=z,o.angularForce+=A}},{"../math/vec2":31,"../utils/Utils":50,"./Spring":35,__browserify_Buffer:1,__browserify_process:2}],34:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,c),this.restAngle="number"==typeof c.restAngle?c.restAngle:b.angle-a.angle}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2"),a("./Spring"));b.exports=c,c.prototype=new d,c.prototype.applyForce=function(){var a=this.stiffness,b=this.damping,c=this.restAngle,d=this.bodyA,e=this.bodyB,f=e.angle-d.angle,g=e.angularVelocity-d.angularVelocity,h=-a*(f-c)-b*g*0;d.angularForce-=h,e.angularForce+=h}},{"../math/vec2":31,"./Spring":35,__browserify_Buffer:1,__browserify_process:2}],35:[function(a,b){function c(a,b,c){c=d.defaults(c,{stiffness:100,damping:1}),this.stiffness=c.stiffness,this.damping=c.damping,this.bodyA=a,this.bodyB=b}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../math/vec2"),a("../utils/Utils"));b.exports=c,c.prototype.applyForce=function(){}},{"../math/vec2":31,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],36:[function(a,b){a("__browserify_process"),a("__browserify_Buffer");b.exports={AABB:a("./collision/AABB"),AngleLockEquation:a("./equations/AngleLockEquation"),Body:a("./objects/Body"),Broadphase:a("./collision/Broadphase"),Capsule:a("./shapes/Capsule"),Circle:a("./shapes/Circle"),Constraint:a("./constraints/Constraint"),ContactEquation:a("./equations/ContactEquation"),ContactMaterial:a("./material/ContactMaterial"),Convex:a("./shapes/Convex"),DistanceConstraint:a("./constraints/DistanceConstraint"),Equation:a("./equations/Equation"),EventEmitter:a("./events/EventEmitter"),FrictionEquation:a("./equations/FrictionEquation"),GearConstraint:a("./constraints/GearConstraint"),GridBroadphase:a("./collision/GridBroadphase"),GSSolver:a("./solver/GSSolver"),Heightfield:a("./shapes/Heightfield"),Line:a("./shapes/Line"),LockConstraint:a("./constraints/LockConstraint"),Material:a("./material/Material"),Narrowphase:a("./collision/Narrowphase"),NaiveBroadphase:a("./collision/NaiveBroadphase"),Particle:a("./shapes/Particle"),Plane:a("./shapes/Plane"),RevoluteConstraint:a("./constraints/RevoluteConstraint"),PrismaticConstraint:a("./constraints/PrismaticConstraint"),Rectangle:a("./shapes/Rectangle"),RotationalVelocityEquation:a("./equations/RotationalVelocityEquation"),SAPBroadphase:a("./collision/SAPBroadphase"),Shape:a("./shapes/Shape"),Solver:a("./solver/Solver"),Spring:a("./objects/Spring"),LinearSpring:a("./objects/LinearSpring"),RotationalSpring:a("./objects/RotationalSpring"),Utils:a("./utils/Utils"),World:a("./world/World"),vec2:a("./math/vec2"),version:a("../package.json").version}},{"../package.json":8,"./collision/AABB":9,"./collision/Broadphase":10,"./collision/GridBroadphase":11,"./collision/NaiveBroadphase":12,"./collision/Narrowphase":13,"./collision/SAPBroadphase":14,"./constraints/Constraint":15,"./constraints/DistanceConstraint":16,"./constraints/GearConstraint":17,"./constraints/LockConstraint":18,"./constraints/PrismaticConstraint":19,"./constraints/RevoluteConstraint":20,"./equations/AngleLockEquation":21,"./equations/ContactEquation":22,"./equations/Equation":23,"./equations/FrictionEquation":24,"./equations/RotationalVelocityEquation":26,"./events/EventEmitter":27,"./material/ContactMaterial":28,"./material/Material":29,"./math/vec2":31,"./objects/Body":32,"./objects/LinearSpring":33,"./objects/RotationalSpring":34,"./objects/Spring":35,"./shapes/Capsule":37,"./shapes/Circle":38,"./shapes/Convex":39,"./shapes/Heightfield":40,"./shapes/Line":41,"./shapes/Particle":42,"./shapes/Plane":43,"./shapes/Rectangle":44,"./shapes/Shape":45,"./solver/GSSolver":46,"./solver/Solver":47,"./utils/Utils":50,"./world/World":54,__browserify_Buffer:1,__browserify_process:2}],37:[function(a,b){function c(a,b){this.length=a||1,this.radius=b||1,d.call(this,d.CAPSULE)}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Shape")),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.computeMomentOfInertia=function(a){var b=this.radius,c=this.length+b,d=2*b;return a*(d*d+c*c)/12},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius+this.length/2},c.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius+2*this.radius*this.length};var f=e.create();c.prototype.computeAABB=function(a,b,c){var d=this.radius;e.set(f,this.length/2,0),0!==c&&e.rotate(f,f,c),e.set(a.upperBound,Math.max(f[0]+d,-f[0]+d),Math.max(f[1]+d,-f[1]+d)),e.set(a.lowerBound,Math.min(f[0]-d,-f[0]-d),Math.min(f[1]-d,-f[1]-d)),e.add(a.lowerBound,a.lowerBound,b),e.add(a.upperBound,a.upperBound,b)}},{"../math/vec2":31,"./Shape":45,__browserify_Buffer:1,__browserify_process:2}],38:[function(a,b){function c(a){this.radius=a||1,d.call(this,d.CIRCLE)}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Shape")),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.computeMomentOfInertia=function(a){var b=this.radius;return a*b*b/2},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius},c.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius},c.prototype.computeAABB=function(a,b){var c=this.radius;e.set(a.upperBound,c,c),e.set(a.lowerBound,-c,-c),b&&(e.add(a.lowerBound,a.lowerBound,b),e.add(a.upperBound,a.upperBound,b))}},{"../math/vec2":31,"./Shape":45,__browserify_Buffer:1,__browserify_process:2}],39:[function(a,b){function c(a,b){this.vertices=[],this.axes=[];for(var c=0;cf)&&(f=d),(null===h||h>d)&&(h=d);if(h>f){var j=h;h=f,f=j}e.set(b,h,f)},c.prototype.projectOntoWorldAxis=function(a,b,c,d){var f=h;this.projectOntoLocalAxis(a,d),0!==c?e.rotate(f,a,c):f=a;var g=e.dot(b,f);e.set(d,d[0]+g,d[1]+g)},c.prototype.updateTriangles=function(){this.triangles.length=0;for(var a=[],b=0;bg;f=g,g++){var h=this.vertices[f],i=this.vertices[g],j=Math.abs(e.crossLength(h,i)),k=e.dot(i,i)+e.dot(i,h)+e.dot(h,h);b+=j*k,c+=j}return a/6*(b/c)},c.prototype.updateBoundingRadius=function(){for(var a=this.vertices,b=0,c=0;c!==a.length;c++){var d=e.squaredLength(a[c]);d>b&&(b=d)}this.boundingRadius=Math.sqrt(b)},c.triangleArea=function(a,b,c){return.5*((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))},c.prototype.updateArea=function(){this.updateTriangles(),this.area=0;for(var a=this.triangles,b=this.vertices,d=0;d!==a.length;d++){var e=a[d],f=b[e[0]],g=b[e[1]],h=b[e[2]],i=c.triangleArea(f,g,h);this.area+=i}},c.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c,0)}},{"../math/polyk":30,"../math/vec2":31,"./Shape":45,__browserify_Buffer:1,__browserify_process:2,"poly-decomp":7}],40:[function(a,b){function c(a,b){if(b=e.defaults(b,{maxValue:null,minValue:null,elementWidth:.1}),null===b.minValue||null===b.maxValue){b.maxValue=a[0],b.minValue=a[0];for(var c=0;c!==a.length;c++){var f=a[c];f>b.maxValue&&(b.maxValue=f),f=w*w)break}for(c.updateMultipliers(k,q,1/a),x=0;x!==l;x++){var z=k[x];if(z instanceof h){for(var A=0,B=0;B!==z.contactEquations.length;B++)A+=z.contactEquations[B].multiplier;A*=z.frictionCoefficient/z.contactEquations.length,z.maxForce=A,z.minForce=-A}}}for(f=0;f!==i;f++){for(w=0,x=0;x!==l;x++){v=k[x];var y=c.iterateEquation(x,v,v.epsilon,u,t,q,p,a,f);w+=Math.abs(y)}if(this.usedIterations++,m>=w*w)break}for(r=0;r!==o;r++)n[r].addConstraintVelocity();c.updateMultipliers(k,q,1/a)}},c.updateMultipliers=function(a,b,c){for(var d=a.length;d--;)a[d].multiplier=b[d]*c},c.iterateEquation=function(a,b,c,d,e,f,g,h){var i=d[a],j=e[a],k=f[a],l=b.computeGWlambda(),m=b.maxForce,n=b.minForce;g&&(i=0);var o=j*(i-l-c*k),p=k+o;return n*h>p?o=n*h-k:p>m*h&&(o=m*h-k),f[a]+=o,b.addToWlambda(o),o}},{"../equations/FrictionEquation":24,"../math/vec2":31,"../utils/Utils":50,"./Solver":47,__browserify_Buffer:1,__browserify_process:2}],47:[function(a,b){function c(a,b){a=a||{},d.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../utils/Utils"),a("../events/EventEmitter"));b.exports=c,c.prototype=new d,c.prototype.solve=function(){throw new Error("Solver.solve should be implemented by subclasses!")};var e={bodies:[]};c.prototype.solveIsland=function(a,b){this.removeAllEquations(),b.equations.length&&(this.addEquations(b.equations),e.bodies.length=0,b.getBodies(e.bodies),e.bodies.length&&this.solve(a,e))},c.prototype.sortEquations=function(){this.equationSortFunction&&this.equations.sort(this.equationSortFunction)},c.prototype.addEquation=function(a){a.enabled&&this.equations.push(a)},c.prototype.addEquations=function(a){for(var b=0,c=a.length;b!==c;b++){var d=a[b];d.enabled&&this.equations.push(d)}},c.prototype.removeEquation=function(a){var b=this.equations.indexOf(a);-1!==b&&this.equations.splice(b,1)},c.prototype.removeAllEquations=function(){this.equations.length=0},c.GS=1,c.ISLAND=2},{"../events/EventEmitter":27,"../utils/Utils":50,__browserify_Buffer:1,__browserify_process:2}],48:[function(a,b){function c(){this.overlappingShapesLastState=new e,this.overlappingShapesCurrentState=new e,this.recordPool=[],this.tmpDict=new e,this.tmpArray1=[]}function d(a,b,c,d){this.shapeA=b,this.shapeB=d,this.bodyA=a,this.bodyB=c}{var e=(a("__browserify_process"),a("__browserify_Buffer"),a("./TupleDictionary"));a("./Utils")}b.exports=c,c.prototype.tick=function(){for(var a=this.overlappingShapesLastState,b=this.overlappingShapesCurrentState,c=a.keys.length;c--;){var d=a.keys[c],e=a.getByKey(d),f=b.getByKey(d);e&&!f&&this.recordPool.push(e)}a.reset(),a.copy(b),b.reset()},c.prototype.setOverlapping=function(a,b,c,e){var f=(this.overlappingShapesLastState,this.overlappingShapesCurrentState);if(!f.get(b.id,e.id)){var g;this.recordPool.length?(g=this.recordPool.pop(),g.set(a,b,c,e)):g=new d(a,b,c,e),f.set(b.id,e.id,g)}},c.prototype.getNewOverlaps=function(a){return this.getDiff(this.overlappingShapesLastState,this.overlappingShapesCurrentState,a)},c.prototype.getEndOverlaps=function(a){return this.getDiff(this.overlappingShapesCurrentState,this.overlappingShapesLastState,a)},c.prototype.bodiesAreOverlapping=function(a,b){for(var c=this.overlappingShapesCurrentState,d=c.keys.length;d--;){var e=c.keys[d],f=c.data[e];if(f.bodyA===a&&f.bodyB===b||f.bodyA===b&&f.bodyB===a)return!0}return!1},c.prototype.getDiff=function(a,b,c){var c=c||[],d=a,e=b;c.length=0;for(var f=e.keys.length;f--;){var g=e.keys[f],h=e.data[g];if(!h)throw new Error("Key "+g+" had no data!");var i=d.data[g];i||c.push(h)}return c},c.prototype.isNewOverlap=function(a,b){var c=0|a.id,d=0|b.id,e=this.overlappingShapesLastState,f=this.overlappingShapesCurrentState;return!e.get(c,d)&&!!f.get(c,d)},c.prototype.getNewBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getNewOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getEndBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getEndOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getBodyDiff=function(a,b){b=b||[];for(var c=this.tmpDict,d=a.length;d--;){var e=a[d];c.set(0|e.bodyA.id,0|e.bodyB.id,e)}for(d=c.keys.length;d--;){var e=c.getByKey(c.keys[d]);e&&b.push(e.bodyA,e.bodyB)}return c.reset(),b},d.prototype.set=function(a,b,c,e){d.call(this,a,b,c,e)}},{"./TupleDictionary":49,"./Utils":50,__browserify_Buffer:1,__browserify_process:2}],49:[function(a,b){function c(){this.data={},this.keys=[]}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("./Utils"));b.exports=c,c.prototype.getKey=function(a,b){return a=0|a,b=0|b,(0|a)===(0|b)?-1:0|((0|a)>(0|b)?a<<16|65535&b:b<<16|65535&a)},c.prototype.getByKey=function(a){return a=0|a,this.data[a]},c.prototype.get=function(a,b){return this.data[this.getKey(a,b)]},c.prototype.set=function(a,b,c){if(!c)throw new Error("No data!");var d=this.getKey(a,b);return this.data[d]||this.keys.push(d),this.data[d]=c,d},c.prototype.reset=function(){for(var a=this.data,b=this.keys,c=b.length;c--;)delete a[b[c]];b.length=0},c.prototype.copy=function(a){this.reset(),d.appendArray(this.keys,a.keys);for(var b=a.keys.length;b--;){var c=a.keys[b];this.data[c]=a.data[c]}}},{"./Utils":50,__browserify_Buffer:1,__browserify_process:2}],50:[function(a,b){function c(){}a("__browserify_process"),a("__browserify_Buffer");b.exports=c,c.appendArray=function(a,b){if(b.length<15e4)a.push.apply(a,b);else for(var c=0,d=b.length;c!==d;++c)a.push(b[c])},c.splice=function(a,b,c){c=c||1;for(var d=b,e=a.length-c;e>d;d++)a[d]=a[d+c];a.length=e},c.ARRAY_TYPE=window.Float32Array||Array,c.extend=function(a,b){for(var c in b)a[c]=b[c]},c.defaults=function(a,b){a=a||{};for(var c in b)c in a||(a[c]=b[c]);return a}},{__browserify_Buffer:1,__browserify_process:2}],51:[function(a,b){function c(){this.equations=[],this.bodies=[]}var d=(a("__browserify_process"),a("__browserify_Buffer"),a("../objects/Body"));b.exports=c,c.prototype.reset=function(){this.equations.length=this.bodies.length=0};var e=[];c.prototype.getBodies=function(a){var b=a||[],c=this.equations;e.length=0;for(var d=0;d!==c.length;d++){var f=c[d];-1===e.indexOf(f.bodyA.id)&&(b.push(f.bodyA),e.push(f.bodyA.id)),-1===e.indexOf(f.bodyB.id)&&(b.push(f.bodyB),e.push(f.bodyB.id))}return b},c.prototype.wantsToSleep=function(){for(var a=0;a1e3*a));g++);this.time+=b;for(var h=this.time%a,i=h/a,j=0;j!==this.bodies.length;j++){var k=this.bodies[j];k.type!==l.STATIC&&k.sleepState!==l.SLEEPING?(e.sub(x,k.position,k.previousPosition),e.scale(x,x,i),e.add(k.interpolatedPosition,k.position,x),k.interpolatedAngle=k.angle+(k.angle-k.previousAngle)*i):(e.copy(k.interpolatedPosition,k.position),k.interpolatedAngle=k.angle)}}};var y=[];c.prototype.internalStep=function(a){this.stepping=!0;var b,d,f=this,g=this.doProfiling,h=this.springs.length,i=this.springs,j=this.bodies,k=this.gravity,m=this.solver,n=this.bodies.length,o=this.broadphase,p=this.narrowphase,r=this.constraints,s=u,t=(e.scale,e.add),v=(e.rotate,this.islandManager);if(this.overlapKeeper.tick(),this.lastTimeStep=a,g&&(b=performance.now()),this.useWorldGravityAsFrictionGravity){var w=e.length(this.gravity);0===w&&this.useFrictionGravityOnZeroGravity||(this.frictionGravity=w)}if(this.applyGravity)for(var x=0;x!==n;x++){var z=j[x],A=z.force;z.type===l.DYNAMIC&&z.sleepState!==l.SLEEPING&&(e.scale(s,k,z.mass*z.gravityScale),t(A,A,s))}if(this.applySpringForces)for(var x=0;x!==h;x++){var B=i[x];B.applyForce()}if(this.applyDamping)for(var x=0;x!==n;x++){var z=j[x];z.type===l.DYNAMIC&&z.applyDamping(a)}for(var C=o.getCollisionPairs(this),D=this.disabledBodyCollisionPairs,x=D.length-2;x>=0;x-=2)for(var E=C.length-2;E>=0;E-=2)(D[x]===C[E]&&D[x+1]===C[E+1]||D[x+1]===C[E]&&D[x]===C[E+1])&&C.splice(E,2);var F=r.length;for(x=0;x!==F;x++){var G=r[x];if(!G.collideConnected)for(var E=C.length-2;E>=0;E-=2)(G.bodyA===C[E]&&G.bodyB===C[E+1]||G.bodyB===C[E]&&G.bodyA===C[E+1])&&C.splice(E,2)}this.postBroadphaseEvent.pairs=C,this.emit(this.postBroadphaseEvent),p.reset(this);for(var x=0,H=C.length;x!==H;x+=2)for(var I=C[x],J=C[x+1],K=0,L=I.shapes.length;K!==L;K++)for(var M=I.shapes[K],N=I.shapeOffsets[K],O=I.shapeAngles[K],P=0,Q=J.shapes.length;P!==Q;P++){var R=J.shapes[P],S=J.shapeOffsets[P],T=J.shapeAngles[P],U=this.defaultContactMaterial;if(M.material&&R.material){var V=this.getContactMaterial(M.material,R.material);V&&(U=V)}this.runNarrowphase(p,I,M,N,O,J,R,S,T,U,this.frictionGravity)}for(var x=0;x!==n;x++){var W=j[x];W._wakeUpAfterNarrowphase&&(W.wakeUp(),W._wakeUpAfterNarrowphase=!1)}if(this.has("endContact")){this.overlapKeeper.getEndOverlaps(y);for(var X=this.endContactEvent,P=y.length;P--;){var Y=y[P];X.shapeA=Y.shapeA,X.shapeB=Y.shapeB,X.bodyA=Y.bodyA,X.bodyB=Y.bodyB,this.emit(X)}}var Z=this.preSolveEvent;Z.contactEquations=p.contactEquations,Z.frictionEquations=p.frictionEquations,this.emit(Z);var F=r.length;for(x=0;x!==F;x++)r[x].update();if(p.contactEquations.length||p.frictionEquations.length||r.length)if(this.islandSplit){for(v.equations.length=0,q.appendArray(v.equations,p.contactEquations),q.appendArray(v.equations,p.frictionEquations),x=0;x!==F;x++)q.appendArray(v.equations,r[x].equations);v.split(this);for(var x=0;x!==v.islands.length;x++){var $=v.islands[x];$.equations.length&&m.solveIsland(a,$)}}else{for(m.addEquations(p.contactEquations),m.addEquations(p.frictionEquations),x=0;x!==F;x++)m.addEquations(r[x].equations);this.solveConstraints&&m.solve(a,this),m.removeAllEquations()}for(var x=0;x!==n;x++){var W=j[x];W.sleepState!==l.SLEEPING&&W.type!==l.STATIC&&c.integrateBody(W,a)}for(var x=0;x!==n;x++)j[x].setZeroForce();if(g&&(d=performance.now(),f.lastStepTime=d-b),this.emitImpactEvent&&this.has("impact"))for(var _=this.impactEvent,x=0;x!==p.contactEquations.length;x++){var ab=p.contactEquations[x];ab.firstImpact&&(_.bodyA=ab.bodyA,_.bodyB=ab.bodyB,_.shapeA=ab.shapeA,_.shapeB=ab.shapeB,_.contactEquation=ab,this.emit(_))}if(this.sleepMode===c.BODY_SLEEPING)for(x=0;x!==n;x++)j[x].sleepTick(this.time,!1,a);else if(this.sleepMode===c.ISLAND_SLEEPING&&this.islandSplit){for(x=0;x!==n;x++)j[x].sleepTick(this.time,!0,a);for(var x=0;x0,a.frictionCoefficient=k.friction;var p;p=b.type===l.STATIC||b.type===l.KINEMATIC?g.mass:g.type===l.STATIC||g.type===l.KINEMATIC?b.mass:b.mass*g.mass/(b.mass+g.mass),a.slipForce=k.friction*m*p,a.restitution=k.restitution,a.surfaceVelocity=k.surfaceVelocity,a.frictionStiffness=k.frictionStiffness,a.frictionRelaxation=k.frictionRelaxation,a.stiffness=k.stiffness,a.relaxation=k.relaxation,a.contactSkinSize=k.contactSkinSize;var q=a[c.type|h.type],r=0;if(q){var s=c.sensor||h.sensor,t=a.frictionEquations.length;r=c.type=2*y&&(b._wakeUpAfterNarrowphase=!0)}if(g.allowSleep&&g.type===l.DYNAMIC&&g.sleepState===l.SLEEPING&&b.sleepState===l.AWAKE&&b.type!==l.STATIC){var z=e.squaredLength(b.velocity)+Math.pow(b.angularVelocity,2),A=Math.pow(b.sleepSpeedLimit,2);z>=2*A&&(g._wakeUpAfterNarrowphase=!0)}if(this.overlapKeeper.setOverlapping(b,c,g,h),this.has("beginContact")&&this.overlapKeeper.isNewOverlap(c,h)){var B=this.beginContactEvent;if(B.shapeA=c,B.shapeB=h,B.bodyA=b,B.bodyB=g,B.contactEquations.length=0,"number"==typeof r)for(var C=a.contactEquations.length-r;C1)for(var C=a.frictionEquations.length-u;C=0;b--)this.removeConstraint(a[b]);for(var d=this.bodies,b=d.length-1;b>=0;b--)this.removeBody(d[b]);for(var e=this.springs,b=e.length-1;b>=0;b--)this.removeSpring(e[b]);for(var f=this.contactMaterials,b=f.length-1;b>=0;b--)this.removeContactMaterial(f[b]);c.apply(this)},c.prototype.clone=function(){var a=new c;return a.fromJSON(this.toJSON()),a};var B=e.create(),C=e.fromValues(0,0),D=e.fromValues(0,0);c.prototype.hitTest=function(a,b,c){c=c||0;var d=new l({position:a}),k=new j,m=a,n=0,o=B,p=C,q=D;d.addShape(k);for(var r=this.narrowphase,s=[],t=0,u=b.length;t!==u;t++)for(var v=b[t],w=0,x=v.shapes.length;w!==x;w++){var y=v.shapes[w],z=v.shapeOffsets[w]||p,A=v.shapeAngles[w]||0;e.rotate(o,z,v.angle),e.add(o,o,v.position);var E=A+v.angle;(y instanceof f&&r.circleParticle(v,y,o,E,d,k,m,n,!0)||y instanceof g&&r.particleConvex(d,k,m,n,v,y,o,E,!0)||y instanceof h&&r.particlePlane(d,k,m,n,v,y,o,E,!0)||y instanceof i&&r.particleCapsule(d,k,m,n,v,y,o,E,!0)||y instanceof j&&e.squaredLength(e.sub(q,o,a))0&&this.enable(a[d],b,!0));else a instanceof Phaser.Group?this.enable(a.children,b,c):(this.enableBody(a,b),c&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new Phaser.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){var b=a.pairs.length;if(this.postBroadphaseCallback&&b>0)for(;b-=2;)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.shapeB,a.shapeA,a.contactEquations)},endContactHandler:function(a){this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.shapeB,a.shapeA)},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){var b=this.everythingCollisionGroup.mask;"undefined"==typeof a&&(b=this.boundsCollisionGroup.mask),this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b)},setBounds:function(a,b,c,d,e,f,g,h,i){"undefined"==typeof e&&(e=!0),"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=!0),"undefined"==typeof h&&(h=!0),"undefined"==typeof i&&(i=!0),this.walls.left&&this.world.removeBody(this.walls.left),this.walls.right&&this.world.removeBody(this.walls.right),this.walls.top&&this.world.removeBody(this.walls.top),this.walls.bottom&&this.world.removeBody(this.walls.bottom),e&&(this.walls.left=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:1.5707963267948966}),this.walls.left.addShape(new p2.Plane),i&&(this.walls.left.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.left)),f&&(this.walls.right=new p2.Body({mass:0,position:[this.pxmi(a+c),this.pxmi(b)],angle:-1.5707963267948966}),this.walls.right.addShape(new p2.Plane),i&&(this.walls.right.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.right)),g&&(this.walls.top=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:-3.141592653589793}),this.walls.top.addShape(new p2.Plane),i&&(this.walls.top.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.top)),h&&(this.walls.bottom=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b+d)]}),this.walls.bottom.addShape(new p2.Plane),i&&(this.walls.bottom.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.bottom))},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||this.world.step(this.useElapsedTime?this.game.time.physicsElapsed:this.frameRate)},reset:function(){this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.nothingCollisionGroup=new Phaser.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new Phaser.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new Phaser.Physics.P2.CollisionGroup(2147483648),this._collisionGroupID=2,this.setBoundsToWorld(!0,!0,!0,!0,!1)},clear:function(){this.world.time=0,this.world.fixedStepTime=0,this.world.solver&&this.world.solver.equations.length&&this.world.solver.removeAllEquations();for(var a=this.world.constraints,b=a.length-1;b>=0;b--)this.world.removeConstraint(a[b]);for(var c=this.world.bodies,b=c.length-1;b>=0;b--)this.world.removeBody(c[b]);for(var d=this.world.springs,b=d.length-1;b>=0;b--)this.world.removeSpring(d[b]);for(var e=this.world.contactMaterials,b=e.length-1;b>=0;b--)this.world.removeContactMaterial(e[b]);this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this.boundsCollidesWith=[]},destroy:function(){this.clear(),this.game=null},addBody:function(a){return a.data.world?!1:(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world==this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return this.world.addSpring(a instanceof Phaser.Physics.P2.Spring||a instanceof Phaser.Physics.P2.RotationalSpring?a.data:a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return this.world.removeSpring(a instanceof Phaser.Physics.P2.Spring||a instanceof Phaser.Physics.P2.RotationalSpring?a.data:a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,c,d,e,f){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.DistanceConstraint(this,a,b,c,d,e,f)):void console.warn("Cannot create Constraint, invalid body objects given") +},createGearConstraint:function(a,b,c,d){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.GearConstraint(this,a,b,c,d)):void console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,c,d,e,f){return a=this.getBody(a),c=this.getBody(c),a&&c?this.addConstraint(new Phaser.Physics.P2.RevoluteConstraint(this,a,b,c,d,e,f)):void console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,c,d,e){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.LockConstraint(this,a,b,c,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,c,d,e,f,g){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.PrismaticConstraint(this,a,b,c,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var c=new Phaser.Physics.P2.Material(a);return this.materials.push(c),"undefined"!=typeof b&&b.setMaterial(c),c},createContactMaterial:function(a,b,c){"undefined"==typeof a&&(a=this.createMaterial()),"undefined"==typeof b&&(b=this.createMaterial());var d=new Phaser.Physics.P2.ContactMaterial(a,b,c);return this.addContactMaterial(d)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof Phaser.Physics.P2.Body?a.data:a.body&&a.body.type===Phaser.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b].parent);return a},hitTest:function(a,b,c,d){"undefined"==typeof b&&(b=this.world.bodies),"undefined"==typeof c&&(c=5),"undefined"==typeof d&&(d=!1);for(var e=[this.pxmi(a.x),this.pxmi(a.y)],f=[],g=b.length;g--;)b[g]instanceof Phaser.Physics.P2.Body&&(!d||b[g].data.type!==p2.Body.STATIC)?f.push(b[g].data):b[g]instanceof p2.Body&&b[g].parent&&(!d||b[g].type!==p2.Body.STATIC)?f.push(b[g]):b[g]instanceof Phaser.Sprite&&b[g].hasOwnProperty("body")&&(!d||b[g].body.data.type!==p2.Body.STATIC)&&f.push(b[g].body.data);return this.world.hitTest(e,f,c)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var c=new Phaser.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(c),a&&this.setCollisionGroup(a,c),c},setCollisionGroup:function(a,b){if(a instanceof Phaser.Group)for(var c=0;ce;e++){var g=a.collision[b][e],h=this.createBody(g.x,g.y,0,c,{},g.polyline);h&&d.push(h)}return d},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;i>h;h++){e=0;for(var j=0,k=a.layers[b].width;k>j;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=this.createBody(f,g,0,!1);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},mpx:function(a){return a*=20},pxm:function(a){return.05*a},mpxi:function(a){return a*=-20},pxmi:function(a){return a*-.05}},Object.defineProperty(Phaser.Physics.P2.prototype,"friction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"restitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"contactMaterial",{get:function(){return this.world.defaultContactMaterial},set:function(a){this.world.defaultContactMaterial=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(Phaser.Physics.P2.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"sleepMode",{get:function(){return this.world.sleepMode},set:function(a){this.world.sleepMode=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"total",{get:function(){return this.world.bodies.length}}),Phaser.Physics.P2.FixtureList=function(a){Array.isArray(a)||(a=[a]),this.rawList=a,this.init(),this.parse(this.rawList)},Phaser.Physics.P2.FixtureList.prototype={init:function(){this.namedFixtures={},this.groupedFixtures=[],this.allFixtures=[]},setCategory:function(a,b){var c=function(b){b.collisionGroup=a};this.getFixtures(b).forEach(c)},setMask:function(a,b){var c=function(b){b.collisionMask=a};this.getFixtures(b).forEach(c)},setSensor:function(a,b){var c=function(b){b.sensor=a};this.getFixtures(b).forEach(c)},setMaterial:function(a,b){var c=function(b){b.material=a};this.getFixtures(b).forEach(c)},getFixtures:function(a){var b=[];if(a){a instanceof Array||(a=[a]);var c=this;return a.forEach(function(a){c.namedFixtures[a]&&b.push(c.namedFixtures[a])}),this.flatten(b)}return this.allFixtures},getFixtureByKey:function(a){return this.namedFixtures[a]},getGroup:function(a){return this.groupedFixtures[a]},parse:function(){var a,b,c,d;c=this.rawList,d=[];for(a in c)b=c[a],isNaN(a-0)?this.namedFixtures[a]=this.flatten(b):(this.groupedFixtures[a]=this.groupedFixtures[a]||[],this.groupedFixtures[a]=this.groupedFixtures[a].concat(b)),d.push(this.allFixtures=this.flatten(this.groupedFixtures))},flatten:function(a){var b,c;return b=[],c=arguments.callee,a.forEach(function(a){return Array.prototype.push.apply(b,Array.isArray(a)?c(a):[a])}),b}},Phaser.Physics.P2.PointProxy=function(a,b){this.world=a,this.destination=b},Phaser.Physics.P2.PointProxy.prototype.constructor=Phaser.Physics.P2.PointProxy,Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype,"x",{get:function(){return this.world.mpx(this.destination[0])},set:function(a){this.destination[0]=this.world.pxm(a)}}),Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype,"y",{get:function(){return this.world.mpx(this.destination[1])},set:function(a){this.destination[1]=this.world.pxm(a)}}),Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=a}}),Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=a}}),Phaser.Physics.P2.InversePointProxy=function(a,b){this.world=a,this.destination=b},Phaser.Physics.P2.InversePointProxy.prototype.constructor=Phaser.Physics.P2.InversePointProxy,Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype,"x",{get:function(){return this.world.mpxi(this.destination[0])},set:function(a){this.destination[0]=this.world.pxmi(a)}}),Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype,"y",{get:function(){return this.world.mpxi(this.destination[1])},set:function(a){this.destination[1]=this.world.pxmi(a)}}),Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=-a}}),Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=-a}}),Phaser.Physics.P2.Body=function(a,b,c,d,e){b=b||null,c=c||0,d=d||0,"undefined"==typeof e&&(e=1),this.game=a,this.world=a.physics.p2,this.sprite=b,this.type=Phaser.Physics.P2JS,this.offset=new Phaser.Point,this.data=new p2.Body({position:[this.world.pxmi(c),this.world.pxmi(d)],mass:e}),this.data.parent=this,this.velocity=new Phaser.Physics.P2.InversePointProxy(this.world,this.data.velocity),this.force=new Phaser.Physics.P2.InversePointProxy(this.world,this.data.force),this.gravity=new Phaser.Point,this.onBeginContact=new Phaser.Signal,this.onEndContact=new Phaser.Signal,this.collidesWith=[],this.removeNextStep=!1,this.debugBody=null,this._collideWorldBounds=!0,this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},b&&(this.setRectangleFromSprite(b),b.exists&&this.game.physics.p2.addBody(this))},Phaser.Physics.P2.Body.prototype={createBodyCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyCallbacks[d],delete this._bodyCallbackContext[d]):(this._bodyCallbacks[d]=b,this._bodyCallbackContext[d]=c))},createGroupCallback:function(a,b,c){null===b?(delete this._groupCallbacks[a.mask],delete this._groupCallbacksContext[a.mask]):(this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c)},getCollisionMask:function(){var a=0;this._collideWorldBounds&&(a=this.game.physics.p2.boundsCollisionGroup.mask);for(var b=0;b=0;c--)this.data.shapes[c].collisionMask=b;else a.collisionMask=b},setCollisionGroup:function(a,b){var c=this.getCollisionMask();if("undefined"==typeof b)for(var d=this.data.shapes.length-1;d>=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,b.collisionMask=c},clearCollision:function(a,b,c){if("undefined"==typeof c)for(var d=this.data.shapes.length-1;d>=0;d--)a&&(this.data.shapes[d].collisionGroup=null),b&&(this.data.shapes[d].collisionMask=null);else a&&(c.collisionGroup=null),b&&(c.collisionMask=null);a&&(this.collidesWith.length=0)},collides:function(a,b,c,d){if(Array.isArray(a))for(var e=0;e=0;e--)this.data.shapes[e].collisionMask=f;else d.collisionMask=f},adjustCenterOfMass:function(){this.data.adjustCenterOfMass()},applyDamping:function(a){this.data.applyDamping(a)},applyForce:function(a,b,c){this.data.applyForce(a,[this.world.pxmi(b),this.world.pxmi(c)])},setZeroForce:function(){this.data.setZeroForce()},setZeroRotation:function(){this.data.angularVelocity=0},setZeroVelocity:function(){this.data.velocity[0]=0,this.data.velocity[1]=0},setZeroDamping:function(){this.data.damping=0,this.data.angularDamping=0},toLocalFrame:function(a,b){return this.data.toLocalFrame(a,b)},toWorldFrame:function(a,b){return this.data.toWorldFrame(a,b)},rotateLeft:function(a){this.data.angularVelocity=this.world.pxm(-a)},rotateRight:function(a){this.data.angularVelocity=this.world.pxm(a)},moveForward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=b*Math.cos(c),this.data.velocity[1]=b*Math.sin(c)},moveBackward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=-(b*Math.cos(c)),this.data.velocity[1]=-(b*Math.sin(c))},thrust:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},reverse:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},moveLeft:function(a){this.data.velocity[0]=this.world.pxmi(-a)},moveRight:function(a){this.data.velocity[0]=this.world.pxmi(a)},moveUp:function(a){this.data.velocity[1]=this.world.pxmi(-a)},moveDown:function(a){this.data.velocity[1]=this.world.pxmi(a)},preUpdate:function(){this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite.x=this.world.mpxi(this.data.position[0]),this.sprite.y=this.world.mpxi(this.data.position[1]),this.fixedRotation||(this.sprite.rotation=this.data.angle),this.debugBody&&this.debugBody.updateSpriteTransform()},reset:function(a,b,c,d){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),this.setZeroForce(),this.setZeroVelocity(),this.setZeroRotation(),c&&this.setZeroDamping(),d&&(this.mass=1),this.x=a,this.y=b},addToWorld:function(){if(this.game.physics.p2._toRemove)for(var a=0;ad;d+=2)c.push([b[d],b[d+1]]);var f=c.length-1;c[f][0]===c[0][0]&&c[f][1]===c[0][1]&&c.pop();for(var g=0;g=0;c--)this.data.shapes[c].material=a;else b.material=a},shapeChanged:function(){this.debugBody&&this.debugBody.draw()},addPhaserPolygon:function(a,b){for(var c=this.game.cache.getPhysicsData(a,b),d=[],e=0;e=0?o>n:n>o;e=o>=0?++n:--n)k=b.vertices[e],p2.vec2.rotate(m,k,a),l.push([(m[0]+i[0])*this.ppu,-(m[1]+i[1])*this.ppu]);this.drawConvex(j,l,b.triangles,f,c,g,this.settings.debugPolygons,[i[0]*this.ppu,-i[1]*this.ppu])}else b instanceof p2.Plane?this.drawPlane(j,i[0]*this.ppu,-i[1]*this.ppu,c,f,5*g,10*g,10*g,100*this.ppu,a):b instanceof p2.Line?this.drawLine(j,b.length*this.ppu,f,g):b instanceof p2.Rectangle&&this.drawRectangle(j,i[0]*this.ppu,-i[1]*this.ppu,a,b.width*this.ppu,b.height*this.ppu,f,c,g);d++}}},drawRectangle:function(a,b,c,d,e,f,g,h,i){"undefined"==typeof i&&(i=1),"undefined"==typeof g&&(g=0),a.lineStyle(i,g,1),a.beginFill(h),a.drawRect(b-e/2,c-f/2,e,f)},drawCircle:function(a,b,c,d,e,f,g){"undefined"==typeof g&&(g=1),"undefined"==typeof f&&(f=16777215),a.lineStyle(g,0,1),a.beginFill(f,1),a.drawCircle(b,c,2*-e),a.endFill(),a.moveTo(b,c),a.lineTo(b+e*Math.cos(-d),c+e*Math.sin(-d))},drawLine:function(a,b,c,d){"undefined"==typeof d&&(d=1),"undefined"==typeof c&&(c=0),a.lineStyle(5*d,c,1),a.moveTo(-b/2,0),a.lineTo(b/2,0)},drawConvex:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s;if("undefined"==typeof f&&(f=1),"undefined"==typeof d&&(d=0),g){for(i=[16711680,65280,255],j=0;j!==b.length+1;)l=b[j%b.length],m=b[(j+1)%b.length],o=l[0],r=l[1],p=m[0],s=m[1],a.lineStyle(f,i[j%i.length],1),a.moveTo(o,-r),a.lineTo(p,-s),a.drawCircle(o,-r,2*f),j++;return a.lineStyle(f,0,1),a.drawCircle(h[0],h[1],2*f)}for(a.lineStyle(f,d,1),a.beginFill(e),j=0;j!==b.length;)k=b[j],n=k[0],q=k[1],0===j?a.moveTo(n,-q):a.lineTo(n,-q),j++;return a.endFill(),b.length>2?(a.moveTo(b[b.length-1][0],-b[b.length-1][1]),a.lineTo(b[0][0],-b[0][1])):void 0},drawPath:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;for("undefined"==typeof e&&(e=1),"undefined"==typeof c&&(c=0),a.lineStyle(e,c,1),"number"==typeof d&&a.beginFill(d),h=null,i=null,g=0;g2&&"number"==typeof d&&(a.moveTo(b[b.length-1][0],b[b.length-1][1]),a.lineTo(b[0][0],b[0][1]))},drawPlane:function(a,b,c,d,e,f,g,h,i,j){var k,l,m;"undefined"==typeof f&&(f=1),"undefined"==typeof d&&(d=16777215),a.lineStyle(f,e,11),a.beginFill(d),k=i,a.moveTo(b,-c),l=b+Math.cos(j)*this.game.width,m=c+Math.sin(j)*this.game.height,a.lineTo(l,-m),a.moveTo(b,-c),l=b+Math.cos(j)*-this.game.width,m=c+Math.sin(j)*-this.game.height,a.lineTo(l,-m)},randomPastelHex:function(){var a,b,c,d;return c=[255,255,255],d=Math.floor(256*Math.random()),b=Math.floor(256*Math.random()),a=Math.floor(256*Math.random()),d=Math.floor((d+3*c[0])/4),b=Math.floor((b+3*c[1])/4),a=Math.floor((a+3*c[2])/4),this.rgbToHex(d,b,a)},rgbToHex:function(a,b,c){return this.componentToHex(a)+this.componentToHex(b)+this.componentToHex(c)},componentToHex:function(a){var b;return b=a.toString(16),2===b.len?b:b+"0"}}),Phaser.Physics.P2.Spring=function(a,b,c,d,e,f,g,h,i,j){this.game=a.game,this.world=a,"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=100),"undefined"==typeof f&&(f=1),d=a.pxm(d);var k={restLength:d,stiffness:e,damping:f};"undefined"!=typeof g&&null!==g&&(k.worldAnchorA=[a.pxm(g[0]),a.pxm(g[1])]),"undefined"!=typeof h&&null!==h&&(k.worldAnchorB=[a.pxm(h[0]),a.pxm(h[1])]),"undefined"!=typeof i&&null!==i&&(k.localAnchorA=[a.pxm(i[0]),a.pxm(i[1])]),"undefined"!=typeof j&&null!==j&&(k.localAnchorB=[a.pxm(j[0]),a.pxm(j[1])]),this.data=new p2.LinearSpring(b,c,k),this.data.parent=this},Phaser.Physics.P2.Spring.prototype.constructor=Phaser.Physics.P2.Spring,Phaser.Physics.P2.RotationalSpring=function(a,b,c,d,e,f){this.game=a.game,this.world=a,"undefined"==typeof d&&(d=null),"undefined"==typeof e&&(e=100),"undefined"==typeof f&&(f=1),d&&(d=a.pxm(d));var g={restAngle:d,stiffness:e,damping:f};this.data=new p2.RotationalSpring(b,c,g),this.data.parent=this},Phaser.Physics.P2.Spring.prototype.constructor=Phaser.Physics.P2.Spring,Phaser.Physics.P2.Material=function(a){this.name=a,p2.Material.call(this)},Phaser.Physics.P2.Material.prototype=Object.create(p2.Material.prototype),Phaser.Physics.P2.Material.prototype.constructor=Phaser.Physics.P2.Material,Phaser.Physics.P2.ContactMaterial=function(a,b,c){p2.ContactMaterial.call(this,a,b,c)},Phaser.Physics.P2.ContactMaterial.prototype=Object.create(p2.ContactMaterial.prototype),Phaser.Physics.P2.ContactMaterial.prototype.constructor=Phaser.Physics.P2.ContactMaterial,Phaser.Physics.P2.CollisionGroup=function(a){this.mask=a},Phaser.Physics.P2.DistanceConstraint=function(a,b,c,d,e,f,g){"undefined"==typeof d&&(d=100),"undefined"==typeof e&&(e=[0,0]),"undefined"==typeof f&&(f=[0,0]),"undefined"==typeof g&&(g=Number.MAX_VALUE),this.game=a.game,this.world=a,d=a.pxm(d),e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var h={distance:d,localAnchorA:e,localAnchorB:f,maxForce:g};p2.DistanceConstraint.call(this,b,c,h)},Phaser.Physics.P2.DistanceConstraint.prototype=Object.create(p2.DistanceConstraint.prototype),Phaser.Physics.P2.DistanceConstraint.prototype.constructor=Phaser.Physics.P2.DistanceConstraint,Phaser.Physics.P2.GearConstraint=function(a,b,c,d,e){"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=1),this.game=a.game,this.world=a;var f={angle:d,ratio:e};p2.GearConstraint.call(this,b,c,f)},Phaser.Physics.P2.GearConstraint.prototype=Object.create(p2.GearConstraint.prototype),Phaser.Physics.P2.GearConstraint.prototype.constructor=Phaser.Physics.P2.GearConstraint,Phaser.Physics.P2.LockConstraint=function(a,b,c,d,e,f){"undefined"==typeof d&&(d=[0,0]),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,d=[a.pxm(d[0]),a.pxm(d[1])];var g={localOffsetB:d,localAngleB:e,maxForce:f};p2.LockConstraint.call(this,b,c,g)},Phaser.Physics.P2.LockConstraint.prototype=Object.create(p2.LockConstraint.prototype),Phaser.Physics.P2.LockConstraint.prototype.constructor=Phaser.Physics.P2.LockConstraint,Phaser.Physics.P2.PrismaticConstraint=function(a,b,c,d,e,f,g,h){"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=[0,0]),"undefined"==typeof f&&(f=[0,0]),"undefined"==typeof g&&(g=[0,0]),"undefined"==typeof h&&(h=Number.MAX_VALUE),this.game=a.game,this.world=a,e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])]; +var i={localAnchorA:e,localAnchorB:f,localAxisA:g,maxForce:h,disableRotationalLock:!d};p2.PrismaticConstraint.call(this,b,c,i)},Phaser.Physics.P2.PrismaticConstraint.prototype=Object.create(p2.PrismaticConstraint.prototype),Phaser.Physics.P2.PrismaticConstraint.prototype.constructor=Phaser.Physics.P2.PrismaticConstraint,Phaser.Physics.P2.RevoluteConstraint=function(a,b,c,d,e,f,g){"undefined"==typeof f&&(f=Number.MAX_VALUE),"undefined"==typeof g&&(g=null),this.game=a.game,this.world=a,c=[a.pxmi(c[0]),a.pxmi(c[1])],e=[a.pxmi(e[0]),a.pxmi(e[1])],g&&(g=[a.pxmi(g[0]),a.pxmi(g[1])]);var h={worldPivot:g,localPivotA:c,localPivotB:e,maxForce:f};p2.RevoluteConstraint.call(this,b,d,h)},Phaser.Physics.P2.RevoluteConstraint.prototype=Object.create(p2.RevoluteConstraint.prototype),Phaser.Physics.P2.RevoluteConstraint.prototype.constructor=Phaser.Physics.P2.RevoluteConstraint; //# sourceMappingURL=phaser.map \ No newline at end of file diff --git a/src/Phaser.js b/src/Phaser.js index c8755e6dba..deda86f71d 100644 --- a/src/Phaser.js +++ b/src/Phaser.js @@ -10,7 +10,7 @@ */ var Phaser = Phaser || { - VERSION: '2.2.1-dev', + VERSION: '2.2.1', GAMES: [], AUTO: 0, From ea19aeae5c1ef4a0226be9496ff91e960bf7807b Mon Sep 17 00:00:00 2001 From: photonstorm Date: Thu, 4 Dec 2014 11:33:42 +0000 Subject: [PATCH 10/10] API Docs update. --- docs/AABB.js.html | 2 +- docs/AbstractFilter.js.html | 2 +- docs/AlphaMaskFilter.js.html | 2 +- docs/Animation.js.html | 2 +- docs/AnimationManager.js.html | 4 ++-- docs/AnimationParser.js.html | 2 +- docs/ArcadeParticles.js.html | 2 +- docs/ArraySet.js.html | 2 +- docs/ArrayUtils.js.html | 2 +- docs/AsciiFilter.js.html | 2 +- docs/AssetLoader.js.html | 2 +- docs/AtlasLoader.js.html | 2 +- docs/AudioSprite.js.html | 2 +- docs/BaseTexture.js.html | 2 +- docs/BitmapData.js.html | 2 +- docs/BitmapFontLoader.js.html | 2 +- docs/BitmapText.js.html | 2 +- docs/BitmapText.js_.html | 2 +- docs/BlurFilter.js.html | 2 +- docs/BlurXFilter.js.html | 2 +- docs/BlurYFilter.js.html | 2 +- docs/Body.js.html | 2 +- docs/Body.js_.html | 2 +- docs/Body.js__.html | 2 +- docs/BodyDebug.js.html | 2 +- docs/Button.js.html | 2 +- docs/Cache.js.html | 2 +- docs/Camera.js.html | 2 +- docs/Canvas.js.html | 2 +- docs/CanvasBuffer.js.html | 2 +- docs/CanvasGraphics.js.html | 2 +- docs/CanvasMaskManager.js.html | 2 +- docs/CanvasRenderer.js.html | 2 +- docs/CanvasTinter.js.html | 2 +- docs/Circle.js.html | 2 +- docs/Circle.js_.html | 2 +- docs/Circle.js__.html | 2 +- docs/CollisionGroup.js.html | 2 +- docs/Color.js.html | 2 +- docs/ColorMatrixFilter.js.html | 2 +- docs/ColorStepFilter.js.html | 2 +- docs/ComplexPrimitiveShader.js.html | 2 +- docs/ContactMaterial.js.html | 2 +- docs/ConvolutionFilter.js.html | 2 +- docs/CrossHatchFilter.js.html | 2 +- docs/DOM.js.html | 2 +- docs/Debug.js.html | 2 +- docs/Detector.js.html | 2 +- docs/Device.js.html | 2 +- docs/DisplacementFilter.js.html | 2 +- docs/DisplayObject.js.html | 2 +- docs/DisplayObjectContainer.js.html | 2 +- docs/DistanceConstraint.js.html | 2 +- docs/DotScreenFilter.js.html | 2 +- docs/Easing.js.html | 2 +- docs/Ellipse.js.html | 2 +- docs/Ellipse.js_.html | 2 +- docs/Emitter.js.html | 2 +- docs/EventTarget.js.html | 2 +- docs/Events.js.html | 2 +- docs/Filter.js.html | 2 +- docs/FilterBlock.js.html | 2 +- docs/FilterTexture.js.html | 2 +- docs/FixtureList.js.html | 2 +- docs/FlexGrid.js.html | 2 +- docs/FlexLayer.js.html | 2 +- docs/Frame.js.html | 2 +- docs/FrameData.js.html | 2 +- docs/Game.js.html | 4 ++-- docs/GameObjectCreator.js.html | 2 +- docs/GameObjectFactory.js.html | 2 +- docs/Gamepad.js.html | 2 +- docs/GamepadButton.js.html | 2 +- docs/GearConstraint.js.html | 2 +- docs/Graphics.js.html | 2 +- docs/Graphics.js_.html | 2 +- docs/GrayFilter.js.html | 2 +- docs/Group.js.html | 2 +- docs/Image.js.html | 2 +- docs/ImageLoader.js.html | 2 +- docs/Input.js.html | 2 +- docs/InputHandler.js.html | 2 +- docs/InteractionData.js.html | 2 +- docs/InteractionManager.js.html | 2 +- docs/InversePointProxy.js.html | 2 +- docs/InvertFilter.js.html | 2 +- docs/JsonLoader.js.html | 2 +- docs/Key.js.html | 2 +- docs/Keyboard.js.html | 2 +- docs/Line.js.html | 2 +- docs/LinkedList.js.html | 2 +- docs/Loader.js.html | 2 +- docs/LoaderParser.js.html | 2 +- docs/LockConstraint.js.html | 2 +- docs/MSPointer.js.html | 2 +- docs/Material.js.html | 2 +- docs/Math.js.html | 2 +- docs/Matrix.js.html | 2 +- docs/Mouse.js.html | 2 +- docs/MovieClip.js.html | 2 +- docs/Net.js.html | 2 +- docs/NoiseFilter.js.html | 2 +- docs/NormalMapFilter.js.html | 2 +- docs/PIXI.AbstractFilter.html | 2 +- docs/PIXI.AjaxRequest.html | 2 +- docs/PIXI.AlphaMaskFilter.html | 2 +- docs/PIXI.AsciiFilter.html | 2 +- docs/PIXI.AssetLoader.html | 2 +- docs/PIXI.AtlasLoader.html | 2 +- docs/PIXI.BaseTexture.html | 2 +- docs/PIXI.BitmapFontLoader.html | 2 +- docs/PIXI.BitmapText.html | 2 +- docs/PIXI.BlurFilter.html | 2 +- docs/PIXI.BlurXFilter.html | 2 +- docs/PIXI.BlurYFilter.html | 2 +- docs/PIXI.CanvasBuffer.html | 2 +- docs/PIXI.CanvasGraphics.html | 2 +- docs/PIXI.CanvasMaskManager.html | 2 +- docs/PIXI.CanvasRenderer.html | 2 +- docs/PIXI.CanvasTinter.html | 2 +- docs/PIXI.Circle.html | 2 +- docs/PIXI.ColorMatrixFilter.html | 2 +- docs/PIXI.ColorStepFilter.html | 2 +- docs/PIXI.ComplexPrimitiveShader.html | 2 +- docs/PIXI.ConvolutionFilter.html | 2 +- docs/PIXI.CrossHatchFilter.html | 2 +- docs/PIXI.DisplacementFilter.html | 2 +- docs/PIXI.DisplayObject.html | 2 +- docs/PIXI.DisplayObjectContainer.html | 2 +- docs/PIXI.DotScreenFilter.html | 2 +- docs/PIXI.Ellipse.html | 2 +- docs/PIXI.Event.html | 2 +- docs/PIXI.EventTarget.html | 2 +- docs/PIXI.FilterBlock.html | 2 +- docs/PIXI.FilterTexture.html | 2 +- docs/PIXI.Graphics.html | 2 +- docs/PIXI.GraphicsData.html | 2 +- docs/PIXI.GrayFilter.html | 2 +- docs/PIXI.ImageLoader.html | 2 +- docs/PIXI.InteractionData.html | 2 +- docs/PIXI.InteractionManager.html | 2 +- docs/PIXI.InvertFilter.html | 2 +- docs/PIXI.JsonLoader.html | 2 +- docs/PIXI.Matrix.html | 2 +- docs/PIXI.MovieClip.html | 2 +- docs/PIXI.NoiseFilter.html | 2 +- docs/PIXI.NormalMapFilter.html | 2 +- docs/PIXI.PIXI.html | 2 +- docs/PIXI.PixelateFilter.html | 2 +- docs/PIXI.PixiFastShader.html | 2 +- docs/PIXI.PixiShader.html | 2 +- docs/PIXI.Point.html | 2 +- docs/PIXI.PolyK.html | 2 +- docs/PIXI.Polygon.html | 2 +- docs/PIXI.PrimitiveShader.html | 2 +- docs/PIXI.RGBSplitFilter.html | 2 +- docs/PIXI.Rectangle.html | 2 +- docs/PIXI.RenderTexture.html | 2 +- docs/PIXI.Rope.html | 2 +- docs/PIXI.RoundedRectangle.html | 2 +- docs/PIXI.SepiaFilter.html | 2 +- docs/PIXI.SmartBlurFilter.html | 2 +- docs/PIXI.Spine.html | 2 +- docs/PIXI.SpineLoader.html | 2 +- docs/PIXI.SpineTextureLoader.html | 2 +- docs/PIXI.Sprite.html | 2 +- docs/PIXI.SpriteBatch.html | 2 +- docs/PIXI.SpriteSheetLoader.html | 2 +- docs/PIXI.Stage.html | 2 +- docs/PIXI.Strip.html | 2 +- docs/PIXI.StripShader.html | 2 +- docs/PIXI.Text.html | 2 +- docs/PIXI.Texture.html | 2 +- docs/PIXI.TilingSprite.html | 2 +- docs/PIXI.TiltShiftFilter.html | 2 +- docs/PIXI.TiltShiftXFilter.html | 2 +- docs/PIXI.TiltShiftYFilter.html | 2 +- docs/PIXI.TwistFilter.html | 2 +- docs/PIXI.VideoTexture.html | 2 +- docs/PIXI.WebGLBlendModeManager.html | 2 +- docs/PIXI.WebGLFastSpriteBatch.html | 2 +- docs/PIXI.WebGLFilterManager.html | 2 +- docs/PIXI.WebGLRenderer.html | 2 +- docs/PIXI.html | 2 +- docs/PIXISpine.js.html | 2 +- docs/Particle.js.html | 2 +- docs/Particles.js.html | 2 +- docs/Phaser.Animation.html | 2 +- docs/Phaser.AnimationManager.html | 2 +- docs/Phaser.AnimationParser.html | 2 +- docs/Phaser.ArrayList.html | 2 +- docs/Phaser.ArraySet.html | 2 +- docs/Phaser.ArrayUtils.html | 2 +- docs/Phaser.AudioSprite.html | 2 +- docs/Phaser.BitmapData.html | 2 +- docs/Phaser.BitmapText.html | 2 +- docs/Phaser.Button.html | 2 +- docs/Phaser.Cache.html | 2 +- docs/Phaser.Camera.html | 2 +- docs/Phaser.Canvas.html | 2 +- docs/Phaser.Circle.html | 2 +- docs/Phaser.Color.html | 2 +- docs/Phaser.DOM.html | 2 +- docs/Phaser.Device.html | 2 +- docs/Phaser.Easing.html | 2 +- docs/Phaser.Ellipse.html | 2 +- docs/Phaser.Events.html | 2 +- docs/Phaser.Filter.html | 2 +- docs/Phaser.FlexGrid.html | 2 +- docs/Phaser.FlexLayer.html | 2 +- docs/Phaser.Frame.html | 2 +- docs/Phaser.FrameData.html | 2 +- docs/Phaser.Game.html | 2 +- docs/Phaser.GameObjectCreator.html | 2 +- docs/Phaser.GameObjectFactory.html | 2 +- docs/Phaser.Gamepad.html | 2 +- docs/Phaser.GamepadButton.html | 2 +- docs/Phaser.Graphics.html | 2 +- docs/Phaser.Group.html | 2 +- docs/Phaser.Image.html | 2 +- docs/Phaser.Input.html | 2 +- docs/Phaser.InputHandler.html | 2 +- docs/Phaser.Key.html | 2 +- docs/Phaser.Keyboard.html | 2 +- docs/Phaser.Line.html | 2 +- docs/Phaser.LinkedList.html | 2 +- docs/Phaser.Loader.html | 2 +- docs/Phaser.LoaderParser.html | 2 +- docs/Phaser.MSPointer.html | 2 +- docs/Phaser.Math.html | 2 +- docs/Phaser.Mouse.html | 2 +- docs/Phaser.Net.html | 2 +- docs/Phaser.Particle.html | 2 +- docs/Phaser.Particles.Arcade.Emitter.html | 2 +- docs/Phaser.Particles.Arcade.html | 2 +- docs/Phaser.Particles.html | 2 +- docs/Phaser.Physics.Arcade.Body.html | 2 +- docs/Phaser.Physics.Arcade.html | 2 +- docs/Phaser.Physics.Ninja.AABB.html | 2 +- docs/Phaser.Physics.Ninja.Body.html | 2 +- docs/Phaser.Physics.Ninja.Circle.html | 2 +- docs/Phaser.Physics.Ninja.Tile.html | 2 +- docs/Phaser.Physics.Ninja.html | 2 +- docs/Phaser.Physics.P2.Body.html | 2 +- docs/Phaser.Physics.P2.BodyDebug.html | 2 +- docs/Phaser.Physics.P2.CollisionGroup.html | 2 +- docs/Phaser.Physics.P2.ContactMaterial.html | 2 +- .../Phaser.Physics.P2.DistanceConstraint.html | 2 +- docs/Phaser.Physics.P2.FixtureList.html | 2 +- docs/Phaser.Physics.P2.GearConstraint.html | 2 +- docs/Phaser.Physics.P2.InversePointProxy.html | 2 +- docs/Phaser.Physics.P2.LockConstraint.html | 2 +- docs/Phaser.Physics.P2.Material.html | 2 +- docs/Phaser.Physics.P2.PointProxy.html | 2 +- ...Phaser.Physics.P2.PrismaticConstraint.html | 2 +- .../Phaser.Physics.P2.RevoluteConstraint.html | 2 +- docs/Phaser.Physics.P2.RotationalSpring.html | 2 +- docs/Phaser.Physics.P2.Spring.html | 2 +- docs/Phaser.Physics.P2.html | 2 +- docs/Phaser.Physics.html | 2 +- docs/Phaser.Plugin.html | 2 +- docs/Phaser.PluginManager.html | 2 +- docs/Phaser.Point.html | 2 +- docs/Phaser.Pointer.html | 2 +- docs/Phaser.Polygon.html | 2 +- docs/Phaser.QuadTree.html | 2 +- docs/Phaser.RandomDataGenerator.html | 2 +- docs/Phaser.Rectangle.html | 2 +- docs/Phaser.RenderTexture.html | 2 +- docs/Phaser.RequestAnimationFrame.html | 2 +- docs/Phaser.RetroFont.html | 2 +- docs/Phaser.Rope.html | 2 +- docs/Phaser.ScaleManager.html | 2 +- docs/Phaser.Signal.html | 2 +- docs/Phaser.SignalBinding.html | 2 +- docs/Phaser.SinglePad.html | 2 +- docs/Phaser.Sound.html | 2 +- docs/Phaser.SoundManager.html | 2 +- docs/Phaser.Sprite.html | 2 +- docs/Phaser.SpriteBatch.html | 2 +- docs/Phaser.Stage.html | 2 +- docs/Phaser.State.html | 2 +- docs/Phaser.StateManager.html | 2 +- docs/Phaser.Text.html | 2 +- docs/Phaser.Tile.html | 2 +- docs/Phaser.TileSprite.html | 2 +- docs/Phaser.Tilemap.html | 2 +- docs/Phaser.TilemapLayer.html | 2 +- docs/Phaser.TilemapParser.html | 2 +- docs/Phaser.Tileset.html | 2 +- docs/Phaser.Time.html | 2 +- docs/Phaser.Timer.html | 2 +- docs/Phaser.TimerEvent.html | 2 +- docs/Phaser.Touch.html | 2 +- docs/Phaser.Tween.html | 2 +- docs/Phaser.TweenData.html | 2 +- docs/Phaser.TweenManager.html | 2 +- docs/Phaser.Utils.Debug.html | 2 +- docs/Phaser.Utils.html | 2 +- docs/Phaser.World.html | 2 +- docs/Phaser.html | 2 +- docs/Phaser.js.html | 4 ++-- docs/Physics.js.html | 2 +- docs/PixelateFilter.js.html | 2 +- docs/Pixi.js.html | 2 +- docs/PixiFastShader.js.html | 2 +- docs/PixiShader.js.html | 4 ++-- docs/Plugin.js.html | 2 +- docs/PluginManager.js.html | 2 +- docs/Point.js.html | 2 +- docs/Point.js_.html | 2 +- docs/PointProxy.js.html | 2 +- docs/Pointer.js.html | 2 +- docs/Polygon.js.html | 2 +- docs/Polygon.js_.html | 2 +- docs/Polyk.js.html | 2 +- docs/PrimitiveShader.js.html | 2 +- docs/PrismaticConstraint.js.html | 2 +- docs/QuadTree.js.html | 2 +- docs/RGBSplitFilter.js.html | 2 +- docs/RandomDataGenerator.js.html | 2 +- docs/Rectangle.js.html | 2 +- docs/Rectangle.js_.html | 2 +- docs/RenderTexture.js.html | 2 +- docs/RenderTexture.js_.html | 2 +- docs/RequestAnimationFrame.js.html | 2 +- docs/RetroFont.js.html | 2 +- docs/RevoluteConstraint.js.html | 2 +- docs/Rope.js.html | 2 +- docs/Rope.js_.html | 2 +- docs/RotationalSpring.js.html | 2 +- docs/RoundedRectangle.js.html | 2 +- docs/ScaleManager.js.html | 2 +- docs/SepiaFilter.js.html | 2 +- docs/Signal.js.html | 2 +- docs/SignalBinding.js.html | 2 +- docs/SinglePad.js.html | 2 +- docs/SmartBlurFilter.js.html | 2 +- docs/Sound.js.html | 2 +- docs/SoundManager.js.html | 2 +- docs/Spine.js.html | 2 +- docs/SpineLoader.js.html | 2 +- docs/Spring.js.html | 2 +- docs/Sprite.js.html | 2 +- docs/Sprite.js_.html | 2 +- docs/SpriteBatch.js.html | 2 +- docs/SpriteBatch.js_.html | 2 +- docs/SpriteSheetLoader.js.html | 2 +- docs/Stage.js.html | 2 +- docs/Stage.js_.html | 2 +- docs/State.js.html | 2 +- docs/StateManager.js.html | 2 +- docs/Strip.js.html | 2 +- docs/StripShader.js.html | 2 +- docs/Text.js.html | 2 +- docs/Text.js_.html | 2 +- docs/Texture.js.html | 2 +- docs/Tile.js.html | 2 +- docs/Tile.js_.html | 2 +- docs/TileSprite.js.html | 2 +- docs/Tilemap.js.html | 2 +- docs/TilemapLayer.js.html | 2 +- docs/TilemapParser.js.html | 2 +- docs/Tileset.js.html | 2 +- docs/TilingSprite.js.html | 2 +- docs/TiltShiftFilter.js.html | 2 +- docs/TiltShiftXFilter.js.html | 2 +- docs/TiltShiftYFilter.js.html | 2 +- docs/Time.js.html | 2 +- docs/Timer.js.html | 2 +- docs/TimerEvent.js.html | 2 +- docs/Touch.js.html | 2 +- docs/Tween.js.html | 2 +- docs/TweenData.js.html | 2 +- docs/TweenManager.js.html | 8 +++---- docs/TwistFilter.js.html | 2 +- docs/Utils.js.html | 2 +- docs/Utils.js_.html | 2 +- docs/VideoTexture.js.html | 2 +- docs/WebGLBlendModeManager.js.html | 2 +- docs/WebGLFastSpriteBatch.js.html | 2 +- docs/WebGLFilterManager.js.html | 2 +- docs/WebGLGraphics.js.html | 2 +- docs/WebGLMaskManager.js.html | 2 +- docs/WebGLRenderer.js.html | 2 +- docs/WebGLShaderManager.js.html | 2 +- docs/WebGLShaderUtils.js.html | 2 +- docs/WebGLSpriteBatch.js.html | 4 ++-- docs/WebGLStencilManager.js.html | 2 +- docs/World.js.html | 2 +- docs/World.js_.html | 2 +- docs/World.js__.html | 2 +- docs/World.js___.html | 2 +- docs/classes.list.html | 2 +- docs/global.html | 2 +- docs/index.html | 22 +++++++++++++------ docs/namespaces.list.html | 2 +- docs/pixi-jsdoc.js.html | 2 +- 398 files changed, 420 insertions(+), 412 deletions(-) diff --git a/docs/AABB.js.html b/docs/AABB.js.html index 1c16d342f1..42a99fba8e 100644 --- a/docs/AABB.js.html +++ b/docs/AABB.js.html @@ -1995,7 +1995,7 @@

Source: D:/wamp/www/phaser/src/physics/ninja/AABB.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/AbstractFilter.js.html b/docs/AbstractFilter.js.html index 96d991e3da..16019e0681 100644 --- a/docs/AbstractFilter.js.html +++ b/docs/AbstractFilter.js.html @@ -1040,7 +1040,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/AbstractFilte Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/AlphaMaskFilter.js.html b/docs/AlphaMaskFilter.js.html index 08d5d9371e..239509e668 100644 --- a/docs/AlphaMaskFilter.js.html +++ b/docs/AlphaMaskFilter.js.html @@ -1060,7 +1060,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/AlphaMaskFilt Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Animation.js.html b/docs/Animation.js.html index 34342d8fd1..b2c7b4882a 100644 --- a/docs/Animation.js.html +++ b/docs/Animation.js.html @@ -1757,7 +1757,7 @@

Source: D:/wamp/www/phaser/src/animation/Animation.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/AnimationManager.js.html b/docs/AnimationManager.js.html index 36e92a4138..fbd6423d4c 100644 --- a/docs/AnimationManager.js.html +++ b/docs/AnimationManager.js.html @@ -1472,7 +1472,7 @@

Source: D:/wamp/www/phaser/src/animation/AnimationManager set: function (value) { - if (typeof value === 'number' && this._frameData.getFrame(value) !== null) + if (typeof value === 'number' && this._frameData && this._frameData.getFrame(value) !== null) { this.currentFrame = this._frameData.getFrame(value); @@ -1556,7 +1556,7 @@

Source: D:/wamp/www/phaser/src/animation/AnimationManager Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/AnimationParser.js.html b/docs/AnimationParser.js.html index 6bd614aeaf..e119d598f1 100644 --- a/docs/AnimationParser.js.html +++ b/docs/AnimationParser.js.html @@ -1272,7 +1272,7 @@

Source: D:/wamp/www/phaser/src/animation/AnimationParser. Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/ArcadeParticles.js.html b/docs/ArcadeParticles.js.html index f71ce82339..193c731826 100644 --- a/docs/ArcadeParticles.js.html +++ b/docs/ArcadeParticles.js.html @@ -974,7 +974,7 @@

Source: D:/wamp/www/phaser/src/particles/arcade/ArcadePar Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/ArraySet.js.html b/docs/ArraySet.js.html index b21fae7f34..cf861ed97e 100644 --- a/docs/ArraySet.js.html +++ b/docs/ArraySet.js.html @@ -1198,7 +1198,7 @@

Source: D:/wamp/www/phaser/src/utils/ArraySet.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/ArrayUtils.js.html b/docs/ArrayUtils.js.html index f51e1ab460..ddf7a1a551 100644 --- a/docs/ArrayUtils.js.html +++ b/docs/ArrayUtils.js.html @@ -1272,7 +1272,7 @@

Source: D:/wamp/www/phaser/src/utils/ArrayUtils.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/AsciiFilter.js.html b/docs/AsciiFilter.js.html index b63291521c..4edc108412 100644 --- a/docs/AsciiFilter.js.html +++ b/docs/AsciiFilter.js.html @@ -1049,7 +1049,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/AsciiFilter.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/AssetLoader.js.html b/docs/AssetLoader.js.html index ea60ba8465..a7cb5cecbd 100644 --- a/docs/AssetLoader.js.html +++ b/docs/AssetLoader.js.html @@ -1123,7 +1123,7 @@

Source: d:/wamp/www/phaser/src/pixi/loaders/AssetLoader.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/AtlasLoader.js.html b/docs/AtlasLoader.js.html index fe0c607b26..c277974b11 100644 --- a/docs/AtlasLoader.js.html +++ b/docs/AtlasLoader.js.html @@ -1153,7 +1153,7 @@

Source: d:/wamp/www/phaser/src/pixi/loaders/AtlasLoader.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/AudioSprite.js.html b/docs/AudioSprite.js.html index 80f823bfed..1faf2867aa 100644 --- a/docs/AudioSprite.js.html +++ b/docs/AudioSprite.js.html @@ -1100,7 +1100,7 @@

Source: D:/wamp/www/phaser/src/sound/AudioSprite.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/BaseTexture.js.html b/docs/BaseTexture.js.html index f189654eb5..2c42fa3f2a 100644 --- a/docs/BaseTexture.js.html +++ b/docs/BaseTexture.js.html @@ -1267,7 +1267,7 @@

Source: d:/wamp/www/phaser/src/pixi/textures/BaseTexture. Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/BitmapData.js.html b/docs/BitmapData.js.html index 12d04995b4..300825e798 100644 --- a/docs/BitmapData.js.html +++ b/docs/BitmapData.js.html @@ -2773,7 +2773,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/BitmapData.js< Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/BitmapFontLoader.js.html b/docs/BitmapFontLoader.js.html index f0aba66cc9..41c09c20d1 100644 --- a/docs/BitmapFontLoader.js.html +++ b/docs/BitmapFontLoader.js.html @@ -1124,7 +1124,7 @@

Source: d:/wamp/www/phaser/src/pixi/loaders/BitmapFontLoa Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/BitmapText.js.html b/docs/BitmapText.js.html index ae10826e06..9855904029 100644 --- a/docs/BitmapText.js.html +++ b/docs/BitmapText.js.html @@ -1178,7 +1178,7 @@

Source: d:/wamp/www/phaser/src/pixi/text/BitmapText.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/BitmapText.js_.html b/docs/BitmapText.js_.html index 7122390a80..07d361c4e7 100644 --- a/docs/BitmapText.js_.html +++ b/docs/BitmapText.js_.html @@ -1446,7 +1446,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/BitmapText.js< Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/BlurFilter.js.html b/docs/BlurFilter.js.html index 3a06faf0aa..634a4f306a 100644 --- a/docs/BlurFilter.js.html +++ b/docs/BlurFilter.js.html @@ -1033,7 +1033,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/BlurFilter.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/BlurXFilter.js.html b/docs/BlurXFilter.js.html index ea4b3d0f0b..0dda75cb73 100644 --- a/docs/BlurXFilter.js.html +++ b/docs/BlurXFilter.js.html @@ -1030,7 +1030,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/BlurXFilter.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/BlurYFilter.js.html b/docs/BlurYFilter.js.html index 29253bb632..06c1d8e3ff 100644 --- a/docs/BlurYFilter.js.html +++ b/docs/BlurYFilter.js.html @@ -1029,7 +1029,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/BlurYFilter.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Body.js.html b/docs/Body.js.html index b3606a7f7f..5530a9abb2 100644 --- a/docs/Body.js.html +++ b/docs/Body.js.html @@ -1793,7 +1793,7 @@

Source: D:/wamp/www/phaser/src/physics/arcade/Body.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Body.js_.html b/docs/Body.js_.html index fa5423aa0f..3ad18923ff 100644 --- a/docs/Body.js_.html +++ b/docs/Body.js_.html @@ -1532,7 +1532,7 @@

Source: D:/wamp/www/phaser/src/physics/ninja/Body.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Body.js__.html b/docs/Body.js__.html index 2774348215..1b8db7f0cd 100644 --- a/docs/Body.js__.html +++ b/docs/Body.js__.html @@ -2743,7 +2743,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/Body.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/BodyDebug.js.html b/docs/BodyDebug.js.html index d54b17fd46..1376a149fc 100644 --- a/docs/BodyDebug.js.html +++ b/docs/BodyDebug.js.html @@ -1377,7 +1377,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/BodyDebug.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Button.js.html b/docs/Button.js.html index 26281429f0..64cf3761a2 100644 --- a/docs/Button.js.html +++ b/docs/Button.js.html @@ -1545,7 +1545,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/Button.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Cache.js.html b/docs/Cache.js.html index 7ded38e834..68bc64ab1f 100644 --- a/docs/Cache.js.html +++ b/docs/Cache.js.html @@ -2617,7 +2617,7 @@

Source: D:/wamp/www/phaser/src/loader/Cache.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Camera.js.html b/docs/Camera.js.html index d193019452..b09e2518a4 100644 --- a/docs/Camera.js.html +++ b/docs/Camera.js.html @@ -1475,7 +1475,7 @@

Source: D:/wamp/www/phaser/src/core/Camera.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Canvas.js.html b/docs/Canvas.js.html index 16ab9c19be..e695cb1975 100644 --- a/docs/Canvas.js.html +++ b/docs/Canvas.js.html @@ -1250,7 +1250,7 @@

Source: D:/wamp/www/phaser/src/system/Canvas.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/CanvasBuffer.js.html b/docs/CanvasBuffer.js.html index 9fb307114c..75957baf0d 100644 --- a/docs/CanvasBuffer.js.html +++ b/docs/CanvasBuffer.js.html @@ -1039,7 +1039,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/canvas/util Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/CanvasGraphics.js.html b/docs/CanvasGraphics.js.html index 278b5e18fa..5d2a8589e8 100644 --- a/docs/CanvasGraphics.js.html +++ b/docs/CanvasGraphics.js.html @@ -1321,7 +1321,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/canvas/Canv Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/CanvasMaskManager.js.html b/docs/CanvasMaskManager.js.html index 059f49320a..cf7289c6f8 100644 --- a/docs/CanvasMaskManager.js.html +++ b/docs/CanvasMaskManager.js.html @@ -1021,7 +1021,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/canvas/util Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/CanvasRenderer.js.html b/docs/CanvasRenderer.js.html index 9f17989dac..afdf7b724b 100644 --- a/docs/CanvasRenderer.js.html +++ b/docs/CanvasRenderer.js.html @@ -1308,7 +1308,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/canvas/Canv Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/CanvasTinter.js.html b/docs/CanvasTinter.js.html index 9331572894..b96342a501 100644 --- a/docs/CanvasTinter.js.html +++ b/docs/CanvasTinter.js.html @@ -1205,7 +1205,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/canvas/util Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Circle.js.html b/docs/Circle.js.html index 58b98f9631..d12711fdd3 100644 --- a/docs/Circle.js.html +++ b/docs/Circle.js.html @@ -1047,7 +1047,7 @@

Source: d:/wamp/www/phaser/src/pixi/geom/Circle.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Circle.js_.html b/docs/Circle.js_.html index 70db11e7e1..6e1edfc169 100644 --- a/docs/Circle.js_.html +++ b/docs/Circle.js_.html @@ -1502,7 +1502,7 @@

Source: D:/wamp/www/phaser/src/geom/Circle.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Circle.js__.html b/docs/Circle.js__.html index c447a34d95..7399f36290 100644 --- a/docs/Circle.js__.html +++ b/docs/Circle.js__.html @@ -3613,7 +3613,7 @@

Source: D:/wamp/www/phaser/src/physics/ninja/Circle.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/CollisionGroup.js.html b/docs/CollisionGroup.js.html index 95cf828850..08c8e6a4a4 100644 --- a/docs/CollisionGroup.js.html +++ b/docs/CollisionGroup.js.html @@ -984,7 +984,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/CollisionGroup. Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Color.js.html b/docs/Color.js.html index e899c597a7..b652ce7c32 100644 --- a/docs/Color.js.html +++ b/docs/Color.js.html @@ -1935,7 +1935,7 @@

Source: D:/wamp/www/phaser/src/utils/Color.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/ColorMatrixFilter.js.html b/docs/ColorMatrixFilter.js.html index 27c129a8c0..f84823ab66 100644 --- a/docs/ColorMatrixFilter.js.html +++ b/docs/ColorMatrixFilter.js.html @@ -1022,7 +1022,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/ColorMatrixFi Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/ColorStepFilter.js.html b/docs/ColorStepFilter.js.html index f31654803d..d4301eda02 100644 --- a/docs/ColorStepFilter.js.html +++ b/docs/ColorStepFilter.js.html @@ -1017,7 +1017,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/ColorStepFilt Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/ComplexPrimitiveShader.js.html b/docs/ComplexPrimitiveShader.js.html index a068400280..49f49ced28 100644 --- a/docs/ComplexPrimitiveShader.js.html +++ b/docs/ComplexPrimitiveShader.js.html @@ -1084,7 +1084,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/shade Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/ContactMaterial.js.html b/docs/ContactMaterial.js.html index 8d4fb4ff30..b649d98222 100644 --- a/docs/ContactMaterial.js.html +++ b/docs/ContactMaterial.js.html @@ -1026,7 +1026,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/ContactMaterial Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/ConvolutionFilter.js.html b/docs/ConvolutionFilter.js.html index 5625815fad..755f3c0521 100644 --- a/docs/ConvolutionFilter.js.html +++ b/docs/ConvolutionFilter.js.html @@ -1069,7 +1069,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/ConvolutionFi Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/CrossHatchFilter.js.html b/docs/CrossHatchFilter.js.html index bfb5649b73..3d3bedd193 100644 --- a/docs/CrossHatchFilter.js.html +++ b/docs/CrossHatchFilter.js.html @@ -1043,7 +1043,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/CrossHatchFil Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/DOM.js.html b/docs/DOM.js.html index 95eb0768ab..0a9013921c 100644 --- a/docs/DOM.js.html +++ b/docs/DOM.js.html @@ -1393,7 +1393,7 @@

Source: D:/wamp/www/phaser/src/system/DOM.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Debug.js.html b/docs/Debug.js.html index c78b540026..4dce086341 100644 --- a/docs/Debug.js.html +++ b/docs/Debug.js.html @@ -1779,7 +1779,7 @@

Source: D:/wamp/www/phaser/src/utils/Debug.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Detector.js.html b/docs/Detector.js.html index ddfe842c93..b1ad41256f 100644 --- a/docs/Detector.js.html +++ b/docs/Detector.js.html @@ -1051,7 +1051,7 @@

Source: d:/wamp/www/phaser/src/pixi/utils/Detector.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Device.js.html b/docs/Device.js.html index a2c8bff768..8c0c2e388c 100644 --- a/docs/Device.js.html +++ b/docs/Device.js.html @@ -2115,7 +2115,7 @@

Source: D:/wamp/www/phaser/src/system/Device.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/DisplacementFilter.js.html b/docs/DisplacementFilter.js.html index b74a830917..8f1f9e36cc 100644 --- a/docs/DisplacementFilter.js.html +++ b/docs/DisplacementFilter.js.html @@ -1097,7 +1097,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/DisplacementF Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/DisplayObject.js.html b/docs/DisplayObject.js.html index 80e9909b11..8b35f979fc 100644 --- a/docs/DisplayObject.js.html +++ b/docs/DisplayObject.js.html @@ -1752,7 +1752,7 @@

Source: d:/wamp/www/phaser/src/pixi/display/DisplayObject Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/DisplayObjectContainer.js.html b/docs/DisplayObjectContainer.js.html index 7ba7c997ee..c51a23deb2 100644 --- a/docs/DisplayObjectContainer.js.html +++ b/docs/DisplayObjectContainer.js.html @@ -1478,7 +1478,7 @@

Source: d:/wamp/www/phaser/src/pixi/display/DisplayObject Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/DistanceConstraint.js.html b/docs/DistanceConstraint.js.html index b377befe2a..ad72d6932e 100644 --- a/docs/DistanceConstraint.js.html +++ b/docs/DistanceConstraint.js.html @@ -1012,7 +1012,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/DistanceConstra Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/DotScreenFilter.js.html b/docs/DotScreenFilter.js.html index 444f60bf2b..fe9e51789c 100644 --- a/docs/DotScreenFilter.js.html +++ b/docs/DotScreenFilter.js.html @@ -1048,7 +1048,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/DotScreenFilt Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Easing.js.html b/docs/Easing.js.html index 1f51d7ad1a..5f5a367d07 100644 --- a/docs/Easing.js.html +++ b/docs/Easing.js.html @@ -1533,7 +1533,7 @@

Source: D:/wamp/www/phaser/src/tween/Easing.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Ellipse.js.html b/docs/Ellipse.js.html index 0b3ea1af5b..339af42132 100644 --- a/docs/Ellipse.js.html +++ b/docs/Ellipse.js.html @@ -1055,7 +1055,7 @@

Source: d:/wamp/www/phaser/src/pixi/geom/Ellipse.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Ellipse.js_.html b/docs/Ellipse.js_.html index 48196ed845..5898f7ae25 100644 --- a/docs/Ellipse.js_.html +++ b/docs/Ellipse.js_.html @@ -1269,7 +1269,7 @@

Source: D:/wamp/www/phaser/src/geom/Ellipse.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Emitter.js.html b/docs/Emitter.js.html index df06523016..8758a23607 100644 --- a/docs/Emitter.js.html +++ b/docs/Emitter.js.html @@ -1780,7 +1780,7 @@

Source: D:/wamp/www/phaser/src/particles/arcade/Emitter.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/EventTarget.js.html b/docs/EventTarget.js.html index 6ab7908323..af006d3ad7 100644 --- a/docs/EventTarget.js.html +++ b/docs/EventTarget.js.html @@ -1247,7 +1247,7 @@

Source: d:/wamp/www/phaser/src/pixi/utils/EventTarget.js< Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Events.js.html b/docs/Events.js.html index 5f7ba44a63..fdbec74d00 100644 --- a/docs/Events.js.html +++ b/docs/Events.js.html @@ -1149,7 +1149,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/Events.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Filter.js.html b/docs/Filter.js.html index 184016c543..b6d166e768 100644 --- a/docs/Filter.js.html +++ b/docs/Filter.js.html @@ -1153,7 +1153,7 @@

Source: D:/wamp/www/phaser/src/core/Filter.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/FilterBlock.js.html b/docs/FilterBlock.js.html index 707bc29a59..b8fe72fe6b 100644 --- a/docs/FilterBlock.js.html +++ b/docs/FilterBlock.js.html @@ -993,7 +993,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/FilterBlock.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/FilterTexture.js.html b/docs/FilterTexture.js.html index f98f857ab4..6754c3443a 100644 --- a/docs/FilterTexture.js.html +++ b/docs/FilterTexture.js.html @@ -1073,7 +1073,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/utils Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/FixtureList.js.html b/docs/FixtureList.js.html index 93dd2cac58..7f62b0dc37 100644 --- a/docs/FixtureList.js.html +++ b/docs/FixtureList.js.html @@ -1194,7 +1194,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/FixtureList.js< Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/FlexGrid.js.html b/docs/FlexGrid.js.html index c406183787..ece0aa7733 100644 --- a/docs/FlexGrid.js.html +++ b/docs/FlexGrid.js.html @@ -1290,7 +1290,7 @@

Source: D:/wamp/www/phaser/src/core/FlexGrid.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/FlexLayer.js.html b/docs/FlexLayer.js.html index b8e27e0473..8e5d5bc723 100644 --- a/docs/FlexLayer.js.html +++ b/docs/FlexLayer.js.html @@ -1078,7 +1078,7 @@

Source: D:/wamp/www/phaser/src/core/FlexLayer.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Frame.js.html b/docs/Frame.js.html index f1a21f3f50..5ce4dd95c8 100644 --- a/docs/Frame.js.html +++ b/docs/Frame.js.html @@ -1178,7 +1178,7 @@

Source: D:/wamp/www/phaser/src/animation/Frame.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/FrameData.js.html b/docs/FrameData.js.html index d3e26dfe8a..d464ee14fa 100644 --- a/docs/FrameData.js.html +++ b/docs/FrameData.js.html @@ -1230,7 +1230,7 @@

Source: D:/wamp/www/phaser/src/animation/FrameData.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Game.js.html b/docs/Game.js.html index d15fbe4bec..98b7373d40 100644 --- a/docs/Game.js.html +++ b/docs/Game.js.html @@ -1481,7 +1481,7 @@

Source: D:/wamp/www/phaser/src/core/Game.js

} else { - this.debug = { preUpdate: function () {}, update: function () {} }; + this.debug = { preUpdate: function () {}, update: function () {}, reset: function () {} }; } this.showDebugHeader(); @@ -2039,7 +2039,7 @@

Source: D:/wamp/www/phaser/src/core/Game.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/GameObjectCreator.js.html b/docs/GameObjectCreator.js.html index 9b0cfc2bab..11e2466876 100644 --- a/docs/GameObjectCreator.js.html +++ b/docs/GameObjectCreator.js.html @@ -1375,7 +1375,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/GameObjectCrea Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/GameObjectFactory.js.html b/docs/GameObjectFactory.js.html index 88ec153eeb..7b2bfde22f 100644 --- a/docs/GameObjectFactory.js.html +++ b/docs/GameObjectFactory.js.html @@ -1449,7 +1449,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/GameObjectFact Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Gamepad.js.html b/docs/Gamepad.js.html index 82936b07ab..9d988f517f 100644 --- a/docs/Gamepad.js.html +++ b/docs/Gamepad.js.html @@ -1642,7 +1642,7 @@

Source: D:/wamp/www/phaser/src/input/Gamepad.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/GamepadButton.js.html b/docs/GamepadButton.js.html index 61815e231a..c17a86f765 100644 --- a/docs/GamepadButton.js.html +++ b/docs/GamepadButton.js.html @@ -1175,7 +1175,7 @@

Source: D:/wamp/www/phaser/src/input/GamepadButton.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/GearConstraint.js.html b/docs/GearConstraint.js.html index 23491e8152..42d7768d3b 100644 --- a/docs/GearConstraint.js.html +++ b/docs/GearConstraint.js.html @@ -1003,7 +1003,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/GearConstraint. Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Graphics.js.html b/docs/Graphics.js.html index 7a0fcb498d..6b712a8f4c 100644 --- a/docs/Graphics.js.html +++ b/docs/Graphics.js.html @@ -2098,7 +2098,7 @@

Source: d:/wamp/www/phaser/src/pixi/primitives/Graphics.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Graphics.js_.html b/docs/Graphics.js_.html index 0e2ef41718..d986cca8b2 100644 --- a/docs/Graphics.js_.html +++ b/docs/Graphics.js_.html @@ -1331,7 +1331,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/Graphics.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/GrayFilter.js.html b/docs/GrayFilter.js.html index ae7fc153bf..c6cd27619c 100644 --- a/docs/GrayFilter.js.html +++ b/docs/GrayFilter.js.html @@ -1016,7 +1016,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/GrayFilter.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Group.js.html b/docs/Group.js.html index 793f70289b..8e47cc0fec 100644 --- a/docs/Group.js.html +++ b/docs/Group.js.html @@ -3032,7 +3032,7 @@

Source: D:/wamp/www/phaser/src/core/Group.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Image.js.html b/docs/Image.js.html index 6214467014..849cd0fe17 100644 --- a/docs/Image.js.html +++ b/docs/Image.js.html @@ -2003,7 +2003,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/Image.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/ImageLoader.js.html b/docs/ImageLoader.js.html index d7cf47e7ee..eae1627cfe 100644 --- a/docs/ImageLoader.js.html +++ b/docs/ImageLoader.js.html @@ -1065,7 +1065,7 @@

Source: d:/wamp/www/phaser/src/pixi/loaders/ImageLoader.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Input.js.html b/docs/Input.js.html index 39e601c72e..d3e5762428 100644 --- a/docs/Input.js.html +++ b/docs/Input.js.html @@ -2005,7 +2005,7 @@

Source: D:/wamp/www/phaser/src/input/Input.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/InputHandler.js.html b/docs/InputHandler.js.html index 5cf0a746f0..a744706498 100644 --- a/docs/InputHandler.js.html +++ b/docs/InputHandler.js.html @@ -2470,7 +2470,7 @@

Source: D:/wamp/www/phaser/src/input/InputHandler.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/InteractionData.js.html b/docs/InteractionData.js.html index f91d48ab14..ac56a075c8 100644 --- a/docs/InteractionData.js.html +++ b/docs/InteractionData.js.html @@ -1029,7 +1029,7 @@

Source: d:/wamp/www/phaser/src/pixi/InteractionData.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/InteractionManager.js.html b/docs/InteractionManager.js.html index 9e6a20dca7..6d3aa4b9e2 100644 --- a/docs/InteractionManager.js.html +++ b/docs/InteractionManager.js.html @@ -1833,7 +1833,7 @@

Source: d:/wamp/www/phaser/src/pixi/InteractionManager.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/InversePointProxy.js.html b/docs/InversePointProxy.js.html index e48197e193..badf49a051 100644 --- a/docs/InversePointProxy.js.html +++ b/docs/InversePointProxy.js.html @@ -1065,7 +1065,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/InversePointPro Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/InvertFilter.js.html b/docs/InvertFilter.js.html index 625e6a53da..85ecb63c8a 100644 --- a/docs/InvertFilter.js.html +++ b/docs/InvertFilter.js.html @@ -1017,7 +1017,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/InvertFilter. Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/JsonLoader.js.html b/docs/JsonLoader.js.html index 7992eea699..1165c6be43 100644 --- a/docs/JsonLoader.js.html +++ b/docs/JsonLoader.js.html @@ -1215,7 +1215,7 @@

Source: d:/wamp/www/phaser/src/pixi/loaders/JsonLoader.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Key.js.html b/docs/Key.js.html index bd7e5068ec..de8afa020a 100644 --- a/docs/Key.js.html +++ b/docs/Key.js.html @@ -1327,7 +1327,7 @@

Source: D:/wamp/www/phaser/src/input/Key.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Keyboard.js.html b/docs/Keyboard.js.html index 574be2e5ec..672799d3af 100644 --- a/docs/Keyboard.js.html +++ b/docs/Keyboard.js.html @@ -1641,7 +1641,7 @@

Source: D:/wamp/www/phaser/src/input/Keyboard.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Line.js.html b/docs/Line.js.html index 1aa5057df4..b314bafe14 100644 --- a/docs/Line.js.html +++ b/docs/Line.js.html @@ -1396,7 +1396,7 @@

Source: D:/wamp/www/phaser/src/geom/Line.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/LinkedList.js.html b/docs/LinkedList.js.html index 05a24f4498..3d2b098529 100644 --- a/docs/LinkedList.js.html +++ b/docs/LinkedList.js.html @@ -1151,7 +1151,7 @@

Source: D:/wamp/www/phaser/src/utils/LinkedList.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Loader.js.html b/docs/Loader.js.html index 2f5711cfd9..0200b3c14f 100644 --- a/docs/Loader.js.html +++ b/docs/Loader.js.html @@ -2845,7 +2845,7 @@

Source: D:/wamp/www/phaser/src/loader/Loader.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/LoaderParser.js.html b/docs/LoaderParser.js.html index 4083b0afc6..11b2c4fce3 100644 --- a/docs/LoaderParser.js.html +++ b/docs/LoaderParser.js.html @@ -1035,7 +1035,7 @@

Source: D:/wamp/www/phaser/src/loader/LoaderParser.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/LockConstraint.js.html b/docs/LockConstraint.js.html index e0fe2be137..e68e2fc1cf 100644 --- a/docs/LockConstraint.js.html +++ b/docs/LockConstraint.js.html @@ -1007,7 +1007,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/LockConstraint. Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/MSPointer.js.html b/docs/MSPointer.js.html index 5e4ed90a6c..ca7a7e7f2a 100644 --- a/docs/MSPointer.js.html +++ b/docs/MSPointer.js.html @@ -1158,7 +1158,7 @@

Source: D:/wamp/www/phaser/src/input/MSPointer.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Material.js.html b/docs/Material.js.html index 8c0719413b..29f37adab9 100644 --- a/docs/Material.js.html +++ b/docs/Material.js.html @@ -992,7 +992,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/Material.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Math.js.html b/docs/Math.js.html index 373dae8884..ac2c80eb13 100644 --- a/docs/Math.js.html +++ b/docs/Math.js.html @@ -2242,7 +2242,7 @@

Source: D:/wamp/www/phaser/src/math/Math.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Matrix.js.html b/docs/Matrix.js.html index f74159f4c7..fa9f2edcfb 100644 --- a/docs/Matrix.js.html +++ b/docs/Matrix.js.html @@ -1231,7 +1231,7 @@

Source: d:/wamp/www/phaser/src/pixi/geom/Matrix.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Mouse.js.html b/docs/Mouse.js.html index 3a6371540b..311faf0d22 100644 --- a/docs/Mouse.js.html +++ b/docs/Mouse.js.html @@ -1641,7 +1641,7 @@

Source: D:/wamp/www/phaser/src/input/Mouse.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/MovieClip.js.html b/docs/MovieClip.js.html index 5d958d5117..0e0d62d76d 100644 --- a/docs/MovieClip.js.html +++ b/docs/MovieClip.js.html @@ -1168,7 +1168,7 @@

Source: d:/wamp/www/phaser/src/pixi/display/MovieClip.js< Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Net.js.html b/docs/Net.js.html index 712ccf244c..06af2c6720 100644 --- a/docs/Net.js.html +++ b/docs/Net.js.html @@ -1129,7 +1129,7 @@

Source: D:/wamp/www/phaser/src/net/Net.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/NoiseFilter.js.html b/docs/NoiseFilter.js.html index 08a2e2bcd3..d3e0009235 100644 --- a/docs/NoiseFilter.js.html +++ b/docs/NoiseFilter.js.html @@ -1025,7 +1025,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/NoiseFilter.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/NormalMapFilter.js.html b/docs/NormalMapFilter.js.html index 0917cd8d38..ddf2e5cf0a 100644 --- a/docs/NormalMapFilter.js.html +++ b/docs/NormalMapFilter.js.html @@ -1159,7 +1159,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/NormalMapFilt Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.AbstractFilter.html b/docs/PIXI.AbstractFilter.html index 3e42a7233c..dbab0461b0 100644 --- a/docs/PIXI.AbstractFilter.html +++ b/docs/PIXI.AbstractFilter.html @@ -1319,7 +1319,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:09 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:01 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.AjaxRequest.html b/docs/PIXI.AjaxRequest.html index 61a7a4ce59..4ba54859e7 100644 --- a/docs/PIXI.AjaxRequest.html +++ b/docs/PIXI.AjaxRequest.html @@ -1748,7 +1748,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:10 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:01 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.AlphaMaskFilter.html b/docs/PIXI.AlphaMaskFilter.html index 89b24e7eca..427b70c3a9 100644 --- a/docs/PIXI.AlphaMaskFilter.html +++ b/docs/PIXI.AlphaMaskFilter.html @@ -1444,7 +1444,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:10 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:02 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.AsciiFilter.html b/docs/PIXI.AsciiFilter.html index 2247dda3e5..b383224aa6 100644 --- a/docs/PIXI.AsciiFilter.html +++ b/docs/PIXI.AsciiFilter.html @@ -1323,7 +1323,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:10 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:02 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.AssetLoader.html b/docs/PIXI.AssetLoader.html index 1d51430117..58fe70b86e 100644 --- a/docs/PIXI.AssetLoader.html +++ b/docs/PIXI.AssetLoader.html @@ -1518,7 +1518,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:10 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:02 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.AtlasLoader.html b/docs/PIXI.AtlasLoader.html index 729bb95831..069994587b 100644 --- a/docs/PIXI.AtlasLoader.html +++ b/docs/PIXI.AtlasLoader.html @@ -1213,7 +1213,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:11 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:02 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.BaseTexture.html b/docs/PIXI.BaseTexture.html index 1eecc06590..a6af534b04 100644 --- a/docs/PIXI.BaseTexture.html +++ b/docs/PIXI.BaseTexture.html @@ -2315,7 +2315,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:11 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:03 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.BitmapFontLoader.html b/docs/PIXI.BitmapFontLoader.html index d4b752d57c..b4df732881 100644 --- a/docs/PIXI.BitmapFontLoader.html +++ b/docs/PIXI.BitmapFontLoader.html @@ -1441,7 +1441,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:11 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:03 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.BitmapText.html b/docs/PIXI.BitmapText.html index 4400381c59..b335ce7ef7 100644 --- a/docs/PIXI.BitmapText.html +++ b/docs/PIXI.BitmapText.html @@ -5394,7 +5394,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:11 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:03 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.BlurFilter.html b/docs/PIXI.BlurFilter.html index 669c088c54..e5857655dc 100644 --- a/docs/PIXI.BlurFilter.html +++ b/docs/PIXI.BlurFilter.html @@ -1445,7 +1445,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:12 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:03 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.BlurXFilter.html b/docs/PIXI.BlurXFilter.html index e58e7cb90a..54fc499795 100644 --- a/docs/PIXI.BlurXFilter.html +++ b/docs/PIXI.BlurXFilter.html @@ -1326,7 +1326,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:12 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:04 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.BlurYFilter.html b/docs/PIXI.BlurYFilter.html index c0ab7f96a5..d122176692 100644 --- a/docs/PIXI.BlurYFilter.html +++ b/docs/PIXI.BlurYFilter.html @@ -1326,7 +1326,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:12 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:04 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.CanvasBuffer.html b/docs/PIXI.CanvasBuffer.html index 502fe47610..2edefd1a8a 100644 --- a/docs/PIXI.CanvasBuffer.html +++ b/docs/PIXI.CanvasBuffer.html @@ -1510,7 +1510,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:12 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:04 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.CanvasGraphics.html b/docs/PIXI.CanvasGraphics.html index 2f9e696768..952571039f 100644 --- a/docs/PIXI.CanvasGraphics.html +++ b/docs/PIXI.CanvasGraphics.html @@ -1064,7 +1064,7 @@

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:13 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:04 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.CanvasMaskManager.html b/docs/PIXI.CanvasMaskManager.html index f4cb98cb04..0691cdac92 100644 --- a/docs/PIXI.CanvasMaskManager.html +++ b/docs/PIXI.CanvasMaskManager.html @@ -1329,7 +1329,7 @@

Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:13 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:05 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.CanvasRenderer.html b/docs/PIXI.CanvasRenderer.html index 0579269838..9e05aa3075 100644 --- a/docs/PIXI.CanvasRenderer.html +++ b/docs/PIXI.CanvasRenderer.html @@ -2355,7 +2355,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:13 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:05 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.CanvasTinter.html b/docs/PIXI.CanvasTinter.html index f7ab84f06a..5b9782db19 100644 --- a/docs/PIXI.CanvasTinter.html +++ b/docs/PIXI.CanvasTinter.html @@ -2086,7 +2086,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:13 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:05 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Circle.html b/docs/PIXI.Circle.html index 28fe5b1d7f..2f3b1f13bb 100644 --- a/docs/PIXI.Circle.html +++ b/docs/PIXI.Circle.html @@ -1674,7 +1674,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:14 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:05 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.ColorMatrixFilter.html b/docs/PIXI.ColorMatrixFilter.html index bc7274d16c..12c4d07bee 100644 --- a/docs/PIXI.ColorMatrixFilter.html +++ b/docs/PIXI.ColorMatrixFilter.html @@ -1338,7 +1338,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:14 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:06 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.ColorStepFilter.html b/docs/PIXI.ColorStepFilter.html index 6c26ebfddc..c82f29f6a5 100644 --- a/docs/PIXI.ColorStepFilter.html +++ b/docs/PIXI.ColorStepFilter.html @@ -1323,7 +1323,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:14 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:06 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.ComplexPrimitiveShader.html b/docs/PIXI.ComplexPrimitiveShader.html index 9098ba66fc..2cc2679e7d 100644 --- a/docs/PIXI.ComplexPrimitiveShader.html +++ b/docs/PIXI.ComplexPrimitiveShader.html @@ -1477,7 +1477,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:14 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:06 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.ConvolutionFilter.html b/docs/PIXI.ConvolutionFilter.html index d158ca6bae..bc2663a8e0 100644 --- a/docs/PIXI.ConvolutionFilter.html +++ b/docs/PIXI.ConvolutionFilter.html @@ -1533,7 +1533,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:15 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:06 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.CrossHatchFilter.html b/docs/PIXI.CrossHatchFilter.html index 7e090adb96..0be1a83a29 100644 --- a/docs/PIXI.CrossHatchFilter.html +++ b/docs/PIXI.CrossHatchFilter.html @@ -1326,7 +1326,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:15 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:06 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.DisplacementFilter.html b/docs/PIXI.DisplacementFilter.html index bc84e7dc1b..90ed0d629e 100644 --- a/docs/PIXI.DisplacementFilter.html +++ b/docs/PIXI.DisplacementFilter.html @@ -1556,7 +1556,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:15 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:07 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.DisplayObject.html b/docs/PIXI.DisplayObject.html index a07e58f31c..13f9c534de 100644 --- a/docs/PIXI.DisplayObject.html +++ b/docs/PIXI.DisplayObject.html @@ -3217,7 +3217,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:15 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:07 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.DisplayObjectContainer.html b/docs/PIXI.DisplayObjectContainer.html index 0c33a106d9..220b7f9c0c 100644 --- a/docs/PIXI.DisplayObjectContainer.html +++ b/docs/PIXI.DisplayObjectContainer.html @@ -4830,7 +4830,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:16 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:07 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.DotScreenFilter.html b/docs/PIXI.DotScreenFilter.html index cd71a1d48b..dd3f7fec13 100644 --- a/docs/PIXI.DotScreenFilter.html +++ b/docs/PIXI.DotScreenFilter.html @@ -1379,7 +1379,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:16 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:08 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Ellipse.html b/docs/PIXI.Ellipse.html index 5dbcbe08b9..191b19e7cf 100644 --- a/docs/PIXI.Ellipse.html +++ b/docs/PIXI.Ellipse.html @@ -1752,7 +1752,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:16 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:08 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Event.html b/docs/PIXI.Event.html index f451643afe..0e21631871 100644 --- a/docs/PIXI.Event.html +++ b/docs/PIXI.Event.html @@ -1537,7 +1537,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:16 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:08 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.EventTarget.html b/docs/PIXI.EventTarget.html index 1465b20afa..6251aec9d2 100644 --- a/docs/PIXI.EventTarget.html +++ b/docs/PIXI.EventTarget.html @@ -2010,7 +2010,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:17 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:08 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.FilterBlock.html b/docs/PIXI.FilterBlock.html index 35e4289a4d..8914676fed 100644 --- a/docs/PIXI.FilterBlock.html +++ b/docs/PIXI.FilterBlock.html @@ -1180,7 +1180,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:17 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:08 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.FilterTexture.html b/docs/PIXI.FilterTexture.html index 960018dc5f..c5807399cf 100644 --- a/docs/PIXI.FilterTexture.html +++ b/docs/PIXI.FilterTexture.html @@ -1676,7 +1676,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:17 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:09 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Graphics.html b/docs/PIXI.Graphics.html index 5dc526b6dd..fc2745c525 100644 --- a/docs/PIXI.Graphics.html +++ b/docs/PIXI.Graphics.html @@ -8015,7 +8015,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:17 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:09 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.GraphicsData.html b/docs/PIXI.GraphicsData.html index 8cb0513423..953b6ef5b4 100644 --- a/docs/PIXI.GraphicsData.html +++ b/docs/PIXI.GraphicsData.html @@ -1064,7 +1064,7 @@

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:18 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:09 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.GrayFilter.html b/docs/PIXI.GrayFilter.html index cb70f56d04..20de05cf2d 100644 --- a/docs/PIXI.GrayFilter.html +++ b/docs/PIXI.GrayFilter.html @@ -1323,7 +1323,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:18 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:10 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.ImageLoader.html b/docs/PIXI.ImageLoader.html index c6c911b78f..f7979a9e07 100644 --- a/docs/PIXI.ImageLoader.html +++ b/docs/PIXI.ImageLoader.html @@ -1494,7 +1494,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:18 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:10 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.InteractionData.html b/docs/PIXI.InteractionData.html index 7ae4969fb8..2633234949 100644 --- a/docs/PIXI.InteractionData.html +++ b/docs/PIXI.InteractionData.html @@ -1422,7 +1422,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:18 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:10 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.InteractionManager.html b/docs/PIXI.InteractionManager.html index 832ff6df9a..44787bb3ce 100644 --- a/docs/PIXI.InteractionManager.html +++ b/docs/PIXI.InteractionManager.html @@ -1975,7 +1975,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:19 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:10 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.InvertFilter.html b/docs/PIXI.InvertFilter.html index 4474a13a05..c7aacda2bb 100644 --- a/docs/PIXI.InvertFilter.html +++ b/docs/PIXI.InvertFilter.html @@ -1323,7 +1323,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:19 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:10 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.JsonLoader.html b/docs/PIXI.JsonLoader.html index 28d2a4a5a1..85219c4588 100644 --- a/docs/PIXI.JsonLoader.html +++ b/docs/PIXI.JsonLoader.html @@ -1440,7 +1440,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:19 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:11 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Matrix.html b/docs/PIXI.Matrix.html index fb1d75e350..837683b8d5 100644 --- a/docs/PIXI.Matrix.html +++ b/docs/PIXI.Matrix.html @@ -2728,7 +2728,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:19 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:11 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.MovieClip.html b/docs/PIXI.MovieClip.html index b1bd9140f5..5df0471310 100644 --- a/docs/PIXI.MovieClip.html +++ b/docs/PIXI.MovieClip.html @@ -6479,7 +6479,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:20 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:11 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.NoiseFilter.html b/docs/PIXI.NoiseFilter.html index f0fd2ecd9f..4a4a618e37 100644 --- a/docs/PIXI.NoiseFilter.html +++ b/docs/PIXI.NoiseFilter.html @@ -1323,7 +1323,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:20 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:12 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.NormalMapFilter.html b/docs/PIXI.NormalMapFilter.html index 09c737a9bf..35fdae1c06 100644 --- a/docs/PIXI.NormalMapFilter.html +++ b/docs/PIXI.NormalMapFilter.html @@ -1556,7 +1556,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:20 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:12 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.PIXI.html b/docs/PIXI.PIXI.html index 9dd2469a6f..9b10ffc909 100644 --- a/docs/PIXI.PIXI.html +++ b/docs/PIXI.PIXI.html @@ -2529,7 +2529,7 @@
Properties
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:21 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:12 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.PixelateFilter.html b/docs/PIXI.PixelateFilter.html index 42e1dce640..2a1e9a7b35 100644 --- a/docs/PIXI.PixelateFilter.html +++ b/docs/PIXI.PixelateFilter.html @@ -1323,7 +1323,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:21 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:12 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.PixiFastShader.html b/docs/PIXI.PixiFastShader.html index 2097ae0488..4d821450de 100644 --- a/docs/PIXI.PixiFastShader.html +++ b/docs/PIXI.PixiFastShader.html @@ -1533,7 +1533,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:21 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:12 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.PixiShader.html b/docs/PIXI.PixiShader.html index 8bbc475077..11740c52db 100644 --- a/docs/PIXI.PixiShader.html +++ b/docs/PIXI.PixiShader.html @@ -1801,7 +1801,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:21 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:13 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Point.html b/docs/PIXI.Point.html index d138caca1f..4c925561e1 100644 --- a/docs/PIXI.Point.html +++ b/docs/PIXI.Point.html @@ -1523,7 +1523,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:22 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:13 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.PolyK.html b/docs/PIXI.PolyK.html index 22522bc388..84c2fd162a 100644 --- a/docs/PIXI.PolyK.html +++ b/docs/PIXI.PolyK.html @@ -1140,7 +1140,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:22 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:13 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Polygon.html b/docs/PIXI.Polygon.html index 31a1f36bad..17ac3fb9a4 100644 --- a/docs/PIXI.Polygon.html +++ b/docs/PIXI.Polygon.html @@ -1378,7 +1378,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:22 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:13 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.PrimitiveShader.html b/docs/PIXI.PrimitiveShader.html index 9e99f2a8fc..55ea3c0f44 100644 --- a/docs/PIXI.PrimitiveShader.html +++ b/docs/PIXI.PrimitiveShader.html @@ -1477,7 +1477,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:22 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:14 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.RGBSplitFilter.html b/docs/PIXI.RGBSplitFilter.html index e522f253a2..614a38eee5 100644 --- a/docs/PIXI.RGBSplitFilter.html +++ b/docs/PIXI.RGBSplitFilter.html @@ -1435,7 +1435,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:23 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:14 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Rectangle.html b/docs/PIXI.Rectangle.html index d13aae6d9e..0d2145ae12 100644 --- a/docs/PIXI.Rectangle.html +++ b/docs/PIXI.Rectangle.html @@ -1662,7 +1662,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:23 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:14 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.RenderTexture.html b/docs/PIXI.RenderTexture.html index 38d5b3db9a..96e231d42e 100644 --- a/docs/PIXI.RenderTexture.html +++ b/docs/PIXI.RenderTexture.html @@ -2629,7 +2629,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:23 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:14 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Rope.html b/docs/PIXI.Rope.html index 39a452cc49..b1ab6ee1d1 100644 --- a/docs/PIXI.Rope.html +++ b/docs/PIXI.Rope.html @@ -5277,7 +5277,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:23 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:15 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.RoundedRectangle.html b/docs/PIXI.RoundedRectangle.html index 54cf9042bb..42db9424b0 100644 --- a/docs/PIXI.RoundedRectangle.html +++ b/docs/PIXI.RoundedRectangle.html @@ -1740,7 +1740,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:24 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:15 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.SepiaFilter.html b/docs/PIXI.SepiaFilter.html index 4ff19ac6fe..1104cc3372 100644 --- a/docs/PIXI.SepiaFilter.html +++ b/docs/PIXI.SepiaFilter.html @@ -1323,7 +1323,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:24 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:15 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.SmartBlurFilter.html b/docs/PIXI.SmartBlurFilter.html index 7e900a05d5..89df1523ca 100644 --- a/docs/PIXI.SmartBlurFilter.html +++ b/docs/PIXI.SmartBlurFilter.html @@ -1326,7 +1326,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:24 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:15 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Spine.html b/docs/PIXI.Spine.html index ec9abc33f4..33ac4e602f 100644 --- a/docs/PIXI.Spine.html +++ b/docs/PIXI.Spine.html @@ -5142,7 +5142,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:24 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:16 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.SpineLoader.html b/docs/PIXI.SpineLoader.html index c9ea8154c9..9497056c03 100644 --- a/docs/PIXI.SpineLoader.html +++ b/docs/PIXI.SpineLoader.html @@ -1387,7 +1387,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:25 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:16 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.SpineTextureLoader.html b/docs/PIXI.SpineTextureLoader.html index 66bb231a3a..f4a4a417ad 100644 --- a/docs/PIXI.SpineTextureLoader.html +++ b/docs/PIXI.SpineTextureLoader.html @@ -1401,7 +1401,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:25 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:16 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Sprite.html b/docs/PIXI.Sprite.html index 77f51c6381..1aef988c7a 100644 --- a/docs/PIXI.Sprite.html +++ b/docs/PIXI.Sprite.html @@ -5687,7 +5687,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:25 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:16 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.SpriteBatch.html b/docs/PIXI.SpriteBatch.html index 40afa90b11..8b81f3e5de 100644 --- a/docs/PIXI.SpriteBatch.html +++ b/docs/PIXI.SpriteBatch.html @@ -1123,7 +1123,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:26 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:17 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.SpriteSheetLoader.html b/docs/PIXI.SpriteSheetLoader.html index b383205047..9da9c94e19 100644 --- a/docs/PIXI.SpriteSheetLoader.html +++ b/docs/PIXI.SpriteSheetLoader.html @@ -1500,7 +1500,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:26 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:17 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Stage.html b/docs/PIXI.Stage.html index beb65ccfc2..ed56923272 100644 --- a/docs/PIXI.Stage.html +++ b/docs/PIXI.Stage.html @@ -5407,7 +5407,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:26 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:17 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Strip.html b/docs/PIXI.Strip.html index 90d5a33f97..db7dd5716d 100644 --- a/docs/PIXI.Strip.html +++ b/docs/PIXI.Strip.html @@ -5271,7 +5271,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:26 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:18 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.StripShader.html b/docs/PIXI.StripShader.html index 385e49552a..351db369c8 100644 --- a/docs/PIXI.StripShader.html +++ b/docs/PIXI.StripShader.html @@ -1477,7 +1477,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:27 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:18 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Text.html b/docs/PIXI.Text.html index 03eb6c3ee0..ea0b47dafc 100644 --- a/docs/PIXI.Text.html +++ b/docs/PIXI.Text.html @@ -6473,7 +6473,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:27 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:18 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.Texture.html b/docs/PIXI.Texture.html index 482ed99315..08c06074d0 100644 --- a/docs/PIXI.Texture.html +++ b/docs/PIXI.Texture.html @@ -2720,7 +2720,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:27 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:18 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.TilingSprite.html b/docs/PIXI.TilingSprite.html index 8c23255178..027f814823 100644 --- a/docs/PIXI.TilingSprite.html +++ b/docs/PIXI.TilingSprite.html @@ -5813,7 +5813,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:27 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:19 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.TiltShiftFilter.html b/docs/PIXI.TiltShiftFilter.html index 077a319253..a298018892 100644 --- a/docs/PIXI.TiltShiftFilter.html +++ b/docs/PIXI.TiltShiftFilter.html @@ -1292,7 +1292,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:28 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:19 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.TiltShiftXFilter.html b/docs/PIXI.TiltShiftXFilter.html index b534839a34..c99cf6f6e8 100644 --- a/docs/PIXI.TiltShiftXFilter.html +++ b/docs/PIXI.TiltShiftXFilter.html @@ -1561,7 +1561,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:28 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:19 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.TiltShiftYFilter.html b/docs/PIXI.TiltShiftYFilter.html index d9d6f5dbe7..d89a61fd7d 100644 --- a/docs/PIXI.TiltShiftYFilter.html +++ b/docs/PIXI.TiltShiftYFilter.html @@ -1561,7 +1561,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:28 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:20 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.TwistFilter.html b/docs/PIXI.TwistFilter.html index 569dba3bd5..22758c7945 100644 --- a/docs/PIXI.TwistFilter.html +++ b/docs/PIXI.TwistFilter.html @@ -1435,7 +1435,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:29 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:20 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.VideoTexture.html b/docs/PIXI.VideoTexture.html index 480dde2751..4d79e1ffaf 100644 --- a/docs/PIXI.VideoTexture.html +++ b/docs/PIXI.VideoTexture.html @@ -2539,7 +2539,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:29 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:20 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.WebGLBlendModeManager.html b/docs/PIXI.WebGLBlendModeManager.html index f65e8d5879..62432df173 100644 --- a/docs/PIXI.WebGLBlendModeManager.html +++ b/docs/PIXI.WebGLBlendModeManager.html @@ -1477,7 +1477,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:29 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:20 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.WebGLFastSpriteBatch.html b/docs/PIXI.WebGLFastSpriteBatch.html index 66ea8a5485..2522ccef3a 100644 --- a/docs/PIXI.WebGLFastSpriteBatch.html +++ b/docs/PIXI.WebGLFastSpriteBatch.html @@ -2607,7 +2607,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:29 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:20 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.WebGLFilterManager.html b/docs/PIXI.WebGLFilterManager.html index 93164130b5..af911c3a08 100644 --- a/docs/PIXI.WebGLFilterManager.html +++ b/docs/PIXI.WebGLFilterManager.html @@ -1998,7 +1998,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:21 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.WebGLRenderer.html b/docs/PIXI.WebGLRenderer.html index b6a19a6657..a1fe5ba7ac 100644 --- a/docs/PIXI.WebGLRenderer.html +++ b/docs/PIXI.WebGLRenderer.html @@ -3083,7 +3083,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:21 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXI.html b/docs/PIXI.html index c3ee12864b..c66d41f0de 100644 --- a/docs/PIXI.html +++ b/docs/PIXI.html @@ -1736,7 +1736,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:09 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:01 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PIXISpine.js.html b/docs/PIXISpine.js.html index 7d3ea9ba71..1d88567705 100644 --- a/docs/PIXISpine.js.html +++ b/docs/PIXISpine.js.html @@ -1273,7 +1273,7 @@

Source: d:/wamp/www/phaser/src/pixi/extras/PIXISpine.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Particle.js.html b/docs/Particle.js.html index de341eb90b..5380eca7c6 100644 --- a/docs/Particle.js.html +++ b/docs/Particle.js.html @@ -1146,7 +1146,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/Particle.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Particles.js.html b/docs/Particles.js.html index 08b35396bd..ce60e9575f 100644 --- a/docs/Particles.js.html +++ b/docs/Particles.js.html @@ -1043,7 +1043,7 @@

Source: D:/wamp/www/phaser/src/particles/Particles.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Animation.html b/docs/Phaser.Animation.html index 3e0a8499ff..5a09f6d499 100644 --- a/docs/Phaser.Animation.html +++ b/docs/Phaser.Animation.html @@ -4206,7 +4206,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:33 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:26 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.AnimationManager.html b/docs/Phaser.AnimationManager.html index b38c9acfb9..539afcfa7a 100644 --- a/docs/Phaser.AnimationManager.html +++ b/docs/Phaser.AnimationManager.html @@ -3419,7 +3419,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:33 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:26 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.AnimationParser.html b/docs/Phaser.AnimationParser.html index 3c6971411d..2b5efed320 100644 --- a/docs/Phaser.AnimationParser.html +++ b/docs/Phaser.AnimationParser.html @@ -2000,7 +2000,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:34 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:27 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.ArrayList.html b/docs/Phaser.ArrayList.html index e922dbca95..732983d84d 100644 --- a/docs/Phaser.ArrayList.html +++ b/docs/Phaser.ArrayList.html @@ -1075,7 +1075,7 @@

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:34 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:27 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.ArraySet.html b/docs/Phaser.ArraySet.html index d66bdfe203..84a2ddd08a 100644 --- a/docs/Phaser.ArraySet.html +++ b/docs/Phaser.ArraySet.html @@ -2370,7 +2370,7 @@

Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:34 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:27 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.ArrayUtils.html b/docs/Phaser.ArrayUtils.html index fddd4df572..f6151b4ac6 100644 --- a/docs/Phaser.ArrayUtils.html +++ b/docs/Phaser.ArrayUtils.html @@ -2189,7 +2189,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:34 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:27 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.AudioSprite.html b/docs/Phaser.AudioSprite.html index 8e5cf4664d..9f6ca4b11f 100644 --- a/docs/Phaser.AudioSprite.html +++ b/docs/Phaser.AudioSprite.html @@ -1958,7 +1958,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:35 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:28 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.BitmapData.html b/docs/Phaser.BitmapData.html index e5057f9af5..787e174749 100644 --- a/docs/Phaser.BitmapData.html +++ b/docs/Phaser.BitmapData.html @@ -13208,7 +13208,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:35 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:28 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.BitmapText.html b/docs/Phaser.BitmapText.html index 820ef4ff44..36b88ebdf9 100644 --- a/docs/Phaser.BitmapText.html +++ b/docs/Phaser.BitmapText.html @@ -7007,7 +7007,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:35 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:28 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Button.html b/docs/Phaser.Button.html index 7486b814b7..3d2130be4f 100644 --- a/docs/Phaser.Button.html +++ b/docs/Phaser.Button.html @@ -12264,7 +12264,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:36 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:29 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Cache.html b/docs/Phaser.Cache.html index 846a7a2255..7a6e74b098 100644 --- a/docs/Phaser.Cache.html +++ b/docs/Phaser.Cache.html @@ -12688,7 +12688,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:36 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:29 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Camera.html b/docs/Phaser.Camera.html index 70870189fd..d95586b423 100644 --- a/docs/Phaser.Camera.html +++ b/docs/Phaser.Camera.html @@ -3601,7 +3601,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:37 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:30 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Canvas.html b/docs/Phaser.Canvas.html index c1930d5b4b..a92099a35b 100644 --- a/docs/Phaser.Canvas.html +++ b/docs/Phaser.Canvas.html @@ -3410,7 +3410,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:37 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:30 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Circle.html b/docs/Phaser.Circle.html index dd1d3f16bd..f1aa862b20 100644 --- a/docs/Phaser.Circle.html +++ b/docs/Phaser.Circle.html @@ -4480,7 +4480,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:37 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:30 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Color.html b/docs/Phaser.Color.html index 9626cb28b9..13499aa96a 100644 --- a/docs/Phaser.Color.html +++ b/docs/Phaser.Color.html @@ -7600,7 +7600,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:38 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:31 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.DOM.html b/docs/Phaser.DOM.html index e8db04b472..691a346e81 100644 --- a/docs/Phaser.DOM.html +++ b/docs/Phaser.DOM.html @@ -2543,7 +2543,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:39 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:31 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Device.html b/docs/Phaser.Device.html index cf58a2b19e..22415f71b5 100644 --- a/docs/Phaser.Device.html +++ b/docs/Phaser.Device.html @@ -5549,7 +5549,7 @@
Example
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:38 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:31 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Easing.html b/docs/Phaser.Easing.html index 97ca187893..4a68b7b392 100644 --- a/docs/Phaser.Easing.html +++ b/docs/Phaser.Easing.html @@ -1064,7 +1064,7 @@

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:39 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:32 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Ellipse.html b/docs/Phaser.Ellipse.html index 692feb34cb..cddb2eca67 100644 --- a/docs/Phaser.Ellipse.html +++ b/docs/Phaser.Ellipse.html @@ -3005,7 +3005,7 @@

Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:39 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:32 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Events.html b/docs/Phaser.Events.html index 8bdf851f97..2f5541bb57 100644 --- a/docs/Phaser.Events.html +++ b/docs/Phaser.Events.html @@ -2204,7 +2204,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:39 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:32 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Filter.html b/docs/Phaser.Filter.html index 08b91ccf80..7ee6a04b65 100644 --- a/docs/Phaser.Filter.html +++ b/docs/Phaser.Filter.html @@ -2090,7 +2090,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:40 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:33 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.FlexGrid.html b/docs/Phaser.FlexGrid.html index a5ffb11de1..91b16062d6 100644 --- a/docs/Phaser.FlexGrid.html +++ b/docs/Phaser.FlexGrid.html @@ -2818,7 +2818,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:40 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:33 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.FlexLayer.html b/docs/Phaser.FlexLayer.html index 6c7a70f06f..350ecbfc38 100644 --- a/docs/Phaser.FlexLayer.html +++ b/docs/Phaser.FlexLayer.html @@ -17617,7 +17617,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:40 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:33 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Frame.html b/docs/Phaser.Frame.html index 64f5e90674..a9b17c7942 100644 --- a/docs/Phaser.Frame.html +++ b/docs/Phaser.Frame.html @@ -2955,7 +2955,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:41 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:34 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.FrameData.html b/docs/Phaser.FrameData.html index a14223de0b..17832d64eb 100644 --- a/docs/Phaser.FrameData.html +++ b/docs/Phaser.FrameData.html @@ -2451,7 +2451,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:41 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:34 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Game.html b/docs/Phaser.Game.html index 5149ae71aa..9375cd42e1 100644 --- a/docs/Phaser.Game.html +++ b/docs/Phaser.Game.html @@ -5739,7 +5739,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:41 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:34 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.GameObjectCreator.html b/docs/Phaser.GameObjectCreator.html index 6d716f2c44..774374284a 100644 --- a/docs/Phaser.GameObjectCreator.html +++ b/docs/Phaser.GameObjectCreator.html @@ -6439,7 +6439,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:42 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:34 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.GameObjectFactory.html b/docs/Phaser.GameObjectFactory.html index 0328a77132..b5aa6d3008 100644 --- a/docs/Phaser.GameObjectFactory.html +++ b/docs/Phaser.GameObjectFactory.html @@ -7452,7 +7452,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:42 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:35 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Gamepad.html b/docs/Phaser.Gamepad.html index aa788d320f..f3d1daa334 100644 --- a/docs/Phaser.Gamepad.html +++ b/docs/Phaser.Gamepad.html @@ -3123,7 +3123,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:42 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:35 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.GamepadButton.html b/docs/Phaser.GamepadButton.html index 7a6b6d8740..c2dfc6249c 100644 --- a/docs/Phaser.GamepadButton.html +++ b/docs/Phaser.GamepadButton.html @@ -2730,7 +2730,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:43 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:35 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Graphics.html b/docs/Phaser.Graphics.html index 6794484445..3bb427a586 100644 --- a/docs/Phaser.Graphics.html +++ b/docs/Phaser.Graphics.html @@ -9544,7 +9544,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:43 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:36 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Group.html b/docs/Phaser.Group.html index 5d564e81de..780403cf97 100644 --- a/docs/Phaser.Group.html +++ b/docs/Phaser.Group.html @@ -16932,7 +16932,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:43 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:36 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Image.html b/docs/Phaser.Image.html index 2fa27839e5..7d150fbca0 100644 --- a/docs/Phaser.Image.html +++ b/docs/Phaser.Image.html @@ -8766,7 +8766,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:44 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:37 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Input.html b/docs/Phaser.Input.html index 5b1917bac5..81ac6f0ec5 100644 --- a/docs/Phaser.Input.html +++ b/docs/Phaser.Input.html @@ -6592,7 +6592,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:44 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:37 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.InputHandler.html b/docs/Phaser.InputHandler.html index e29c316012..ce4213faee 100644 --- a/docs/Phaser.InputHandler.html +++ b/docs/Phaser.InputHandler.html @@ -8248,7 +8248,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:45 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:37 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Key.html b/docs/Phaser.Key.html index e50cf0aa9c..d07c5a1e2a 100644 --- a/docs/Phaser.Key.html +++ b/docs/Phaser.Key.html @@ -2852,7 +2852,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:45 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:38 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Keyboard.html b/docs/Phaser.Keyboard.html index 87be626d91..24ebc91bcd 100644 --- a/docs/Phaser.Keyboard.html +++ b/docs/Phaser.Keyboard.html @@ -3932,7 +3932,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:45 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:38 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Line.html b/docs/Phaser.Line.html index e933323920..57ad552b3d 100644 --- a/docs/Phaser.Line.html +++ b/docs/Phaser.Line.html @@ -4050,7 +4050,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:46 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:38 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.LinkedList.html b/docs/Phaser.LinkedList.html index 4116a353d6..8fcd3609fe 100644 --- a/docs/Phaser.LinkedList.html +++ b/docs/Phaser.LinkedList.html @@ -1819,7 +1819,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:46 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:38 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Loader.html b/docs/Phaser.Loader.html index 360748d480..8e2911a1cc 100644 --- a/docs/Phaser.Loader.html +++ b/docs/Phaser.Loader.html @@ -9188,7 +9188,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:46 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:39 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.LoaderParser.html b/docs/Phaser.LoaderParser.html index fb973af5a3..6a205b5da2 100644 --- a/docs/Phaser.LoaderParser.html +++ b/docs/Phaser.LoaderParser.html @@ -1351,7 +1351,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:46 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:39 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.MSPointer.html b/docs/Phaser.MSPointer.html index 746c45b561..33182c0b8f 100644 --- a/docs/Phaser.MSPointer.html +++ b/docs/Phaser.MSPointer.html @@ -1791,7 +1791,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:47 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:40 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Math.html b/docs/Phaser.Math.html index d9331b0b46..dafc684124 100644 --- a/docs/Phaser.Math.html +++ b/docs/Phaser.Math.html @@ -13998,7 +13998,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:47 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:39 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Mouse.html b/docs/Phaser.Mouse.html index 94826b4c45..9ceb6ef0a0 100644 --- a/docs/Phaser.Mouse.html +++ b/docs/Phaser.Mouse.html @@ -3639,7 +3639,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:47 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:40 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Net.html b/docs/Phaser.Net.html index 40e53709a2..1881f3c0eb 100644 --- a/docs/Phaser.Net.html +++ b/docs/Phaser.Net.html @@ -1863,7 +1863,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:48 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:40 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Particle.html b/docs/Phaser.Particle.html index af3fc48fcb..da96f02374 100644 --- a/docs/Phaser.Particle.html +++ b/docs/Phaser.Particle.html @@ -10726,7 +10726,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:48 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:40 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Particles.Arcade.Emitter.html b/docs/Phaser.Particles.Arcade.Emitter.html index ceb52bb196..082bd7c65e 100644 --- a/docs/Phaser.Particles.Arcade.Emitter.html +++ b/docs/Phaser.Particles.Arcade.Emitter.html @@ -21463,7 +21463,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:49 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:41 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Particles.Arcade.html b/docs/Phaser.Particles.Arcade.html index d1b4803266..7bb3e70d45 100644 --- a/docs/Phaser.Particles.Arcade.html +++ b/docs/Phaser.Particles.Arcade.html @@ -1078,7 +1078,7 @@

Classes

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:49 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:41 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Particles.html b/docs/Phaser.Particles.html index 67e0f17d62..df86c89e1b 100644 --- a/docs/Phaser.Particles.html +++ b/docs/Phaser.Particles.html @@ -1641,7 +1641,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:48 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:41 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.Arcade.Body.html b/docs/Phaser.Physics.Arcade.Body.html index 07e845cab3..fe320121b6 100644 --- a/docs/Phaser.Physics.Arcade.Body.html +++ b/docs/Phaser.Physics.Arcade.Body.html @@ -6257,7 +6257,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:50 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:42 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.Arcade.html b/docs/Phaser.Physics.Arcade.html index 7af15ff082..0f06b44834 100644 --- a/docs/Phaser.Physics.Arcade.html +++ b/docs/Phaser.Physics.Arcade.html @@ -7715,7 +7715,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:50 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:42 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.Ninja.AABB.html b/docs/Phaser.Physics.Ninja.AABB.html index d597d44577..b3ef889627 100644 --- a/docs/Phaser.Physics.Ninja.AABB.html +++ b/docs/Phaser.Physics.Ninja.AABB.html @@ -5031,7 +5031,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:51 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:43 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.Ninja.Body.html b/docs/Phaser.Physics.Ninja.Body.html index 6c9cfa1f32..27cba9c9c4 100644 --- a/docs/Phaser.Physics.Ninja.Body.html +++ b/docs/Phaser.Physics.Ninja.Body.html @@ -4006,7 +4006,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:51 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:43 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.Ninja.Circle.html b/docs/Phaser.Physics.Ninja.Circle.html index 11333807ff..854631d29b 100644 --- a/docs/Phaser.Physics.Ninja.Circle.html +++ b/docs/Phaser.Physics.Ninja.Circle.html @@ -5214,7 +5214,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:51 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:44 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.Ninja.Tile.html b/docs/Phaser.Physics.Ninja.Tile.html index 2046ae4d44..31f519eb96 100644 --- a/docs/Phaser.Physics.Ninja.Tile.html +++ b/docs/Phaser.Physics.Ninja.Tile.html @@ -2866,7 +2866,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:52 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:44 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.Ninja.html b/docs/Phaser.Physics.Ninja.html index 9e2577f7e0..f53466e5d6 100644 --- a/docs/Phaser.Physics.Ninja.html +++ b/docs/Phaser.Physics.Ninja.html @@ -4073,7 +4073,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:50 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:43 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.Body.html b/docs/Phaser.Physics.P2.Body.html index cfa7c60f22..b3366806ea 100644 --- a/docs/Phaser.Physics.P2.Body.html +++ b/docs/Phaser.Physics.P2.Body.html @@ -11144,7 +11144,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:52 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:45 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.BodyDebug.html b/docs/Phaser.Physics.P2.BodyDebug.html index b76b83ebed..8719b176ab 100644 --- a/docs/Phaser.Physics.P2.BodyDebug.html +++ b/docs/Phaser.Physics.P2.BodyDebug.html @@ -17829,7 +17829,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:53 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:45 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.CollisionGroup.html b/docs/Phaser.Physics.P2.CollisionGroup.html index 9509d1e1ea..d2b1a7e237 100644 --- a/docs/Phaser.Physics.P2.CollisionGroup.html +++ b/docs/Phaser.Physics.P2.CollisionGroup.html @@ -1173,7 +1173,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:53 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:46 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.ContactMaterial.html b/docs/Phaser.Physics.P2.ContactMaterial.html index 75e9d4992f..f1817746d3 100644 --- a/docs/Phaser.Physics.P2.ContactMaterial.html +++ b/docs/Phaser.Physics.P2.ContactMaterial.html @@ -1187,7 +1187,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:53 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:46 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.DistanceConstraint.html b/docs/Phaser.Physics.P2.DistanceConstraint.html index 60632e8f4d..b757373321 100644 --- a/docs/Phaser.Physics.P2.DistanceConstraint.html +++ b/docs/Phaser.Physics.P2.DistanceConstraint.html @@ -1463,7 +1463,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:54 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:46 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.FixtureList.html b/docs/Phaser.Physics.P2.FixtureList.html index d454fa6999..4d2669476e 100644 --- a/docs/Phaser.Physics.P2.FixtureList.html +++ b/docs/Phaser.Physics.P2.FixtureList.html @@ -2286,7 +2286,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:54 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:46 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.GearConstraint.html b/docs/Phaser.Physics.P2.GearConstraint.html index 76863b4add..9c5413bfc8 100644 --- a/docs/Phaser.Physics.P2.GearConstraint.html +++ b/docs/Phaser.Physics.P2.GearConstraint.html @@ -1393,7 +1393,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:54 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:47 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.InversePointProxy.html b/docs/Phaser.Physics.P2.InversePointProxy.html index 11948cc0bb..199f960d57 100644 --- a/docs/Phaser.Physics.P2.InversePointProxy.html +++ b/docs/Phaser.Physics.P2.InversePointProxy.html @@ -1364,7 +1364,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:54 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:47 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.LockConstraint.html b/docs/Phaser.Physics.P2.LockConstraint.html index 5e68f08ea0..f932980bca 100644 --- a/docs/Phaser.Physics.P2.LockConstraint.html +++ b/docs/Phaser.Physics.P2.LockConstraint.html @@ -1428,7 +1428,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:55 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:47 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.Material.html b/docs/Phaser.Physics.P2.Material.html index 5affc823f6..58e30af8f5 100644 --- a/docs/Phaser.Physics.P2.Material.html +++ b/docs/Phaser.Physics.P2.Material.html @@ -1177,7 +1177,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:55 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:47 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.PointProxy.html b/docs/Phaser.Physics.P2.PointProxy.html index 339fab7bc6..9fd8daf243 100644 --- a/docs/Phaser.Physics.P2.PointProxy.html +++ b/docs/Phaser.Physics.P2.PointProxy.html @@ -1364,7 +1364,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:55 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:47 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.PrismaticConstraint.html b/docs/Phaser.Physics.P2.PrismaticConstraint.html index 421c097fbd..cfda086731 100644 --- a/docs/Phaser.Physics.P2.PrismaticConstraint.html +++ b/docs/Phaser.Physics.P2.PrismaticConstraint.html @@ -1502,7 +1502,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:55 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:48 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.RevoluteConstraint.html b/docs/Phaser.Physics.P2.RevoluteConstraint.html index a9b590db65..27d1ed5d74 100644 --- a/docs/Phaser.Physics.P2.RevoluteConstraint.html +++ b/docs/Phaser.Physics.P2.RevoluteConstraint.html @@ -1464,7 +1464,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:56 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:48 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.RotationalSpring.html b/docs/Phaser.Physics.P2.RotationalSpring.html index 2d301b54b5..e59dda62af 100644 --- a/docs/Phaser.Physics.P2.RotationalSpring.html +++ b/docs/Phaser.Physics.P2.RotationalSpring.html @@ -1486,7 +1486,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:56 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:48 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.Spring.html b/docs/Phaser.Physics.P2.Spring.html index 32db3cc194..f273eb6416 100644 --- a/docs/Phaser.Physics.P2.Spring.html +++ b/docs/Phaser.Physics.P2.Spring.html @@ -1636,7 +1636,7 @@

Members

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:56 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:48 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.html b/docs/Phaser.Physics.P2.html index 56524bf73b..3d467ccb2e 100644 --- a/docs/Phaser.Physics.P2.html +++ b/docs/Phaser.Physics.P2.html @@ -12846,7 +12846,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:52 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:44 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Physics.html b/docs/Phaser.Physics.html index 9b543894d3..9449606629 100644 --- a/docs/Phaser.Physics.html +++ b/docs/Phaser.Physics.html @@ -3251,7 +3251,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:49 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:42 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Plugin.html b/docs/Phaser.Plugin.html index b95fcdf3e4..75c2a4dce4 100644 --- a/docs/Phaser.Plugin.html +++ b/docs/Phaser.Plugin.html @@ -2023,7 +2023,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:56 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:49 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.PluginManager.html b/docs/Phaser.PluginManager.html index 5985ce76f4..58eaaa7b12 100644 --- a/docs/Phaser.PluginManager.html +++ b/docs/Phaser.PluginManager.html @@ -2044,7 +2044,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:57 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:49 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Point.html b/docs/Phaser.Point.html index f1efd81546..6ba41fa00d 100644 --- a/docs/Phaser.Point.html +++ b/docs/Phaser.Point.html @@ -9714,7 +9714,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:57 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:49 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Pointer.html b/docs/Phaser.Pointer.html index 4d99421da3..99d0af55d7 100644 --- a/docs/Phaser.Pointer.html +++ b/docs/Phaser.Pointer.html @@ -4924,7 +4924,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:57 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:49 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Polygon.html b/docs/Phaser.Polygon.html index c14685fbea..9b7c80cdb4 100644 --- a/docs/Phaser.Polygon.html +++ b/docs/Phaser.Polygon.html @@ -1865,7 +1865,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:58 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:50 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.QuadTree.html b/docs/Phaser.QuadTree.html index 6e2ab468f8..b11d16782e 100644 --- a/docs/Phaser.QuadTree.html +++ b/docs/Phaser.QuadTree.html @@ -2849,7 +2849,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:58 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:50 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.RandomDataGenerator.html b/docs/Phaser.RandomDataGenerator.html index 2f928090ac..bcf50b6e47 100644 --- a/docs/Phaser.RandomDataGenerator.html +++ b/docs/Phaser.RandomDataGenerator.html @@ -2717,7 +2717,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:58 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:50 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Rectangle.html b/docs/Phaser.Rectangle.html index 65d1deb88d..ee1311789d 100644 --- a/docs/Phaser.Rectangle.html +++ b/docs/Phaser.Rectangle.html @@ -8172,7 +8172,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:58 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:51 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.RenderTexture.html b/docs/Phaser.RenderTexture.html index e9298607c9..1c9e776a08 100644 --- a/docs/Phaser.RenderTexture.html +++ b/docs/Phaser.RenderTexture.html @@ -3434,7 +3434,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:59 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:51 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.RequestAnimationFrame.html b/docs/Phaser.RequestAnimationFrame.html index c8c17c5307..55f79e98c0 100644 --- a/docs/Phaser.RequestAnimationFrame.html +++ b/docs/Phaser.RequestAnimationFrame.html @@ -1807,7 +1807,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:59 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:51 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.RetroFont.html b/docs/Phaser.RetroFont.html index 91c9d8b46e..1f0f3f1a5b 100644 --- a/docs/Phaser.RetroFont.html +++ b/docs/Phaser.RetroFont.html @@ -6455,7 +6455,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:59 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:51 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Rope.html b/docs/Phaser.Rope.html index b232164bbb..e9fd5b9a4f 100644 --- a/docs/Phaser.Rope.html +++ b/docs/Phaser.Rope.html @@ -7787,7 +7787,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:00 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:52 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.ScaleManager.html b/docs/Phaser.ScaleManager.html index 19c412c452..6a16133ba0 100644 --- a/docs/Phaser.ScaleManager.html +++ b/docs/Phaser.ScaleManager.html @@ -7763,7 +7763,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:00 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:52 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Signal.html b/docs/Phaser.Signal.html index a7c2ec80d7..5952f4ae2b 100644 --- a/docs/Phaser.Signal.html +++ b/docs/Phaser.Signal.html @@ -2664,7 +2664,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:00 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:52 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.SignalBinding.html b/docs/Phaser.SignalBinding.html index 434e3e2f45..82c4f38c13 100644 --- a/docs/Phaser.SignalBinding.html +++ b/docs/Phaser.SignalBinding.html @@ -2204,7 +2204,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:01 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:53 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.SinglePad.html b/docs/Phaser.SinglePad.html index bc06195dec..45341e3308 100644 --- a/docs/Phaser.SinglePad.html +++ b/docs/Phaser.SinglePad.html @@ -3932,7 +3932,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:01 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:53 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Sound.html b/docs/Phaser.Sound.html index edc3f3f0f1..07c203f6ce 100644 --- a/docs/Phaser.Sound.html +++ b/docs/Phaser.Sound.html @@ -5587,7 +5587,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:01 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:53 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.SoundManager.html b/docs/Phaser.SoundManager.html index 0703cddaed..6d3839e4d7 100644 --- a/docs/Phaser.SoundManager.html +++ b/docs/Phaser.SoundManager.html @@ -3340,7 +3340,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:02 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:54 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Sprite.html b/docs/Phaser.Sprite.html index b97d8944ae..3cf63c461b 100644 --- a/docs/Phaser.Sprite.html +++ b/docs/Phaser.Sprite.html @@ -10003,7 +10003,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:02 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:54 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.SpriteBatch.html b/docs/Phaser.SpriteBatch.html index 27b3d06f27..5c495a3f9d 100644 --- a/docs/Phaser.SpriteBatch.html +++ b/docs/Phaser.SpriteBatch.html @@ -16976,7 +16976,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:02 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:54 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Stage.html b/docs/Phaser.Stage.html index f79969b7a2..e2dd23250b 100644 --- a/docs/Phaser.Stage.html +++ b/docs/Phaser.Stage.html @@ -6297,7 +6297,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:03 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:55 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.State.html b/docs/Phaser.State.html index 72f1d9af9c..259959771a 100644 --- a/docs/Phaser.State.html +++ b/docs/Phaser.State.html @@ -2733,7 +2733,7 @@

Methods

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:03 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:55 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.StateManager.html b/docs/Phaser.StateManager.html index 33063abdbc..fab14e0735 100644 --- a/docs/Phaser.StateManager.html +++ b/docs/Phaser.StateManager.html @@ -4195,7 +4195,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:03 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:55 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Text.html b/docs/Phaser.Text.html index 2ca9373e0a..774ec3fcee 100644 --- a/docs/Phaser.Text.html +++ b/docs/Phaser.Text.html @@ -8748,7 +8748,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:04 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:56 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Tile.html b/docs/Phaser.Tile.html index 7297fa8680..5b45da815d 100644 --- a/docs/Phaser.Tile.html +++ b/docs/Phaser.Tile.html @@ -4169,7 +4169,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:04 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:56 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.TileSprite.html b/docs/Phaser.TileSprite.html index 50bfee0365..b01a051221 100644 --- a/docs/Phaser.TileSprite.html +++ b/docs/Phaser.TileSprite.html @@ -8492,7 +8492,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:06 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:58 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Tilemap.html b/docs/Phaser.Tilemap.html index acba63d178..9d6f3e7590 100644 --- a/docs/Phaser.Tilemap.html +++ b/docs/Phaser.Tilemap.html @@ -13232,7 +13232,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:04 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:56 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.TilemapLayer.html b/docs/Phaser.TilemapLayer.html index fa263be46b..804ae64251 100644 --- a/docs/Phaser.TilemapLayer.html +++ b/docs/Phaser.TilemapLayer.html @@ -11303,7 +11303,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:05 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:57 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.TilemapParser.html b/docs/Phaser.TilemapParser.html index a5abe9b5af..7b6fda211c 100644 --- a/docs/Phaser.TilemapParser.html +++ b/docs/Phaser.TilemapParser.html @@ -1876,7 +1876,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:05 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:57 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Tileset.html b/docs/Phaser.Tileset.html index 1ff1bef45b..d77e2947e6 100644 --- a/docs/Phaser.Tileset.html +++ b/docs/Phaser.Tileset.html @@ -2626,7 +2626,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:05 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:57 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Time.html b/docs/Phaser.Time.html index 06b238350a..720d2c5f30 100644 --- a/docs/Phaser.Time.html +++ b/docs/Phaser.Time.html @@ -3472,7 +3472,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:06 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:58 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Timer.html b/docs/Phaser.Timer.html index 8975755a1b..b7c145a8ea 100644 --- a/docs/Phaser.Timer.html +++ b/docs/Phaser.Timer.html @@ -4114,7 +4114,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:06 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:58 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.TimerEvent.html b/docs/Phaser.TimerEvent.html index f6bfae5d39..d1d6653bdb 100644 --- a/docs/Phaser.TimerEvent.html +++ b/docs/Phaser.TimerEvent.html @@ -1847,7 +1847,7 @@
Properties:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:07 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:59 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Touch.html b/docs/Phaser.Touch.html index 3d5003c01e..3fea503c4e 100644 --- a/docs/Phaser.Touch.html +++ b/docs/Phaser.Touch.html @@ -2673,7 +2673,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:07 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:59 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Tween.html b/docs/Phaser.Tween.html index 4d2e659e8d..d5385c628e 100644 --- a/docs/Phaser.Tween.html +++ b/docs/Phaser.Tween.html @@ -6223,7 +6223,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:07 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:59 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.TweenData.html b/docs/Phaser.TweenData.html index 4f38b3487d..96e3f15220 100644 --- a/docs/Phaser.TweenData.html +++ b/docs/Phaser.TweenData.html @@ -2599,7 +2599,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:08 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:59 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.TweenManager.html b/docs/Phaser.TweenManager.html index 57ef4aadb4..f73b5aa418 100644 --- a/docs/Phaser.TweenManager.html +++ b/docs/Phaser.TweenManager.html @@ -2288,7 +2288,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:08 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:00 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Utils.Debug.html b/docs/Phaser.Utils.Debug.html index 728a5e0e1c..899b92792b 100644 --- a/docs/Phaser.Utils.Debug.html +++ b/docs/Phaser.Utils.Debug.html @@ -7206,7 +7206,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:08 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:00 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.Utils.html b/docs/Phaser.Utils.html index 288ef97f06..98a9acb336 100644 --- a/docs/Phaser.Utils.html +++ b/docs/Phaser.Utils.html @@ -2937,7 +2937,7 @@
Returns:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:08 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:00 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.World.html b/docs/Phaser.World.html index a46cc52827..96fb68d7a9 100644 --- a/docs/Phaser.World.html +++ b/docs/Phaser.World.html @@ -18219,7 +18219,7 @@
Parameters:
Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:31:09 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:33:00 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.html b/docs/Phaser.html index d368685bdc..6c085a85da 100644 --- a/docs/Phaser.html +++ b/docs/Phaser.html @@ -1732,7 +1732,7 @@

Classes

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:33 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:26 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Phaser.js.html b/docs/Phaser.js.html index 315178686a..ea461e3148 100644 --- a/docs/Phaser.js.html +++ b/docs/Phaser.js.html @@ -954,7 +954,7 @@

Source: D:/wamp/www/phaser/src/Phaser.js

*/ var Phaser = Phaser || { - VERSION: '2.2.0', + VERSION: '2.2.1', GAMES: [], AUTO: 0, @@ -1048,7 +1048,7 @@

Source: D:/wamp/www/phaser/src/Phaser.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Physics.js.html b/docs/Physics.js.html index 7df570c996..67a7f3c2e1 100644 --- a/docs/Physics.js.html +++ b/docs/Physics.js.html @@ -1308,7 +1308,7 @@

Source: D:/wamp/www/phaser/src/physics/Physics.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PixelateFilter.js.html b/docs/PixelateFilter.js.html index 90fb67eff5..16d8cedb62 100644 --- a/docs/PixelateFilter.js.html +++ b/docs/PixelateFilter.js.html @@ -1025,7 +1025,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/PixelateFilte Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Pixi.js.html b/docs/Pixi.js.html index 449cc4652b..d2d6c3416d 100644 --- a/docs/Pixi.js.html +++ b/docs/Pixi.js.html @@ -1176,7 +1176,7 @@

Source: d:/wamp/www/phaser/src/pixi/Pixi.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PixiFastShader.js.html b/docs/PixiFastShader.js.html index 01f142d1b6..091e050cbb 100644 --- a/docs/PixiFastShader.js.html +++ b/docs/PixiFastShader.js.html @@ -1118,7 +1118,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/shade Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PixiShader.js.html b/docs/PixiShader.js.html index 27f3b959fc..db934fd5b7 100644 --- a/docs/PixiShader.js.html +++ b/docs/PixiShader.js.html @@ -1328,7 +1328,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/shade 'void main(void) {', ' gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);', ' vTextureCoord = aTextureCoord;', - ' vColor = aColor;', + ' vColor = vec4(aColor.rgb * aColor.a, aColor.a);', '}' ]; @@ -1351,7 +1351,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/shade Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Plugin.js.html b/docs/Plugin.js.html index da1cd9a8a9..c64863378c 100644 --- a/docs/Plugin.js.html +++ b/docs/Plugin.js.html @@ -1085,7 +1085,7 @@

Source: D:/wamp/www/phaser/src/core/Plugin.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PluginManager.js.html b/docs/PluginManager.js.html index c49dee5c3e..3418ddaf28 100644 --- a/docs/PluginManager.js.html +++ b/docs/PluginManager.js.html @@ -1250,7 +1250,7 @@

Source: D:/wamp/www/phaser/src/core/PluginManager.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Point.js.html b/docs/Point.js.html index f92c23f76b..e08ed28c9c 100644 --- a/docs/Point.js.html +++ b/docs/Point.js.html @@ -1018,7 +1018,7 @@

Source: d:/wamp/www/phaser/src/pixi/geom/Point.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Point.js_.html b/docs/Point.js_.html index 902766fae3..2f99948b38 100644 --- a/docs/Point.js_.html +++ b/docs/Point.js_.html @@ -1879,7 +1879,7 @@

Source: D:/wamp/www/phaser/src/geom/Point.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PointProxy.js.html b/docs/PointProxy.js.html index 772f4f2a1a..987def015d 100644 --- a/docs/PointProxy.js.html +++ b/docs/PointProxy.js.html @@ -1065,7 +1065,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/PointProxy.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Pointer.js.html b/docs/Pointer.js.html index 0d759a8a0c..bd850d19eb 100644 --- a/docs/Pointer.js.html +++ b/docs/Pointer.js.html @@ -1830,7 +1830,7 @@

Source: D:/wamp/www/phaser/src/input/Pointer.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Polygon.js.html b/docs/Polygon.js.html index 6b178b3b81..a09f5ee9bc 100644 --- a/docs/Polygon.js.html +++ b/docs/Polygon.js.html @@ -1039,7 +1039,7 @@

Source: d:/wamp/www/phaser/src/pixi/geom/Polygon.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Polygon.js_.html b/docs/Polygon.js_.html index e28142d978..22742b4718 100644 --- a/docs/Polygon.js_.html +++ b/docs/Polygon.js_.html @@ -1209,7 +1209,7 @@

Source: D:/wamp/www/phaser/src/geom/Polygon.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Polyk.js.html b/docs/Polyk.js.html index 4f1a7aaffe..0098157592 100644 --- a/docs/Polyk.js.html +++ b/docs/Polyk.js.html @@ -1131,7 +1131,7 @@

Source: d:/wamp/www/phaser/src/pixi/utils/Polyk.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PrimitiveShader.js.html b/docs/PrimitiveShader.js.html index 0967456e51..3f49ab835f 100644 --- a/docs/PrimitiveShader.js.html +++ b/docs/PrimitiveShader.js.html @@ -1078,7 +1078,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/shade Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/PrismaticConstraint.js.html b/docs/PrismaticConstraint.js.html index dac991d894..381c9fedb2 100644 --- a/docs/PrismaticConstraint.js.html +++ b/docs/PrismaticConstraint.js.html @@ -1012,7 +1012,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/PrismaticConstr Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/QuadTree.js.html b/docs/QuadTree.js.html index 602f0017e2..9f90e05b59 100644 --- a/docs/QuadTree.js.html +++ b/docs/QuadTree.js.html @@ -1315,7 +1315,7 @@

Source: D:/wamp/www/phaser/src/math/QuadTree.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/RGBSplitFilter.js.html b/docs/RGBSplitFilter.js.html index 49d1c981bf..3e83078515 100644 --- a/docs/RGBSplitFilter.js.html +++ b/docs/RGBSplitFilter.js.html @@ -1054,7 +1054,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/RGBSplitFilte Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/RandomDataGenerator.js.html b/docs/RandomDataGenerator.js.html index 374304e7a7..4811572caa 100644 --- a/docs/RandomDataGenerator.js.html +++ b/docs/RandomDataGenerator.js.html @@ -1256,7 +1256,7 @@

Source: D:/wamp/www/phaser/src/math/RandomDataGenerator.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Rectangle.js.html b/docs/Rectangle.js.html index 10c3502ef9..db04f226aa 100644 --- a/docs/Rectangle.js.html +++ b/docs/Rectangle.js.html @@ -1049,7 +1049,7 @@

Source: d:/wamp/www/phaser/src/pixi/geom/Rectangle.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Rectangle.js_.html b/docs/Rectangle.js_.html index f331778f8c..d33f56af6b 100644 --- a/docs/Rectangle.js_.html +++ b/docs/Rectangle.js_.html @@ -1879,7 +1879,7 @@

Source: D:/wamp/www/phaser/src/geom/Rectangle.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/RenderTexture.js.html b/docs/RenderTexture.js.html index b069f70d38..ca0e543821 100644 --- a/docs/RenderTexture.js.html +++ b/docs/RenderTexture.js.html @@ -1299,7 +1299,7 @@

Source: d:/wamp/www/phaser/src/pixi/textures/RenderTextur Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/RenderTexture.js_.html b/docs/RenderTexture.js_.html index 31c9170099..e46b43d25a 100644 --- a/docs/RenderTexture.js_.html +++ b/docs/RenderTexture.js_.html @@ -1067,7 +1067,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/RenderTexture. Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/RequestAnimationFrame.js.html b/docs/RequestAnimationFrame.js.html index 3f5b2072f5..63e38ec510 100644 --- a/docs/RequestAnimationFrame.js.html +++ b/docs/RequestAnimationFrame.js.html @@ -1131,7 +1131,7 @@

Source: D:/wamp/www/phaser/src/system/RequestAnimationFra Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/RetroFont.js.html b/docs/RetroFont.js.html index 1ed857534f..2def5a912c 100644 --- a/docs/RetroFont.js.html +++ b/docs/RetroFont.js.html @@ -1580,7 +1580,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/RetroFont.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/RevoluteConstraint.js.html b/docs/RevoluteConstraint.js.html index 7c9172ee58..42fb138e64 100644 --- a/docs/RevoluteConstraint.js.html +++ b/docs/RevoluteConstraint.js.html @@ -1014,7 +1014,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/RevoluteConstra Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Rope.js.html b/docs/Rope.js.html index 01d76867f9..dd1acdea6e 100644 --- a/docs/Rope.js.html +++ b/docs/Rope.js.html @@ -1137,7 +1137,7 @@

Source: d:/wamp/www/phaser/src/pixi/extras/Rope.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Rope.js_.html b/docs/Rope.js_.html index 641eacf3c9..b2a82f07a8 100644 --- a/docs/Rope.js_.html +++ b/docs/Rope.js_.html @@ -1792,7 +1792,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/Rope.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/RotationalSpring.js.html b/docs/RotationalSpring.js.html index 0ae5db9ad3..774415db23 100644 --- a/docs/RotationalSpring.js.html +++ b/docs/RotationalSpring.js.html @@ -1018,7 +1018,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/RotationalSprin Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/RoundedRectangle.js.html b/docs/RoundedRectangle.js.html index 5c9a713330..98811caa45 100644 --- a/docs/RoundedRectangle.js.html +++ b/docs/RoundedRectangle.js.html @@ -1057,7 +1057,7 @@

Source: d:/wamp/www/phaser/src/pixi/geom/RoundedRectangle Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/ScaleManager.js.html b/docs/ScaleManager.js.html index 8fcc5ce73d..6c92454752 100644 --- a/docs/ScaleManager.js.html +++ b/docs/ScaleManager.js.html @@ -3383,7 +3383,7 @@

Source: D:/wamp/www/phaser/src/core/ScaleManager.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/SepiaFilter.js.html b/docs/SepiaFilter.js.html index 3cda727a47..df9e64a3ed 100644 --- a/docs/SepiaFilter.js.html +++ b/docs/SepiaFilter.js.html @@ -1018,7 +1018,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/SepiaFilter.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Signal.js.html b/docs/Signal.js.html index 02723d4673..b26526353e 100644 --- a/docs/Signal.js.html +++ b/docs/Signal.js.html @@ -1389,7 +1389,7 @@

Source: D:/wamp/www/phaser/src/core/Signal.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/SignalBinding.js.html b/docs/SignalBinding.js.html index 56a0bcc408..6b872d4a4d 100644 --- a/docs/SignalBinding.js.html +++ b/docs/SignalBinding.js.html @@ -1143,7 +1143,7 @@

Source: D:/wamp/www/phaser/src/core/SignalBinding.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/SinglePad.js.html b/docs/SinglePad.js.html index a8958c6342..261ecb129a 100644 --- a/docs/SinglePad.js.html +++ b/docs/SinglePad.js.html @@ -1517,7 +1517,7 @@

Source: D:/wamp/www/phaser/src/input/SinglePad.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/SmartBlurFilter.js.html b/docs/SmartBlurFilter.js.html index 52f5a0bec4..ad2e413bf4 100644 --- a/docs/SmartBlurFilter.js.html +++ b/docs/SmartBlurFilter.js.html @@ -1038,7 +1038,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/SmartBlurFilt Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Sound.js.html b/docs/Sound.js.html index 8d74658f65..934bc1472f 100644 --- a/docs/Sound.js.html +++ b/docs/Sound.js.html @@ -1983,7 +1983,7 @@

Source: D:/wamp/www/phaser/src/sound/Sound.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/SoundManager.js.html b/docs/SoundManager.js.html index 084eaac7e3..7aed72496d 100644 --- a/docs/SoundManager.js.html +++ b/docs/SoundManager.js.html @@ -1606,7 +1606,7 @@

Source: D:/wamp/www/phaser/src/sound/SoundManager.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Spine.js.html b/docs/Spine.js.html index c42e66744d..2b77e8364d 100644 --- a/docs/Spine.js.html +++ b/docs/Spine.js.html @@ -3589,7 +3589,7 @@

Source: d:/wamp/www/phaser/src/pixi/extras/Spine.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/SpineLoader.js.html b/docs/SpineLoader.js.html index 1314de75b0..fad883694c 100644 --- a/docs/SpineLoader.js.html +++ b/docs/SpineLoader.js.html @@ -1044,7 +1044,7 @@

Source: d:/wamp/www/phaser/src/pixi/loaders/SpineLoader.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Spring.js.html b/docs/Spring.js.html index ebe07981e1..95f3c94cb1 100644 --- a/docs/Spring.js.html +++ b/docs/Spring.js.html @@ -1039,7 +1039,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/Spring.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Sprite.js.html b/docs/Sprite.js.html index 6300331d9d..e0bbf1f19b 100644 --- a/docs/Sprite.js.html +++ b/docs/Sprite.js.html @@ -1430,7 +1430,7 @@

Source: d:/wamp/www/phaser/src/pixi/display/Sprite.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Sprite.js_.html b/docs/Sprite.js_.html index e7dc51470c..966c74bd58 100644 --- a/docs/Sprite.js_.html +++ b/docs/Sprite.js_.html @@ -2324,7 +2324,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/Sprite.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/SpriteBatch.js.html b/docs/SpriteBatch.js.html index 105f260e0c..b788135dfb 100644 --- a/docs/SpriteBatch.js.html +++ b/docs/SpriteBatch.js.html @@ -1140,7 +1140,7 @@

Source: d:/wamp/www/phaser/src/pixi/display/SpriteBatch.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/SpriteBatch.js_.html b/docs/SpriteBatch.js_.html index 20279431d6..0c00ccacb7 100644 --- a/docs/SpriteBatch.js_.html +++ b/docs/SpriteBatch.js_.html @@ -1002,7 +1002,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/SpriteBatch.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/SpriteSheetLoader.js.html b/docs/SpriteSheetLoader.js.html index 26a4caffc2..bc7c5a78b7 100644 --- a/docs/SpriteSheetLoader.js.html +++ b/docs/SpriteSheetLoader.js.html @@ -1057,7 +1057,7 @@

Source: d:/wamp/www/phaser/src/pixi/loaders/SpriteSheetLo Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Stage.js.html b/docs/Stage.js.html index b6a6fcdb60..6979a36f06 100644 --- a/docs/Stage.js.html +++ b/docs/Stage.js.html @@ -1098,7 +1098,7 @@

Source: d:/wamp/www/phaser/src/pixi/display/Stage.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Stage.js_.html b/docs/Stage.js_.html index 32a70e9ef4..6b09e16ee0 100644 --- a/docs/Stage.js_.html +++ b/docs/Stage.js_.html @@ -1338,7 +1338,7 @@

Source: D:/wamp/www/phaser/src/core/Stage.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/State.js.html b/docs/State.js.html index d83c6bf6c2..12732cb59f 100644 --- a/docs/State.js.html +++ b/docs/State.js.html @@ -1158,7 +1158,7 @@

Source: D:/wamp/www/phaser/src/core/State.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/StateManager.js.html b/docs/StateManager.js.html index 0710403852..af0273e270 100644 --- a/docs/StateManager.js.html +++ b/docs/StateManager.js.html @@ -1715,7 +1715,7 @@

Source: D:/wamp/www/phaser/src/core/StateManager.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Strip.js.html b/docs/Strip.js.html index d108e8baaa..e95fa675ec 100644 --- a/docs/Strip.js.html +++ b/docs/Strip.js.html @@ -1432,7 +1432,7 @@

Source: d:/wamp/www/phaser/src/pixi/extras/Strip.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/StripShader.js.html b/docs/StripShader.js.html index 9120da2fbf..5ee56306c8 100644 --- a/docs/StripShader.js.html +++ b/docs/StripShader.js.html @@ -1086,7 +1086,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/shade Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Text.js.html b/docs/Text.js.html index ca4ce91d44..542b2ea3f8 100644 --- a/docs/Text.js.html +++ b/docs/Text.js.html @@ -1490,7 +1490,7 @@

Source: d:/wamp/www/phaser/src/pixi/text/Text.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Text.js_.html b/docs/Text.js_.html index 60743c95a8..bc6ecdd98d 100644 --- a/docs/Text.js_.html +++ b/docs/Text.js_.html @@ -2005,7 +2005,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/Text.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Texture.js.html b/docs/Texture.js.html index 1db3a78a65..7ef1d5a9b1 100644 --- a/docs/Texture.js.html +++ b/docs/Texture.js.html @@ -1292,7 +1292,7 @@

Source: d:/wamp/www/phaser/src/pixi/textures/Texture.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Tile.js.html b/docs/Tile.js.html index 6be028a7c9..46e0121b55 100644 --- a/docs/Tile.js.html +++ b/docs/Tile.js.html @@ -1734,7 +1734,7 @@

Source: D:/wamp/www/phaser/src/physics/ninja/Tile.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Tile.js_.html b/docs/Tile.js_.html index 35a3cedc47..e061946191 100644 --- a/docs/Tile.js_.html +++ b/docs/Tile.js_.html @@ -1360,7 +1360,7 @@

Source: D:/wamp/www/phaser/src/tilemap/Tile.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/TileSprite.js.html b/docs/TileSprite.js.html index b0c768ef2d..7fb5ca89d8 100644 --- a/docs/TileSprite.js.html +++ b/docs/TileSprite.js.html @@ -1772,7 +1772,7 @@

Source: D:/wamp/www/phaser/src/gameobjects/TileSprite.js< Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Tilemap.js.html b/docs/Tilemap.js.html index 8997e1681c..cf726ca40f 100644 --- a/docs/Tilemap.js.html +++ b/docs/Tilemap.js.html @@ -2857,7 +2857,7 @@

Source: D:/wamp/www/phaser/src/tilemap/Tilemap.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/TilemapLayer.js.html b/docs/TilemapLayer.js.html index 8df819935b..cda39e1b3a 100644 --- a/docs/TilemapLayer.js.html +++ b/docs/TilemapLayer.js.html @@ -2126,7 +2126,7 @@

Source: D:/wamp/www/phaser/src/tilemap/TilemapLayer.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/TilemapParser.js.html b/docs/TilemapParser.js.html index bcf8777cab..e8276d848f 100644 --- a/docs/TilemapParser.js.html +++ b/docs/TilemapParser.js.html @@ -1500,7 +1500,7 @@

Source: D:/wamp/www/phaser/src/tilemap/TilemapParser.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Tileset.js.html b/docs/Tileset.js.html index 6bc66c81e2..ee642b48cf 100644 --- a/docs/Tileset.js.html +++ b/docs/Tileset.js.html @@ -1224,7 +1224,7 @@

Source: D:/wamp/www/phaser/src/tilemap/Tileset.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/TilingSprite.js.html b/docs/TilingSprite.js.html index d00ce0e825..61b7c16a48 100644 --- a/docs/TilingSprite.js.html +++ b/docs/TilingSprite.js.html @@ -1429,7 +1429,7 @@

Source: d:/wamp/www/phaser/src/pixi/extras/TilingSprite.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:30 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:23 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/TiltShiftFilter.js.html b/docs/TiltShiftFilter.js.html index 5b445b358c..0a878904cf 100644 --- a/docs/TiltShiftFilter.js.html +++ b/docs/TiltShiftFilter.js.html @@ -1045,7 +1045,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/TiltShiftFilt Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/TiltShiftXFilter.js.html b/docs/TiltShiftXFilter.js.html index 589ede74fa..a057ddce74 100644 --- a/docs/TiltShiftXFilter.js.html +++ b/docs/TiltShiftXFilter.js.html @@ -1112,7 +1112,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/TiltShiftXFil Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/TiltShiftYFilter.js.html b/docs/TiltShiftYFilter.js.html index a646eb7163..64ed061155 100644 --- a/docs/TiltShiftYFilter.js.html +++ b/docs/TiltShiftYFilter.js.html @@ -1112,7 +1112,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/TiltShiftYFil Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Time.js.html b/docs/Time.js.html index 7bf86827a8..2ee4a18e66 100644 --- a/docs/Time.js.html +++ b/docs/Time.js.html @@ -1479,7 +1479,7 @@

Source: D:/wamp/www/phaser/src/time/Time.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Timer.js.html b/docs/Timer.js.html index 601c520652..2d71d75934 100644 --- a/docs/Timer.js.html +++ b/docs/Timer.js.html @@ -1719,7 +1719,7 @@

Source: D:/wamp/www/phaser/src/time/Timer.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/TimerEvent.js.html b/docs/TimerEvent.js.html index 9bf115b57f..1531936d87 100644 --- a/docs/TimerEvent.js.html +++ b/docs/TimerEvent.js.html @@ -1041,7 +1041,7 @@

Source: D:/wamp/www/phaser/src/time/TimerEvent.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Touch.js.html b/docs/Touch.js.html index 29dc5890ff..74d6a08a0f 100644 --- a/docs/Touch.js.html +++ b/docs/Touch.js.html @@ -1362,7 +1362,7 @@

Source: D:/wamp/www/phaser/src/input/Touch.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Tween.js.html b/docs/Tween.js.html index 82e8aa844a..4bf68616fc 100644 --- a/docs/Tween.js.html +++ b/docs/Tween.js.html @@ -1837,7 +1837,7 @@

Source: D:/wamp/www/phaser/src/tween/Tween.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/TweenData.js.html b/docs/TweenData.js.html index db35a509e8..bb02ad102e 100644 --- a/docs/TweenData.js.html +++ b/docs/TweenData.js.html @@ -1484,7 +1484,7 @@

Source: D:/wamp/www/phaser/src/tween/TweenData.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/TweenManager.js.html b/docs/TweenManager.js.html index 03f9137b41..b24c54bc92 100644 --- a/docs/TweenManager.js.html +++ b/docs/TweenManager.js.html @@ -1100,7 +1100,7 @@

Source: D:/wamp/www/phaser/src/tween/TweenManager.js

{ for (i = 0, len = this._tweens.length; i < len; i++) { - if (obj === this._tweens[i]._object) + if (obj === this._tweens[i].target) { this.remove(this._tweens[i]); } @@ -1108,7 +1108,7 @@

Source: D:/wamp/www/phaser/src/tween/TweenManager.js

for (i = 0, len = this._add.length; i < len; i++) { - if (obj === this._add[i]._object) + if (obj === this._add[i].target) { this.remove(this._add[i]); } @@ -1223,7 +1223,7 @@

Source: D:/wamp/www/phaser/src/tween/TweenManager.js

isTweening: function(object) { return this._tweens.some(function(tween) { - return tween._object === object; + return tween.target === object; }); }, @@ -1310,7 +1310,7 @@

Source: D:/wamp/www/phaser/src/tween/TweenManager.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/TwistFilter.js.html b/docs/TwistFilter.js.html index c54eb35b70..7104028dda 100644 --- a/docs/TwistFilter.js.html +++ b/docs/TwistFilter.js.html @@ -1065,7 +1065,7 @@

Source: d:/wamp/www/phaser/src/pixi/filters/TwistFilter.j Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Utils.js.html b/docs/Utils.js.html index e730ce6a5a..f58dba4d77 100644 --- a/docs/Utils.js.html +++ b/docs/Utils.js.html @@ -1174,7 +1174,7 @@

Source: d:/wamp/www/phaser/src/pixi/utils/Utils.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/Utils.js_.html b/docs/Utils.js_.html index ec6e8ecc56..370a67558c 100644 --- a/docs/Utils.js_.html +++ b/docs/Utils.js_.html @@ -1355,7 +1355,7 @@

Source: D:/wamp/www/phaser/src/utils/Utils.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/VideoTexture.js.html b/docs/VideoTexture.js.html index 741fead9f8..a56749e627 100644 --- a/docs/VideoTexture.js.html +++ b/docs/VideoTexture.js.html @@ -1131,7 +1131,7 @@

Source: d:/wamp/www/phaser/src/pixi/textures/VideoTexture Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/WebGLBlendModeManager.js.html b/docs/WebGLBlendModeManager.js.html index 28a620a77a..1e9b228680 100644 --- a/docs/WebGLBlendModeManager.js.html +++ b/docs/WebGLBlendModeManager.js.html @@ -1021,7 +1021,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/utils Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/WebGLFastSpriteBatch.js.html b/docs/WebGLFastSpriteBatch.js.html index fa1fe5cf04..a16c8949db 100644 --- a/docs/WebGLFastSpriteBatch.js.html +++ b/docs/WebGLFastSpriteBatch.js.html @@ -1391,7 +1391,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/utils Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/WebGLFilterManager.js.html b/docs/WebGLFilterManager.js.html index ea92caf6e3..975de541ca 100644 --- a/docs/WebGLFilterManager.js.html +++ b/docs/WebGLFilterManager.js.html @@ -1413,7 +1413,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/utils Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/WebGLGraphics.js.html b/docs/WebGLGraphics.js.html index 4b3c511ae4..cf4cfddff3 100644 --- a/docs/WebGLGraphics.js.html +++ b/docs/WebGLGraphics.js.html @@ -1854,7 +1854,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/utils Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/WebGLMaskManager.js.html b/docs/WebGLMaskManager.js.html index 5d2e67c381..401bf3c51d 100644 --- a/docs/WebGLMaskManager.js.html +++ b/docs/WebGLMaskManager.js.html @@ -1032,7 +1032,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/utils Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/WebGLRenderer.js.html b/docs/WebGLRenderer.js.html index beb1b6a02b..feaf5e9a71 100644 --- a/docs/WebGLRenderer.js.html +++ b/docs/WebGLRenderer.js.html @@ -1514,7 +1514,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/WebGL Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/WebGLShaderManager.js.html b/docs/WebGLShaderManager.js.html index 215bde26e7..28510ca636 100644 --- a/docs/WebGLShaderManager.js.html +++ b/docs/WebGLShaderManager.js.html @@ -1120,7 +1120,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/utils Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/WebGLShaderUtils.js.html b/docs/WebGLShaderUtils.js.html index 6ac2b31c55..ef7b7dad05 100644 --- a/docs/WebGLShaderUtils.js.html +++ b/docs/WebGLShaderUtils.js.html @@ -1051,7 +1051,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/utils Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/WebGLSpriteBatch.js.html b/docs/WebGLSpriteBatch.js.html index 55299feb08..8e8177072b 100644 --- a/docs/WebGLSpriteBatch.js.html +++ b/docs/WebGLSpriteBatch.js.html @@ -1261,7 +1261,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/utils // color and alpha var tint = sprite.tint; - colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.alpha * 255 << 24); + colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.worldAlpha * 255 << 24); // increment the batchsize this.sprites[this.currentBatchSize++] = sprite; @@ -1597,7 +1597,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/utils Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/WebGLStencilManager.js.html b/docs/WebGLStencilManager.js.html index 2a20c63a61..ddc63da9f7 100644 --- a/docs/WebGLStencilManager.js.html +++ b/docs/WebGLStencilManager.js.html @@ -1257,7 +1257,7 @@

Source: d:/wamp/www/phaser/src/pixi/renderers/webgl/utils Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/World.js.html b/docs/World.js.html index b47d6a2e19..936ad6a0b0 100644 --- a/docs/World.js.html +++ b/docs/World.js.html @@ -2919,7 +2919,7 @@

Source: D:/wamp/www/phaser/src/physics/p2/World.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/World.js_.html b/docs/World.js_.html index 05ee310b8d..570b08522e 100644 --- a/docs/World.js_.html +++ b/docs/World.js_.html @@ -2784,7 +2784,7 @@

Source: D:/wamp/www/phaser/src/physics/arcade/World.js Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/World.js__.html b/docs/World.js__.html index 1972117bf1..878e96e54b 100644 --- a/docs/World.js__.html +++ b/docs/World.js__.html @@ -1571,7 +1571,7 @@

Source: D:/wamp/www/phaser/src/physics/ninja/World.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:31 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:24 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/World.js___.html b/docs/World.js___.html index db5c75cf1e..36e31d91b1 100644 --- a/docs/World.js___.html +++ b/docs/World.js___.html @@ -1302,7 +1302,7 @@

Source: D:/wamp/www/phaser/src/core/World.js

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/classes.list.html b/docs/classes.list.html index 19fe9ab15d..1012bd6247 100644 --- a/docs/classes.list.html +++ b/docs/classes.list.html @@ -2586,7 +2586,7 @@

Namespaces

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/global.html b/docs/global.html index 49205a3eb2..36f9e7e9d2 100644 --- a/docs/global.html +++ b/docs/global.html @@ -1089,7 +1089,7 @@

Type Definitions

Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/index.html b/docs/index.html index 37b3389ebb..8eebb8af8a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -964,9 +964,9 @@
-

Phaser 2.2.0

+

Phaser 2.2.1

Phaser is a fast, free and fun open source game framework for making desktop and mobile browser HTML5 games. It uses Pixi.js internally for fast 2D Canvas and WebGL rendering.

-

Version: 2.2.0 "Bethal" - Released: 3rd December 2014

+

Version: 2.2.1 "Danabar" - Released: 4th December 2014

By Richard Davey, Photon Storm

div

-

Welcome to Phaser and What's new in 2.2.0?

+

Welcome to Phaser and What's new in 2.2.1?

One of the nicest and most surprising things about a truly open-source project like Phaser is that you never know who might jump on for the ride. I've been extremely lucky with the support I've received over the years - fellow developers both fixing bugs and reporting issues, all helping to make Phaser stronger as a result.

But sometimes a single individual can come along and make a substantial difference all on their own. A quick glance at the Change Log for this release will show many different contributors, but one stood out more than any other: Paul Stickney. Thanks to his contributions alone Phaser is now sporting a powerful new Scale Manager, nicely updated API docs and many other fixes and features across the board. The Scale Manager, a core part of any HTML5 game has had its own book published about it: A Guide to the Phaser Scale Manager which is available now.

One of his other major contributions was in updating Signals, the event system used inside Phaser. Before Phaser was creating thousands of Signals in a busy game, most of which sat idle. Now they've gone on a diet in terms of memory consumption and hide behind a proxy causing them to not even be created unless needed. This has cut down on the amount of objects being generated every frame dramatically.

@@ -1004,7 +1004,15 @@

Getting Started Guides

div

Change Log

-

Version 2.2.0 - "Bethal" - 3rd December 2014

+

Version 2.2.1 - "Danabar" - 4th December 2014

+

Bug Fixes

+
    +
  • Fixed Pixi.js issue with alpha not working on any display object.
  • +
  • Fixed TweenManager.isTweening() and .removeFrom() (thanks @jotson #1408)
  • +
  • Added Game.debug reset method for when the debug manager is disabled (thanks @DanielSitarz #1407)
  • +
  • Custom Particle classes that used a BitmapData wouldn't work (thanks @hardalias #1402)
  • +
+

Version 2.2.0 - "Bethal" - 3rd December 2014

New Features

  • Updated to Pixi v2.2.0 - see separate change log entry below.
  • @@ -1269,9 +1277,9 @@

    Bower / NPM

    CDNJS

    Phaser is now available on CDNJS. You can include the following in your html:

    -

    http://cdnjs.cloudflare.com/ajax/libs/phaser/2.2.0/phaser.min.js

    +

    http://cdnjs.cloudflare.com/ajax/libs/phaser/2.2.1/phaser.min.js

    Or if you prefer you can leave the protocol off, so it works via http and https:

    -

    //cdnjs.cloudflare.com/ajax/libs/phaser/2.2.0/phaser.min.js

    +

    //cdnjs.cloudflare.com/ajax/libs/phaser/2.2.1/phaser.min.js

    div

    Requirements

    @@ -1421,7 +1429,7 @@

    License

    Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:26 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/namespaces.list.html b/docs/namespaces.list.html index 2be48c5880..9296952693 100644 --- a/docs/namespaces.list.html +++ b/docs/namespaces.list.html @@ -2586,7 +2586,7 @@

    Namespaces

    Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template. diff --git a/docs/pixi-jsdoc.js.html b/docs/pixi-jsdoc.js.html index 4cb26b821b..30fa5e020d 100644 --- a/docs/pixi-jsdoc.js.html +++ b/docs/pixi-jsdoc.js.html @@ -7417,7 +7417,7 @@

    Source: D:/wamp/www/phaser/docs/pixi-jsdoc.js

    Documentation generated by JSDoc 3.3.0-dev - on Wed Dec 03 2014 10:30:32 GMT-0000 (GMT) using the DocStrap template. + on Thu Dec 04 2014 11:32:25 GMT-0000 (GMT) using the DocStrap template.