From 18acbd96b22a31cb7845e313d77c60ffb3943b33 Mon Sep 17 00:00:00 2001 From: Nathan Kunicki Date: Sun, 14 Feb 2016 01:56:23 +0000 Subject: [PATCH] Fixed addition of velocity to take into account delta --- dist/es5.js | 2392 +-------------------- dist/es5.js.map | 2 +- examples/particles/dist/particles.js | 2505 +--------------------- examples/particles/dist/particles.js.map | 2 +- examples/particles/particles.js | 2 +- src/classes/entity.js | 2 +- 6 files changed, 6 insertions(+), 4899 deletions(-) diff --git a/dist/es5.js b/dist/es5.js index d99a80d..73de75e 100644 --- a/dist/es5.js +++ b/dist/es5.js @@ -1,2392 +1,2 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; -/******/ -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - var _game = __webpack_require__(1); - - var _game2 = _interopRequireDefault(_game); - - var _emitter = __webpack_require__(66); - - var _emitter2 = _interopRequireDefault(_emitter); - - var _entity = __webpack_require__(63); - - var _entity2 = _interopRequireDefault(_entity); - - var _vector2d = __webpack_require__(64); - - var _vector2d2 = _interopRequireDefault(_vector2d); - - var _sprite = __webpack_require__(67); - - var _sprite2 = _interopRequireDefault(_sprite); - - var _rect = __webpack_require__(70); - - var _rect2 = _interopRequireDefault(_rect); - - var _color = __webpack_require__(71); - - var _color2 = _interopRequireDefault(_color); - - var _imageloader = __webpack_require__(68); - - var _imageloader2 = _interopRequireDefault(_imageloader); - - var _keyboardinput = __webpack_require__(65); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Classes = { - Game: _game2.default, - Emitter: _emitter2.default, - Entity: _entity2.default, - Sprite: _sprite2.default, - Rect: _rect2.default, - Vector2D: _vector2d2.default, - Color: _color2.default, - ImageLoader: _imageloader2.default - }; - - var Consts = { - Input: { - Keys: _keyboardinput.KeyConsts - } - }; - - window.MomentumEngine = { - Classes: Classes, - Consts: Consts - }; - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _getPrototypeOf = __webpack_require__(2); - - var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _possibleConstructorReturn2 = __webpack_require__(19); - - var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - - var _inherits2 = __webpack_require__(56); - - var _inherits3 = _interopRequireDefault(_inherits2); - - var _entity = __webpack_require__(63); - - var _entity2 = _interopRequireDefault(_entity); - - var _keyboardinput = __webpack_require__(65); - - var _keyboardinput2 = _interopRequireDefault(_keyboardinput); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Game = function (_Entity) { - (0, _inherits3.default)(Game, _Entity); - - function Game(config) { - (0, _classCallCheck3.default)(this, Game); - // Call entity constructor - - var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Game).call(this)); - - config = config || {}; - config.inputs = config.inputs || {}; - - // Required params - if (config.canvas) { - _this.canvas = config.canvas; - } else { - throw new Error("MomentumEngine.Classes.Game must be constructed with a canvas"); - } - - if (config.width) { - _this.width = config.width; - } else { - throw new Error("MomentumEngine.Classes.Game must be constructed with canvas width"); - } - - if (config.height) { - _this.height = config.height; - } else { - throw new Error("MomentumEngine.Classes.Game must be constructed with canvas height"); - } - - // Optional params - _this.desiredFps = config.desiredFps || 60; - - if (config.fixRatio) { - - var deviceRatio = window.devicePixelRatio, - backingStoreRatio = 0; - - // Unfortunately Ejecta requires calling getContext last, so we cannot get the backingStorePixelRatio. So for Ejecta's case, we set it to 1, and call getContext later. - if (typeof ejecta !== "undefined") { - backingStoreRatio = 1; - } else { - - _this.context = _this.canvas.getContext("2d"); - - backingStoreRatio = _this.context.webkitBackingStorePixelRatio || _this.context.mozBackingStorePixelRatio || _this.context.msBackingStorePixelRatio || _this.context.oBackingStorePixelRatio || _this.context.backingStorePixelRatio || 1; - } - - _this.scale = deviceRatio / backingStoreRatio; - - _this.canvas.width = _this.width * _this.scale; - _this.canvas.height = _this.height * _this.scale; - - _this.canvas.style.width = _this.width + "px"; - _this.canvas.style.height = _this.height + "px"; - - // Call getContext last for Ejecta only. - if (typeof ejecta !== "undefined") { - _this.context = _this.canvas.getContext("2d"); - } - - _this.context.scale(deviceRatio, deviceRatio); - } else { - - _this.canvas.width = _this.width; - _this.canvas.height = _this.height; - - _this.context = _this.canvas.getContext("2d"); - } - - if (typeof _this.context.imageSmoothingEnabled !== "undefined") { - _this.context.imageSmoothingEnabled = config.imageSmoothing || false; - } - - // Initialize defaults - _this.frameCounter = 0; - - _this.inputs = {}; - if (config.inputs.keyboard) { - _this.inputs.keyboard = new _keyboardinput2.default(_this); - } - - _this._game = _this; - _this._lastFrameTimestamp = 0; - _this._wantPause = true; - - return _this; - } - - (0, _createClass3.default)(Game, [{ - key: "step", - value: function step(delta) { - - this.frameCounter++; - - this._updateEntity(delta); - this._renderEntity(); - } - }, { - key: "start", - value: function start() { - - var self = this; // NK: Hate doing this...better way plz? - - if (self._wantPause) { - self._wantPause = false; - } else { - console.log("MomentumEngine.Classes.Game.start called, game instance is already started"); - return false; // Game is already running - } - - self._wantPause = false; - - var requestFrame = function () { - - return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) { - window.setTimeout(callback, 1000 / self.desiredFps); - }; - }(); - - self._lastFrameTimestamp = +new Date(); - self.startTime = self._lastFrameTimestamp; - - var loop = function loop() { - - if (self._wantPause) { - return; - } - - var currentTimestamp = +new Date(), - delta = currentTimestamp - self._lastFrameTimestamp; - - delta = Math.min(delta, 1000 / self.desiredFps); - self._lastFrameTimestamp = currentTimestamp; - - self.step(delta); - - requestFrame(loop); - }; - - loop(); - return true; - } - }, { - key: "pause", - value: function pause() { - - if (!this._wantPause) { - this._wantPause = true; - return true; - } else { - console.log("MomentumEngine.Classes.Game.pause called, game instance is already paused"); - return false; - } - } - }]); - return Game; - }(_entity2.default); - - exports.default = Game; - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(3), __esModule: true }; - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(4); - module.exports = __webpack_require__(10).Object.getPrototypeOf; - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.9 Object.getPrototypeOf(O) - var toObject = __webpack_require__(5); - - __webpack_require__(7)('getPrototypeOf', function($getPrototypeOf){ - return function getPrototypeOf(it){ - return $getPrototypeOf(toObject(it)); - }; - }); - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(6); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 7 */ -/***/ function(module, exports, __webpack_require__) { - - // most Object methods by ES6 should accept primitives - var $export = __webpack_require__(8) - , core = __webpack_require__(10) - , fails = __webpack_require__(13); - module.exports = function(KEY, exec){ - var fn = (core.Object || {})[KEY] || Object[KEY] - , exp = {}; - exp[KEY] = exec(fn); - $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp); - }; - -/***/ }, -/* 8 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(9) - , core = __webpack_require__(10) - , ctx = __webpack_require__(11) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && key in target; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(param){ - return this instanceof C ? new C(param) : C(param); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out; - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - module.exports = $export; - -/***/ }, -/* 9 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '1.2.6'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(12); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 13 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - "use strict"; - - exports.__esModule = true; - - exports.default = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - }; - -/***/ }, -/* 15 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - exports.__esModule = true; - - var _defineProperty = __webpack_require__(16); - - var _defineProperty2 = _interopRequireDefault(_defineProperty); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - (0, _defineProperty2.default)(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - -/***/ }, -/* 16 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(17), __esModule: true }; - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var $ = __webpack_require__(18); - module.exports = function defineProperty(it, key, desc){ - return $.setDesc(it, key, desc); - }; - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - var $Object = Object; - module.exports = { - create: $Object.create, - getProto: $Object.getPrototypeOf, - isEnum: {}.propertyIsEnumerable, - getDesc: $Object.getOwnPropertyDescriptor, - setDesc: $Object.defineProperty, - setDescs: $Object.defineProperties, - getKeys: $Object.keys, - getNames: $Object.getOwnPropertyNames, - getSymbols: $Object.getOwnPropertySymbols, - each: [].forEach - }; - -/***/ }, -/* 19 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - exports.__esModule = true; - - var _typeof2 = __webpack_require__(20); - - var _typeof3 = _interopRequireDefault(_typeof2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = function (self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; - }; - -/***/ }, -/* 20 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - var _typeof = typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === "function" && obj.constructor === _Symbol ? "symbol" : typeof obj; }; - - exports.__esModule = true; - - var _iterator = __webpack_require__(21); - - var _iterator2 = _interopRequireDefault(_iterator); - - var _symbol = __webpack_require__(46); - - var _symbol2 = _interopRequireDefault(_symbol); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); - } : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); - }; - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(22), __esModule: true }; - -/***/ }, -/* 22 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(23); - __webpack_require__(39); - module.exports = __webpack_require__(36)('iterator'); - -/***/ }, -/* 23 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var $at = __webpack_require__(24)(true); - - // 21.1.3.27 String.prototype[@@iterator]() - __webpack_require__(26)(String, 'String', function(iterated){ - this._t = String(iterated); // target - this._i = 0; // next index - // 21.1.5.2.1 %StringIteratorPrototype%.next() - }, function(){ - var O = this._t - , index = this._i - , point; - if(index >= O.length)return {value: undefined, done: true}; - point = $at(O, index); - this._i += point.length; - return {value: point, done: false}; - }); - -/***/ }, -/* 24 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(25) - , defined = __webpack_require__(6); - // true -> String#at - // false -> String#codePointAt - module.exports = function(TO_STRING){ - return function(that, pos){ - var s = String(defined(that)) - , i = toInteger(pos) - , l = s.length - , a, b; - if(i < 0 || i >= l)return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; - }; - -/***/ }, -/* 25 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var LIBRARY = __webpack_require__(27) - , $export = __webpack_require__(8) - , redefine = __webpack_require__(28) - , hide = __webpack_require__(29) - , has = __webpack_require__(32) - , Iterators = __webpack_require__(33) - , $iterCreate = __webpack_require__(34) - , setToStringTag = __webpack_require__(35) - , getProto = __webpack_require__(18).getProto - , ITERATOR = __webpack_require__(36)('iterator') - , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` - , FF_ITERATOR = '@@iterator' - , KEYS = 'keys' - , VALUES = 'values'; - - var returnThis = function(){ return this; }; - - module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ - $iterCreate(Constructor, NAME, next); - var getMethod = function(kind){ - if(!BUGGY && kind in proto)return proto[kind]; - switch(kind){ - case KEYS: return function keys(){ return new Constructor(this, kind); }; - case VALUES: return function values(){ return new Constructor(this, kind); }; - } return function entries(){ return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator' - , DEF_VALUES = DEFAULT == VALUES - , VALUES_BUG = false - , proto = Base.prototype - , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] - , $default = $native || getMethod(DEFAULT) - , methods, key; - // Fix native - if($native){ - var IteratorPrototype = getProto($default.call(new Base)); - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // FF fix - if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); - // fix Array#{values, @@iterator}.name in V8 / FF - if(DEF_VALUES && $native.name !== VALUES){ - VALUES_BUG = true; - $default = function values(){ return $native.call(this); }; - } - } - // Define iterator - if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if(DEFAULT){ - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: !DEF_VALUES ? $default : getMethod('entries') - }; - if(FORCED)for(key in methods){ - if(!(key in proto))redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; - }; - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = true; - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(29); - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - var $ = __webpack_require__(18) - , createDesc = __webpack_require__(30); - module.exports = __webpack_require__(31) ? function(object, key, value){ - return $.setDesc(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 30 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(13)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 32 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - module.exports = {}; - -/***/ }, -/* 34 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var $ = __webpack_require__(18) - , descriptor = __webpack_require__(30) - , setToStringTag = __webpack_require__(35) - , IteratorPrototype = {}; - - // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - __webpack_require__(29)(IteratorPrototype, __webpack_require__(36)('iterator'), function(){ return this; }); - - module.exports = function(Constructor, NAME, next){ - Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)}); - setToStringTag(Constructor, NAME + ' Iterator'); - }; - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - var def = __webpack_require__(18).setDesc - , has = __webpack_require__(32) - , TAG = __webpack_require__(36)('toStringTag'); - - module.exports = function(it, tag, stat){ - if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports, __webpack_require__) { - - var store = __webpack_require__(37)('wks') - , uid = __webpack_require__(38) - , Symbol = __webpack_require__(9).Symbol; - module.exports = function(name){ - return store[name] || (store[name] = - Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name)); - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(9) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(40); - var Iterators = __webpack_require__(33); - Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array; - -/***/ }, -/* 40 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var addToUnscopables = __webpack_require__(41) - , step = __webpack_require__(42) - , Iterators = __webpack_require__(33) - , toIObject = __webpack_require__(43); - - // 22.1.3.4 Array.prototype.entries() - // 22.1.3.13 Array.prototype.keys() - // 22.1.3.29 Array.prototype.values() - // 22.1.3.30 Array.prototype[@@iterator]() - module.exports = __webpack_require__(26)(Array, 'Array', function(iterated, kind){ - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind - // 22.1.5.2.1 %ArrayIteratorPrototype%.next() - }, function(){ - var O = this._t - , kind = this._k - , index = this._i++; - if(!O || index >= O.length){ - this._t = undefined; - return step(1); - } - if(kind == 'keys' )return step(0, index); - if(kind == 'values')return step(0, O[index]); - return step(0, [index, O[index]]); - }, 'values'); - - // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) - Iterators.Arguments = Iterators.Array; - - addToUnscopables('keys'); - addToUnscopables('values'); - addToUnscopables('entries'); - -/***/ }, -/* 41 */ -/***/ function(module, exports) { - - module.exports = function(){ /* empty */ }; - -/***/ }, -/* 42 */ -/***/ function(module, exports) { - - module.exports = function(done, value){ - return {value: value, done: !!done}; - }; - -/***/ }, -/* 43 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(44) - , defined = __webpack_require__(6); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(45); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(47), __esModule: true }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(48); - __webpack_require__(55); - module.exports = __webpack_require__(10).Symbol; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // ECMAScript 6 symbols shim - var $ = __webpack_require__(18) - , global = __webpack_require__(9) - , has = __webpack_require__(32) - , DESCRIPTORS = __webpack_require__(31) - , $export = __webpack_require__(8) - , redefine = __webpack_require__(28) - , $fails = __webpack_require__(13) - , shared = __webpack_require__(37) - , setToStringTag = __webpack_require__(35) - , uid = __webpack_require__(38) - , wks = __webpack_require__(36) - , keyOf = __webpack_require__(49) - , $names = __webpack_require__(50) - , enumKeys = __webpack_require__(51) - , isArray = __webpack_require__(52) - , anObject = __webpack_require__(53) - , toIObject = __webpack_require__(43) - , createDesc = __webpack_require__(30) - , getDesc = $.getDesc - , setDesc = $.setDesc - , _create = $.create - , getNames = $names.get - , $Symbol = global.Symbol - , $JSON = global.JSON - , _stringify = $JSON && $JSON.stringify - , setter = false - , HIDDEN = wks('_hidden') - , isEnum = $.isEnum - , SymbolRegistry = shared('symbol-registry') - , AllSymbols = shared('symbols') - , useNative = typeof $Symbol == 'function' - , ObjectProto = Object.prototype; - - // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var setSymbolDesc = DESCRIPTORS && $fails(function(){ - return _create(setDesc({}, 'a', { - get: function(){ return setDesc(this, 'a', {value: 7}).a; } - })).a != 7; - }) ? function(it, key, D){ - var protoDesc = getDesc(ObjectProto, key); - if(protoDesc)delete ObjectProto[key]; - setDesc(it, key, D); - if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc); - } : setDesc; - - var wrap = function(tag){ - var sym = AllSymbols[tag] = _create($Symbol.prototype); - sym._k = tag; - DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, { - configurable: true, - set: function(value){ - if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - } - }); - return sym; - }; - - var isSymbol = function(it){ - return typeof it == 'symbol'; - }; - - var $defineProperty = function defineProperty(it, key, D){ - if(D && has(AllSymbols, key)){ - if(!D.enumerable){ - if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; - D = _create(D, {enumerable: createDesc(0, false)}); - } return setSymbolDesc(it, key, D); - } return setDesc(it, key, D); - }; - var $defineProperties = function defineProperties(it, P){ - anObject(it); - var keys = enumKeys(P = toIObject(P)) - , i = 0 - , l = keys.length - , key; - while(l > i)$defineProperty(it, key = keys[i++], P[key]); - return it; - }; - var $create = function create(it, P){ - return P === undefined ? _create(it) : $defineProperties(_create(it), P); - }; - var $propertyIsEnumerable = function propertyIsEnumerable(key){ - var E = isEnum.call(this, key); - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] - ? E : true; - }; - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ - var D = getDesc(it = toIObject(it), key); - if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; - return D; - }; - var $getOwnPropertyNames = function getOwnPropertyNames(it){ - var names = getNames(toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key); - return result; - }; - var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ - var names = getNames(toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]); - return result; - }; - var $stringify = function stringify(it){ - if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined - var args = [it] - , i = 1 - , $$ = arguments - , replacer, $replacer; - while($$.length > i)args.push($$[i++]); - replacer = args[1]; - if(typeof replacer == 'function')$replacer = replacer; - if($replacer || !isArray(replacer))replacer = function(key, value){ - if($replacer)value = $replacer.call(this, key, value); - if(!isSymbol(value))return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - }; - var buggyJSON = $fails(function(){ - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; - }); - - // 19.4.1.1 Symbol([description]) - if(!useNative){ - $Symbol = function Symbol(){ - if(isSymbol(this))throw TypeError('Symbol is not a constructor'); - return wrap(uid(arguments.length > 0 ? arguments[0] : undefined)); - }; - redefine($Symbol.prototype, 'toString', function toString(){ - return this._k; - }); - - isSymbol = function(it){ - return it instanceof $Symbol; - }; - - $.create = $create; - $.isEnum = $propertyIsEnumerable; - $.getDesc = $getOwnPropertyDescriptor; - $.setDesc = $defineProperty; - $.setDescs = $defineProperties; - $.getNames = $names.get = $getOwnPropertyNames; - $.getSymbols = $getOwnPropertySymbols; - - if(DESCRIPTORS && !__webpack_require__(27)){ - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - } - - var symbolStatics = { - // 19.4.2.1 Symbol.for(key) - 'for': function(key){ - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(key){ - return keyOf(SymbolRegistry, key); - }, - useSetter: function(){ setter = true; }, - useSimple: function(){ setter = false; } - }; - // 19.4.2.2 Symbol.hasInstance - // 19.4.2.3 Symbol.isConcatSpreadable - // 19.4.2.4 Symbol.iterator - // 19.4.2.6 Symbol.match - // 19.4.2.8 Symbol.replace - // 19.4.2.9 Symbol.search - // 19.4.2.10 Symbol.species - // 19.4.2.11 Symbol.split - // 19.4.2.12 Symbol.toPrimitive - // 19.4.2.13 Symbol.toStringTag - // 19.4.2.14 Symbol.unscopables - $.each.call(( - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' + - 'species,split,toPrimitive,toStringTag,unscopables' - ).split(','), function(it){ - var sym = wks(it); - symbolStatics[it] = useNative ? sym : wrap(sym); - }); - - setter = true; - - $export($export.G + $export.W, {Symbol: $Symbol}); - - $export($export.S, 'Symbol', symbolStatics); - - $export($export.S + $export.F * !useNative, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols - }); - - // 24.3.2 JSON.stringify(value [, replacer [, space]]) - $JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify}); - - // 19.4.3.5 Symbol.prototype[@@toStringTag] - setToStringTag($Symbol, 'Symbol'); - // 20.2.1.9 Math[@@toStringTag] - setToStringTag(Math, 'Math', true); - // 24.3.3 JSON[@@toStringTag] - setToStringTag(global.JSON, 'JSON', true); - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var $ = __webpack_require__(18) - , toIObject = __webpack_require__(43); - module.exports = function(object, el){ - var O = toIObject(object) - , keys = $.getKeys(O) - , length = keys.length - , index = 0 - , key; - while(length > index)if(O[key = keys[index++]] === el)return key; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - var toIObject = __webpack_require__(43) - , getNames = __webpack_require__(18).getNames - , toString = {}.toString; - - var windowNames = typeof window == 'object' && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - - var getWindowNames = function(it){ - try { - return getNames(it); - } catch(e){ - return windowNames.slice(); - } - }; - - module.exports.get = function getOwnPropertyNames(it){ - if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it); - return getNames(toIObject(it)); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // all enumerable object keys, includes symbols - var $ = __webpack_require__(18); - module.exports = function(it){ - var keys = $.getKeys(it) - , getSymbols = $.getSymbols; - if(getSymbols){ - var symbols = getSymbols(it) - , isEnum = $.isEnum - , i = 0 - , key; - while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key); - } - return keys; - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.2.2 IsArray(argument) - var cof = __webpack_require__(45); - module.exports = Array.isArray || function(arg){ - return cof(arg) == 'Array'; - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(54); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports) { - - - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - exports.__esModule = true; - - var _setPrototypeOf = __webpack_require__(57); - - var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); - - var _create = __webpack_require__(61); - - var _create2 = _interopRequireDefault(_create); - - var _typeof2 = __webpack_require__(20); - - var _typeof3 = _interopRequireDefault(_typeof2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = function (subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass))); - } - - subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(58), __esModule: true }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(59); - module.exports = __webpack_require__(10).Object.setPrototypeOf; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.19 Object.setPrototypeOf(O, proto) - var $export = __webpack_require__(8); - $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(60).set}); - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - // Works with __proto__ only. Old v8 can't work with null proto objects. - /* eslint-disable no-proto */ - var getDesc = __webpack_require__(18).getDesc - , isObject = __webpack_require__(54) - , anObject = __webpack_require__(53); - var check = function(O, proto){ - anObject(O); - if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); - }; - module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line - function(test, buggy, set){ - try { - set = __webpack_require__(11)(Function.call, getDesc(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch(e){ buggy = true; } - return function setPrototypeOf(O, proto){ - check(O, proto); - if(buggy)O.__proto__ = proto; - else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(62), __esModule: true }; - -/***/ }, -/* 62 */ -/***/ function(module, exports, __webpack_require__) { - - var $ = __webpack_require__(18); - module.exports = function create(P, D){ - return $.create(P, D); - }; - -/***/ }, -/* 63 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _vector2d = __webpack_require__(64); - - var _vector2d2 = _interopRequireDefault(_vector2d); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Entity = function () { - function Entity(x, y) { - (0, _classCallCheck3.default)(this, Entity); - - - this.pos = new _vector2d2.default(x || 0, y || 0); - this.velocity = new _vector2d2.default(0, 0); - this.acceleration = new _vector2d2.default(0, 0); - - this.state = {}; - this.children = []; - - this._calculatedPos = this.pos.clone(); - this._lastCalculated = 0; - this._game = null; - this._parent = null; - - this._creationTime = +new Date(); - } - - (0, _createClass3.default)(Entity, [{ - key: "setVelocity", - value: function setVelocity(x, y) { - - if (x instanceof _vector2d2.default) { - this.velocity = x; - } else { - this.velocity.x = x; - this.velocity.y = y; - } - } - }, { - key: "setAcceleration", - value: function setAcceleration(x, y) { - - if (x instanceof _vector2d2.default) { - this.acceleration = x; - } else { - this.acceleration.x = x; - this.acceleration.y = y; - } - } - }, { - key: "createChildEntity", - value: function createChildEntity() { - - var child = new Entity(); - - child._updateGame(this._game); - child._parent = this; - this.children.push(child); - - return child; - } - }, { - key: "addChildEntity", - value: function addChildEntity(child) { - - child._updateGame(this._game); - child._parent = this; - this.children.push(child); - - return child; - } - }, { - key: "detachChildEntity", - value: function detachChildEntity(child) { - - for (var i = 0; i < this.children.length; i++) { - if (this.children[i] == child) { - - this.children.splice(i, 1); - return true; - } - } - - return false; - } - }, { - key: "_preprocess", - value: function _preprocess() { - - // NK: The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _preprocess method all the way back up the tree and continuously adding the results together. - - // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating. - - // When rendering, the draw calls should use this._calculatedPos rather than this.pos in order for the position to be correct. - - if (this._game && this._lastCalculated < this._game.frameCounter) { - - if (this._parent) { - - var parentPos = this._parent._preprocess(); - - this._calculatedPos.x = this.pos.x + parentPos.x; - this._calculatedPos.y = this.pos.y + parentPos.y; - } else { - this._calculatedPos.x = this.pos.x; - this._calculatedPos.y = this.pos.y; - } - - this._lastCalculated = this._game.frameCounter; - } - - return this._calculatedPos; - } - }, { - key: "_updateGame", - value: function _updateGame(game) { - - this._game = game; - - this.children.forEach(function (child) { - child._updateGame(game); - }); - } - }, { - key: "_updateEntity", - value: function _updateEntity(delta) { - - if (this.timeToLive) { - if (+new Date() - this._creationTime > this.timeToLive) { - this._parent.detachChildEntity(this); - } - } - - // Calculate new position based on velocity and acceleration if there's one set - if (this.velocity) { - - if (this.acceleration) { - this.velocity.add(this.acceleration); - } - - this.pos.add(this.velocity); - } - - // If there's an update method, call it - var updated = this.update && this.update(delta); - - if (updated || typeof updated == "undefined" || typeof this.update === "undefined") { - - this.children.forEach(function (child) { - child._updateEntity(delta); - }); - } - } - }, { - key: "_renderEntity", - value: function _renderEntity() { - - this._preprocess(); - - var rendered = this.render && this.render(); - - if (rendered || typeof rendered == "undefined" || typeof this.render === "undefined") { - - this.children.forEach(function (child) { - child._renderEntity(); - }); - } - } - }]); - return Entity; - }(); - - exports.default = Entity; - -/***/ }, -/* 64 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Vector2D = function () { - function Vector2D(x, y) { - (0, _classCallCheck3.default)(this, Vector2D); - - this.x = x || 0;this.y = y || 0; - } - - (0, _createClass3.default)(Vector2D, [{ - key: "invert", - value: function invert() { - this.x = -this.x;this.y = -this.y; - return this; - } - }, { - key: "add", - value: function add(val) { - - if (val instanceof Vector2D) { - this.x += val.x;this.y += val.y; - } else { - this.x += val;this.y += val; - } - - return this; - } - }, { - key: "subtract", - value: function subtract(val) { - - if (val instanceof Vector2D) { - this.x -= val.x;this.y -= val.y; - } else { - this.x -= val;this.y -= val; - } - - return this; - } - }, { - key: "multiply", - value: function multiply(val) { - - if (val instanceof Vector2D) { - this.x *= val.x;this.y *= val.y; - } else { - this.x *= val;this.y *= val; - } - - return this; - } - }, { - key: "divide", - value: function divide(val) { - - if (val instanceof Vector2D) { - this.x /= val.x;this.y /= val.y; - } else { - this.x /= val;this.y /= val; - } - - return this; - } - }, { - key: "equals", - value: function equals(val) { - return this.x == val.x && this.y == val.y; - } - }, { - key: "dot", - value: function dot(val) { - return this.x * val.x + this.y * val.y; - } - }, { - key: "length", - value: function length() { - return Math.sqrt(this.dot(this)); - } - }, { - key: "unit", - value: function unit() { - return this.divide(this.length()); - } - }, { - key: "min", - value: function min() { - return Math.min(this.x, this.y); - } - }, { - key: "max", - value: function max() { - return Math.max(this.x, this.y); - } - }, { - key: "degrees", - value: function degrees() { - return Math.atan(this.x, this.y) * 180; - } - }, { - key: "angle", - value: function angle() { - return Math.atan2(this.x, this.y); - } - }, { - key: "toArray", - value: function toArray() { - return [this.x, this.y]; - } - }, { - key: "toString", - value: function toString() { - return "[" + this.x + "}," + this.y + "}]"; - } - }, { - key: "clone", - value: function clone() { - return new Vector2D(this.x, this.y); - } - }], [{ - key: "fromAngle", - value: function fromAngle(angle, length) { - return new Vector2D(length * Math.cos(angle), length * Math.sin(angle)); - } - }]); - return Vector2D; - }(); - - exports.default = Vector2D; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.KeyConsts = undefined; - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var KeyConsts = { - SPACE: 32, - BACKSPACE: 8, - TAB: 9, - ENTER: 13, - SHIFT: 16, - CTRL: 17, - ALT: 18, - PAUSE: 19, - CAPS_LOCK: 20, - ESCAPE: 27, - PAGE_UP: 33, - PAGE_DOWN: 34, - END: 35, - HOME: 36, - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40, - INSERT: 45, - DELETE: 46, - NUM_0: 48, - NUM_1: 49, - NUM_2: 50, - NUM_3: 51, - NUM_4: 52, - NUM_5: 53, - NUM_6: 54, - NUM_7: 55, - NUM_8: 56, - NUM_9: 57, - CHAR_A: 65, - CHAR_B: 66, - CHAR_C: 67, - CHAR_D: 68, - CHAR_E: 69, - CHAR_F: 70, - CHAR_G: 71, - CHAR_H: 72, - CHAR_I: 73, - CHAR_J: 74, - CHAR_K: 75, - CHAR_L: 76, - CHAR_M: 77, - CHAR_N: 78, - CHAR_O: 79, - CHAR_P: 80, - CHAR_Q: 81, - CHAR_R: 82, - CHAR_S: 83, - CHAR_T: 84, - CHAR_U: 85, - CHAR_V: 86, - CHAR_W: 87, - CHAR_X: 88, - CHAR_Y: 89, - CHAR_Z: 90, - NUM_PAD_0: 96, - NUM_PAD_1: 97, - NUM_PAD_2: 98, - NUM_PAD_3: 99, - NUM_PAD_4: 100, - NUM_PAD_5: 101, - NUM_PAD_6: 102, - NUM_PAD_7: 103, - NUM_PAD_8: 104, - NUM_PAD_9: 105, - MULTIPLY: 106, - ADD: 107, - SUBTRACT: 109, - DECIMAL: 110, - DIVIDE: 111, - F1: 112, - F2: 113, - F3: 114, - F4: 115, - F5: 116, - F6: 117, - F7: 118, - F8: 119, - F9: 120, - F10: 121, - F11: 122, - F12: 123, - SEMICOLON: 186, - EQUALS: 187, - COMMA: 188, - DASH: 189, - PERIOD: 190, - FORWARD_SLASH: 191, - GRAVE: 192, - OPEN_BRACKET: 219, - BACK_SLASH: 220, - CLOSE_BRACKET: 221, - SINGLE_QUOTE: 222 - }; - - var KeyboardInput = function () { - function KeyboardInput() { - (0, _classCallCheck3.default)(this, KeyboardInput); - - - var self = this; - self._keyState = {}; - - window.addEventListener("keydown", function (event) { - self._keyDownHandler(event); - }, false); - - window.addEventListener("keyup", function (event) { - self._keyUpHandler(event); - }, false); - } - - (0, _createClass3.default)(KeyboardInput, [{ - key: "isPressed", - value: function isPressed(keyCode) { - return !!this._keyState[keyCode]; - } - }, { - key: "_keyDownHandler", - value: function _keyDownHandler(event) { - this._keyState[event.keyCode] = true; - } - }, { - key: "_keyUpHandler", - value: function _keyUpHandler(event) { - this._keyState[event.keyCode] = false; - } - }]); - return KeyboardInput; - }(); - - exports.default = KeyboardInput; - exports.KeyConsts = KeyConsts; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _getPrototypeOf = __webpack_require__(2); - - var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _possibleConstructorReturn2 = __webpack_require__(19); - - var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - - var _inherits2 = __webpack_require__(56); - - var _inherits3 = _interopRequireDefault(_inherits2); - - var _entity = __webpack_require__(63); - - var _entity2 = _interopRequireDefault(_entity); - - var _vector2d = __webpack_require__(64); - - var _vector2d2 = _interopRequireDefault(_vector2d); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Emitter = function (_Entity) { - (0, _inherits3.default)(Emitter, _Entity); - - function Emitter(x, y, rate, velocity, particle) { - (0, _classCallCheck3.default)(this, Emitter); - - var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Emitter).call(this, x, y)); - - _this.particleVelocity = velocity; - _this.particleClass = particle; - - _this.rate = rate; - _this.emitting = false; - _this.spread = Math.PI; - _this._lastEmitTime = _this._creationTime; - _this._wasEmitting = false; - - _this._particles = []; - - return _this; - } - - (0, _createClass3.default)(Emitter, [{ - key: "setParticleParent", - value: function setParticleParent(entity) { - this._particleParent = entity; - } - }, { - key: "_emit", - value: function _emit() { - - var ParticleClass = this.particleClass, - parent = this._particleParent || this._parent; - - var angle = this.particleVelocity.angle() + this.spread - Math.random() * this.spread * 2, - magnitude = this.particleVelocity.length(), - velocity = _vector2d2.default.fromAngle(angle, magnitude); - - var particle = new ParticleClass(this._calculatedPos.x, this._calculatedPos.y); - particle.velocity = velocity; - - //this._particles.push(particle); - parent.addChildEntity(particle); - } - }, { - key: "_triggerEmissions", - value: function _triggerEmissions() { - - // We prematurely call preprocess so that child particles can spawn from the emitters permission but be children of a different parent - // NK: This might cause a bug where child renders have an incorrect position because preprocess should normally be called after the update function but before the render, here it is before update. We'll see. - this._preprocess(); - - if (this.emitting) { - - var currentTime = +new Date(); - - if (!this._wasEmitting) { - this._wasEmitting = true; - this._lastEmitTime = currentTime; - } - - var emitDelta = currentTime - this._lastEmitTime; - if (emitDelta > this.rate) { - - var emissions = ~ ~(emitDelta / this.rate); - - this._lastEmitTime = currentTime + (emitDelta - this.rate * emissions); - - for (var i = 0; i < emissions; i++) { - this._emit(); - } - } - } else { - this._wasEmitting = false; - } - } - }, { - key: "update", - value: function update() { - this._triggerEmissions(); - } - }]); - return Emitter; - }(_entity2.default); - - exports.default = Emitter; - -/***/ }, -/* 67 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _getPrototypeOf = __webpack_require__(2); - - var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _possibleConstructorReturn2 = __webpack_require__(19); - - var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - - var _inherits2 = __webpack_require__(56); - - var _inherits3 = _interopRequireDefault(_inherits2); - - var _entity = __webpack_require__(63); - - var _entity2 = _interopRequireDefault(_entity); - - var _vector2d = __webpack_require__(64); - - var _vector2d2 = _interopRequireDefault(_vector2d); - - var _imageloader = __webpack_require__(68); - - var _imageloader2 = _interopRequireDefault(_imageloader); - - var _collisionmethods = __webpack_require__(69); - - var _collisionmethods2 = _interopRequireDefault(_collisionmethods); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Sprite = function (_Entity) { - (0, _inherits3.default)(Sprite, _Entity); - - function Sprite(x, y, width, height, image) { - (0, _classCallCheck3.default)(this, Sprite); - - - if (!image instanceof _imageloader2.default) { - throw new Error("MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance"); - } - - var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Sprite).call(this, x, y)); - - _this.size = new _vector2d2.default(width || 0, height || 0); - - _this._image = image; - _this._imagePos = new _vector2d2.default(0, 0); - _this._imageSize = new _vector2d2.default(0, 0); - - return _this; - } - - (0, _createClass3.default)(Sprite, [{ - key: "setImageCoords", - value: function setImageCoords(x, y, width, height) { - - this._imagePos.x = x; - this._imagePos.y = y; - this._imageSize.x = width || 0; - this._imageSize.y = height || 0; - } - }, { - key: "isReady", - value: function isReady() { - return this._image.isLoaded() && !this._image.isError(); - } - }, { - key: "render", - value: function render() { - - if (this.isReady() && this._game) { - - var imageObj = this._image.getImageObj(); - - var subWidth = imageObj.width - this._imagePos.x, - subHeight = imageObj.height - this._imagePos.y; - - this._game.context.drawImage(imageObj, this._imagePos.x, this._imagePos.y, this._imageSize.x || subWidth, this._imageSize.y || subHeight, this._calculatedPos.x, this._calculatedPos.y, this.size.x || subWidth, this.size.y || subHeight); - - return true; - } else { - return false; - } - } - }]); - return Sprite; - }(_entity2.default); - - exports.default = Sprite; - -/***/ }, -/* 68 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var ImageLoader = function () { - function ImageLoader(src) { - var _this = this; - - (0, _classCallCheck3.default)(this, ImageLoader); - - - this._loaded = false; // Default is true, set it to false until the image has loaded - this._error = false; // If the image fails to load, this will contain the reason - - this._imageObj = new Image(); - - this._imageObj.addEventListener("load", function () { - _this._loaded = true; - _this._error = false; - }); - - this._imageObj.addEventListener("_error", function (err) { - _this._loaded = false; - _this._error = err; - }); - - this._imageObj.src = src; - } - - (0, _createClass3.default)(ImageLoader, [{ - key: "getImageObj", - value: function getImageObj() { - - if (this._loaded) { - return this._imageObj; - } else { - return false; - } - } - }, { - key: "isLoaded", - value: function isLoaded() { - return this._loaded; - } - }, { - key: "isError", - value: function isError() { - return this._error; - } - }]); - return ImageLoader; - }(); - - exports.default = ImageLoader; - -/***/ }, -/* 69 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _rect = __webpack_require__(70); - - var _rect2 = _interopRequireDefault(_rect); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var CollisionMethods = function () { - function CollisionMethods() { - (0, _classCallCheck3.default)(this, CollisionMethods); - } - - (0, _createClass3.default)(CollisionMethods, null, [{ - key: "AABB", - value: function AABB(entity1, entity2) { - - if (!entity1 instanceof _rect2.default || !entity2 instanceof _rect2.default) { - throw new Error("AABB collisions can only be checked on these entity types: Rect"); - } - - return entity1.pos.x < entity2.pos.x + entity2.size.x && entity1.pos.x + entity1.size.x > entity2.pos.x && entity1.pos.y < entity2.pos.y + entity2.size.y && entity1.size.y + entity1.pos.y > entity2.pos.y; - } - }]); - return CollisionMethods; - }(); - - exports.default = CollisionMethods; - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _getPrototypeOf = __webpack_require__(2); - - var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _possibleConstructorReturn2 = __webpack_require__(19); - - var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - - var _inherits2 = __webpack_require__(56); - - var _inherits3 = _interopRequireDefault(_inherits2); - - var _entity = __webpack_require__(63); - - var _entity2 = _interopRequireDefault(_entity); - - var _vector2d = __webpack_require__(64); - - var _vector2d2 = _interopRequireDefault(_vector2d); - - var _collisionmethods = __webpack_require__(69); - - var _collisionmethods2 = _interopRequireDefault(_collisionmethods); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Rect = function (_Entity) { - (0, _inherits3.default)(Rect, _Entity); - - function Rect(x, y, width, height, color) { - (0, _classCallCheck3.default)(this, Rect); - - var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Rect).call(this, x, y)); - - _this.size = new _vector2d2.default(width, height); - _this.color = color; - - return _this; - } - - (0, _createClass3.default)(Rect, [{ - key: "isCollidingWith", - value: function isCollidingWith(entity) { - - if (entity instanceof Rect) { - return _collisionmethods2.default.AABB(this, entity); - } - } - }, { - key: "render", - value: function render() { - - if (this._game) { - - this._game.context.fillStyle = this.color.toString(); - this._game.context.fillRect(this._calculatedPos.x, this._calculatedPos.y, this.size.x, this.size.y); - - return true; - } else { - return false; - } - } - }]); - return Rect; - }(_entity2.default); - - exports.default = Rect; - -/***/ }, -/* 71 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Color = function () { - function Color(r, g, b, a) { - (0, _classCallCheck3.default)(this, Color); - - - this.r = r || 0; - this.g = g || 0; - this.b = b || 0; - this.a = a || 1; - } - - (0, _createClass3.default)(Color, [{ - key: "toString", - value: function toString() { - return "rgba(" + this.r + ", " + this.g + ", " + this.b + ", " + this.a + ")"; - } - }, { - key: "toHex", - value: function toHex() { - return "#" + (r << 16 | g << 8 | b).toString(16); - } - }]); - return Color; - }(); - - exports.default = Color; - -/***/ } -/******/ ]); +!function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return t[i].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}var r=n(1),o=i(r),u=n(66),a=i(u),s=n(63),c=i(s),f=n(64),l=i(f),d=n(67),h=i(d),_=n(70),y=i(_),p=n(71),v=i(p),m=n(68),g=i(m),x=n(65),w={Game:o["default"],Emitter:a["default"],Entity:c["default"],Sprite:h["default"],Rect:y["default"],Vector2D:l["default"],Color:v["default"],ImageLoader:g["default"]},b={Input:{Keys:x.KeyConsts}};window.MomentumEngine={Classes:w,Consts:b}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=i(r),u=n(14),a=i(u),s=n(15),c=i(s),f=n(19),l=i(f),d=n(56),h=i(d),_=n(63),y=i(_),p=n(65),v=i(p),m=function(t){function e(t){(0,a["default"])(this,e);var n=(0,l["default"])(this,(0,o["default"])(e).call(this));if(t=t||{},t.inputs=t.inputs||{},!t.canvas)throw new Error("MomentumEngine.Classes.Game must be constructed with a canvas");if(n.canvas=t.canvas,!t.width)throw new Error("MomentumEngine.Classes.Game must be constructed with canvas width");if(n.width=t.width,!t.height)throw new Error("MomentumEngine.Classes.Game must be constructed with canvas height");if(n.height=t.height,n.desiredFps=t.desiredFps||60,t.fixRatio){var i=window.devicePixelRatio,r=0;"undefined"!=typeof ejecta?r=1:(n.context=n.canvas.getContext("2d"),r=n.context.webkitBackingStorePixelRatio||n.context.mozBackingStorePixelRatio||n.context.msBackingStorePixelRatio||n.context.oBackingStorePixelRatio||n.context.backingStorePixelRatio||1),n.scale=i/r,n.canvas.width=n.width*n.scale,n.canvas.height=n.height*n.scale,n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px","undefined"!=typeof ejecta&&(n.context=n.canvas.getContext("2d")),n.context.scale(i,i)}else n.canvas.width=n.width,n.canvas.height=n.height,n.context=n.canvas.getContext("2d");return"undefined"!=typeof n.context.imageSmoothingEnabled&&(n.context.imageSmoothingEnabled=t.imageSmoothing||!1),n.frameCounter=0,n.inputs={},t.inputs.keyboard&&(n.inputs.keyboard=new v["default"](n)),n._game=n,n._lastFrameTimestamp=0,n._wantPause=!0,n}return(0,h["default"])(e,t),(0,c["default"])(e,[{key:"step",value:function(t){this.frameCounter++,this._updateEntity(t),this._renderEntity()}},{key:"start",value:function(){var t=this;if(!t._wantPause)return console.log("MomentumEngine.Classes.Game.start called, game instance is already started"),!1;t._wantPause=!1,t._wantPause=!1;var e=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/t.desiredFps)}}();t._lastFrameTimestamp=+new Date,t.startTime=t._lastFrameTimestamp;var n=function i(){if(!t._wantPause){var n=+new Date,r=n-t._lastFrameTimestamp;r=Math.min(r,1e3/t.desiredFps),t._lastFrameTimestamp=n,t.step(r),e(i)}};return n(),!0}},{key:"pause",value:function(){return this._wantPause?(console.log("MomentumEngine.Classes.Game.pause called, game instance is already paused"),!1):(this._wantPause=!0,!0)}}]),e}(y["default"]);e["default"]=m},function(t,e,n){t.exports={"default":n(3),__esModule:!0}},function(t,e,n){n(4),t.exports=n(10).Object.getPrototypeOf},function(t,e,n){var i=n(5);n(7)("getPrototypeOf",function(t){return function(e){return t(i(e))}})},function(t,e,n){var i=n(6);t.exports=function(t){return Object(i(t))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var i=n(8),r=n(10),o=n(13);t.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],u={};u[t]=e(n),i(i.S+i.F*o(function(){n(1)}),"Object",u)}},function(t,e,n){var i=n(9),r=n(10),o=n(11),u="prototype",a=function(t,e,n){var s,c,f,l=t&a.F,d=t&a.G,h=t&a.S,_=t&a.P,y=t&a.B,p=t&a.W,v=d?r:r[e]||(r[e]={}),m=d?i:h?i[e]:(i[e]||{})[u];d&&(n=e);for(s in n)c=!l&&m&&s in m,c&&s in v||(f=c?m[s]:n[s],v[s]=d&&"function"!=typeof m[s]?n[s]:y&&c?o(f,i):p&&m[s]==f?function(t){var e=function(e){return this instanceof t?new t(e):t(e)};return e[u]=t[u],e}(f):_&&"function"==typeof f?o(Function.call,f):f,_&&((v[u]||(v[u]={}))[s]=f))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,t.exports=a},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n=t.exports={version:"1.2.6"};"number"==typeof __e&&(__e=n)},function(t,e,n){var i=n(12);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){"use strict";e.__esModule=!0,e["default"]=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var r=n(16),o=i(r);e["default"]=function(){function t(t,e){for(var n=0;n=e.length?{value:void 0,done:!0}:(t=i(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){var i=n(25),r=n(6);t.exports=function(t){return function(e,n){var o,u,a=String(r(e)),s=i(n),c=a.length;return 0>s||s>=c?t?"":void 0:(o=a.charCodeAt(s),55296>o||o>56319||s+1===c||(u=a.charCodeAt(s+1))<56320||u>57343?t?a.charAt(s):o:t?a.slice(s,s+2):(o-55296<<10)+(u-56320)+65536)}}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){"use strict";var i=n(27),r=n(8),o=n(28),u=n(29),a=n(32),s=n(33),c=n(34),f=n(35),l=n(18).getProto,d=n(36)("iterator"),h=!([].keys&&"next"in[].keys()),_="@@iterator",y="keys",p="values",v=function(){return this};t.exports=function(t,e,n,m,g,x,w){c(n,e,m);var b,P,E=function(t){if(!h&&t in k)return k[t];switch(t){case y:return function(){return new n(this,t)};case p:return function(){return new n(this,t)}}return function(){return new n(this,t)}},M=e+" Iterator",S=g==p,A=!1,k=t.prototype,C=k[d]||k[_]||g&&k[g],O=C||E(g);if(C){var R=l(O.call(new t));f(R,M,!0),!i&&a(k,_)&&u(R,d,v),S&&C.name!==p&&(A=!0,O=function(){return C.call(this)})}if(i&&!w||!h&&!A&&k[d]||u(k,d,O),s[e]=O,s[M]=v,g)if(b={values:S?O:E(p),keys:x?O:E(y),entries:S?E("entries"):O},w)for(P in b)P in k||o(k,P,b[P]);else r(r.P+r.F*(h||A),e,b);return b}},function(t,e){t.exports=!0},function(t,e,n){t.exports=n(29)},function(t,e,n){var i=n(18),r=n(30);t.exports=n(31)?function(t,e,n){return i.setDesc(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){t.exports=!n(13)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e){t.exports={}},function(t,e,n){"use strict";var i=n(18),r=n(30),o=n(35),u={};n(29)(u,n(36)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=i.create(u,{next:r(1,n)}),o(t,e+" Iterator")}},function(t,e,n){var i=n(18).setDesc,r=n(32),o=n(36)("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(37)("wks"),r=n(38),o=n(9).Symbol;t.exports=function(t){return i[t]||(i[t]=o&&o[t]||(o||r)("Symbol."+t))}},function(t,e,n){var i=n(9),r="__core-js_shared__",o=i[r]||(i[r]={});t.exports=function(t){return o[t]||(o[t]={})}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},function(t,e,n){n(40);var i=n(33);i.NodeList=i.HTMLCollection=i.Array},function(t,e,n){"use strict";var i=n(41),r=n(42),o=n(33),u=n(43);t.exports=n(26)(Array,"Array",function(t,e){this._t=u(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,r(1)):"keys"==e?r(0,n):"values"==e?r(0,t[n]):r(0,[n,t[n]])},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var i=n(44),r=n(6);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(45);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){t.exports={"default":n(47),__esModule:!0}},function(t,e,n){n(48),n(55),t.exports=n(10).Symbol},function(t,e,n){"use strict";var i=n(18),r=n(9),o=n(32),u=n(31),a=n(8),s=n(28),c=n(13),f=n(37),l=n(35),d=n(38),h=n(36),_=n(49),y=n(50),p=n(51),v=n(52),m=n(53),g=n(43),x=n(30),w=i.getDesc,b=i.setDesc,P=i.create,E=y.get,M=r.Symbol,S=r.JSON,A=S&&S.stringify,k=!1,C=h("_hidden"),O=i.isEnum,R=f("symbol-registry"),D=f("symbols"),j="function"==typeof M,N=Object.prototype,T=u&&c(function(){return 7!=P(b({},"a",{get:function(){return b(this,"a",{value:7}).a}})).a})?function(t,e,n){var i=w(N,e);i&&delete N[e],b(t,e,n),i&&t!==N&&b(N,e,i)}:b,H=function(t){var e=D[t]=P(M.prototype);return e._k=t,u&&k&&T(N,t,{configurable:!0,set:function(e){o(this,C)&&o(this[C],t)&&(this[C][t]=!1),T(this,t,x(1,e))}}),e},F=function(t){return"symbol"==typeof t},U=function(t,e,n){return n&&o(D,e)?(n.enumerable?(o(t,C)&&t[C][e]&&(t[C][e]=!1),n=P(n,{enumerable:x(0,!1)})):(o(t,C)||b(t,C,x(1,{})),t[C][e]=!0),T(t,e,n)):b(t,e,n)},L=function(t,e){m(t);for(var n,i=p(e=g(e)),r=0,o=i.length;o>r;)U(t,n=i[r++],e[n]);return t},I=function(t,e){return void 0===e?P(t):L(P(t),e)},B=function(t){var e=O.call(this,t);return e||!o(this,t)||!o(D,t)||o(this,C)&&this[C][t]?e:!0},G=function(t,e){var n=w(t=g(t),e);return!n||!o(D,e)||o(t,C)&&t[C][e]||(n.enumerable=!0),n},z=function(t){for(var e,n=E(g(t)),i=[],r=0;n.length>r;)o(D,e=n[r++])||e==C||i.push(e);return i},K=function(t){for(var e,n=E(g(t)),i=[],r=0;n.length>r;)o(D,e=n[r++])&&i.push(D[e]);return i},W=function(t){if(void 0!==t&&!F(t)){for(var e,n,i=[t],r=1,o=arguments;o.length>r;)i.push(o[r++]);return e=i[1],"function"==typeof e&&(n=e),(n||!v(e))&&(e=function(t,e){return n&&(e=n.call(this,t,e)),F(e)?void 0:e}),i[1]=e,A.apply(S,i)}},V=c(function(){var t=M();return"[null]"!=A([t])||"{}"!=A({a:t})||"{}"!=A(Object(t))});j||(M=function(){if(F(this))throw TypeError("Symbol is not a constructor");return H(d(arguments.length>0?arguments[0]:void 0))},s(M.prototype,"toString",function(){return this._k}),F=function(t){return t instanceof M},i.create=I,i.isEnum=B,i.getDesc=G,i.setDesc=U,i.setDescs=L,i.getNames=y.get=z,i.getSymbols=K,u&&!n(27)&&s(N,"propertyIsEnumerable",B,!0));var q={"for":function(t){return o(R,t+="")?R[t]:R[t]=M(t)},keyFor:function(t){return _(R,t)},useSetter:function(){k=!0},useSimple:function(){k=!1}};i.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(t){var e=h(t);q[t]=j?e:H(e)}),k=!0,a(a.G+a.W,{Symbol:M}),a(a.S,"Symbol",q),a(a.S+a.F*!j,"Object",{create:I,defineProperty:U,defineProperties:L,getOwnPropertyDescriptor:G,getOwnPropertyNames:z,getOwnPropertySymbols:K}),S&&a(a.S+a.F*(!j||V),"JSON",{stringify:W}),l(M,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e,n){var i=n(18),r=n(43);t.exports=function(t,e){for(var n,o=r(t),u=i.getKeys(o),a=u.length,s=0;a>s;)if(o[n=u[s++]]===e)return n}},function(t,e,n){var i=n(43),r=n(18).getNames,o={}.toString,u="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return r(t)}catch(e){return u.slice()}};t.exports.get=function(t){return u&&"[object Window]"==o.call(t)?a(t):r(i(t))}},function(t,e,n){var i=n(18);t.exports=function(t){var e=i.getKeys(t),n=i.getSymbols;if(n)for(var r,o=n(t),u=i.isEnum,a=0;o.length>a;)u.call(t,r=o[a++])&&e.push(r);return e}},function(t,e,n){var i=n(45);t.exports=Array.isArray||function(t){return"Array"==i(t)}},function(t,e,n){var i=n(54);t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var r=n(57),o=i(r),u=n(61),a=i(u),s=n(20),c=i(s);e["default"]=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof e?"undefined":(0,c["default"])(e)));t.prototype=(0,a["default"])(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(o["default"]?(0,o["default"])(t,e):t.__proto__=e)}},function(t,e,n){t.exports={"default":n(58),__esModule:!0}},function(t,e,n){n(59),t.exports=n(10).Object.setPrototypeOf},function(t,e,n){var i=n(8);i(i.S,"Object",{setPrototypeOf:n(60).set})},function(t,e,n){var i=n(18).getDesc,r=n(54),o=n(53),u=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{r=n(11)(Function.call,i(Object.prototype,"__proto__").set,2),r(t,[]),e=!(t instanceof Array)}catch(o){e=!0}return function(t,n){return u(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:u}},function(t,e,n){t.exports={"default":n(62),__esModule:!0}},function(t,e,n){var i=n(18);t.exports=function(t,e){return i.create(t,e)}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(14),o=i(r),u=n(15),a=i(u),s=n(64),c=i(s),f=function(){function t(e,n){(0,o["default"])(this,t),this.pos=new c["default"](e||0,n||0),this.velocity=new c["default"](0,0),this.acceleration=new c["default"](0,0),this.state={},this.children=[],this._calculatedPos=this.pos.clone(),this._lastCalculated=0,this._game=null,this._parent=null,this._creationTime=+new Date}return(0,a["default"])(t,[{key:"setVelocity",value:function(t,e){t instanceof c["default"]?this.velocity=t:(this.velocity.x=t,this.velocity.y=e)}},{key:"setAcceleration",value:function(t,e){t instanceof c["default"]?this.acceleration=t:(this.acceleration.x=t,this.acceleration.y=e)}},{key:"createChildEntity",value:function(){var e=new t;return e._updateGame(this._game),e._parent=this,this.children.push(e),e}},{key:"addChildEntity",value:function(t){return t._updateGame(this._game),t._parent=this,this.children.push(t),t}},{key:"detachChildEntity",value:function(t){for(var e=0;ethis.timeToLive&&this._parent.detachChildEntity(this),this.velocity&&(this.acceleration&&this.velocity.add(this.acceleration),this.pos.add(this.velocity.clone().multiply(t)));var e=this.update&&this.update(t);(e||"undefined"==typeof e||"undefined"==typeof this.update)&&this.children.forEach(function(e){e._updateEntity(t)})}},{key:"_renderEntity",value:function(){this._preprocess();var t=this.render&&this.render();(t||"undefined"==typeof t||"undefined"==typeof this.render)&&this.children.forEach(function(t){t._renderEntity()})}}]),t}();e["default"]=f},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(14),o=i(r),u=n(15),a=i(u),s=function(){function t(e,n){(0,o["default"])(this,t),this.x=e||0,this.y=n||0}return(0,a["default"])(t,[{key:"invert",value:function(){return this.x=-this.x,this.y=-this.y,this}},{key:"add",value:function(e){return e instanceof t?(this.x+=e.x,this.y+=e.y):(this.x+=e,this.y+=e),this}},{key:"subtract",value:function(e){return e instanceof t?(this.x-=e.x,this.y-=e.y):(this.x-=e,this.y-=e),this}},{key:"multiply",value:function(e){return e instanceof t?(this.x*=e.x,this.y*=e.y):(this.x*=e,this.y*=e),this}},{key:"divide",value:function(e){return e instanceof t?(this.x/=e.x,this.y/=e.y):(this.x/=e,this.y/=e),this}},{key:"equals",value:function(t){return this.x==t.x&&this.y==t.y}},{key:"dot",value:function(t){return this.x*t.x+this.y*t.y}},{key:"length",value:function(){return Math.sqrt(this.dot(this))}},{key:"unit",value:function(){return this.divide(this.length())}},{key:"min",value:function(){return Math.min(this.x,this.y)}},{key:"max",value:function(){return Math.max(this.x,this.y)}},{key:"degrees",value:function(){return 180*Math.atan(this.x,this.y)}},{key:"angle",value:function(){return Math.atan2(this.x,this.y)}},{key:"toArray",value:function(){return[this.x,this.y]}},{key:"toString",value:function(){return"["+this.x+"},"+this.y+"}]"}},{key:"clone",value:function(){return new t(this.x,this.y)}}],[{key:"fromAngle",value:function(e,n){return new t(n*Math.cos(e),n*Math.sin(e))}}]),t}();e["default"]=s},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),e.KeyConsts=void 0;var r=n(14),o=i(r),u=n(15),a=i(u),s={SPACE:32,BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,INSERT:45,DELETE:46,NUM_0:48,NUM_1:49,NUM_2:50,NUM_3:51,NUM_4:52,NUM_5:53,NUM_6:54,NUM_7:55,NUM_8:56,NUM_9:57,CHAR_A:65,CHAR_B:66,CHAR_C:67,CHAR_D:68,CHAR_E:69,CHAR_F:70,CHAR_G:71,CHAR_H:72,CHAR_I:73,CHAR_J:74,CHAR_K:75,CHAR_L:76,CHAR_M:77,CHAR_N:78,CHAR_O:79,CHAR_P:80,CHAR_Q:81,CHAR_R:82,CHAR_S:83,CHAR_T:84,CHAR_U:85,CHAR_V:86,CHAR_W:87,CHAR_X:88,CHAR_Y:89,CHAR_Z:90,NUM_PAD_0:96,NUM_PAD_1:97,NUM_PAD_2:98,NUM_PAD_3:99,NUM_PAD_4:100,NUM_PAD_5:101,NUM_PAD_6:102,NUM_PAD_7:103,NUM_PAD_8:104,NUM_PAD_9:105,MULTIPLY:106,ADD:107,SUBTRACT:109,DECIMAL:110,DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,SEMICOLON:186,EQUALS:187,COMMA:188,DASH:189,PERIOD:190,FORWARD_SLASH:191,GRAVE:192,OPEN_BRACKET:219,BACK_SLASH:220,CLOSE_BRACKET:221,SINGLE_QUOTE:222},c=function(){function t(){(0,o["default"])(this,t);var e=this;e._keyState={},window.addEventListener("keydown",function(t){e._keyDownHandler(t)},!1),window.addEventListener("keyup",function(t){e._keyUpHandler(t)},!1)}return(0,a["default"])(t,[{key:"isPressed",value:function(t){return!!this._keyState[t]}},{key:"_keyDownHandler",value:function(t){this._keyState[t.keyCode]=!0}},{key:"_keyUpHandler",value:function(t){this._keyState[t.keyCode]=!1}}]),t}();e["default"]=c,e.KeyConsts=s},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=i(r),u=n(14),a=i(u),s=n(15),c=i(s),f=n(19),l=i(f),d=n(56),h=i(d),_=n(63),y=i(_),p=n(64),v=i(p),m=function(t){function e(t,n,i,r,u){(0,a["default"])(this,e);var s=(0,l["default"])(this,(0,o["default"])(e).call(this,t,n));return s.particleVelocity=r,s.particleClass=u,s.rate=i,s.emitting=!1,s.spread=Math.PI,s._lastEmitTime=s._creationTime,s._wasEmitting=!1,s._particles=[],s}return(0,h["default"])(e,t),(0,c["default"])(e,[{key:"setParticleParent",value:function(t){this._particleParent=t}},{key:"_emit",value:function(){var t=this.particleClass,e=this._particleParent||this._parent,n=this.particleVelocity.angle()+this.spread-Math.random()*this.spread*2,i=this.particleVelocity.length(),r=v["default"].fromAngle(n,i),o=new t(this._calculatedPos.x,this._calculatedPos.y);o.velocity=r,e.addChildEntity(o)}},{key:"_triggerEmissions",value:function(){if(this._preprocess(),this.emitting){var t=+new Date;this._wasEmitting||(this._wasEmitting=!0,this._lastEmitTime=t);var e=t-this._lastEmitTime;if(e>this.rate){var n=~~(e/this.rate);this._lastEmitTime=t+(e-this.rate*n);for(var i=0;n>i;i++)this._emit()}}else this._wasEmitting=!1}},{key:"update",value:function(){this._triggerEmissions()}}]),e}(y["default"]);e["default"]=m},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=i(r),u=n(14),a=i(u),s=n(15),c=i(s),f=n(19),l=i(f),d=n(56),h=i(d),_=n(63),y=i(_),p=n(64),v=i(p),m=n(68),g=i(m),x=n(69),w=(i(x),function(t){function e(t,n,i,r,u){if((0,a["default"])(this,e),!u instanceof g["default"])throw new Error("MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance");var s=(0,l["default"])(this,(0,o["default"])(e).call(this,t,n));return s.size=new v["default"](i||0,r||0),s._image=u,s._imagePos=new v["default"](0,0),s._imageSize=new v["default"](0,0),s}return(0,h["default"])(e,t),(0,c["default"])(e,[{key:"setImageCoords",value:function(t,e,n,i){this._imagePos.x=t,this._imagePos.y=e,this._imageSize.x=n||0,this._imageSize.y=i||0}},{key:"isReady",value:function(){return this._image.isLoaded()&&!this._image.isError()}},{key:"render",value:function(){if(this.isReady()&&this._game){var t=this._image.getImageObj(),e=t.width-this._imagePos.x,n=t.height-this._imagePos.y;return this._game.context.drawImage(t,this._imagePos.x,this._imagePos.y,this._imageSize.x||e,this._imageSize.y||n,this._calculatedPos.x,this._calculatedPos.y,this.size.x||e,this.size.y||n),!0}return!1}}]),e}(y["default"]));e["default"]=w},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(14),o=i(r),u=n(15),a=i(u),s=function(){function t(e){var n=this;(0,o["default"])(this,t),this._loaded=!1,this._error=!1,this._imageObj=new Image,this._imageObj.addEventListener("load",function(){n._loaded=!0,n._error=!1}),this._imageObj.addEventListener("_error",function(t){n._loaded=!1,n._error=t}),this._imageObj.src=e}return(0,a["default"])(t,[{key:"getImageObj",value:function(){return this._loaded?this._imageObj:!1}},{key:"isLoaded",value:function(){return this._loaded}},{key:"isError",value:function(){return this._error}}]),t}();e["default"]=s},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(14),o=i(r),u=n(15),a=i(u),s=n(70),c=i(s),f=function(){function t(){(0,o["default"])(this,t)}return(0,a["default"])(t,null,[{key:"AABB",value:function(t,e){if(!t instanceof c["default"]||!e instanceof c["default"])throw new Error("AABB collisions can only be checked on these entity types: Rect");return t.pos.xe.pos.x&&t.pos.ye.pos.y}}]),t}();e["default"]=f},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=i(r),u=n(14),a=i(u),s=n(15),c=i(s),f=n(19),l=i(f),d=n(56),h=i(d),_=n(63),y=i(_),p=n(64),v=i(p),m=n(69),g=i(m),x=function(t){function e(t,n,i,r,u){(0,a["default"])(this,e);var s=(0,l["default"])(this,(0,o["default"])(e).call(this,t,n));return s.size=new v["default"](i,r),s.color=u,s}return(0,h["default"])(e,t),(0,c["default"])(e,[{key:"isCollidingWith",value:function(t){return t instanceof e?g["default"].AABB(this,t):void 0}},{key:"render",value:function(){return this._game?(this._game.context.fillStyle=this.color.toString(),this._game.context.fillRect(this._calculatedPos.x,this._calculatedPos.y,this.size.x,this.size.y),!0):!1}}]),e}(y["default"]);e["default"]=x},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(14),u=i(o),a=n(15),s=i(a),c=function(){function t(e,n,i,r){(0,u["default"])(this,t),this.r=e||0,this.g=n||0,this.b=i||0,this.a=r||1}return(0,s["default"])(t,[{key:"toString",value:function(){return"rgba("+this.r+", "+this.g+", "+this.b+", "+this.a+")"}},{key:"toHex",value:function(){return"#"+(r<<16|g<<8|b).toString(16)}}]),t}();e["default"]=c}]); //# sourceMappingURL=es5.js.map \ No newline at end of file diff --git a/dist/es5.js.map b/dist/es5.js.map index c9d52bb..3ded28f 100644 --- a/dist/es5.js.map +++ b/dist/es5.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap e78c406e4972b9e8c899","webpack:///./src/es5.js","webpack:///./src/classes/game.js","webpack:///./~/babel-runtime/core-js/object/get-prototype-of.js","webpack:///./~/core-js/library/fn/object/get-prototype-of.js","webpack:///./~/core-js/library/modules/es6.object.get-prototype-of.js","webpack:///./~/core-js/library/modules/$.to-object.js","webpack:///./~/core-js/library/modules/$.defined.js","webpack:///./~/core-js/library/modules/$.object-sap.js","webpack:///./~/core-js/library/modules/$.export.js","webpack:///./~/core-js/library/modules/$.global.js","webpack:///./~/core-js/library/modules/$.core.js","webpack:///./~/core-js/library/modules/$.ctx.js","webpack:///./~/core-js/library/modules/$.a-function.js","webpack:///./~/core-js/library/modules/$.fails.js","webpack:///./~/babel-runtime/helpers/classCallCheck.js","webpack:///./~/babel-runtime/helpers/createClass.js","webpack:///./~/babel-runtime/core-js/object/define-property.js","webpack:///./~/core-js/library/fn/object/define-property.js","webpack:///./~/core-js/library/modules/$.js","webpack:///./~/babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./~/babel-runtime/helpers/typeof.js","webpack:///./~/babel-runtime/core-js/symbol/iterator.js","webpack:///./~/core-js/library/fn/symbol/iterator.js","webpack:///./~/core-js/library/modules/es6.string.iterator.js","webpack:///./~/core-js/library/modules/$.string-at.js","webpack:///./~/core-js/library/modules/$.to-integer.js","webpack:///./~/core-js/library/modules/$.iter-define.js","webpack:///./~/core-js/library/modules/$.library.js","webpack:///./~/core-js/library/modules/$.redefine.js","webpack:///./~/core-js/library/modules/$.hide.js","webpack:///./~/core-js/library/modules/$.property-desc.js","webpack:///./~/core-js/library/modules/$.descriptors.js","webpack:///./~/core-js/library/modules/$.has.js","webpack:///./~/core-js/library/modules/$.iterators.js","webpack:///./~/core-js/library/modules/$.iter-create.js","webpack:///./~/core-js/library/modules/$.set-to-string-tag.js","webpack:///./~/core-js/library/modules/$.wks.js","webpack:///./~/core-js/library/modules/$.shared.js","webpack:///./~/core-js/library/modules/$.uid.js","webpack:///./~/core-js/library/modules/web.dom.iterable.js","webpack:///./~/core-js/library/modules/es6.array.iterator.js","webpack:///./~/core-js/library/modules/$.add-to-unscopables.js","webpack:///./~/core-js/library/modules/$.iter-step.js","webpack:///./~/core-js/library/modules/$.to-iobject.js","webpack:///./~/core-js/library/modules/$.iobject.js","webpack:///./~/core-js/library/modules/$.cof.js","webpack:///./~/babel-runtime/core-js/symbol.js","webpack:///./~/core-js/library/fn/symbol/index.js","webpack:///./~/core-js/library/modules/es6.symbol.js","webpack:///./~/core-js/library/modules/$.keyof.js","webpack:///./~/core-js/library/modules/$.get-names.js","webpack:///./~/core-js/library/modules/$.enum-keys.js","webpack:///./~/core-js/library/modules/$.is-array.js","webpack:///./~/core-js/library/modules/$.an-object.js","webpack:///./~/core-js/library/modules/$.is-object.js","webpack:///./~/babel-runtime/helpers/inherits.js","webpack:///./~/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./~/core-js/library/fn/object/set-prototype-of.js","webpack:///./~/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./~/core-js/library/modules/$.set-proto.js","webpack:///./~/babel-runtime/core-js/object/create.js","webpack:///./~/core-js/library/fn/object/create.js","webpack:///./src/classes/entity.js","webpack:///./src/classes/vector2d.js","webpack:///./src/classes/keyboardinput.js","webpack:///./src/classes/emitter.js","webpack:///./src/classes/sprite.js","webpack:///./src/classes/imageloader.js","webpack:///./src/libs/collisionmethods.js","webpack:///./src/classes/rect.js","webpack:///./src/classes/color.js"],"names":[],"mappings":"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;;;;AClLf,mBAAkB,uD;;;;;;ACAlB;AACA,gE;;;;;;ACDA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA,oDAAmD,OAAO,EAAE;AAC5D,G;;;;;;ACTA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,gEAA+D;AAC/D;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf,0B;;;;;;AC7CA;AACA;AACA;AACA,wCAAuC,gC;;;;;;ACHvC,8BAA6B;AAC7B,sCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACNA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;ACRA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,G;;;;;;AC1BD,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA,G;;;;;;AChBA;;AAEA,uGAAsG,mBAAmB,EAAE,mBAAmB,oGAAoG;;AAElP;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,EAAC;AACD;AACA,G;;;;;;ACpBA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA,sD;;;;;;ACFA;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC,E;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACjEA,uB;;;;;;ACAA,0C;;;;;;ACAA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD,wBAAuB;AACvB;AACA;AACA,G;;;;;;ACHA,qB;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA,G;;;;;;ACZA;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,iE;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,6B;;;;;;ACjCA,6BAA4B,e;;;;;;ACA5B;AACA,WAAU;AACV,G;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA,iD;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA2B;AAC3B,qBAAoB,4BAA4B,SAAS,IAAI;AAC7D,IAAG;AACH,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA8D;AAC9D;AACA,MAAK;AACL;AACA,uBAAsB,iCAAiC;AACvD,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAoD,KAAK,QAAQ,iCAAiC;AAClG,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH,yBAAwB,eAAe,EAAE;AACzC,yBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA,iCAAgC,gBAAgB;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,8EAA6E,sBAAsB;;AAEnG;AACA;AACA;AACA;AACA;AACA,2C;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACTA;AACA;AACA;AACA,mBAAkB;;AAElB;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACbA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,G;;;;;;;;;;;;ACFA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,G;;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","file":"es5.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap e78c406e4972b9e8c899\n **/","\"use strict\";\n\nimport Game from \"./classes/game.js\";\nimport Emitter from \"./classes/emitter.js\";\nimport Entity from \"./classes/entity.js\";\nimport Vector2D from \"./classes/vector2d.js\";\nimport Sprite from \"./classes/sprite.js\";\nimport Rect from \"./classes/rect.js\";\nimport Color from \"./classes/color.js\";\nimport ImageLoader from \"./classes/imageloader.js\";\n\nimport {KeyConsts} from \"./classes/keyboardinput.js\";\n\n\nconst Classes = {\n Game: Game,\n Emitter: Emitter,\n Entity: Entity,\n Sprite: Sprite,\n Rect: Rect,\n Vector2D: Vector2D,\n Color: Color,\n ImageLoader: ImageLoader\n};\n\n\nconst Consts = {\n Input: {\n Keys: KeyConsts\n }\n};\n\n\nwindow.MomentumEngine = {\n Classes: Classes,\n Consts: Consts\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/es5.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport KeyboardInput from \"./keyboardinput.js\";\n\nclass Game extends Entity {\n\n\n constructor (config) {\n\n super(); // Call entity constructor\n config = config || {};\n config.inputs = config.inputs || {};\n\n\n // Required params\n if (config.canvas) {\n this.canvas = config.canvas;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with a canvas\");\n }\n\n if (config.width) {\n this.width = config.width;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas width\");\n }\n\n if (config.height) {\n this.height = config.height;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas height\");\n }\n\n\n // Optional params\n this.desiredFps = config.desiredFps || 60;\n\n if (config.fixRatio) {\n\n let deviceRatio = window.devicePixelRatio,\n backingStoreRatio = 0;\n\n // Unfortunately Ejecta requires calling getContext last, so we cannot get the backingStorePixelRatio. So for Ejecta's case, we set it to 1, and call getContext later.\n if (typeof ejecta !== \"undefined\") {\n backingStoreRatio = 1;\n } else {\n\n this.context = this.canvas.getContext(\"2d\");\n\n backingStoreRatio = this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio || 1;\n\n }\n\n this.scale = deviceRatio / backingStoreRatio;\n\n this.canvas.width = this.width * this.scale;\n this.canvas.height = this.height * this.scale;\n\n this.canvas.style.width = this.width + \"px\";\n this.canvas.style.height = this.height + \"px\";\n\n // Call getContext last for Ejecta only.\n if (typeof ejecta !== \"undefined\") {\n this.context = this.canvas.getContext(\"2d\");\n }\n\n this.context.scale(deviceRatio, deviceRatio);\n\n } else {\n\n this.canvas.width = this.width;\n this.canvas.height = this.height;\n\n this.context = this.canvas.getContext(\"2d\");\n\n }\n\n if (typeof this.context.imageSmoothingEnabled !== \"undefined\") {\n this.context.imageSmoothingEnabled = config.imageSmoothing || false;\n }\n\n\n // Initialize defaults\n this.frameCounter = 0;\n\n this.inputs = {};\n if (config.inputs.keyboard) {\n this.inputs.keyboard = new KeyboardInput(this);\n }\n\n this._game = this;\n this._lastFrameTimestamp = 0;\n this._wantPause = true;\n\n }\n\n\n step (delta) {\n\n this.frameCounter++;\n\n this._updateEntity(delta);\n this._renderEntity();\n\n }\n\n\n start () {\n\n var self = this; // NK: Hate doing this...better way plz?\n\n if (self._wantPause) {\n self._wantPause = false;\n } else {\n console.log(\"MomentumEngine.Classes.Game.start called, game instance is already started\");\n return false; // Game is already running\n }\n\n self._wantPause = false;\n\n let requestFrame = (() => {\n\n return (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n function (callback) {\n window.setTimeout(callback, 1000 / self.desiredFps);\n });\n\n })();\n\n self._lastFrameTimestamp = +(new Date());\n self.startTime = self._lastFrameTimestamp;\n\n var loop = function () {\n\n if (self._wantPause) {\n return;\n }\n\n let currentTimestamp = +(new Date()),\n delta = currentTimestamp - self._lastFrameTimestamp;\n\n delta = Math.min(delta, 1000 / self.desiredFps);\n self._lastFrameTimestamp = currentTimestamp;\n\n self.step(delta);\n\n requestFrame(loop);\n\n };\n\n loop();\n return true;\n\n }\n\n\n pause () {\n\n if (!this._wantPause) {\n this._wantPause = true;\n return true;\n } else {\n console.log(\"MomentumEngine.Classes.Game.pause called, game instance is already paused\");\n return false;\n }\n }\n\n\n}\n\n\nexport default Game;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/game.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/get-prototype-of.js\n ** module id = 2\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.getPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/get-prototype-of.js\n ** module id = 3\n ** module chunks = 0 1\n **/","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./$.to-object');\n\nrequire('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.get-prototype-of.js\n ** module id = 4\n ** module chunks = 0 1\n **/","// 7.1.13 ToObject(argument)\nvar defined = require('./$.defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-object.js\n ** module id = 5\n ** module chunks = 0 1\n **/","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.defined.js\n ** module id = 6\n ** module chunks = 0 1\n **/","// most Object methods by ES6 should accept primitives\nvar $export = require('./$.export')\n , core = require('./$.core')\n , fails = require('./$.fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-sap.js\n ** module id = 7\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , core = require('./$.core')\n , ctx = require('./$.ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && key in target;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(param){\n return this instanceof C ? new C(param) : C(param);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\nmodule.exports = $export;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.export.js\n ** module id = 8\n ** module chunks = 0 1\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.global.js\n ** module id = 9\n ** module chunks = 0 1\n **/","var core = module.exports = {version: '1.2.6'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.core.js\n ** module id = 10\n ** module chunks = 0 1\n **/","// optional / simple context binding\nvar aFunction = require('./$.a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.ctx.js\n ** module id = 11\n ** module chunks = 0 1\n **/","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.a-function.js\n ** module id = 12\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.fails.js\n ** module id = 13\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 14\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 15\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 16\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function defineProperty(it, key, desc){\n return $.setDesc(it, key, desc);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 17\n ** module chunks = 0 1\n **/","var $Object = Object;\nmodule.exports = {\n create: $Object.create,\n getProto: $Object.getPrototypeOf,\n isEnum: {}.propertyIsEnumerable,\n getDesc: $Object.getOwnPropertyDescriptor,\n setDesc: $Object.defineProperty,\n setDescs: $Object.defineProperties,\n getKeys: $Object.keys,\n getNames: $Object.getOwnPropertyNames,\n getSymbols: $Object.getOwnPropertySymbols,\n each: [].forEach\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.js\n ** module id = 18\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/possibleConstructorReturn.js\n ** module id = 19\n ** module chunks = 0 1\n **/","\"use strict\";\n\nvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/typeof.js\n ** module id = 20\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol/iterator.js\n ** module id = 21\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/$.wks')('iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/iterator.js\n ** module id = 22\n ** module chunks = 0 1\n **/","'use strict';\nvar $at = require('./$.string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./$.iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 23\n ** module chunks = 0 1\n **/","var toInteger = require('./$.to-integer')\n , defined = require('./$.defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.string-at.js\n ** module id = 24\n ** module chunks = 0 1\n **/","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-integer.js\n ** module id = 25\n ** module chunks = 0 1\n **/","'use strict';\nvar LIBRARY = require('./$.library')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , hide = require('./$.hide')\n , has = require('./$.has')\n , Iterators = require('./$.iterators')\n , $iterCreate = require('./$.iter-create')\n , setToStringTag = require('./$.set-to-string-tag')\n , getProto = require('./$').getProto\n , ITERATOR = require('./$.wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , methods, key;\n // Fix native\n if($native){\n var IteratorPrototype = getProto($default.call(new Base));\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // FF fix\n if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: !DEF_VALUES ? $default : getMethod('entries')\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-define.js\n ** module id = 26\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.library.js\n ** module id = 27\n ** module chunks = 0 1\n **/","module.exports = require('./$.hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine.js\n ** module id = 28\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , createDesc = require('./$.property-desc');\nmodule.exports = require('./$.descriptors') ? function(object, key, value){\n return $.setDesc(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.hide.js\n ** module id = 29\n ** module chunks = 0 1\n **/","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.property-desc.js\n ** module id = 30\n ** module chunks = 0 1\n **/","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./$.fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.descriptors.js\n ** module id = 31\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.has.js\n ** module id = 32\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iterators.js\n ** module id = 33\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , descriptor = require('./$.property-desc')\n , setToStringTag = require('./$.set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./$.hide')(IteratorPrototype, require('./$.wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-create.js\n ** module id = 34\n ** module chunks = 0 1\n **/","var def = require('./$').setDesc\n , has = require('./$.has')\n , TAG = require('./$.wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-to-string-tag.js\n ** module id = 35\n ** module chunks = 0 1\n **/","var store = require('./$.shared')('wks')\n , uid = require('./$.uid')\n , Symbol = require('./$.global').Symbol;\nmodule.exports = function(name){\n return store[name] || (store[name] =\n Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.wks.js\n ** module id = 36\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.shared.js\n ** module id = 37\n ** module chunks = 0 1\n **/","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.uid.js\n ** module id = 38\n ** module chunks = 0 1\n **/","require('./es6.array.iterator');\nvar Iterators = require('./$.iterators');\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 39\n ** module chunks = 0 1\n **/","'use strict';\nvar addToUnscopables = require('./$.add-to-unscopables')\n , step = require('./$.iter-step')\n , Iterators = require('./$.iterators')\n , toIObject = require('./$.to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./$.iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 40\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.add-to-unscopables.js\n ** module id = 41\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-step.js\n ** module id = 42\n ** module chunks = 0 1\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./$.iobject')\n , defined = require('./$.defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-iobject.js\n ** module id = 43\n ** module chunks = 0 1\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./$.cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iobject.js\n ** module id = 44\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.cof.js\n ** module id = 45\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol.js\n ** module id = 46\n ** module chunks = 0 1\n **/","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nmodule.exports = require('../../modules/$.core').Symbol;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/index.js\n ** module id = 47\n ** module chunks = 0 1\n **/","'use strict';\n// ECMAScript 6 symbols shim\nvar $ = require('./$')\n , global = require('./$.global')\n , has = require('./$.has')\n , DESCRIPTORS = require('./$.descriptors')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , $fails = require('./$.fails')\n , shared = require('./$.shared')\n , setToStringTag = require('./$.set-to-string-tag')\n , uid = require('./$.uid')\n , wks = require('./$.wks')\n , keyOf = require('./$.keyof')\n , $names = require('./$.get-names')\n , enumKeys = require('./$.enum-keys')\n , isArray = require('./$.is-array')\n , anObject = require('./$.an-object')\n , toIObject = require('./$.to-iobject')\n , createDesc = require('./$.property-desc')\n , getDesc = $.getDesc\n , setDesc = $.setDesc\n , _create = $.create\n , getNames = $names.get\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , setter = false\n , HIDDEN = wks('_hidden')\n , isEnum = $.isEnum\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , useNative = typeof $Symbol == 'function'\n , ObjectProto = Object.prototype;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(setDesc({}, 'a', {\n get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = getDesc(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n setDesc(it, key, D);\n if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n} : setDesc;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol.prototype);\n sym._k = tag;\n DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: function(value){\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n }\n });\n return sym;\n};\n\nvar isSymbol = function(it){\n return typeof it == 'symbol';\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(D && has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return setDesc(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key);\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n var D = getDesc(it = toIObject(it), key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n return result;\n};\nvar $stringify = function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , $$ = arguments\n , replacer, $replacer;\n while($$.length > i)args.push($$[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n};\nvar buggyJSON = $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n});\n\n// 19.4.1.1 Symbol([description])\nif(!useNative){\n $Symbol = function Symbol(){\n if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n };\n redefine($Symbol.prototype, 'toString', function toString(){\n return this._k;\n });\n\n isSymbol = function(it){\n return it instanceof $Symbol;\n };\n\n $.create = $create;\n $.isEnum = $propertyIsEnumerable;\n $.getDesc = $getOwnPropertyDescriptor;\n $.setDesc = $defineProperty;\n $.setDescs = $defineProperties;\n $.getNames = $names.get = $getOwnPropertyNames;\n $.getSymbols = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./$.library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n}\n\nvar symbolStatics = {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n return keyOf(SymbolRegistry, key);\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n};\n// 19.4.2.2 Symbol.hasInstance\n// 19.4.2.3 Symbol.isConcatSpreadable\n// 19.4.2.4 Symbol.iterator\n// 19.4.2.6 Symbol.match\n// 19.4.2.8 Symbol.replace\n// 19.4.2.9 Symbol.search\n// 19.4.2.10 Symbol.species\n// 19.4.2.11 Symbol.split\n// 19.4.2.12 Symbol.toPrimitive\n// 19.4.2.13 Symbol.toStringTag\n// 19.4.2.14 Symbol.unscopables\n$.each.call((\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n 'species,split,toPrimitive,toStringTag,unscopables'\n).split(','), function(it){\n var sym = wks(it);\n symbolStatics[it] = useNative ? sym : wrap(sym);\n});\n\nsetter = true;\n\n$export($export.G + $export.W, {Symbol: $Symbol});\n\n$export($export.S, 'Symbol', symbolStatics);\n\n$export($export.S + $export.F * !useNative, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.symbol.js\n ** module id = 48\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , toIObject = require('./$.to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = $.getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.keyof.js\n ** module id = 49\n ** module chunks = 0 1\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./$.to-iobject')\n , getNames = require('./$').getNames\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return getNames(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.get = function getOwnPropertyNames(it){\n if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n return getNames(toIObject(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.get-names.js\n ** module id = 50\n ** module chunks = 0 1\n **/","// all enumerable object keys, includes symbols\nvar $ = require('./$');\nmodule.exports = function(it){\n var keys = $.getKeys(it)\n , getSymbols = $.getSymbols;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = $.isEnum\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n }\n return keys;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.enum-keys.js\n ** module id = 51\n ** module chunks = 0 1\n **/","// 7.2.2 IsArray(argument)\nvar cof = require('./$.cof');\nmodule.exports = Array.isArray || function(arg){\n return cof(arg) == 'Array';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array.js\n ** module id = 52\n ** module chunks = 0 1\n **/","var isObject = require('./$.is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.an-object.js\n ** module id = 53\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-object.js\n ** module id = 54\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/inherits.js\n ** module id = 56\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/set-prototype-of.js\n ** module id = 57\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.setPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/set-prototype-of.js\n ** module id = 58\n ** module chunks = 0 1\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./$.export');\n$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.set-prototype-of.js\n ** module id = 59\n ** module chunks = 0 1\n **/","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar getDesc = require('./$').getDesc\n , isObject = require('./$.is-object')\n , anObject = require('./$.an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-proto.js\n ** module id = 60\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/create.js\n ** module id = 61\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/create.js\n ** module id = 62\n ** module chunks = 0 1\n **/","\"use strict\";\n\nimport Vector2D from \"./vector2d.js\";\n\nclass Entity {\n\n\n constructor (x, y) {\n\n this.pos = new Vector2D(x || 0, y || 0);\n this.velocity = new Vector2D(0, 0);\n this.acceleration = new Vector2D(0, 0);\n\n this.state = {};\n this.children = [];\n\n this._calculatedPos = this.pos.clone();\n this._lastCalculated = 0;\n this._game = null;\n this._parent = null;\n\n this._creationTime = +(new Date());\n\n }\n\n\n setVelocity (x, y) {\n\n if (x instanceof Vector2D) {\n this.velocity = x;\n } else {\n this.velocity.x = x;\n this.velocity.y = y;\n }\n\n }\n\n\n setAcceleration (x, y) {\n\n if (x instanceof Vector2D) {\n this.acceleration = x;\n } else {\n this.acceleration.x = x;\n this.acceleration.y = y;\n }\n\n }\n\n\n createChildEntity () {\n\n let child = new Entity();\n\n child._updateGame(this._game);\n child._parent = this;\n this.children.push(child);\n\n return child;\n\n }\n\n\n addChildEntity (child) {\n\n child._updateGame(this._game);\n child._parent = this;\n this.children.push(child);\n\n return child;\n\n }\n\n\n detachChildEntity (child) {\n\n for (let i = 0; i < this.children.length; i++) {\n if (this.children[i] == child) {\n\n this.children.splice(i, 1);\n return true;\n\n }\n }\n\n return false;\n\n }\n\n\n _preprocess () {\n\n // NK: The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _preprocess method all the way back up the tree and continuously adding the results together.\n\n // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating.\n\n // When rendering, the draw calls should use this._calculatedPos rather than this.pos in order for the position to be correct.\n\n if (this._game && this._lastCalculated < this._game.frameCounter) {\n\n if (this._parent) {\n\n let parentPos = this._parent._preprocess();\n\n this._calculatedPos.x = this.pos.x + parentPos.x;\n this._calculatedPos.y = this.pos.y + parentPos.y;\n\n } else {\n this._calculatedPos.x = this.pos.x;\n this._calculatedPos.y = this.pos.y;\n }\n\n this._lastCalculated = this._game.frameCounter;\n\n }\n\n return this._calculatedPos;\n\n }\n\n\n _updateGame (game) {\n\n this._game = game;\n\n this.children.forEach((child) => {\n child._updateGame(game);\n });\n\n }\n\n\n _updateEntity (delta) {\n\n if (this.timeToLive) {\n if (+(new Date()) - this._creationTime > this.timeToLive) {\n this._parent.detachChildEntity(this);\n }\n }\n\n // Calculate new position based on velocity and acceleration if there's one set\n if (this.velocity) {\n\n if (this.acceleration) {\n this.velocity.add(this.acceleration);\n }\n\n this.pos.add(this.velocity);\n\n }\n\n // If there's an update method, call it\n let updated = this.update && this.update(delta);\n\n if (updated || (typeof updated == \"undefined\") || (typeof this.update === \"undefined\")) {\n\n this.children.forEach((child) => {\n child._updateEntity(delta);\n });\n\n }\n\n }\n\n\n _renderEntity () {\n\n this._preprocess();\n\n let rendered = this.render && this.render();\n\n if (rendered || (typeof rendered == \"undefined\") || (typeof this.render === \"undefined\")) {\n\n this.children.forEach((child) => {\n child._renderEntity();\n });\n\n }\n\n }\n\n\n}\n\n\nexport default Entity;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/entity.js\n **/","\"use strict\";\n\nclass Vector2D {\n\n\n constructor (x, y) {\n this.x = x || 0; this.y = y || 0;\n }\n\n\n invert () {\n this.x = -this.x; this.y = -this.y;\n return this;\n }\n\n\n add (val) {\n\n if (val instanceof Vector2D) {\n this.x += val.x; this.y += val.y;\n } else {\n this.x += val; this.y += val;\n }\n\n return this;\n\n }\n\n\n subtract (val) {\n\n if (val instanceof Vector2D) {\n this.x -= val.x; this.y -= val.y;\n } else {\n this.x -= val; this.y -= val;\n }\n\n return this;\n\n }\n\n\n multiply (val) {\n\n if (val instanceof Vector2D) {\n this.x *= val.x; this.y *= val.y;\n } else {\n this.x *= val; this.y *= val;\n }\n\n return this;\n\n }\n\n\n divide (val) {\n\n if (val instanceof Vector2D) {\n this.x /= val.x; this.y /= val.y;\n } else {\n this.x /= val; this.y /= val;\n }\n\n return this;\n\n }\n\n\n equals (val) {\n return (this.x == val.x && this.y == val.y);\n }\n\n\n dot (val) {\n return (this.x * val.x + this.y * val.y);\n }\n\n\n length () {\n return Math.sqrt(this.dot(this));\n }\n\n\n unit () {\n return this.divide(this.length());\n }\n\n\n min () {\n return Math.min(this.x, this.y);\n }\n\n\n max () {\n return Math.max(this.x, this.y);\n }\n\n\n degrees () {\n return (Math.atan(this.x, this.y) * 180);\n }\n\n\n angle () {\n return Math.atan2(this.x, this.y);\n }\n\n\n toArray () {\n return [this.x, this.y];\n }\n\n\n toString () {\n return `[${this.x}},${this.y}}]`;\n }\n\n\n clone () {\n return new Vector2D(this.x, this.y);\n }\n\n\n static fromAngle (angle, length) {\n return new Vector2D(length * Math.cos(angle), length * Math.sin(angle));\n }\n\n\n}\n\n\nexport default Vector2D;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/vector2d.js\n **/","\"use strict\";\n\n\nconst KeyConsts = {\n SPACE: 32,\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n PAUSE: 19,\n CAPS_LOCK: 20,\n ESCAPE: 27,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n INSERT: 45,\n DELETE: 46,\n NUM_0: 48,\n NUM_1: 49,\n NUM_2: 50,\n NUM_3: 51,\n NUM_4: 52,\n NUM_5: 53,\n NUM_6: 54,\n NUM_7: 55,\n NUM_8: 56,\n NUM_9: 57,\n CHAR_A: 65,\n CHAR_B: 66,\n CHAR_C: 67,\n CHAR_D: 68,\n CHAR_E: 69,\n CHAR_F: 70,\n CHAR_G: 71,\n CHAR_H: 72,\n CHAR_I: 73,\n CHAR_J: 74,\n CHAR_K: 75,\n CHAR_L: 76,\n CHAR_M: 77,\n CHAR_N: 78,\n CHAR_O: 79,\n CHAR_P: 80,\n CHAR_Q: 81,\n CHAR_R: 82,\n CHAR_S: 83,\n CHAR_T: 84,\n CHAR_U: 85,\n CHAR_V: 86,\n CHAR_W: 87,\n CHAR_X: 88,\n CHAR_Y: 89,\n CHAR_Z: 90,\n NUM_PAD_0: 96,\n NUM_PAD_1: 97,\n NUM_PAD_2: 98,\n NUM_PAD_3: 99,\n NUM_PAD_4: 100,\n NUM_PAD_5: 101,\n NUM_PAD_6: 102,\n NUM_PAD_7: 103,\n NUM_PAD_8: 104,\n NUM_PAD_9: 105,\n MULTIPLY: 106,\n ADD: 107,\n SUBTRACT: 109,\n DECIMAL: 110,\n DIVIDE: 111,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n SEMICOLON: 186,\n EQUALS: 187,\n COMMA: 188,\n DASH: 189,\n PERIOD: 190,\n FORWARD_SLASH: 191,\n GRAVE: 192,\n OPEN_BRACKET: 219,\n BACK_SLASH: 220,\n CLOSE_BRACKET: 221,\n SINGLE_QUOTE: 222\n};\n\n\nclass KeyboardInput {\n\n\n constructor () {\n\n var self = this;\n self._keyState = {};\n\n window.addEventListener(\"keydown\", (event) => {\n self._keyDownHandler(event);\n }, false);\n\n window.addEventListener(\"keyup\", (event) => {\n self._keyUpHandler(event);\n }, false);\n\n }\n\n\n isPressed (keyCode) {\n return !!this._keyState[keyCode];\n }\n\n\n _keyDownHandler (event) {\n this._keyState[event.keyCode] = true;\n }\n\n\n _keyUpHandler (event) {\n this._keyState[event.keyCode] = false;\n }\n\n\n}\n\n\nexport default KeyboardInput;\nexport {KeyConsts};\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/keyboardinput.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\n\n\nclass Emitter extends Entity {\n\n\n constructor (x, y, rate, velocity, particle) {\n\n super(x, y);\n\n this.particleVelocity = velocity;\n this.particleClass = particle;\n\n this.rate = rate;\n this.emitting = false;\n this.spread = Math.PI;\n this._lastEmitTime = this._creationTime;\n this._wasEmitting = false;\n\n this._particles = [];\n\n }\n\n\n setParticleParent (entity) {\n this._particleParent = entity;\n }\n\n\n _emit () {\n\n let ParticleClass = this.particleClass,\n parent = this._particleParent || this._parent;\n\n let angle = this.particleVelocity.angle() + this.spread - (Math.random() * this.spread * 2),\n magnitude = this.particleVelocity.length(),\n velocity = Vector2D.fromAngle(angle, magnitude);\n\n let particle = new ParticleClass(this._calculatedPos.x, this._calculatedPos.y);\n particle.velocity = velocity;\n\n //this._particles.push(particle);\n parent.addChildEntity(particle);\n\n }\n\n\n _triggerEmissions () {\n\n // We prematurely call preprocess so that child particles can spawn from the emitters permission but be children of a different parent\n // NK: This might cause a bug where child renders have an incorrect position because preprocess should normally be called after the update function but before the render, here it is before update. We'll see.\n this._preprocess();\n\n if (this.emitting) {\n\n let currentTime = +(new Date());\n\n if (!this._wasEmitting) {\n this._wasEmitting = true;\n this._lastEmitTime = currentTime;\n }\n\n let emitDelta = currentTime - this._lastEmitTime;\n if (emitDelta > this.rate) {\n\n let emissions = ~~(emitDelta / this.rate);\n\n this._lastEmitTime = currentTime + (emitDelta - (this.rate * emissions));\n\n for (let i = 0; i < emissions; i++) {\n this._emit();\n }\n\n }\n\n } else {\n this._wasEmitting = false;\n }\n\n }\n\n\n update () {\n this._triggerEmissions();\n }\n\n\n}\n\n\nexport default Emitter;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/emitter.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\nimport ImageLoader from \"./imageloader.js\";\n\nimport CollisionMethods from \"../libs/collisionmethods.js\";\n\n\nclass Sprite extends Entity {\n\n\n constructor (x, y, width, height, image) {\n\n if (!image instanceof ImageLoader) {\n throw new Error(\"MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance\");\n }\n\n super(x, y);\n\n this.size = new Vector2D(width || 0, height || 0);\n\n this._image = image;\n this._imagePos = new Vector2D(0, 0);\n this._imageSize = new Vector2D(0, 0);\n\n }\n\n\n setImageCoords (x, y, width, height) {\n\n this._imagePos.x = x;\n this._imagePos.y = y;\n this._imageSize.x = width || 0;\n this._imageSize.y = height || 0;\n\n }\n\n\n isReady () {\n return (this._image.isLoaded() && !this._image.isError());\n }\n\n\n render () {\n\n if (this.isReady() && this._game) {\n\n let imageObj = this._image.getImageObj();\n\n let subWidth = imageObj.width - this._imagePos.x,\n subHeight = imageObj.height - this._imagePos.y;\n\n this._game.context.drawImage(\n imageObj,\n this._imagePos.x,\n this._imagePos.y,\n this._imageSize.x || subWidth,\n this._imageSize.y || subHeight,\n this._calculatedPos.x,\n this._calculatedPos.y,\n this.size.x || subWidth,\n this.size.y || subHeight\n );\n\n return true;\n\n } else {\n return false;\n }\n\n }\n\n\n}\n\n\nexport default Sprite;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/sprite.js\n **/","\"use strict\";\n\nclass ImageLoader {\n\n\n constructor (src) {\n\n this._loaded = false; // Default is true, set it to false until the image has loaded\n this._error = false; // If the image fails to load, this will contain the reason\n\n this._imageObj = new Image();\n\n this._imageObj.addEventListener(\"load\", () => {\n this._loaded = true;\n this._error = false;\n });\n\n this._imageObj.addEventListener(\"_error\", (err) => {\n this._loaded = false;\n this._error = err;\n });\n\n this._imageObj.src = src;\n\n }\n\n\n getImageObj () {\n\n if (this._loaded) {\n return this._imageObj;\n } else {\n return false;\n }\n\n }\n\n\n isLoaded () {\n return this._loaded;\n }\n\n\n isError () {\n return this._error;\n }\n\n\n}\n\n\nexport default ImageLoader;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/imageloader.js\n **/","import Rect from \"../classes/rect.js\";\n\nclass CollisionMethods {\n\n\n static AABB (entity1, entity2) {\n\n if (!entity1 instanceof Rect || !entity2 instanceof Rect) {\n throw new Error(\"AABB collisions can only be checked on these entity types: Rect\");\n }\n\n return (entity1.pos.x < entity2.pos.x + entity2.size.x &&\n entity1.pos.x + entity1.size.x > entity2.pos.x &&\n entity1.pos.y < entity2.pos.y + entity2.size.y &&\n entity1.size.y + entity1.pos.y > entity2.pos.y);\n\n }\n\n\n}\n\n\nexport default CollisionMethods;\n\n\n/** WEBPACK FOOTER **\n ** ./src/libs/collisionmethods.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\n\nimport CollisionMethods from \"../libs/collisionmethods.js\";\n\n\nclass Rect extends Entity {\n\n\n constructor (x, y, width, height, color) {\n\n super(x, y);\n\n this.size = new Vector2D(width, height);\n this.color = color;\n\n }\n\n\n isCollidingWith (entity) {\n\n if (entity instanceof Rect) {\n return CollisionMethods.AABB(this, entity);\n }\n\n }\n\n\n render () {\n\n if (this._game) {\n\n this._game.context.fillStyle = this.color.toString();\n this._game.context.fillRect(this._calculatedPos.x, this._calculatedPos.y, this.size.x, this.size.y);\n\n return true;\n\n } else {\n return false;\n }\n\n }\n\n\n}\n\n\nexport default Rect;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/rect.js\n **/","\"use strict\";\n\nclass Color {\n\n\n constructor (r, g, b, a) {\n\n this.r = r || 0;\n this.g = g || 0;\n this.b = b || 0;\n this.a = a || 1;\n\n }\n\n\n toString () {\n return `rgba(${this.r}, ${this.g}, ${this.b}, ${this.a})`;\n }\n\n\n toHex () {\n return `#${((r << 16) | (g << 8) | b).toString(16)}`;\n }\n\n\n}\n\n\nexport default Color;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/color.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///es5.js","webpack:///webpack/bootstrap 52cde20b0370da5d4a9a","webpack:///./src/es5.js","webpack:///./src/classes/game.js","webpack:///./~/babel-runtime/core-js/object/get-prototype-of.js","webpack:///./~/core-js/library/fn/object/get-prototype-of.js","webpack:///./~/core-js/library/modules/es6.object.get-prototype-of.js","webpack:///./~/core-js/library/modules/$.to-object.js","webpack:///./~/core-js/library/modules/$.defined.js","webpack:///./~/core-js/library/modules/$.object-sap.js","webpack:///./~/core-js/library/modules/$.export.js","webpack:///./~/core-js/library/modules/$.global.js","webpack:///./~/core-js/library/modules/$.core.js","webpack:///./~/core-js/library/modules/$.ctx.js","webpack:///./~/core-js/library/modules/$.a-function.js","webpack:///./~/core-js/library/modules/$.fails.js","webpack:///./~/babel-runtime/helpers/classCallCheck.js","webpack:///./~/babel-runtime/helpers/createClass.js","webpack:///./~/babel-runtime/core-js/object/define-property.js","webpack:///./~/core-js/library/fn/object/define-property.js","webpack:///./~/core-js/library/modules/$.js","webpack:///./~/babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./~/babel-runtime/helpers/typeof.js","webpack:///./~/babel-runtime/core-js/symbol/iterator.js","webpack:///./~/core-js/library/fn/symbol/iterator.js","webpack:///./~/core-js/library/modules/es6.string.iterator.js","webpack:///./~/core-js/library/modules/$.string-at.js","webpack:///./~/core-js/library/modules/$.to-integer.js","webpack:///./~/core-js/library/modules/$.iter-define.js","webpack:///./~/core-js/library/modules/$.library.js","webpack:///./~/core-js/library/modules/$.redefine.js","webpack:///./~/core-js/library/modules/$.hide.js","webpack:///./~/core-js/library/modules/$.property-desc.js","webpack:///./~/core-js/library/modules/$.descriptors.js","webpack:///./~/core-js/library/modules/$.has.js","webpack:///./~/core-js/library/modules/$.iterators.js","webpack:///./~/core-js/library/modules/$.iter-create.js","webpack:///./~/core-js/library/modules/$.set-to-string-tag.js","webpack:///./~/core-js/library/modules/$.wks.js","webpack:///./~/core-js/library/modules/$.shared.js","webpack:///./~/core-js/library/modules/$.uid.js","webpack:///./~/core-js/library/modules/web.dom.iterable.js","webpack:///./~/core-js/library/modules/es6.array.iterator.js","webpack:///./~/core-js/library/modules/$.add-to-unscopables.js","webpack:///./~/core-js/library/modules/$.iter-step.js","webpack:///./~/core-js/library/modules/$.to-iobject.js","webpack:///./~/core-js/library/modules/$.iobject.js","webpack:///./~/core-js/library/modules/$.cof.js","webpack:///./~/babel-runtime/core-js/symbol.js","webpack:///./~/core-js/library/fn/symbol/index.js","webpack:///./~/core-js/library/modules/es6.symbol.js","webpack:///./~/core-js/library/modules/$.keyof.js","webpack:///./~/core-js/library/modules/$.get-names.js","webpack:///./~/core-js/library/modules/$.enum-keys.js","webpack:///./~/core-js/library/modules/$.is-array.js","webpack:///./~/core-js/library/modules/$.an-object.js","webpack:///./~/core-js/library/modules/$.is-object.js","webpack:///./~/babel-runtime/helpers/inherits.js","webpack:///./~/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./~/core-js/library/fn/object/set-prototype-of.js","webpack:///./~/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./~/core-js/library/modules/$.set-proto.js","webpack:///./~/babel-runtime/core-js/object/create.js","webpack:///./~/core-js/library/fn/object/create.js","webpack:///./src/classes/entity.js","webpack:///./src/classes/vector2d.js","webpack:///./src/classes/keyboardinput.js","webpack:///./src/classes/emitter.js","webpack:///./src/classes/sprite.js","webpack:///./src/classes/imageloader.js","webpack:///./src/libs/collisionmethods.js","webpack:///./src/classes/rect.js","webpack:///./src/classes/color.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","_game","_game2","_emitter","_emitter2","_entity","_entity2","_vector2d","_vector2d2","_sprite","_sprite2","_rect","_rect2","_color","_color2","_imageloader","_imageloader2","_keyboardinput","Classes","Game","Emitter","Entity","Sprite","Rect","Vector2D","Color","ImageLoader","Consts","Input","Keys","KeyConsts","window","MomentumEngine","Object","defineProperty","value","_getPrototypeOf","_getPrototypeOf2","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","_possibleConstructorReturn2","_possibleConstructorReturn3","_inherits2","_inherits3","_keyboardinput2","_Entity","config","this","_this","inputs","canvas","Error","width","height","desiredFps","fixRatio","deviceRatio","devicePixelRatio","backingStoreRatio","ejecta","context","getContext","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","scale","style","imageSmoothingEnabled","imageSmoothing","frameCounter","keyboard","_lastFrameTimestamp","_wantPause","key","delta","_updateEntity","_renderEntity","self","console","log","requestFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","callback","setTimeout","Date","startTime","loop","currentTimestamp","Math","min","step","getPrototypeOf","toObject","$getPrototypeOf","it","defined","undefined","TypeError","$export","core","fails","KEY","exec","fn","exp","S","F","global","ctx","PROTOTYPE","type","name","source","own","out","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","target","C","param","Function","__g","version","__e","aFunction","that","length","a","b","apply","arguments","e","instance","Constructor","_defineProperty","_defineProperty2","defineProperties","props","i","descriptor","enumerable","configurable","writable","protoProps","staticProps","prototype","$","desc","setDesc","$Object","create","getProto","isEnum","propertyIsEnumerable","getDesc","getOwnPropertyDescriptor","setDescs","getKeys","keys","getNames","getOwnPropertyNames","getSymbols","getOwnPropertySymbols","each","forEach","_typeof2","_typeof3","ReferenceError","_typeof","_Symbol","_Symbol$iterator","constructor","_iterator","_iterator2","_symbol","_symbol2","$at","String","iterated","_t","_i","point","O","index","done","toInteger","TO_STRING","pos","s","l","charCodeAt","charAt","slice","ceil","floor","isNaN","LIBRARY","redefine","hide","has","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","next","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","IteratorPrototype","values","entries","createDesc","object","bitmap","get","hasOwnProperty","def","tag","stat","store","uid","Symbol","SHARED","px","random","concat","toString","NodeList","HTMLCollection","Array","addToUnscopables","toIObject","_k","Arguments","IObject","cof","split","DESCRIPTORS","$fails","shared","wks","keyOf","$names","enumKeys","isArray","anObject","_create","$Symbol","$JSON","JSON","_stringify","stringify","setter","HIDDEN","SymbolRegistry","AllSymbols","useNative","ObjectProto","setSymbolDesc","D","protoDesc","wrap","sym","set","isSymbol","$defineProperty","$defineProperties","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","$stringify","replacer","$replacer","args","$$","buggyJSON","symbolStatics","for","keyFor","useSetter","useSimple","el","windowNames","getWindowNames","symbols","arg","isObject","_setPrototypeOf","_setPrototypeOf2","_create2","subClass","superClass","__proto__","setPrototypeOf","check","test","buggy","x","y","velocity","acceleration","state","children","_calculatedPos","clone","_lastCalculated","_parent","_creationTime","child","_updateGame","splice","parentPos","_preprocess","game","timeToLive","detachChildEntity","add","multiply","updated","update","rendered","render","val","sqrt","dot","divide","max","atan","atan2","angle","cos","sin","SPACE","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESCAPE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","INSERT","DELETE","NUM_0","NUM_1","NUM_2","NUM_3","NUM_4","NUM_5","NUM_6","NUM_7","NUM_8","NUM_9","CHAR_A","CHAR_B","CHAR_C","CHAR_D","CHAR_E","CHAR_F","CHAR_G","CHAR_H","CHAR_I","CHAR_J","CHAR_K","CHAR_L","CHAR_M","CHAR_N","CHAR_O","CHAR_P","CHAR_Q","CHAR_R","CHAR_S","CHAR_T","CHAR_U","CHAR_V","CHAR_W","CHAR_X","CHAR_Y","CHAR_Z","NUM_PAD_0","NUM_PAD_1","NUM_PAD_2","NUM_PAD_3","NUM_PAD_4","NUM_PAD_5","NUM_PAD_6","NUM_PAD_7","NUM_PAD_8","NUM_PAD_9","MULTIPLY","ADD","SUBTRACT","DECIMAL","DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","SEMICOLON","EQUALS","COMMA","DASH","PERIOD","FORWARD_SLASH","GRAVE","OPEN_BRACKET","BACK_SLASH","CLOSE_BRACKET","SINGLE_QUOTE","KeyboardInput","_keyState","addEventListener","event","_keyDownHandler","_keyUpHandler","keyCode","rate","particle","particleVelocity","particleClass","emitting","spread","PI","_lastEmitTime","_wasEmitting","_particles","entity","_particleParent","ParticleClass","parent","magnitude","fromAngle","addChildEntity","currentTime","emitDelta","emissions","_emit","_triggerEmissions","_collisionmethods","image","size","_image","_imagePos","_imageSize","isLoaded","isError","isReady","imageObj","getImageObj","subWidth","subHeight","drawImage","src","_loaded","_error","_imageObj","Image","err","CollisionMethods","entity1","entity2","_collisionmethods2","color","AABB","fillStyle","fillRect","r","g"],"mappings":"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","file":"es5.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _game = __webpack_require__(1);\n\t\n\tvar _game2 = _interopRequireDefault(_game);\n\t\n\tvar _emitter = __webpack_require__(66);\n\t\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\t\n\tvar _entity = __webpack_require__(63);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(64);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tvar _sprite = __webpack_require__(67);\n\t\n\tvar _sprite2 = _interopRequireDefault(_sprite);\n\t\n\tvar _rect = __webpack_require__(70);\n\t\n\tvar _rect2 = _interopRequireDefault(_rect);\n\t\n\tvar _color = __webpack_require__(71);\n\t\n\tvar _color2 = _interopRequireDefault(_color);\n\t\n\tvar _imageloader = __webpack_require__(68);\n\t\n\tvar _imageloader2 = _interopRequireDefault(_imageloader);\n\t\n\tvar _keyboardinput = __webpack_require__(65);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Classes = {\n\t Game: _game2.default,\n\t Emitter: _emitter2.default,\n\t Entity: _entity2.default,\n\t Sprite: _sprite2.default,\n\t Rect: _rect2.default,\n\t Vector2D: _vector2d2.default,\n\t Color: _color2.default,\n\t ImageLoader: _imageloader2.default\n\t};\n\t\n\tvar Consts = {\n\t Input: {\n\t Keys: _keyboardinput.KeyConsts\n\t }\n\t};\n\t\n\twindow.MomentumEngine = {\n\t Classes: Classes,\n\t Consts: Consts\n\t};\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(56);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(63);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _keyboardinput = __webpack_require__(65);\n\t\n\tvar _keyboardinput2 = _interopRequireDefault(_keyboardinput);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Game = function (_Entity) {\n\t (0, _inherits3.default)(Game, _Entity);\n\t\n\t function Game(config) {\n\t (0, _classCallCheck3.default)(this, Game);\n\t // Call entity constructor\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Game).call(this));\n\t\n\t config = config || {};\n\t config.inputs = config.inputs || {};\n\t\n\t // Required params\n\t if (config.canvas) {\n\t _this.canvas = config.canvas;\n\t } else {\n\t throw new Error(\"MomentumEngine.Classes.Game must be constructed with a canvas\");\n\t }\n\t\n\t if (config.width) {\n\t _this.width = config.width;\n\t } else {\n\t throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas width\");\n\t }\n\t\n\t if (config.height) {\n\t _this.height = config.height;\n\t } else {\n\t throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas height\");\n\t }\n\t\n\t // Optional params\n\t _this.desiredFps = config.desiredFps || 60;\n\t\n\t if (config.fixRatio) {\n\t\n\t var deviceRatio = window.devicePixelRatio,\n\t backingStoreRatio = 0;\n\t\n\t // Unfortunately Ejecta requires calling getContext last, so we cannot get the backingStorePixelRatio. So for Ejecta's case, we set it to 1, and call getContext later.\n\t if (typeof ejecta !== \"undefined\") {\n\t backingStoreRatio = 1;\n\t } else {\n\t\n\t _this.context = _this.canvas.getContext(\"2d\");\n\t\n\t backingStoreRatio = _this.context.webkitBackingStorePixelRatio || _this.context.mozBackingStorePixelRatio || _this.context.msBackingStorePixelRatio || _this.context.oBackingStorePixelRatio || _this.context.backingStorePixelRatio || 1;\n\t }\n\t\n\t _this.scale = deviceRatio / backingStoreRatio;\n\t\n\t _this.canvas.width = _this.width * _this.scale;\n\t _this.canvas.height = _this.height * _this.scale;\n\t\n\t _this.canvas.style.width = _this.width + \"px\";\n\t _this.canvas.style.height = _this.height + \"px\";\n\t\n\t // Call getContext last for Ejecta only.\n\t if (typeof ejecta !== \"undefined\") {\n\t _this.context = _this.canvas.getContext(\"2d\");\n\t }\n\t\n\t _this.context.scale(deviceRatio, deviceRatio);\n\t } else {\n\t\n\t _this.canvas.width = _this.width;\n\t _this.canvas.height = _this.height;\n\t\n\t _this.context = _this.canvas.getContext(\"2d\");\n\t }\n\t\n\t if (typeof _this.context.imageSmoothingEnabled !== \"undefined\") {\n\t _this.context.imageSmoothingEnabled = config.imageSmoothing || false;\n\t }\n\t\n\t // Initialize defaults\n\t _this.frameCounter = 0;\n\t\n\t _this.inputs = {};\n\t if (config.inputs.keyboard) {\n\t _this.inputs.keyboard = new _keyboardinput2.default(_this);\n\t }\n\t\n\t _this._game = _this;\n\t _this._lastFrameTimestamp = 0;\n\t _this._wantPause = true;\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Game, [{\n\t key: \"step\",\n\t value: function step(delta) {\n\t\n\t this.frameCounter++;\n\t\n\t this._updateEntity(delta);\n\t this._renderEntity();\n\t }\n\t }, {\n\t key: \"start\",\n\t value: function start() {\n\t\n\t var self = this; // NK: Hate doing this...better way plz?\n\t\n\t if (self._wantPause) {\n\t self._wantPause = false;\n\t } else {\n\t console.log(\"MomentumEngine.Classes.Game.start called, game instance is already started\");\n\t return false; // Game is already running\n\t }\n\t\n\t self._wantPause = false;\n\t\n\t var requestFrame = function () {\n\t\n\t return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) {\n\t window.setTimeout(callback, 1000 / self.desiredFps);\n\t };\n\t }();\n\t\n\t self._lastFrameTimestamp = +new Date();\n\t self.startTime = self._lastFrameTimestamp;\n\t\n\t var loop = function loop() {\n\t\n\t if (self._wantPause) {\n\t return;\n\t }\n\t\n\t var currentTimestamp = +new Date(),\n\t delta = currentTimestamp - self._lastFrameTimestamp;\n\t\n\t delta = Math.min(delta, 1000 / self.desiredFps);\n\t self._lastFrameTimestamp = currentTimestamp;\n\t\n\t self.step(delta);\n\t\n\t requestFrame(loop);\n\t };\n\t\n\t loop();\n\t return true;\n\t }\n\t }, {\n\t key: \"pause\",\n\t value: function pause() {\n\t\n\t if (!this._wantPause) {\n\t this._wantPause = true;\n\t return true;\n\t } else {\n\t console.log(\"MomentumEngine.Classes.Game.pause called, game instance is already paused\");\n\t return false;\n\t }\n\t }\n\t }]);\n\t return Game;\n\t}(_entity2.default);\n\t\n\texports.default = Game;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(3), __esModule: true };\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(4);\n\tmodule.exports = __webpack_require__(10).Object.getPrototypeOf;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 Object.getPrototypeOf(O)\n\tvar toObject = __webpack_require__(5);\n\t\n\t__webpack_require__(7)('getPrototypeOf', function($getPrototypeOf){\n\t return function getPrototypeOf(it){\n\t return $getPrototypeOf(toObject(it));\n\t };\n\t});\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(6);\n\tmodule.exports = function(it){\n\t return Object(defined(it));\n\t};\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t// 7.2.1 RequireObjectCoercible(argument)\n\tmodule.exports = function(it){\n\t if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n\t return it;\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// most Object methods by ES6 should accept primitives\n\tvar $export = __webpack_require__(8)\n\t , core = __webpack_require__(10)\n\t , fails = __webpack_require__(13);\n\tmodule.exports = function(KEY, exec){\n\t var fn = (core.Object || {})[KEY] || Object[KEY]\n\t , exp = {};\n\t exp[KEY] = exec(fn);\n\t $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(9)\n\t , core = __webpack_require__(10)\n\t , ctx = __webpack_require__(11)\n\t , PROTOTYPE = 'prototype';\n\t\n\tvar $export = function(type, name, source){\n\t var IS_FORCED = type & $export.F\n\t , IS_GLOBAL = type & $export.G\n\t , IS_STATIC = type & $export.S\n\t , IS_PROTO = type & $export.P\n\t , IS_BIND = type & $export.B\n\t , IS_WRAP = type & $export.W\n\t , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n\t , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n\t , key, own, out;\n\t if(IS_GLOBAL)source = name;\n\t for(key in source){\n\t // contains in native\n\t own = !IS_FORCED && target && key in target;\n\t if(own && key in exports)continue;\n\t // export native or passed\n\t out = own ? target[key] : source[key];\n\t // prevent global pollution for namespaces\n\t exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n\t // bind timers to global for call from export context\n\t : IS_BIND && own ? ctx(out, global)\n\t // wrap global constructors for prevent change them in library\n\t : IS_WRAP && target[key] == out ? (function(C){\n\t var F = function(param){\n\t return this instanceof C ? new C(param) : C(param);\n\t };\n\t F[PROTOTYPE] = C[PROTOTYPE];\n\t return F;\n\t // make static versions for prototype methods\n\t })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n\t if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n\t }\n\t};\n\t// type bitmap\n\t$export.F = 1; // forced\n\t$export.G = 2; // global\n\t$export.S = 4; // static\n\t$export.P = 8; // proto\n\t$export.B = 16; // bind\n\t$export.W = 32; // wrap\n\tmodule.exports = $export;\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\tif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\tvar core = module.exports = {version: '1.2.6'};\n\tif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(12);\n\tmodule.exports = function(fn, that, length){\n\t aFunction(fn);\n\t if(that === undefined)return fn;\n\t switch(length){\n\t case 1: return function(a){\n\t return fn.call(that, a);\n\t };\n\t case 2: return function(a, b){\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function(a, b, c){\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function(/* ...args */){\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n/***/ },\n/* 12 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t return it;\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(exec){\n\t try {\n\t return !!exec();\n\t } catch(e){\n\t return true;\n\t }\n\t};\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\texports.default = function (instance, Constructor) {\n\t if (!(instance instanceof Constructor)) {\n\t throw new TypeError(\"Cannot call a class as a function\");\n\t }\n\t};\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _defineProperty = __webpack_require__(16);\n\t\n\tvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function () {\n\t function defineProperties(target, props) {\n\t for (var i = 0; i < props.length; i++) {\n\t var descriptor = props[i];\n\t descriptor.enumerable = descriptor.enumerable || false;\n\t descriptor.configurable = true;\n\t if (\"value\" in descriptor) descriptor.writable = true;\n\t (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n\t }\n\t }\n\t\n\t return function (Constructor, protoProps, staticProps) {\n\t if (protoProps) defineProperties(Constructor.prototype, protoProps);\n\t if (staticProps) defineProperties(Constructor, staticProps);\n\t return Constructor;\n\t };\n\t}();\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(17), __esModule: true };\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18);\n\tmodule.exports = function defineProperty(it, key, desc){\n\t return $.setDesc(it, key, desc);\n\t};\n\n/***/ },\n/* 18 */\n/***/ function(module, exports) {\n\n\tvar $Object = Object;\n\tmodule.exports = {\n\t create: $Object.create,\n\t getProto: $Object.getPrototypeOf,\n\t isEnum: {}.propertyIsEnumerable,\n\t getDesc: $Object.getOwnPropertyDescriptor,\n\t setDesc: $Object.defineProperty,\n\t setDescs: $Object.defineProperties,\n\t getKeys: $Object.keys,\n\t getNames: $Object.getOwnPropertyNames,\n\t getSymbols: $Object.getOwnPropertySymbols,\n\t each: [].forEach\n\t};\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof2 = __webpack_require__(20);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (self, call) {\n\t if (!self) {\n\t throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n\t }\n\t\n\t return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n\t};\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\t\n\texports.__esModule = true;\n\t\n\tvar _iterator = __webpack_require__(21);\n\t\n\tvar _iterator2 = _interopRequireDefault(_iterator);\n\t\n\tvar _symbol = __webpack_require__(46);\n\t\n\tvar _symbol2 = _interopRequireDefault(_symbol);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n\t return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n\t} : function (obj) {\n\t return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n\t};\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(22), __esModule: true };\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(23);\n\t__webpack_require__(39);\n\tmodule.exports = __webpack_require__(36)('iterator');\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $at = __webpack_require__(24)(true);\n\t\n\t// 21.1.3.27 String.prototype[@@iterator]()\n\t__webpack_require__(26)(String, 'String', function(iterated){\n\t this._t = String(iterated); // target\n\t this._i = 0; // next index\n\t// 21.1.5.2.1 %StringIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , index = this._i\n\t , point;\n\t if(index >= O.length)return {value: undefined, done: true};\n\t point = $at(O, index);\n\t this._i += point.length;\n\t return {value: point, done: false};\n\t});\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(25)\n\t , defined = __webpack_require__(6);\n\t// true -> String#at\n\t// false -> String#codePointAt\n\tmodule.exports = function(TO_STRING){\n\t return function(that, pos){\n\t var s = String(defined(that))\n\t , i = toInteger(pos)\n\t , l = s.length\n\t , a, b;\n\t if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n\t a = s.charCodeAt(i);\n\t return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n\t ? TO_STRING ? s.charAt(i) : a\n\t : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n\t };\n\t};\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\t// 7.1.4 ToInteger\n\tvar ceil = Math.ceil\n\t , floor = Math.floor;\n\tmodule.exports = function(it){\n\t return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n\t};\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar LIBRARY = __webpack_require__(27)\n\t , $export = __webpack_require__(8)\n\t , redefine = __webpack_require__(28)\n\t , hide = __webpack_require__(29)\n\t , has = __webpack_require__(32)\n\t , Iterators = __webpack_require__(33)\n\t , $iterCreate = __webpack_require__(34)\n\t , setToStringTag = __webpack_require__(35)\n\t , getProto = __webpack_require__(18).getProto\n\t , ITERATOR = __webpack_require__(36)('iterator')\n\t , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n\t , FF_ITERATOR = '@@iterator'\n\t , KEYS = 'keys'\n\t , VALUES = 'values';\n\t\n\tvar returnThis = function(){ return this; };\n\t\n\tmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n\t $iterCreate(Constructor, NAME, next);\n\t var getMethod = function(kind){\n\t if(!BUGGY && kind in proto)return proto[kind];\n\t switch(kind){\n\t case KEYS: return function keys(){ return new Constructor(this, kind); };\n\t case VALUES: return function values(){ return new Constructor(this, kind); };\n\t } return function entries(){ return new Constructor(this, kind); };\n\t };\n\t var TAG = NAME + ' Iterator'\n\t , DEF_VALUES = DEFAULT == VALUES\n\t , VALUES_BUG = false\n\t , proto = Base.prototype\n\t , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n\t , $default = $native || getMethod(DEFAULT)\n\t , methods, key;\n\t // Fix native\n\t if($native){\n\t var IteratorPrototype = getProto($default.call(new Base));\n\t // Set @@toStringTag to native iterators\n\t setToStringTag(IteratorPrototype, TAG, true);\n\t // FF fix\n\t if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n\t // fix Array#{values, @@iterator}.name in V8 / FF\n\t if(DEF_VALUES && $native.name !== VALUES){\n\t VALUES_BUG = true;\n\t $default = function values(){ return $native.call(this); };\n\t }\n\t }\n\t // Define iterator\n\t if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n\t hide(proto, ITERATOR, $default);\n\t }\n\t // Plug for library\n\t Iterators[NAME] = $default;\n\t Iterators[TAG] = returnThis;\n\t if(DEFAULT){\n\t methods = {\n\t values: DEF_VALUES ? $default : getMethod(VALUES),\n\t keys: IS_SET ? $default : getMethod(KEYS),\n\t entries: !DEF_VALUES ? $default : getMethod('entries')\n\t };\n\t if(FORCED)for(key in methods){\n\t if(!(key in proto))redefine(proto, key, methods[key]);\n\t } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n\t }\n\t return methods;\n\t};\n\n/***/ },\n/* 27 */\n/***/ function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(29);\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18)\n\t , createDesc = __webpack_require__(30);\n\tmodule.exports = __webpack_require__(31) ? function(object, key, value){\n\t return $.setDesc(object, key, createDesc(1, value));\n\t} : function(object, key, value){\n\t object[key] = value;\n\t return object;\n\t};\n\n/***/ },\n/* 30 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(bitmap, value){\n\t return {\n\t enumerable : !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable : !(bitmap & 4),\n\t value : value\n\t };\n\t};\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Thank's IE8 for his funny defineProperty\n\tmodule.exports = !__webpack_require__(13)(function(){\n\t return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 32 */\n/***/ function(module, exports) {\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\tmodule.exports = function(it, key){\n\t return hasOwnProperty.call(it, key);\n\t};\n\n/***/ },\n/* 33 */\n/***/ function(module, exports) {\n\n\tmodule.exports = {};\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $ = __webpack_require__(18)\n\t , descriptor = __webpack_require__(30)\n\t , setToStringTag = __webpack_require__(35)\n\t , IteratorPrototype = {};\n\t\n\t// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\t__webpack_require__(29)(IteratorPrototype, __webpack_require__(36)('iterator'), function(){ return this; });\n\t\n\tmodule.exports = function(Constructor, NAME, next){\n\t Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n\t setToStringTag(Constructor, NAME + ' Iterator');\n\t};\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar def = __webpack_require__(18).setDesc\n\t , has = __webpack_require__(32)\n\t , TAG = __webpack_require__(36)('toStringTag');\n\t\n\tmodule.exports = function(it, tag, stat){\n\t if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n\t};\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar store = __webpack_require__(37)('wks')\n\t , uid = __webpack_require__(38)\n\t , Symbol = __webpack_require__(9).Symbol;\n\tmodule.exports = function(name){\n\t return store[name] || (store[name] =\n\t Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n\t};\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(9)\n\t , SHARED = '__core-js_shared__'\n\t , store = global[SHARED] || (global[SHARED] = {});\n\tmodule.exports = function(key){\n\t return store[key] || (store[key] = {});\n\t};\n\n/***/ },\n/* 38 */\n/***/ function(module, exports) {\n\n\tvar id = 0\n\t , px = Math.random();\n\tmodule.exports = function(key){\n\t return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(40);\n\tvar Iterators = __webpack_require__(33);\n\tIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar addToUnscopables = __webpack_require__(41)\n\t , step = __webpack_require__(42)\n\t , Iterators = __webpack_require__(33)\n\t , toIObject = __webpack_require__(43);\n\t\n\t// 22.1.3.4 Array.prototype.entries()\n\t// 22.1.3.13 Array.prototype.keys()\n\t// 22.1.3.29 Array.prototype.values()\n\t// 22.1.3.30 Array.prototype[@@iterator]()\n\tmodule.exports = __webpack_require__(26)(Array, 'Array', function(iterated, kind){\n\t this._t = toIObject(iterated); // target\n\t this._i = 0; // next index\n\t this._k = kind; // kind\n\t// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , kind = this._k\n\t , index = this._i++;\n\t if(!O || index >= O.length){\n\t this._t = undefined;\n\t return step(1);\n\t }\n\t if(kind == 'keys' )return step(0, index);\n\t if(kind == 'values')return step(0, O[index]);\n\t return step(0, [index, O[index]]);\n\t}, 'values');\n\t\n\t// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\n\tIterators.Arguments = Iterators.Array;\n\t\n\taddToUnscopables('keys');\n\taddToUnscopables('values');\n\taddToUnscopables('entries');\n\n/***/ },\n/* 41 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(){ /* empty */ };\n\n/***/ },\n/* 42 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(done, value){\n\t return {value: value, done: !!done};\n\t};\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// to indexed object, toObject with fallback for non-array-like ES3 strings\n\tvar IObject = __webpack_require__(44)\n\t , defined = __webpack_require__(6);\n\tmodule.exports = function(it){\n\t return IObject(defined(it));\n\t};\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar cof = __webpack_require__(45);\n\tmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n\t return cof(it) == 'String' ? it.split('') : Object(it);\n\t};\n\n/***/ },\n/* 45 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = function(it){\n\t return toString.call(it).slice(8, -1);\n\t};\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(47), __esModule: true };\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(48);\n\t__webpack_require__(55);\n\tmodule.exports = __webpack_require__(10).Symbol;\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// ECMAScript 6 symbols shim\n\tvar $ = __webpack_require__(18)\n\t , global = __webpack_require__(9)\n\t , has = __webpack_require__(32)\n\t , DESCRIPTORS = __webpack_require__(31)\n\t , $export = __webpack_require__(8)\n\t , redefine = __webpack_require__(28)\n\t , $fails = __webpack_require__(13)\n\t , shared = __webpack_require__(37)\n\t , setToStringTag = __webpack_require__(35)\n\t , uid = __webpack_require__(38)\n\t , wks = __webpack_require__(36)\n\t , keyOf = __webpack_require__(49)\n\t , $names = __webpack_require__(50)\n\t , enumKeys = __webpack_require__(51)\n\t , isArray = __webpack_require__(52)\n\t , anObject = __webpack_require__(53)\n\t , toIObject = __webpack_require__(43)\n\t , createDesc = __webpack_require__(30)\n\t , getDesc = $.getDesc\n\t , setDesc = $.setDesc\n\t , _create = $.create\n\t , getNames = $names.get\n\t , $Symbol = global.Symbol\n\t , $JSON = global.JSON\n\t , _stringify = $JSON && $JSON.stringify\n\t , setter = false\n\t , HIDDEN = wks('_hidden')\n\t , isEnum = $.isEnum\n\t , SymbolRegistry = shared('symbol-registry')\n\t , AllSymbols = shared('symbols')\n\t , useNative = typeof $Symbol == 'function'\n\t , ObjectProto = Object.prototype;\n\t\n\t// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\n\tvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n\t return _create(setDesc({}, 'a', {\n\t get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n\t })).a != 7;\n\t}) ? function(it, key, D){\n\t var protoDesc = getDesc(ObjectProto, key);\n\t if(protoDesc)delete ObjectProto[key];\n\t setDesc(it, key, D);\n\t if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n\t} : setDesc;\n\t\n\tvar wrap = function(tag){\n\t var sym = AllSymbols[tag] = _create($Symbol.prototype);\n\t sym._k = tag;\n\t DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n\t configurable: true,\n\t set: function(value){\n\t if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n\t setSymbolDesc(this, tag, createDesc(1, value));\n\t }\n\t });\n\t return sym;\n\t};\n\t\n\tvar isSymbol = function(it){\n\t return typeof it == 'symbol';\n\t};\n\t\n\tvar $defineProperty = function defineProperty(it, key, D){\n\t if(D && has(AllSymbols, key)){\n\t if(!D.enumerable){\n\t if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n\t it[HIDDEN][key] = true;\n\t } else {\n\t if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n\t D = _create(D, {enumerable: createDesc(0, false)});\n\t } return setSymbolDesc(it, key, D);\n\t } return setDesc(it, key, D);\n\t};\n\tvar $defineProperties = function defineProperties(it, P){\n\t anObject(it);\n\t var keys = enumKeys(P = toIObject(P))\n\t , i = 0\n\t , l = keys.length\n\t , key;\n\t while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n\t return it;\n\t};\n\tvar $create = function create(it, P){\n\t return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n\t};\n\tvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n\t var E = isEnum.call(this, key);\n\t return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n\t ? E : true;\n\t};\n\tvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n\t var D = getDesc(it = toIObject(it), key);\n\t if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n\t return D;\n\t};\n\tvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n\t return result;\n\t};\n\tvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n\t return result;\n\t};\n\tvar $stringify = function stringify(it){\n\t if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n\t var args = [it]\n\t , i = 1\n\t , $$ = arguments\n\t , replacer, $replacer;\n\t while($$.length > i)args.push($$[i++]);\n\t replacer = args[1];\n\t if(typeof replacer == 'function')$replacer = replacer;\n\t if($replacer || !isArray(replacer))replacer = function(key, value){\n\t if($replacer)value = $replacer.call(this, key, value);\n\t if(!isSymbol(value))return value;\n\t };\n\t args[1] = replacer;\n\t return _stringify.apply($JSON, args);\n\t};\n\tvar buggyJSON = $fails(function(){\n\t var S = $Symbol();\n\t // MS Edge converts symbol values to JSON as {}\n\t // WebKit converts symbol values to JSON as null\n\t // V8 throws on boxed symbols\n\t return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n\t});\n\t\n\t// 19.4.1.1 Symbol([description])\n\tif(!useNative){\n\t $Symbol = function Symbol(){\n\t if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n\t return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n\t };\n\t redefine($Symbol.prototype, 'toString', function toString(){\n\t return this._k;\n\t });\n\t\n\t isSymbol = function(it){\n\t return it instanceof $Symbol;\n\t };\n\t\n\t $.create = $create;\n\t $.isEnum = $propertyIsEnumerable;\n\t $.getDesc = $getOwnPropertyDescriptor;\n\t $.setDesc = $defineProperty;\n\t $.setDescs = $defineProperties;\n\t $.getNames = $names.get = $getOwnPropertyNames;\n\t $.getSymbols = $getOwnPropertySymbols;\n\t\n\t if(DESCRIPTORS && !__webpack_require__(27)){\n\t redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n\t }\n\t}\n\t\n\tvar symbolStatics = {\n\t // 19.4.2.1 Symbol.for(key)\n\t 'for': function(key){\n\t return has(SymbolRegistry, key += '')\n\t ? SymbolRegistry[key]\n\t : SymbolRegistry[key] = $Symbol(key);\n\t },\n\t // 19.4.2.5 Symbol.keyFor(sym)\n\t keyFor: function keyFor(key){\n\t return keyOf(SymbolRegistry, key);\n\t },\n\t useSetter: function(){ setter = true; },\n\t useSimple: function(){ setter = false; }\n\t};\n\t// 19.4.2.2 Symbol.hasInstance\n\t// 19.4.2.3 Symbol.isConcatSpreadable\n\t// 19.4.2.4 Symbol.iterator\n\t// 19.4.2.6 Symbol.match\n\t// 19.4.2.8 Symbol.replace\n\t// 19.4.2.9 Symbol.search\n\t// 19.4.2.10 Symbol.species\n\t// 19.4.2.11 Symbol.split\n\t// 19.4.2.12 Symbol.toPrimitive\n\t// 19.4.2.13 Symbol.toStringTag\n\t// 19.4.2.14 Symbol.unscopables\n\t$.each.call((\n\t 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n\t 'species,split,toPrimitive,toStringTag,unscopables'\n\t).split(','), function(it){\n\t var sym = wks(it);\n\t symbolStatics[it] = useNative ? sym : wrap(sym);\n\t});\n\t\n\tsetter = true;\n\t\n\t$export($export.G + $export.W, {Symbol: $Symbol});\n\t\n\t$export($export.S, 'Symbol', symbolStatics);\n\t\n\t$export($export.S + $export.F * !useNative, 'Object', {\n\t // 19.1.2.2 Object.create(O [, Properties])\n\t create: $create,\n\t // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n\t defineProperty: $defineProperty,\n\t // 19.1.2.3 Object.defineProperties(O, Properties)\n\t defineProperties: $defineProperties,\n\t // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n\t getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n\t // 19.1.2.7 Object.getOwnPropertyNames(O)\n\t getOwnPropertyNames: $getOwnPropertyNames,\n\t // 19.1.2.8 Object.getOwnPropertySymbols(O)\n\t getOwnPropertySymbols: $getOwnPropertySymbols\n\t});\n\t\n\t// 24.3.2 JSON.stringify(value [, replacer [, space]])\n\t$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\t\n\t// 19.4.3.5 Symbol.prototype[@@toStringTag]\n\tsetToStringTag($Symbol, 'Symbol');\n\t// 20.2.1.9 Math[@@toStringTag]\n\tsetToStringTag(Math, 'Math', true);\n\t// 24.3.3 JSON[@@toStringTag]\n\tsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18)\n\t , toIObject = __webpack_require__(43);\n\tmodule.exports = function(object, el){\n\t var O = toIObject(object)\n\t , keys = $.getKeys(O)\n\t , length = keys.length\n\t , index = 0\n\t , key;\n\t while(length > index)if(O[key = keys[index++]] === el)return key;\n\t};\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n\tvar toIObject = __webpack_require__(43)\n\t , getNames = __webpack_require__(18).getNames\n\t , toString = {}.toString;\n\t\n\tvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n\t ? Object.getOwnPropertyNames(window) : [];\n\t\n\tvar getWindowNames = function(it){\n\t try {\n\t return getNames(it);\n\t } catch(e){\n\t return windowNames.slice();\n\t }\n\t};\n\t\n\tmodule.exports.get = function getOwnPropertyNames(it){\n\t if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n\t return getNames(toIObject(it));\n\t};\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// all enumerable object keys, includes symbols\n\tvar $ = __webpack_require__(18);\n\tmodule.exports = function(it){\n\t var keys = $.getKeys(it)\n\t , getSymbols = $.getSymbols;\n\t if(getSymbols){\n\t var symbols = getSymbols(it)\n\t , isEnum = $.isEnum\n\t , i = 0\n\t , key;\n\t while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n\t }\n\t return keys;\n\t};\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.2.2 IsArray(argument)\n\tvar cof = __webpack_require__(45);\n\tmodule.exports = Array.isArray || function(arg){\n\t return cof(arg) == 'Array';\n\t};\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(54);\n\tmodule.exports = function(it){\n\t if(!isObject(it))throw TypeError(it + ' is not an object!');\n\t return it;\n\t};\n\n/***/ },\n/* 54 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n/***/ },\n/* 55 */\n/***/ function(module, exports) {\n\n\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _setPrototypeOf = __webpack_require__(57);\n\t\n\tvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\t\n\tvar _create = __webpack_require__(61);\n\t\n\tvar _create2 = _interopRequireDefault(_create);\n\t\n\tvar _typeof2 = __webpack_require__(20);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (subClass, superClass) {\n\t if (typeof superClass !== \"function\" && superClass !== null) {\n\t throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n\t }\n\t\n\t subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n\t constructor: {\n\t value: subClass,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n\t};\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(58), __esModule: true };\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(59);\n\tmodule.exports = __webpack_require__(10).Object.setPrototypeOf;\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.19 Object.setPrototypeOf(O, proto)\n\tvar $export = __webpack_require__(8);\n\t$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(60).set});\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Works with __proto__ only. Old v8 can't work with null proto objects.\n\t/* eslint-disable no-proto */\n\tvar getDesc = __webpack_require__(18).getDesc\n\t , isObject = __webpack_require__(54)\n\t , anObject = __webpack_require__(53);\n\tvar check = function(O, proto){\n\t anObject(O);\n\t if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n\t};\n\tmodule.exports = {\n\t set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n\t function(test, buggy, set){\n\t try {\n\t set = __webpack_require__(11)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n\t set(test, []);\n\t buggy = !(test instanceof Array);\n\t } catch(e){ buggy = true; }\n\t return function setPrototypeOf(O, proto){\n\t check(O, proto);\n\t if(buggy)O.__proto__ = proto;\n\t else set(O, proto);\n\t return O;\n\t };\n\t }({}, false) : undefined),\n\t check: check\n\t};\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(62), __esModule: true };\n\n/***/ },\n/* 62 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18);\n\tmodule.exports = function create(P, D){\n\t return $.create(P, D);\n\t};\n\n/***/ },\n/* 63 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _vector2d = __webpack_require__(64);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Entity = function () {\n\t function Entity(x, y) {\n\t (0, _classCallCheck3.default)(this, Entity);\n\t\n\t\n\t this.pos = new _vector2d2.default(x || 0, y || 0);\n\t this.velocity = new _vector2d2.default(0, 0);\n\t this.acceleration = new _vector2d2.default(0, 0);\n\t\n\t this.state = {};\n\t this.children = [];\n\t\n\t this._calculatedPos = this.pos.clone();\n\t this._lastCalculated = 0;\n\t this._game = null;\n\t this._parent = null;\n\t\n\t this._creationTime = +new Date();\n\t }\n\t\n\t (0, _createClass3.default)(Entity, [{\n\t key: \"setVelocity\",\n\t value: function setVelocity(x, y) {\n\t\n\t if (x instanceof _vector2d2.default) {\n\t this.velocity = x;\n\t } else {\n\t this.velocity.x = x;\n\t this.velocity.y = y;\n\t }\n\t }\n\t }, {\n\t key: \"setAcceleration\",\n\t value: function setAcceleration(x, y) {\n\t\n\t if (x instanceof _vector2d2.default) {\n\t this.acceleration = x;\n\t } else {\n\t this.acceleration.x = x;\n\t this.acceleration.y = y;\n\t }\n\t }\n\t }, {\n\t key: \"createChildEntity\",\n\t value: function createChildEntity() {\n\t\n\t var child = new Entity();\n\t\n\t child._updateGame(this._game);\n\t child._parent = this;\n\t this.children.push(child);\n\t\n\t return child;\n\t }\n\t }, {\n\t key: \"addChildEntity\",\n\t value: function addChildEntity(child) {\n\t\n\t child._updateGame(this._game);\n\t child._parent = this;\n\t this.children.push(child);\n\t\n\t return child;\n\t }\n\t }, {\n\t key: \"detachChildEntity\",\n\t value: function detachChildEntity(child) {\n\t\n\t for (var i = 0; i < this.children.length; i++) {\n\t if (this.children[i] == child) {\n\t\n\t this.children.splice(i, 1);\n\t return true;\n\t }\n\t }\n\t\n\t return false;\n\t }\n\t }, {\n\t key: \"_preprocess\",\n\t value: function _preprocess() {\n\t\n\t // NK: The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _preprocess method all the way back up the tree and continuously adding the results together.\n\t\n\t // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating.\n\t\n\t // When rendering, the draw calls should use this._calculatedPos rather than this.pos in order for the position to be correct.\n\t\n\t if (this._game && this._lastCalculated < this._game.frameCounter) {\n\t\n\t if (this._parent) {\n\t\n\t var parentPos = this._parent._preprocess();\n\t\n\t this._calculatedPos.x = this.pos.x + parentPos.x;\n\t this._calculatedPos.y = this.pos.y + parentPos.y;\n\t } else {\n\t this._calculatedPos.x = this.pos.x;\n\t this._calculatedPos.y = this.pos.y;\n\t }\n\t\n\t this._lastCalculated = this._game.frameCounter;\n\t }\n\t\n\t return this._calculatedPos;\n\t }\n\t }, {\n\t key: \"_updateGame\",\n\t value: function _updateGame(game) {\n\t\n\t this._game = game;\n\t\n\t this.children.forEach(function (child) {\n\t child._updateGame(game);\n\t });\n\t }\n\t }, {\n\t key: \"_updateEntity\",\n\t value: function _updateEntity(delta) {\n\t\n\t if (this.timeToLive) {\n\t if (+new Date() - this._creationTime > this.timeToLive) {\n\t this._parent.detachChildEntity(this);\n\t }\n\t }\n\t\n\t // Calculate new position based on velocity and acceleration if there's one set\n\t if (this.velocity) {\n\t\n\t if (this.acceleration) {\n\t this.velocity.add(this.acceleration);\n\t }\n\t\n\t this.pos.add(this.velocity.clone().multiply(delta));\n\t }\n\t\n\t // If there's an update method, call it\n\t var updated = this.update && this.update(delta);\n\t\n\t if (updated || typeof updated == \"undefined\" || typeof this.update === \"undefined\") {\n\t\n\t this.children.forEach(function (child) {\n\t child._updateEntity(delta);\n\t });\n\t }\n\t }\n\t }, {\n\t key: \"_renderEntity\",\n\t value: function _renderEntity() {\n\t\n\t this._preprocess();\n\t\n\t var rendered = this.render && this.render();\n\t\n\t if (rendered || typeof rendered == \"undefined\" || typeof this.render === \"undefined\") {\n\t\n\t this.children.forEach(function (child) {\n\t child._renderEntity();\n\t });\n\t }\n\t }\n\t }]);\n\t return Entity;\n\t}();\n\t\n\texports.default = Entity;\n\n/***/ },\n/* 64 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Vector2D = function () {\n\t function Vector2D(x, y) {\n\t (0, _classCallCheck3.default)(this, Vector2D);\n\t\n\t this.x = x || 0;this.y = y || 0;\n\t }\n\t\n\t (0, _createClass3.default)(Vector2D, [{\n\t key: \"invert\",\n\t value: function invert() {\n\t this.x = -this.x;this.y = -this.y;\n\t return this;\n\t }\n\t }, {\n\t key: \"add\",\n\t value: function add(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x += val.x;this.y += val.y;\n\t } else {\n\t this.x += val;this.y += val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"subtract\",\n\t value: function subtract(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x -= val.x;this.y -= val.y;\n\t } else {\n\t this.x -= val;this.y -= val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"multiply\",\n\t value: function multiply(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x *= val.x;this.y *= val.y;\n\t } else {\n\t this.x *= val;this.y *= val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"divide\",\n\t value: function divide(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x /= val.x;this.y /= val.y;\n\t } else {\n\t this.x /= val;this.y /= val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"equals\",\n\t value: function equals(val) {\n\t return this.x == val.x && this.y == val.y;\n\t }\n\t }, {\n\t key: \"dot\",\n\t value: function dot(val) {\n\t return this.x * val.x + this.y * val.y;\n\t }\n\t }, {\n\t key: \"length\",\n\t value: function length() {\n\t return Math.sqrt(this.dot(this));\n\t }\n\t }, {\n\t key: \"unit\",\n\t value: function unit() {\n\t return this.divide(this.length());\n\t }\n\t }, {\n\t key: \"min\",\n\t value: function min() {\n\t return Math.min(this.x, this.y);\n\t }\n\t }, {\n\t key: \"max\",\n\t value: function max() {\n\t return Math.max(this.x, this.y);\n\t }\n\t }, {\n\t key: \"degrees\",\n\t value: function degrees() {\n\t return Math.atan(this.x, this.y) * 180;\n\t }\n\t }, {\n\t key: \"angle\",\n\t value: function angle() {\n\t return Math.atan2(this.x, this.y);\n\t }\n\t }, {\n\t key: \"toArray\",\n\t value: function toArray() {\n\t return [this.x, this.y];\n\t }\n\t }, {\n\t key: \"toString\",\n\t value: function toString() {\n\t return \"[\" + this.x + \"},\" + this.y + \"}]\";\n\t }\n\t }, {\n\t key: \"clone\",\n\t value: function clone() {\n\t return new Vector2D(this.x, this.y);\n\t }\n\t }], [{\n\t key: \"fromAngle\",\n\t value: function fromAngle(angle, length) {\n\t return new Vector2D(length * Math.cos(angle), length * Math.sin(angle));\n\t }\n\t }]);\n\t return Vector2D;\n\t}();\n\t\n\texports.default = Vector2D;\n\n/***/ },\n/* 65 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.KeyConsts = undefined;\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar KeyConsts = {\n\t SPACE: 32,\n\t BACKSPACE: 8,\n\t TAB: 9,\n\t ENTER: 13,\n\t SHIFT: 16,\n\t CTRL: 17,\n\t ALT: 18,\n\t PAUSE: 19,\n\t CAPS_LOCK: 20,\n\t ESCAPE: 27,\n\t PAGE_UP: 33,\n\t PAGE_DOWN: 34,\n\t END: 35,\n\t HOME: 36,\n\t LEFT: 37,\n\t UP: 38,\n\t RIGHT: 39,\n\t DOWN: 40,\n\t INSERT: 45,\n\t DELETE: 46,\n\t NUM_0: 48,\n\t NUM_1: 49,\n\t NUM_2: 50,\n\t NUM_3: 51,\n\t NUM_4: 52,\n\t NUM_5: 53,\n\t NUM_6: 54,\n\t NUM_7: 55,\n\t NUM_8: 56,\n\t NUM_9: 57,\n\t CHAR_A: 65,\n\t CHAR_B: 66,\n\t CHAR_C: 67,\n\t CHAR_D: 68,\n\t CHAR_E: 69,\n\t CHAR_F: 70,\n\t CHAR_G: 71,\n\t CHAR_H: 72,\n\t CHAR_I: 73,\n\t CHAR_J: 74,\n\t CHAR_K: 75,\n\t CHAR_L: 76,\n\t CHAR_M: 77,\n\t CHAR_N: 78,\n\t CHAR_O: 79,\n\t CHAR_P: 80,\n\t CHAR_Q: 81,\n\t CHAR_R: 82,\n\t CHAR_S: 83,\n\t CHAR_T: 84,\n\t CHAR_U: 85,\n\t CHAR_V: 86,\n\t CHAR_W: 87,\n\t CHAR_X: 88,\n\t CHAR_Y: 89,\n\t CHAR_Z: 90,\n\t NUM_PAD_0: 96,\n\t NUM_PAD_1: 97,\n\t NUM_PAD_2: 98,\n\t NUM_PAD_3: 99,\n\t NUM_PAD_4: 100,\n\t NUM_PAD_5: 101,\n\t NUM_PAD_6: 102,\n\t NUM_PAD_7: 103,\n\t NUM_PAD_8: 104,\n\t NUM_PAD_9: 105,\n\t MULTIPLY: 106,\n\t ADD: 107,\n\t SUBTRACT: 109,\n\t DECIMAL: 110,\n\t DIVIDE: 111,\n\t F1: 112,\n\t F2: 113,\n\t F3: 114,\n\t F4: 115,\n\t F5: 116,\n\t F6: 117,\n\t F7: 118,\n\t F8: 119,\n\t F9: 120,\n\t F10: 121,\n\t F11: 122,\n\t F12: 123,\n\t SEMICOLON: 186,\n\t EQUALS: 187,\n\t COMMA: 188,\n\t DASH: 189,\n\t PERIOD: 190,\n\t FORWARD_SLASH: 191,\n\t GRAVE: 192,\n\t OPEN_BRACKET: 219,\n\t BACK_SLASH: 220,\n\t CLOSE_BRACKET: 221,\n\t SINGLE_QUOTE: 222\n\t};\n\t\n\tvar KeyboardInput = function () {\n\t function KeyboardInput() {\n\t (0, _classCallCheck3.default)(this, KeyboardInput);\n\t\n\t\n\t var self = this;\n\t self._keyState = {};\n\t\n\t window.addEventListener(\"keydown\", function (event) {\n\t self._keyDownHandler(event);\n\t }, false);\n\t\n\t window.addEventListener(\"keyup\", function (event) {\n\t self._keyUpHandler(event);\n\t }, false);\n\t }\n\t\n\t (0, _createClass3.default)(KeyboardInput, [{\n\t key: \"isPressed\",\n\t value: function isPressed(keyCode) {\n\t return !!this._keyState[keyCode];\n\t }\n\t }, {\n\t key: \"_keyDownHandler\",\n\t value: function _keyDownHandler(event) {\n\t this._keyState[event.keyCode] = true;\n\t }\n\t }, {\n\t key: \"_keyUpHandler\",\n\t value: function _keyUpHandler(event) {\n\t this._keyState[event.keyCode] = false;\n\t }\n\t }]);\n\t return KeyboardInput;\n\t}();\n\t\n\texports.default = KeyboardInput;\n\texports.KeyConsts = KeyConsts;\n\n/***/ },\n/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(56);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(63);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(64);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Emitter = function (_Entity) {\n\t (0, _inherits3.default)(Emitter, _Entity);\n\t\n\t function Emitter(x, y, rate, velocity, particle) {\n\t (0, _classCallCheck3.default)(this, Emitter);\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Emitter).call(this, x, y));\n\t\n\t _this.particleVelocity = velocity;\n\t _this.particleClass = particle;\n\t\n\t _this.rate = rate;\n\t _this.emitting = false;\n\t _this.spread = Math.PI;\n\t _this._lastEmitTime = _this._creationTime;\n\t _this._wasEmitting = false;\n\t\n\t _this._particles = [];\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Emitter, [{\n\t key: \"setParticleParent\",\n\t value: function setParticleParent(entity) {\n\t this._particleParent = entity;\n\t }\n\t }, {\n\t key: \"_emit\",\n\t value: function _emit() {\n\t\n\t var ParticleClass = this.particleClass,\n\t parent = this._particleParent || this._parent;\n\t\n\t var angle = this.particleVelocity.angle() + this.spread - Math.random() * this.spread * 2,\n\t magnitude = this.particleVelocity.length(),\n\t velocity = _vector2d2.default.fromAngle(angle, magnitude);\n\t\n\t var particle = new ParticleClass(this._calculatedPos.x, this._calculatedPos.y);\n\t particle.velocity = velocity;\n\t\n\t //this._particles.push(particle);\n\t parent.addChildEntity(particle);\n\t }\n\t }, {\n\t key: \"_triggerEmissions\",\n\t value: function _triggerEmissions() {\n\t\n\t // We prematurely call preprocess so that child particles can spawn from the emitters permission but be children of a different parent\n\t // NK: This might cause a bug where child renders have an incorrect position because preprocess should normally be called after the update function but before the render, here it is before update. We'll see.\n\t this._preprocess();\n\t\n\t if (this.emitting) {\n\t\n\t var currentTime = +new Date();\n\t\n\t if (!this._wasEmitting) {\n\t this._wasEmitting = true;\n\t this._lastEmitTime = currentTime;\n\t }\n\t\n\t var emitDelta = currentTime - this._lastEmitTime;\n\t if (emitDelta > this.rate) {\n\t\n\t var emissions = ~ ~(emitDelta / this.rate);\n\t\n\t this._lastEmitTime = currentTime + (emitDelta - this.rate * emissions);\n\t\n\t for (var i = 0; i < emissions; i++) {\n\t this._emit();\n\t }\n\t }\n\t } else {\n\t this._wasEmitting = false;\n\t }\n\t }\n\t }, {\n\t key: \"update\",\n\t value: function update() {\n\t this._triggerEmissions();\n\t }\n\t }]);\n\t return Emitter;\n\t}(_entity2.default);\n\t\n\texports.default = Emitter;\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(56);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(63);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(64);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tvar _imageloader = __webpack_require__(68);\n\t\n\tvar _imageloader2 = _interopRequireDefault(_imageloader);\n\t\n\tvar _collisionmethods = __webpack_require__(69);\n\t\n\tvar _collisionmethods2 = _interopRequireDefault(_collisionmethods);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Sprite = function (_Entity) {\n\t (0, _inherits3.default)(Sprite, _Entity);\n\t\n\t function Sprite(x, y, width, height, image) {\n\t (0, _classCallCheck3.default)(this, Sprite);\n\t\n\t\n\t if (!image instanceof _imageloader2.default) {\n\t throw new Error(\"MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance\");\n\t }\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Sprite).call(this, x, y));\n\t\n\t _this.size = new _vector2d2.default(width || 0, height || 0);\n\t\n\t _this._image = image;\n\t _this._imagePos = new _vector2d2.default(0, 0);\n\t _this._imageSize = new _vector2d2.default(0, 0);\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Sprite, [{\n\t key: \"setImageCoords\",\n\t value: function setImageCoords(x, y, width, height) {\n\t\n\t this._imagePos.x = x;\n\t this._imagePos.y = y;\n\t this._imageSize.x = width || 0;\n\t this._imageSize.y = height || 0;\n\t }\n\t }, {\n\t key: \"isReady\",\n\t value: function isReady() {\n\t return this._image.isLoaded() && !this._image.isError();\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t\n\t if (this.isReady() && this._game) {\n\t\n\t var imageObj = this._image.getImageObj();\n\t\n\t var subWidth = imageObj.width - this._imagePos.x,\n\t subHeight = imageObj.height - this._imagePos.y;\n\t\n\t this._game.context.drawImage(imageObj, this._imagePos.x, this._imagePos.y, this._imageSize.x || subWidth, this._imageSize.y || subHeight, this._calculatedPos.x, this._calculatedPos.y, this.size.x || subWidth, this.size.y || subHeight);\n\t\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t }\n\t }]);\n\t return Sprite;\n\t}(_entity2.default);\n\t\n\texports.default = Sprite;\n\n/***/ },\n/* 68 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar ImageLoader = function () {\n\t function ImageLoader(src) {\n\t var _this = this;\n\t\n\t (0, _classCallCheck3.default)(this, ImageLoader);\n\t\n\t\n\t this._loaded = false; // Default is true, set it to false until the image has loaded\n\t this._error = false; // If the image fails to load, this will contain the reason\n\t\n\t this._imageObj = new Image();\n\t\n\t this._imageObj.addEventListener(\"load\", function () {\n\t _this._loaded = true;\n\t _this._error = false;\n\t });\n\t\n\t this._imageObj.addEventListener(\"_error\", function (err) {\n\t _this._loaded = false;\n\t _this._error = err;\n\t });\n\t\n\t this._imageObj.src = src;\n\t }\n\t\n\t (0, _createClass3.default)(ImageLoader, [{\n\t key: \"getImageObj\",\n\t value: function getImageObj() {\n\t\n\t if (this._loaded) {\n\t return this._imageObj;\n\t } else {\n\t return false;\n\t }\n\t }\n\t }, {\n\t key: \"isLoaded\",\n\t value: function isLoaded() {\n\t return this._loaded;\n\t }\n\t }, {\n\t key: \"isError\",\n\t value: function isError() {\n\t return this._error;\n\t }\n\t }]);\n\t return ImageLoader;\n\t}();\n\t\n\texports.default = ImageLoader;\n\n/***/ },\n/* 69 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _rect = __webpack_require__(70);\n\t\n\tvar _rect2 = _interopRequireDefault(_rect);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar CollisionMethods = function () {\n\t function CollisionMethods() {\n\t (0, _classCallCheck3.default)(this, CollisionMethods);\n\t }\n\t\n\t (0, _createClass3.default)(CollisionMethods, null, [{\n\t key: \"AABB\",\n\t value: function AABB(entity1, entity2) {\n\t\n\t if (!entity1 instanceof _rect2.default || !entity2 instanceof _rect2.default) {\n\t throw new Error(\"AABB collisions can only be checked on these entity types: Rect\");\n\t }\n\t\n\t return entity1.pos.x < entity2.pos.x + entity2.size.x && entity1.pos.x + entity1.size.x > entity2.pos.x && entity1.pos.y < entity2.pos.y + entity2.size.y && entity1.size.y + entity1.pos.y > entity2.pos.y;\n\t }\n\t }]);\n\t return CollisionMethods;\n\t}();\n\t\n\texports.default = CollisionMethods;\n\n/***/ },\n/* 70 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(56);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(63);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(64);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tvar _collisionmethods = __webpack_require__(69);\n\t\n\tvar _collisionmethods2 = _interopRequireDefault(_collisionmethods);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Rect = function (_Entity) {\n\t (0, _inherits3.default)(Rect, _Entity);\n\t\n\t function Rect(x, y, width, height, color) {\n\t (0, _classCallCheck3.default)(this, Rect);\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Rect).call(this, x, y));\n\t\n\t _this.size = new _vector2d2.default(width, height);\n\t _this.color = color;\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Rect, [{\n\t key: \"isCollidingWith\",\n\t value: function isCollidingWith(entity) {\n\t\n\t if (entity instanceof Rect) {\n\t return _collisionmethods2.default.AABB(this, entity);\n\t }\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t\n\t if (this._game) {\n\t\n\t this._game.context.fillStyle = this.color.toString();\n\t this._game.context.fillRect(this._calculatedPos.x, this._calculatedPos.y, this.size.x, this.size.y);\n\t\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t }\n\t }]);\n\t return Rect;\n\t}(_entity2.default);\n\t\n\texports.default = Rect;\n\n/***/ },\n/* 71 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Color = function () {\n\t function Color(r, g, b, a) {\n\t (0, _classCallCheck3.default)(this, Color);\n\t\n\t\n\t this.r = r || 0;\n\t this.g = g || 0;\n\t this.b = b || 0;\n\t this.a = a || 1;\n\t }\n\t\n\t (0, _createClass3.default)(Color, [{\n\t key: \"toString\",\n\t value: function toString() {\n\t return \"rgba(\" + this.r + \", \" + this.g + \", \" + this.b + \", \" + this.a + \")\";\n\t }\n\t }, {\n\t key: \"toHex\",\n\t value: function toHex() {\n\t return \"#\" + (r << 16 | g << 8 | b).toString(16);\n\t }\n\t }]);\n\t return Color;\n\t}();\n\t\n\texports.default = Color;\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** es5.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 52cde20b0370da5d4a9a\n **/","\"use strict\";\n\nimport Game from \"./classes/game.js\";\nimport Emitter from \"./classes/emitter.js\";\nimport Entity from \"./classes/entity.js\";\nimport Vector2D from \"./classes/vector2d.js\";\nimport Sprite from \"./classes/sprite.js\";\nimport Rect from \"./classes/rect.js\";\nimport Color from \"./classes/color.js\";\nimport ImageLoader from \"./classes/imageloader.js\";\n\nimport {KeyConsts} from \"./classes/keyboardinput.js\";\n\n\nconst Classes = {\n Game: Game,\n Emitter: Emitter,\n Entity: Entity,\n Sprite: Sprite,\n Rect: Rect,\n Vector2D: Vector2D,\n Color: Color,\n ImageLoader: ImageLoader\n};\n\n\nconst Consts = {\n Input: {\n Keys: KeyConsts\n }\n};\n\n\nwindow.MomentumEngine = {\n Classes: Classes,\n Consts: Consts\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/es5.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport KeyboardInput from \"./keyboardinput.js\";\n\nclass Game extends Entity {\n\n\n constructor (config) {\n\n super(); // Call entity constructor\n config = config || {};\n config.inputs = config.inputs || {};\n\n\n // Required params\n if (config.canvas) {\n this.canvas = config.canvas;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with a canvas\");\n }\n\n if (config.width) {\n this.width = config.width;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas width\");\n }\n\n if (config.height) {\n this.height = config.height;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas height\");\n }\n\n\n // Optional params\n this.desiredFps = config.desiredFps || 60;\n\n if (config.fixRatio) {\n\n let deviceRatio = window.devicePixelRatio,\n backingStoreRatio = 0;\n\n // Unfortunately Ejecta requires calling getContext last, so we cannot get the backingStorePixelRatio. So for Ejecta's case, we set it to 1, and call getContext later.\n if (typeof ejecta !== \"undefined\") {\n backingStoreRatio = 1;\n } else {\n\n this.context = this.canvas.getContext(\"2d\");\n\n backingStoreRatio = this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio || 1;\n\n }\n\n this.scale = deviceRatio / backingStoreRatio;\n\n this.canvas.width = this.width * this.scale;\n this.canvas.height = this.height * this.scale;\n\n this.canvas.style.width = this.width + \"px\";\n this.canvas.style.height = this.height + \"px\";\n\n // Call getContext last for Ejecta only.\n if (typeof ejecta !== \"undefined\") {\n this.context = this.canvas.getContext(\"2d\");\n }\n\n this.context.scale(deviceRatio, deviceRatio);\n\n } else {\n\n this.canvas.width = this.width;\n this.canvas.height = this.height;\n\n this.context = this.canvas.getContext(\"2d\");\n\n }\n\n if (typeof this.context.imageSmoothingEnabled !== \"undefined\") {\n this.context.imageSmoothingEnabled = config.imageSmoothing || false;\n }\n\n\n // Initialize defaults\n this.frameCounter = 0;\n\n this.inputs = {};\n if (config.inputs.keyboard) {\n this.inputs.keyboard = new KeyboardInput(this);\n }\n\n this._game = this;\n this._lastFrameTimestamp = 0;\n this._wantPause = true;\n\n }\n\n\n step (delta) {\n\n this.frameCounter++;\n\n this._updateEntity(delta);\n this._renderEntity();\n\n }\n\n\n start () {\n\n var self = this; // NK: Hate doing this...better way plz?\n\n if (self._wantPause) {\n self._wantPause = false;\n } else {\n console.log(\"MomentumEngine.Classes.Game.start called, game instance is already started\");\n return false; // Game is already running\n }\n\n self._wantPause = false;\n\n let requestFrame = (() => {\n\n return (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n function (callback) {\n window.setTimeout(callback, 1000 / self.desiredFps);\n });\n\n })();\n\n self._lastFrameTimestamp = +(new Date());\n self.startTime = self._lastFrameTimestamp;\n\n var loop = function () {\n\n if (self._wantPause) {\n return;\n }\n\n let currentTimestamp = +(new Date()),\n delta = currentTimestamp - self._lastFrameTimestamp;\n\n delta = Math.min(delta, 1000 / self.desiredFps);\n self._lastFrameTimestamp = currentTimestamp;\n\n self.step(delta);\n\n requestFrame(loop);\n\n };\n\n loop();\n return true;\n\n }\n\n\n pause () {\n\n if (!this._wantPause) {\n this._wantPause = true;\n return true;\n } else {\n console.log(\"MomentumEngine.Classes.Game.pause called, game instance is already paused\");\n return false;\n }\n }\n\n\n}\n\n\nexport default Game;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/game.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/get-prototype-of.js\n ** module id = 2\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.getPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/get-prototype-of.js\n ** module id = 3\n ** module chunks = 0 1\n **/","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./$.to-object');\n\nrequire('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.get-prototype-of.js\n ** module id = 4\n ** module chunks = 0 1\n **/","// 7.1.13 ToObject(argument)\nvar defined = require('./$.defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-object.js\n ** module id = 5\n ** module chunks = 0 1\n **/","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.defined.js\n ** module id = 6\n ** module chunks = 0 1\n **/","// most Object methods by ES6 should accept primitives\nvar $export = require('./$.export')\n , core = require('./$.core')\n , fails = require('./$.fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-sap.js\n ** module id = 7\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , core = require('./$.core')\n , ctx = require('./$.ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && key in target;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(param){\n return this instanceof C ? new C(param) : C(param);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\nmodule.exports = $export;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.export.js\n ** module id = 8\n ** module chunks = 0 1\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.global.js\n ** module id = 9\n ** module chunks = 0 1\n **/","var core = module.exports = {version: '1.2.6'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.core.js\n ** module id = 10\n ** module chunks = 0 1\n **/","// optional / simple context binding\nvar aFunction = require('./$.a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.ctx.js\n ** module id = 11\n ** module chunks = 0 1\n **/","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.a-function.js\n ** module id = 12\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.fails.js\n ** module id = 13\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 14\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 15\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 16\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function defineProperty(it, key, desc){\n return $.setDesc(it, key, desc);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 17\n ** module chunks = 0 1\n **/","var $Object = Object;\nmodule.exports = {\n create: $Object.create,\n getProto: $Object.getPrototypeOf,\n isEnum: {}.propertyIsEnumerable,\n getDesc: $Object.getOwnPropertyDescriptor,\n setDesc: $Object.defineProperty,\n setDescs: $Object.defineProperties,\n getKeys: $Object.keys,\n getNames: $Object.getOwnPropertyNames,\n getSymbols: $Object.getOwnPropertySymbols,\n each: [].forEach\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.js\n ** module id = 18\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/possibleConstructorReturn.js\n ** module id = 19\n ** module chunks = 0 1\n **/","\"use strict\";\n\nvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/typeof.js\n ** module id = 20\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol/iterator.js\n ** module id = 21\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/$.wks')('iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/iterator.js\n ** module id = 22\n ** module chunks = 0 1\n **/","'use strict';\nvar $at = require('./$.string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./$.iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 23\n ** module chunks = 0 1\n **/","var toInteger = require('./$.to-integer')\n , defined = require('./$.defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.string-at.js\n ** module id = 24\n ** module chunks = 0 1\n **/","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-integer.js\n ** module id = 25\n ** module chunks = 0 1\n **/","'use strict';\nvar LIBRARY = require('./$.library')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , hide = require('./$.hide')\n , has = require('./$.has')\n , Iterators = require('./$.iterators')\n , $iterCreate = require('./$.iter-create')\n , setToStringTag = require('./$.set-to-string-tag')\n , getProto = require('./$').getProto\n , ITERATOR = require('./$.wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , methods, key;\n // Fix native\n if($native){\n var IteratorPrototype = getProto($default.call(new Base));\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // FF fix\n if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: !DEF_VALUES ? $default : getMethod('entries')\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-define.js\n ** module id = 26\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.library.js\n ** module id = 27\n ** module chunks = 0 1\n **/","module.exports = require('./$.hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine.js\n ** module id = 28\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , createDesc = require('./$.property-desc');\nmodule.exports = require('./$.descriptors') ? function(object, key, value){\n return $.setDesc(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.hide.js\n ** module id = 29\n ** module chunks = 0 1\n **/","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.property-desc.js\n ** module id = 30\n ** module chunks = 0 1\n **/","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./$.fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.descriptors.js\n ** module id = 31\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.has.js\n ** module id = 32\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iterators.js\n ** module id = 33\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , descriptor = require('./$.property-desc')\n , setToStringTag = require('./$.set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./$.hide')(IteratorPrototype, require('./$.wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-create.js\n ** module id = 34\n ** module chunks = 0 1\n **/","var def = require('./$').setDesc\n , has = require('./$.has')\n , TAG = require('./$.wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-to-string-tag.js\n ** module id = 35\n ** module chunks = 0 1\n **/","var store = require('./$.shared')('wks')\n , uid = require('./$.uid')\n , Symbol = require('./$.global').Symbol;\nmodule.exports = function(name){\n return store[name] || (store[name] =\n Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.wks.js\n ** module id = 36\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.shared.js\n ** module id = 37\n ** module chunks = 0 1\n **/","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.uid.js\n ** module id = 38\n ** module chunks = 0 1\n **/","require('./es6.array.iterator');\nvar Iterators = require('./$.iterators');\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 39\n ** module chunks = 0 1\n **/","'use strict';\nvar addToUnscopables = require('./$.add-to-unscopables')\n , step = require('./$.iter-step')\n , Iterators = require('./$.iterators')\n , toIObject = require('./$.to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./$.iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 40\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.add-to-unscopables.js\n ** module id = 41\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-step.js\n ** module id = 42\n ** module chunks = 0 1\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./$.iobject')\n , defined = require('./$.defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-iobject.js\n ** module id = 43\n ** module chunks = 0 1\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./$.cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iobject.js\n ** module id = 44\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.cof.js\n ** module id = 45\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol.js\n ** module id = 46\n ** module chunks = 0 1\n **/","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nmodule.exports = require('../../modules/$.core').Symbol;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/index.js\n ** module id = 47\n ** module chunks = 0 1\n **/","'use strict';\n// ECMAScript 6 symbols shim\nvar $ = require('./$')\n , global = require('./$.global')\n , has = require('./$.has')\n , DESCRIPTORS = require('./$.descriptors')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , $fails = require('./$.fails')\n , shared = require('./$.shared')\n , setToStringTag = require('./$.set-to-string-tag')\n , uid = require('./$.uid')\n , wks = require('./$.wks')\n , keyOf = require('./$.keyof')\n , $names = require('./$.get-names')\n , enumKeys = require('./$.enum-keys')\n , isArray = require('./$.is-array')\n , anObject = require('./$.an-object')\n , toIObject = require('./$.to-iobject')\n , createDesc = require('./$.property-desc')\n , getDesc = $.getDesc\n , setDesc = $.setDesc\n , _create = $.create\n , getNames = $names.get\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , setter = false\n , HIDDEN = wks('_hidden')\n , isEnum = $.isEnum\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , useNative = typeof $Symbol == 'function'\n , ObjectProto = Object.prototype;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(setDesc({}, 'a', {\n get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = getDesc(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n setDesc(it, key, D);\n if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n} : setDesc;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol.prototype);\n sym._k = tag;\n DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: function(value){\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n }\n });\n return sym;\n};\n\nvar isSymbol = function(it){\n return typeof it == 'symbol';\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(D && has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return setDesc(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key);\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n var D = getDesc(it = toIObject(it), key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n return result;\n};\nvar $stringify = function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , $$ = arguments\n , replacer, $replacer;\n while($$.length > i)args.push($$[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n};\nvar buggyJSON = $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n});\n\n// 19.4.1.1 Symbol([description])\nif(!useNative){\n $Symbol = function Symbol(){\n if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n };\n redefine($Symbol.prototype, 'toString', function toString(){\n return this._k;\n });\n\n isSymbol = function(it){\n return it instanceof $Symbol;\n };\n\n $.create = $create;\n $.isEnum = $propertyIsEnumerable;\n $.getDesc = $getOwnPropertyDescriptor;\n $.setDesc = $defineProperty;\n $.setDescs = $defineProperties;\n $.getNames = $names.get = $getOwnPropertyNames;\n $.getSymbols = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./$.library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n}\n\nvar symbolStatics = {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n return keyOf(SymbolRegistry, key);\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n};\n// 19.4.2.2 Symbol.hasInstance\n// 19.4.2.3 Symbol.isConcatSpreadable\n// 19.4.2.4 Symbol.iterator\n// 19.4.2.6 Symbol.match\n// 19.4.2.8 Symbol.replace\n// 19.4.2.9 Symbol.search\n// 19.4.2.10 Symbol.species\n// 19.4.2.11 Symbol.split\n// 19.4.2.12 Symbol.toPrimitive\n// 19.4.2.13 Symbol.toStringTag\n// 19.4.2.14 Symbol.unscopables\n$.each.call((\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n 'species,split,toPrimitive,toStringTag,unscopables'\n).split(','), function(it){\n var sym = wks(it);\n symbolStatics[it] = useNative ? sym : wrap(sym);\n});\n\nsetter = true;\n\n$export($export.G + $export.W, {Symbol: $Symbol});\n\n$export($export.S, 'Symbol', symbolStatics);\n\n$export($export.S + $export.F * !useNative, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.symbol.js\n ** module id = 48\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , toIObject = require('./$.to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = $.getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.keyof.js\n ** module id = 49\n ** module chunks = 0 1\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./$.to-iobject')\n , getNames = require('./$').getNames\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return getNames(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.get = function getOwnPropertyNames(it){\n if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n return getNames(toIObject(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.get-names.js\n ** module id = 50\n ** module chunks = 0 1\n **/","// all enumerable object keys, includes symbols\nvar $ = require('./$');\nmodule.exports = function(it){\n var keys = $.getKeys(it)\n , getSymbols = $.getSymbols;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = $.isEnum\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n }\n return keys;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.enum-keys.js\n ** module id = 51\n ** module chunks = 0 1\n **/","// 7.2.2 IsArray(argument)\nvar cof = require('./$.cof');\nmodule.exports = Array.isArray || function(arg){\n return cof(arg) == 'Array';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array.js\n ** module id = 52\n ** module chunks = 0 1\n **/","var isObject = require('./$.is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.an-object.js\n ** module id = 53\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-object.js\n ** module id = 54\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/inherits.js\n ** module id = 56\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/set-prototype-of.js\n ** module id = 57\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.setPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/set-prototype-of.js\n ** module id = 58\n ** module chunks = 0 1\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./$.export');\n$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.set-prototype-of.js\n ** module id = 59\n ** module chunks = 0 1\n **/","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar getDesc = require('./$').getDesc\n , isObject = require('./$.is-object')\n , anObject = require('./$.an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-proto.js\n ** module id = 60\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/create.js\n ** module id = 61\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/create.js\n ** module id = 62\n ** module chunks = 0 1\n **/","\"use strict\";\n\nimport Vector2D from \"./vector2d.js\";\n\nclass Entity {\n\n\n constructor (x, y) {\n\n this.pos = new Vector2D(x || 0, y || 0);\n this.velocity = new Vector2D(0, 0);\n this.acceleration = new Vector2D(0, 0);\n\n this.state = {};\n this.children = [];\n\n this._calculatedPos = this.pos.clone();\n this._lastCalculated = 0;\n this._game = null;\n this._parent = null;\n\n this._creationTime = +(new Date());\n\n }\n\n\n setVelocity (x, y) {\n\n if (x instanceof Vector2D) {\n this.velocity = x;\n } else {\n this.velocity.x = x;\n this.velocity.y = y;\n }\n\n }\n\n\n setAcceleration (x, y) {\n\n if (x instanceof Vector2D) {\n this.acceleration = x;\n } else {\n this.acceleration.x = x;\n this.acceleration.y = y;\n }\n\n }\n\n\n createChildEntity () {\n\n let child = new Entity();\n\n child._updateGame(this._game);\n child._parent = this;\n this.children.push(child);\n\n return child;\n\n }\n\n\n addChildEntity (child) {\n\n child._updateGame(this._game);\n child._parent = this;\n this.children.push(child);\n\n return child;\n\n }\n\n\n detachChildEntity (child) {\n\n for (let i = 0; i < this.children.length; i++) {\n if (this.children[i] == child) {\n\n this.children.splice(i, 1);\n return true;\n\n }\n }\n\n return false;\n\n }\n\n\n _preprocess () {\n\n // NK: The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _preprocess method all the way back up the tree and continuously adding the results together.\n\n // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating.\n\n // When rendering, the draw calls should use this._calculatedPos rather than this.pos in order for the position to be correct.\n\n if (this._game && this._lastCalculated < this._game.frameCounter) {\n\n if (this._parent) {\n\n let parentPos = this._parent._preprocess();\n\n this._calculatedPos.x = this.pos.x + parentPos.x;\n this._calculatedPos.y = this.pos.y + parentPos.y;\n\n } else {\n this._calculatedPos.x = this.pos.x;\n this._calculatedPos.y = this.pos.y;\n }\n\n this._lastCalculated = this._game.frameCounter;\n\n }\n\n return this._calculatedPos;\n\n }\n\n\n _updateGame (game) {\n\n this._game = game;\n\n this.children.forEach((child) => {\n child._updateGame(game);\n });\n\n }\n\n\n _updateEntity (delta) {\n\n if (this.timeToLive) {\n if (+(new Date()) - this._creationTime > this.timeToLive) {\n this._parent.detachChildEntity(this);\n }\n }\n\n // Calculate new position based on velocity and acceleration if there's one set\n if (this.velocity) {\n\n if (this.acceleration) {\n this.velocity.add(this.acceleration);\n }\n\n this.pos.add(this.velocity.clone().multiply(delta));\n\n }\n\n // If there's an update method, call it\n let updated = this.update && this.update(delta);\n\n if (updated || (typeof updated == \"undefined\") || (typeof this.update === \"undefined\")) {\n\n this.children.forEach((child) => {\n child._updateEntity(delta);\n });\n\n }\n\n }\n\n\n _renderEntity () {\n\n this._preprocess();\n\n let rendered = this.render && this.render();\n\n if (rendered || (typeof rendered == \"undefined\") || (typeof this.render === \"undefined\")) {\n\n this.children.forEach((child) => {\n child._renderEntity();\n });\n\n }\n\n }\n\n\n}\n\n\nexport default Entity;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/entity.js\n **/","\"use strict\";\n\nclass Vector2D {\n\n\n constructor (x, y) {\n this.x = x || 0; this.y = y || 0;\n }\n\n\n invert () {\n this.x = -this.x; this.y = -this.y;\n return this;\n }\n\n\n add (val) {\n\n if (val instanceof Vector2D) {\n this.x += val.x; this.y += val.y;\n } else {\n this.x += val; this.y += val;\n }\n\n return this;\n\n }\n\n\n subtract (val) {\n\n if (val instanceof Vector2D) {\n this.x -= val.x; this.y -= val.y;\n } else {\n this.x -= val; this.y -= val;\n }\n\n return this;\n\n }\n\n\n multiply (val) {\n\n if (val instanceof Vector2D) {\n this.x *= val.x; this.y *= val.y;\n } else {\n this.x *= val; this.y *= val;\n }\n\n return this;\n\n }\n\n\n divide (val) {\n\n if (val instanceof Vector2D) {\n this.x /= val.x; this.y /= val.y;\n } else {\n this.x /= val; this.y /= val;\n }\n\n return this;\n\n }\n\n\n equals (val) {\n return (this.x == val.x && this.y == val.y);\n }\n\n\n dot (val) {\n return (this.x * val.x + this.y * val.y);\n }\n\n\n length () {\n return Math.sqrt(this.dot(this));\n }\n\n\n unit () {\n return this.divide(this.length());\n }\n\n\n min () {\n return Math.min(this.x, this.y);\n }\n\n\n max () {\n return Math.max(this.x, this.y);\n }\n\n\n degrees () {\n return (Math.atan(this.x, this.y) * 180);\n }\n\n\n angle () {\n return Math.atan2(this.x, this.y);\n }\n\n\n toArray () {\n return [this.x, this.y];\n }\n\n\n toString () {\n return `[${this.x}},${this.y}}]`;\n }\n\n\n clone () {\n return new Vector2D(this.x, this.y);\n }\n\n\n static fromAngle (angle, length) {\n return new Vector2D(length * Math.cos(angle), length * Math.sin(angle));\n }\n\n\n}\n\n\nexport default Vector2D;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/vector2d.js\n **/","\"use strict\";\n\n\nconst KeyConsts = {\n SPACE: 32,\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n PAUSE: 19,\n CAPS_LOCK: 20,\n ESCAPE: 27,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n INSERT: 45,\n DELETE: 46,\n NUM_0: 48,\n NUM_1: 49,\n NUM_2: 50,\n NUM_3: 51,\n NUM_4: 52,\n NUM_5: 53,\n NUM_6: 54,\n NUM_7: 55,\n NUM_8: 56,\n NUM_9: 57,\n CHAR_A: 65,\n CHAR_B: 66,\n CHAR_C: 67,\n CHAR_D: 68,\n CHAR_E: 69,\n CHAR_F: 70,\n CHAR_G: 71,\n CHAR_H: 72,\n CHAR_I: 73,\n CHAR_J: 74,\n CHAR_K: 75,\n CHAR_L: 76,\n CHAR_M: 77,\n CHAR_N: 78,\n CHAR_O: 79,\n CHAR_P: 80,\n CHAR_Q: 81,\n CHAR_R: 82,\n CHAR_S: 83,\n CHAR_T: 84,\n CHAR_U: 85,\n CHAR_V: 86,\n CHAR_W: 87,\n CHAR_X: 88,\n CHAR_Y: 89,\n CHAR_Z: 90,\n NUM_PAD_0: 96,\n NUM_PAD_1: 97,\n NUM_PAD_2: 98,\n NUM_PAD_3: 99,\n NUM_PAD_4: 100,\n NUM_PAD_5: 101,\n NUM_PAD_6: 102,\n NUM_PAD_7: 103,\n NUM_PAD_8: 104,\n NUM_PAD_9: 105,\n MULTIPLY: 106,\n ADD: 107,\n SUBTRACT: 109,\n DECIMAL: 110,\n DIVIDE: 111,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n SEMICOLON: 186,\n EQUALS: 187,\n COMMA: 188,\n DASH: 189,\n PERIOD: 190,\n FORWARD_SLASH: 191,\n GRAVE: 192,\n OPEN_BRACKET: 219,\n BACK_SLASH: 220,\n CLOSE_BRACKET: 221,\n SINGLE_QUOTE: 222\n};\n\n\nclass KeyboardInput {\n\n\n constructor () {\n\n var self = this;\n self._keyState = {};\n\n window.addEventListener(\"keydown\", (event) => {\n self._keyDownHandler(event);\n }, false);\n\n window.addEventListener(\"keyup\", (event) => {\n self._keyUpHandler(event);\n }, false);\n\n }\n\n\n isPressed (keyCode) {\n return !!this._keyState[keyCode];\n }\n\n\n _keyDownHandler (event) {\n this._keyState[event.keyCode] = true;\n }\n\n\n _keyUpHandler (event) {\n this._keyState[event.keyCode] = false;\n }\n\n\n}\n\n\nexport default KeyboardInput;\nexport {KeyConsts};\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/keyboardinput.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\n\n\nclass Emitter extends Entity {\n\n\n constructor (x, y, rate, velocity, particle) {\n\n super(x, y);\n\n this.particleVelocity = velocity;\n this.particleClass = particle;\n\n this.rate = rate;\n this.emitting = false;\n this.spread = Math.PI;\n this._lastEmitTime = this._creationTime;\n this._wasEmitting = false;\n\n this._particles = [];\n\n }\n\n\n setParticleParent (entity) {\n this._particleParent = entity;\n }\n\n\n _emit () {\n\n let ParticleClass = this.particleClass,\n parent = this._particleParent || this._parent;\n\n let angle = this.particleVelocity.angle() + this.spread - (Math.random() * this.spread * 2),\n magnitude = this.particleVelocity.length(),\n velocity = Vector2D.fromAngle(angle, magnitude);\n\n let particle = new ParticleClass(this._calculatedPos.x, this._calculatedPos.y);\n particle.velocity = velocity;\n\n //this._particles.push(particle);\n parent.addChildEntity(particle);\n\n }\n\n\n _triggerEmissions () {\n\n // We prematurely call preprocess so that child particles can spawn from the emitters permission but be children of a different parent\n // NK: This might cause a bug where child renders have an incorrect position because preprocess should normally be called after the update function but before the render, here it is before update. We'll see.\n this._preprocess();\n\n if (this.emitting) {\n\n let currentTime = +(new Date());\n\n if (!this._wasEmitting) {\n this._wasEmitting = true;\n this._lastEmitTime = currentTime;\n }\n\n let emitDelta = currentTime - this._lastEmitTime;\n if (emitDelta > this.rate) {\n\n let emissions = ~~(emitDelta / this.rate);\n\n this._lastEmitTime = currentTime + (emitDelta - (this.rate * emissions));\n\n for (let i = 0; i < emissions; i++) {\n this._emit();\n }\n\n }\n\n } else {\n this._wasEmitting = false;\n }\n\n }\n\n\n update () {\n this._triggerEmissions();\n }\n\n\n}\n\n\nexport default Emitter;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/emitter.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\nimport ImageLoader from \"./imageloader.js\";\n\nimport CollisionMethods from \"../libs/collisionmethods.js\";\n\n\nclass Sprite extends Entity {\n\n\n constructor (x, y, width, height, image) {\n\n if (!image instanceof ImageLoader) {\n throw new Error(\"MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance\");\n }\n\n super(x, y);\n\n this.size = new Vector2D(width || 0, height || 0);\n\n this._image = image;\n this._imagePos = new Vector2D(0, 0);\n this._imageSize = new Vector2D(0, 0);\n\n }\n\n\n setImageCoords (x, y, width, height) {\n\n this._imagePos.x = x;\n this._imagePos.y = y;\n this._imageSize.x = width || 0;\n this._imageSize.y = height || 0;\n\n }\n\n\n isReady () {\n return (this._image.isLoaded() && !this._image.isError());\n }\n\n\n render () {\n\n if (this.isReady() && this._game) {\n\n let imageObj = this._image.getImageObj();\n\n let subWidth = imageObj.width - this._imagePos.x,\n subHeight = imageObj.height - this._imagePos.y;\n\n this._game.context.drawImage(\n imageObj,\n this._imagePos.x,\n this._imagePos.y,\n this._imageSize.x || subWidth,\n this._imageSize.y || subHeight,\n this._calculatedPos.x,\n this._calculatedPos.y,\n this.size.x || subWidth,\n this.size.y || subHeight\n );\n\n return true;\n\n } else {\n return false;\n }\n\n }\n\n\n}\n\n\nexport default Sprite;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/sprite.js\n **/","\"use strict\";\n\nclass ImageLoader {\n\n\n constructor (src) {\n\n this._loaded = false; // Default is true, set it to false until the image has loaded\n this._error = false; // If the image fails to load, this will contain the reason\n\n this._imageObj = new Image();\n\n this._imageObj.addEventListener(\"load\", () => {\n this._loaded = true;\n this._error = false;\n });\n\n this._imageObj.addEventListener(\"_error\", (err) => {\n this._loaded = false;\n this._error = err;\n });\n\n this._imageObj.src = src;\n\n }\n\n\n getImageObj () {\n\n if (this._loaded) {\n return this._imageObj;\n } else {\n return false;\n }\n\n }\n\n\n isLoaded () {\n return this._loaded;\n }\n\n\n isError () {\n return this._error;\n }\n\n\n}\n\n\nexport default ImageLoader;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/imageloader.js\n **/","import Rect from \"../classes/rect.js\";\n\nclass CollisionMethods {\n\n\n static AABB (entity1, entity2) {\n\n if (!entity1 instanceof Rect || !entity2 instanceof Rect) {\n throw new Error(\"AABB collisions can only be checked on these entity types: Rect\");\n }\n\n return (entity1.pos.x < entity2.pos.x + entity2.size.x &&\n entity1.pos.x + entity1.size.x > entity2.pos.x &&\n entity1.pos.y < entity2.pos.y + entity2.size.y &&\n entity1.size.y + entity1.pos.y > entity2.pos.y);\n\n }\n\n\n}\n\n\nexport default CollisionMethods;\n\n\n/** WEBPACK FOOTER **\n ** ./src/libs/collisionmethods.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\n\nimport CollisionMethods from \"../libs/collisionmethods.js\";\n\n\nclass Rect extends Entity {\n\n\n constructor (x, y, width, height, color) {\n\n super(x, y);\n\n this.size = new Vector2D(width, height);\n this.color = color;\n\n }\n\n\n isCollidingWith (entity) {\n\n if (entity instanceof Rect) {\n return CollisionMethods.AABB(this, entity);\n }\n\n }\n\n\n render () {\n\n if (this._game) {\n\n this._game.context.fillStyle = this.color.toString();\n this._game.context.fillRect(this._calculatedPos.x, this._calculatedPos.y, this.size.x, this.size.y);\n\n return true;\n\n } else {\n return false;\n }\n\n }\n\n\n}\n\n\nexport default Rect;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/rect.js\n **/","\"use strict\";\n\nclass Color {\n\n\n constructor (r, g, b, a) {\n\n this.r = r || 0;\n this.g = g || 0;\n this.b = b || 0;\n this.a = a || 1;\n\n }\n\n\n toString () {\n return `rgba(${this.r}, ${this.g}, ${this.b}, ${this.a})`;\n }\n\n\n toHex () {\n return `#${((r << 16) | (g << 8) | b).toString(16)}`;\n }\n\n\n}\n\n\nexport default Color;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/color.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/examples/particles/dist/particles.js b/examples/particles/dist/particles.js index 7758248..0b16ef5 100644 --- a/examples/particles/dist/particles.js +++ b/examples/particles/dist/particles.js @@ -1,2505 +1,2 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; -/******/ -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - var _getPrototypeOf = __webpack_require__(2); - - var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _possibleConstructorReturn2 = __webpack_require__(19); - - var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - - var _inherits2 = __webpack_require__(56); - - var _inherits3 = _interopRequireDefault(_inherits2); - - var _es = __webpack_require__(72); - - var _es2 = _interopRequireDefault(_es); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var KeyConsts = _es2.default.Consts.Input.Keys; - - var BlueParticle = function (_MomentumEngine$Class) { - (0, _inherits3.default)(BlueParticle, _MomentumEngine$Class); - - function BlueParticle(x, y) { - (0, _classCallCheck3.default)(this, BlueParticle); - - var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(BlueParticle).call(this, x, y, 1, 1, new _es2.default.Classes.Color(255, 255, 255, 0))); - - _this.timeToLive = 5000; - return _this; - } - - (0, _createClass3.default)(BlueParticle, [{ - key: "update", - value: function update(delta) { - this.color.a = this.color.a - delta * 0.00025; - } - }]); - return BlueParticle; - }(_es2.default.Classes.Rect); - - window.onload = function () { - - var width = 640, - height = 360, - baseSize = width / 64; - - var particles = new _es2.default.Classes.Game({ - canvas: document.getElementById("canvas"), - width: width, - height: height, - fixRatio: true, - desiredFps: 60, - inputs: { - keyboard: true - } - }); - - var black = new _es2.default.Classes.Color(0, 0, 0), - red = new _es2.default.Classes.Color(255, 0, 0); - - var mainScene = new _es2.default.Classes.Rect(0, 0, width, height, black); - particles.addChildEntity(mainScene); - - var rect = new _es2.default.Classes.Rect(width / 2 - baseSize, height / 2 - baseSize, baseSize * 2, baseSize * 2, red), - emitter = new _es2.default.Classes.Emitter(baseSize, baseSize, 4, new _es2.default.Classes.Vector2D(0, 1), BlueParticle); - - mainScene.addChildEntity(rect); - rect.addChildEntity(emitter); - - rect.update = function (delta) { - - if (particles.inputs.keyboard.isPressed(KeyConsts.UP)) { - rect.pos.y -= 0.2 * delta; - } - - if (particles.inputs.keyboard.isPressed(KeyConsts.DOWN)) { - rect.pos.y += 0.2 * delta; - } - - if (particles.inputs.keyboard.isPressed(KeyConsts.LEFT)) { - rect.pos.x -= 0.2 * delta; - } - - if (particles.inputs.keyboard.isPressed(KeyConsts.RIGHT)) { - rect.pos.x += 0.2 * delta; - } - }; - - emitter.setParticleParent(mainScene); - emitter.emitting = true; - - particles.start(); - }; - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _getPrototypeOf = __webpack_require__(2); - - var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _possibleConstructorReturn2 = __webpack_require__(19); - - var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - - var _inherits2 = __webpack_require__(56); - - var _inherits3 = _interopRequireDefault(_inherits2); - - var _entity = __webpack_require__(63); - - var _entity2 = _interopRequireDefault(_entity); - - var _keyboardinput = __webpack_require__(65); - - var _keyboardinput2 = _interopRequireDefault(_keyboardinput); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Game = function (_Entity) { - (0, _inherits3.default)(Game, _Entity); - - function Game(config) { - (0, _classCallCheck3.default)(this, Game); - // Call entity constructor - - var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Game).call(this)); - - config = config || {}; - config.inputs = config.inputs || {}; - - // Required params - if (config.canvas) { - _this.canvas = config.canvas; - } else { - throw new Error("MomentumEngine.Classes.Game must be constructed with a canvas"); - } - - if (config.width) { - _this.width = config.width; - } else { - throw new Error("MomentumEngine.Classes.Game must be constructed with canvas width"); - } - - if (config.height) { - _this.height = config.height; - } else { - throw new Error("MomentumEngine.Classes.Game must be constructed with canvas height"); - } - - // Optional params - _this.desiredFps = config.desiredFps || 60; - - if (config.fixRatio) { - - var deviceRatio = window.devicePixelRatio, - backingStoreRatio = 0; - - // Unfortunately Ejecta requires calling getContext last, so we cannot get the backingStorePixelRatio. So for Ejecta's case, we set it to 1, and call getContext later. - if (typeof ejecta !== "undefined") { - backingStoreRatio = 1; - } else { - - _this.context = _this.canvas.getContext("2d"); - - backingStoreRatio = _this.context.webkitBackingStorePixelRatio || _this.context.mozBackingStorePixelRatio || _this.context.msBackingStorePixelRatio || _this.context.oBackingStorePixelRatio || _this.context.backingStorePixelRatio || 1; - } - - _this.scale = deviceRatio / backingStoreRatio; - - _this.canvas.width = _this.width * _this.scale; - _this.canvas.height = _this.height * _this.scale; - - _this.canvas.style.width = _this.width + "px"; - _this.canvas.style.height = _this.height + "px"; - - // Call getContext last for Ejecta only. - if (typeof ejecta !== "undefined") { - _this.context = _this.canvas.getContext("2d"); - } - - _this.context.scale(deviceRatio, deviceRatio); - } else { - - _this.canvas.width = _this.width; - _this.canvas.height = _this.height; - - _this.context = _this.canvas.getContext("2d"); - } - - if (typeof _this.context.imageSmoothingEnabled !== "undefined") { - _this.context.imageSmoothingEnabled = config.imageSmoothing || false; - } - - // Initialize defaults - _this.frameCounter = 0; - - _this.inputs = {}; - if (config.inputs.keyboard) { - _this.inputs.keyboard = new _keyboardinput2.default(_this); - } - - _this._game = _this; - _this._lastFrameTimestamp = 0; - _this._wantPause = true; - - return _this; - } - - (0, _createClass3.default)(Game, [{ - key: "step", - value: function step(delta) { - - this.frameCounter++; - - this._updateEntity(delta); - this._renderEntity(); - } - }, { - key: "start", - value: function start() { - - var self = this; // NK: Hate doing this...better way plz? - - if (self._wantPause) { - self._wantPause = false; - } else { - console.log("MomentumEngine.Classes.Game.start called, game instance is already started"); - return false; // Game is already running - } - - self._wantPause = false; - - var requestFrame = function () { - - return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) { - window.setTimeout(callback, 1000 / self.desiredFps); - }; - }(); - - self._lastFrameTimestamp = +new Date(); - self.startTime = self._lastFrameTimestamp; - - var loop = function loop() { - - if (self._wantPause) { - return; - } - - var currentTimestamp = +new Date(), - delta = currentTimestamp - self._lastFrameTimestamp; - - delta = Math.min(delta, 1000 / self.desiredFps); - self._lastFrameTimestamp = currentTimestamp; - - self.step(delta); - - requestFrame(loop); - }; - - loop(); - return true; - } - }, { - key: "pause", - value: function pause() { - - if (!this._wantPause) { - this._wantPause = true; - return true; - } else { - console.log("MomentumEngine.Classes.Game.pause called, game instance is already paused"); - return false; - } - } - }]); - return Game; - }(_entity2.default); - - exports.default = Game; - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(3), __esModule: true }; - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(4); - module.exports = __webpack_require__(10).Object.getPrototypeOf; - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.9 Object.getPrototypeOf(O) - var toObject = __webpack_require__(5); - - __webpack_require__(7)('getPrototypeOf', function($getPrototypeOf){ - return function getPrototypeOf(it){ - return $getPrototypeOf(toObject(it)); - }; - }); - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(6); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 7 */ -/***/ function(module, exports, __webpack_require__) { - - // most Object methods by ES6 should accept primitives - var $export = __webpack_require__(8) - , core = __webpack_require__(10) - , fails = __webpack_require__(13); - module.exports = function(KEY, exec){ - var fn = (core.Object || {})[KEY] || Object[KEY] - , exp = {}; - exp[KEY] = exec(fn); - $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp); - }; - -/***/ }, -/* 8 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(9) - , core = __webpack_require__(10) - , ctx = __webpack_require__(11) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && key in target; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(param){ - return this instanceof C ? new C(param) : C(param); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out; - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - module.exports = $export; - -/***/ }, -/* 9 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '1.2.6'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(12); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 13 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - "use strict"; - - exports.__esModule = true; - - exports.default = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - }; - -/***/ }, -/* 15 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - exports.__esModule = true; - - var _defineProperty = __webpack_require__(16); - - var _defineProperty2 = _interopRequireDefault(_defineProperty); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - (0, _defineProperty2.default)(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - -/***/ }, -/* 16 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(17), __esModule: true }; - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var $ = __webpack_require__(18); - module.exports = function defineProperty(it, key, desc){ - return $.setDesc(it, key, desc); - }; - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - var $Object = Object; - module.exports = { - create: $Object.create, - getProto: $Object.getPrototypeOf, - isEnum: {}.propertyIsEnumerable, - getDesc: $Object.getOwnPropertyDescriptor, - setDesc: $Object.defineProperty, - setDescs: $Object.defineProperties, - getKeys: $Object.keys, - getNames: $Object.getOwnPropertyNames, - getSymbols: $Object.getOwnPropertySymbols, - each: [].forEach - }; - -/***/ }, -/* 19 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - exports.__esModule = true; - - var _typeof2 = __webpack_require__(20); - - var _typeof3 = _interopRequireDefault(_typeof2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = function (self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; - }; - -/***/ }, -/* 20 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - var _typeof = typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === "function" && obj.constructor === _Symbol ? "symbol" : typeof obj; }; - - exports.__esModule = true; - - var _iterator = __webpack_require__(21); - - var _iterator2 = _interopRequireDefault(_iterator); - - var _symbol = __webpack_require__(46); - - var _symbol2 = _interopRequireDefault(_symbol); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); - } : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); - }; - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(22), __esModule: true }; - -/***/ }, -/* 22 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(23); - __webpack_require__(39); - module.exports = __webpack_require__(36)('iterator'); - -/***/ }, -/* 23 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var $at = __webpack_require__(24)(true); - - // 21.1.3.27 String.prototype[@@iterator]() - __webpack_require__(26)(String, 'String', function(iterated){ - this._t = String(iterated); // target - this._i = 0; // next index - // 21.1.5.2.1 %StringIteratorPrototype%.next() - }, function(){ - var O = this._t - , index = this._i - , point; - if(index >= O.length)return {value: undefined, done: true}; - point = $at(O, index); - this._i += point.length; - return {value: point, done: false}; - }); - -/***/ }, -/* 24 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(25) - , defined = __webpack_require__(6); - // true -> String#at - // false -> String#codePointAt - module.exports = function(TO_STRING){ - return function(that, pos){ - var s = String(defined(that)) - , i = toInteger(pos) - , l = s.length - , a, b; - if(i < 0 || i >= l)return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; - }; - -/***/ }, -/* 25 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var LIBRARY = __webpack_require__(27) - , $export = __webpack_require__(8) - , redefine = __webpack_require__(28) - , hide = __webpack_require__(29) - , has = __webpack_require__(32) - , Iterators = __webpack_require__(33) - , $iterCreate = __webpack_require__(34) - , setToStringTag = __webpack_require__(35) - , getProto = __webpack_require__(18).getProto - , ITERATOR = __webpack_require__(36)('iterator') - , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` - , FF_ITERATOR = '@@iterator' - , KEYS = 'keys' - , VALUES = 'values'; - - var returnThis = function(){ return this; }; - - module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ - $iterCreate(Constructor, NAME, next); - var getMethod = function(kind){ - if(!BUGGY && kind in proto)return proto[kind]; - switch(kind){ - case KEYS: return function keys(){ return new Constructor(this, kind); }; - case VALUES: return function values(){ return new Constructor(this, kind); }; - } return function entries(){ return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator' - , DEF_VALUES = DEFAULT == VALUES - , VALUES_BUG = false - , proto = Base.prototype - , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] - , $default = $native || getMethod(DEFAULT) - , methods, key; - // Fix native - if($native){ - var IteratorPrototype = getProto($default.call(new Base)); - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // FF fix - if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); - // fix Array#{values, @@iterator}.name in V8 / FF - if(DEF_VALUES && $native.name !== VALUES){ - VALUES_BUG = true; - $default = function values(){ return $native.call(this); }; - } - } - // Define iterator - if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if(DEFAULT){ - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: !DEF_VALUES ? $default : getMethod('entries') - }; - if(FORCED)for(key in methods){ - if(!(key in proto))redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; - }; - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = true; - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(29); - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - var $ = __webpack_require__(18) - , createDesc = __webpack_require__(30); - module.exports = __webpack_require__(31) ? function(object, key, value){ - return $.setDesc(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 30 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(13)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 32 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - module.exports = {}; - -/***/ }, -/* 34 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var $ = __webpack_require__(18) - , descriptor = __webpack_require__(30) - , setToStringTag = __webpack_require__(35) - , IteratorPrototype = {}; - - // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - __webpack_require__(29)(IteratorPrototype, __webpack_require__(36)('iterator'), function(){ return this; }); - - module.exports = function(Constructor, NAME, next){ - Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)}); - setToStringTag(Constructor, NAME + ' Iterator'); - }; - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - var def = __webpack_require__(18).setDesc - , has = __webpack_require__(32) - , TAG = __webpack_require__(36)('toStringTag'); - - module.exports = function(it, tag, stat){ - if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports, __webpack_require__) { - - var store = __webpack_require__(37)('wks') - , uid = __webpack_require__(38) - , Symbol = __webpack_require__(9).Symbol; - module.exports = function(name){ - return store[name] || (store[name] = - Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name)); - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(9) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(40); - var Iterators = __webpack_require__(33); - Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array; - -/***/ }, -/* 40 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var addToUnscopables = __webpack_require__(41) - , step = __webpack_require__(42) - , Iterators = __webpack_require__(33) - , toIObject = __webpack_require__(43); - - // 22.1.3.4 Array.prototype.entries() - // 22.1.3.13 Array.prototype.keys() - // 22.1.3.29 Array.prototype.values() - // 22.1.3.30 Array.prototype[@@iterator]() - module.exports = __webpack_require__(26)(Array, 'Array', function(iterated, kind){ - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind - // 22.1.5.2.1 %ArrayIteratorPrototype%.next() - }, function(){ - var O = this._t - , kind = this._k - , index = this._i++; - if(!O || index >= O.length){ - this._t = undefined; - return step(1); - } - if(kind == 'keys' )return step(0, index); - if(kind == 'values')return step(0, O[index]); - return step(0, [index, O[index]]); - }, 'values'); - - // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) - Iterators.Arguments = Iterators.Array; - - addToUnscopables('keys'); - addToUnscopables('values'); - addToUnscopables('entries'); - -/***/ }, -/* 41 */ -/***/ function(module, exports) { - - module.exports = function(){ /* empty */ }; - -/***/ }, -/* 42 */ -/***/ function(module, exports) { - - module.exports = function(done, value){ - return {value: value, done: !!done}; - }; - -/***/ }, -/* 43 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(44) - , defined = __webpack_require__(6); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(45); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(47), __esModule: true }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(48); - __webpack_require__(55); - module.exports = __webpack_require__(10).Symbol; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // ECMAScript 6 symbols shim - var $ = __webpack_require__(18) - , global = __webpack_require__(9) - , has = __webpack_require__(32) - , DESCRIPTORS = __webpack_require__(31) - , $export = __webpack_require__(8) - , redefine = __webpack_require__(28) - , $fails = __webpack_require__(13) - , shared = __webpack_require__(37) - , setToStringTag = __webpack_require__(35) - , uid = __webpack_require__(38) - , wks = __webpack_require__(36) - , keyOf = __webpack_require__(49) - , $names = __webpack_require__(50) - , enumKeys = __webpack_require__(51) - , isArray = __webpack_require__(52) - , anObject = __webpack_require__(53) - , toIObject = __webpack_require__(43) - , createDesc = __webpack_require__(30) - , getDesc = $.getDesc - , setDesc = $.setDesc - , _create = $.create - , getNames = $names.get - , $Symbol = global.Symbol - , $JSON = global.JSON - , _stringify = $JSON && $JSON.stringify - , setter = false - , HIDDEN = wks('_hidden') - , isEnum = $.isEnum - , SymbolRegistry = shared('symbol-registry') - , AllSymbols = shared('symbols') - , useNative = typeof $Symbol == 'function' - , ObjectProto = Object.prototype; - - // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var setSymbolDesc = DESCRIPTORS && $fails(function(){ - return _create(setDesc({}, 'a', { - get: function(){ return setDesc(this, 'a', {value: 7}).a; } - })).a != 7; - }) ? function(it, key, D){ - var protoDesc = getDesc(ObjectProto, key); - if(protoDesc)delete ObjectProto[key]; - setDesc(it, key, D); - if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc); - } : setDesc; - - var wrap = function(tag){ - var sym = AllSymbols[tag] = _create($Symbol.prototype); - sym._k = tag; - DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, { - configurable: true, - set: function(value){ - if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - } - }); - return sym; - }; - - var isSymbol = function(it){ - return typeof it == 'symbol'; - }; - - var $defineProperty = function defineProperty(it, key, D){ - if(D && has(AllSymbols, key)){ - if(!D.enumerable){ - if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; - D = _create(D, {enumerable: createDesc(0, false)}); - } return setSymbolDesc(it, key, D); - } return setDesc(it, key, D); - }; - var $defineProperties = function defineProperties(it, P){ - anObject(it); - var keys = enumKeys(P = toIObject(P)) - , i = 0 - , l = keys.length - , key; - while(l > i)$defineProperty(it, key = keys[i++], P[key]); - return it; - }; - var $create = function create(it, P){ - return P === undefined ? _create(it) : $defineProperties(_create(it), P); - }; - var $propertyIsEnumerable = function propertyIsEnumerable(key){ - var E = isEnum.call(this, key); - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] - ? E : true; - }; - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ - var D = getDesc(it = toIObject(it), key); - if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; - return D; - }; - var $getOwnPropertyNames = function getOwnPropertyNames(it){ - var names = getNames(toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key); - return result; - }; - var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ - var names = getNames(toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]); - return result; - }; - var $stringify = function stringify(it){ - if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined - var args = [it] - , i = 1 - , $$ = arguments - , replacer, $replacer; - while($$.length > i)args.push($$[i++]); - replacer = args[1]; - if(typeof replacer == 'function')$replacer = replacer; - if($replacer || !isArray(replacer))replacer = function(key, value){ - if($replacer)value = $replacer.call(this, key, value); - if(!isSymbol(value))return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - }; - var buggyJSON = $fails(function(){ - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; - }); - - // 19.4.1.1 Symbol([description]) - if(!useNative){ - $Symbol = function Symbol(){ - if(isSymbol(this))throw TypeError('Symbol is not a constructor'); - return wrap(uid(arguments.length > 0 ? arguments[0] : undefined)); - }; - redefine($Symbol.prototype, 'toString', function toString(){ - return this._k; - }); - - isSymbol = function(it){ - return it instanceof $Symbol; - }; - - $.create = $create; - $.isEnum = $propertyIsEnumerable; - $.getDesc = $getOwnPropertyDescriptor; - $.setDesc = $defineProperty; - $.setDescs = $defineProperties; - $.getNames = $names.get = $getOwnPropertyNames; - $.getSymbols = $getOwnPropertySymbols; - - if(DESCRIPTORS && !__webpack_require__(27)){ - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - } - - var symbolStatics = { - // 19.4.2.1 Symbol.for(key) - 'for': function(key){ - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(key){ - return keyOf(SymbolRegistry, key); - }, - useSetter: function(){ setter = true; }, - useSimple: function(){ setter = false; } - }; - // 19.4.2.2 Symbol.hasInstance - // 19.4.2.3 Symbol.isConcatSpreadable - // 19.4.2.4 Symbol.iterator - // 19.4.2.6 Symbol.match - // 19.4.2.8 Symbol.replace - // 19.4.2.9 Symbol.search - // 19.4.2.10 Symbol.species - // 19.4.2.11 Symbol.split - // 19.4.2.12 Symbol.toPrimitive - // 19.4.2.13 Symbol.toStringTag - // 19.4.2.14 Symbol.unscopables - $.each.call(( - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' + - 'species,split,toPrimitive,toStringTag,unscopables' - ).split(','), function(it){ - var sym = wks(it); - symbolStatics[it] = useNative ? sym : wrap(sym); - }); - - setter = true; - - $export($export.G + $export.W, {Symbol: $Symbol}); - - $export($export.S, 'Symbol', symbolStatics); - - $export($export.S + $export.F * !useNative, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols - }); - - // 24.3.2 JSON.stringify(value [, replacer [, space]]) - $JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify}); - - // 19.4.3.5 Symbol.prototype[@@toStringTag] - setToStringTag($Symbol, 'Symbol'); - // 20.2.1.9 Math[@@toStringTag] - setToStringTag(Math, 'Math', true); - // 24.3.3 JSON[@@toStringTag] - setToStringTag(global.JSON, 'JSON', true); - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var $ = __webpack_require__(18) - , toIObject = __webpack_require__(43); - module.exports = function(object, el){ - var O = toIObject(object) - , keys = $.getKeys(O) - , length = keys.length - , index = 0 - , key; - while(length > index)if(O[key = keys[index++]] === el)return key; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - var toIObject = __webpack_require__(43) - , getNames = __webpack_require__(18).getNames - , toString = {}.toString; - - var windowNames = typeof window == 'object' && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - - var getWindowNames = function(it){ - try { - return getNames(it); - } catch(e){ - return windowNames.slice(); - } - }; - - module.exports.get = function getOwnPropertyNames(it){ - if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it); - return getNames(toIObject(it)); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // all enumerable object keys, includes symbols - var $ = __webpack_require__(18); - module.exports = function(it){ - var keys = $.getKeys(it) - , getSymbols = $.getSymbols; - if(getSymbols){ - var symbols = getSymbols(it) - , isEnum = $.isEnum - , i = 0 - , key; - while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key); - } - return keys; - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.2.2 IsArray(argument) - var cof = __webpack_require__(45); - module.exports = Array.isArray || function(arg){ - return cof(arg) == 'Array'; - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(54); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports) { - - - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - exports.__esModule = true; - - var _setPrototypeOf = __webpack_require__(57); - - var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); - - var _create = __webpack_require__(61); - - var _create2 = _interopRequireDefault(_create); - - var _typeof2 = __webpack_require__(20); - - var _typeof3 = _interopRequireDefault(_typeof2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = function (subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass))); - } - - subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(58), __esModule: true }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(59); - module.exports = __webpack_require__(10).Object.setPrototypeOf; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.19 Object.setPrototypeOf(O, proto) - var $export = __webpack_require__(8); - $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(60).set}); - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - // Works with __proto__ only. Old v8 can't work with null proto objects. - /* eslint-disable no-proto */ - var getDesc = __webpack_require__(18).getDesc - , isObject = __webpack_require__(54) - , anObject = __webpack_require__(53); - var check = function(O, proto){ - anObject(O); - if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); - }; - module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line - function(test, buggy, set){ - try { - set = __webpack_require__(11)(Function.call, getDesc(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch(e){ buggy = true; } - return function setPrototypeOf(O, proto){ - check(O, proto); - if(buggy)O.__proto__ = proto; - else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(62), __esModule: true }; - -/***/ }, -/* 62 */ -/***/ function(module, exports, __webpack_require__) { - - var $ = __webpack_require__(18); - module.exports = function create(P, D){ - return $.create(P, D); - }; - -/***/ }, -/* 63 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _vector2d = __webpack_require__(64); - - var _vector2d2 = _interopRequireDefault(_vector2d); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Entity = function () { - function Entity(x, y) { - (0, _classCallCheck3.default)(this, Entity); - - - this.pos = new _vector2d2.default(x || 0, y || 0); - this.velocity = new _vector2d2.default(0, 0); - this.acceleration = new _vector2d2.default(0, 0); - - this.state = {}; - this.children = []; - - this._calculatedPos = this.pos.clone(); - this._lastCalculated = 0; - this._game = null; - this._parent = null; - - this._creationTime = +new Date(); - } - - (0, _createClass3.default)(Entity, [{ - key: "setVelocity", - value: function setVelocity(x, y) { - - if (x instanceof _vector2d2.default) { - this.velocity = x; - } else { - this.velocity.x = x; - this.velocity.y = y; - } - } - }, { - key: "setAcceleration", - value: function setAcceleration(x, y) { - - if (x instanceof _vector2d2.default) { - this.acceleration = x; - } else { - this.acceleration.x = x; - this.acceleration.y = y; - } - } - }, { - key: "createChildEntity", - value: function createChildEntity() { - - var child = new Entity(); - - child._updateGame(this._game); - child._parent = this; - this.children.push(child); - - return child; - } - }, { - key: "addChildEntity", - value: function addChildEntity(child) { - - child._updateGame(this._game); - child._parent = this; - this.children.push(child); - - return child; - } - }, { - key: "detachChildEntity", - value: function detachChildEntity(child) { - - for (var i = 0; i < this.children.length; i++) { - if (this.children[i] == child) { - - this.children.splice(i, 1); - return true; - } - } - - return false; - } - }, { - key: "_preprocess", - value: function _preprocess() { - - // NK: The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _preprocess method all the way back up the tree and continuously adding the results together. - - // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating. - - // When rendering, the draw calls should use this._calculatedPos rather than this.pos in order for the position to be correct. - - if (this._game && this._lastCalculated < this._game.frameCounter) { - - if (this._parent) { - - var parentPos = this._parent._preprocess(); - - this._calculatedPos.x = this.pos.x + parentPos.x; - this._calculatedPos.y = this.pos.y + parentPos.y; - } else { - this._calculatedPos.x = this.pos.x; - this._calculatedPos.y = this.pos.y; - } - - this._lastCalculated = this._game.frameCounter; - } - - return this._calculatedPos; - } - }, { - key: "_updateGame", - value: function _updateGame(game) { - - this._game = game; - - this.children.forEach(function (child) { - child._updateGame(game); - }); - } - }, { - key: "_updateEntity", - value: function _updateEntity(delta) { - - if (this.timeToLive) { - if (+new Date() - this._creationTime > this.timeToLive) { - this._parent.detachChildEntity(this); - } - } - - // Calculate new position based on velocity and acceleration if there's one set - if (this.velocity) { - - if (this.acceleration) { - this.velocity.add(this.acceleration); - } - - this.pos.add(this.velocity); - } - - // If there's an update method, call it - var updated = this.update && this.update(delta); - - if (updated || typeof updated == "undefined" || typeof this.update === "undefined") { - - this.children.forEach(function (child) { - child._updateEntity(delta); - }); - } - } - }, { - key: "_renderEntity", - value: function _renderEntity() { - - this._preprocess(); - - var rendered = this.render && this.render(); - - if (rendered || typeof rendered == "undefined" || typeof this.render === "undefined") { - - this.children.forEach(function (child) { - child._renderEntity(); - }); - } - } - }]); - return Entity; - }(); - - exports.default = Entity; - -/***/ }, -/* 64 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Vector2D = function () { - function Vector2D(x, y) { - (0, _classCallCheck3.default)(this, Vector2D); - - this.x = x || 0;this.y = y || 0; - } - - (0, _createClass3.default)(Vector2D, [{ - key: "invert", - value: function invert() { - this.x = -this.x;this.y = -this.y; - return this; - } - }, { - key: "add", - value: function add(val) { - - if (val instanceof Vector2D) { - this.x += val.x;this.y += val.y; - } else { - this.x += val;this.y += val; - } - - return this; - } - }, { - key: "subtract", - value: function subtract(val) { - - if (val instanceof Vector2D) { - this.x -= val.x;this.y -= val.y; - } else { - this.x -= val;this.y -= val; - } - - return this; - } - }, { - key: "multiply", - value: function multiply(val) { - - if (val instanceof Vector2D) { - this.x *= val.x;this.y *= val.y; - } else { - this.x *= val;this.y *= val; - } - - return this; - } - }, { - key: "divide", - value: function divide(val) { - - if (val instanceof Vector2D) { - this.x /= val.x;this.y /= val.y; - } else { - this.x /= val;this.y /= val; - } - - return this; - } - }, { - key: "equals", - value: function equals(val) { - return this.x == val.x && this.y == val.y; - } - }, { - key: "dot", - value: function dot(val) { - return this.x * val.x + this.y * val.y; - } - }, { - key: "length", - value: function length() { - return Math.sqrt(this.dot(this)); - } - }, { - key: "unit", - value: function unit() { - return this.divide(this.length()); - } - }, { - key: "min", - value: function min() { - return Math.min(this.x, this.y); - } - }, { - key: "max", - value: function max() { - return Math.max(this.x, this.y); - } - }, { - key: "degrees", - value: function degrees() { - return Math.atan(this.x, this.y) * 180; - } - }, { - key: "angle", - value: function angle() { - return Math.atan2(this.x, this.y); - } - }, { - key: "toArray", - value: function toArray() { - return [this.x, this.y]; - } - }, { - key: "toString", - value: function toString() { - return "[" + this.x + "}," + this.y + "}]"; - } - }, { - key: "clone", - value: function clone() { - return new Vector2D(this.x, this.y); - } - }], [{ - key: "fromAngle", - value: function fromAngle(angle, length) { - return new Vector2D(length * Math.cos(angle), length * Math.sin(angle)); - } - }]); - return Vector2D; - }(); - - exports.default = Vector2D; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.KeyConsts = undefined; - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var KeyConsts = { - SPACE: 32, - BACKSPACE: 8, - TAB: 9, - ENTER: 13, - SHIFT: 16, - CTRL: 17, - ALT: 18, - PAUSE: 19, - CAPS_LOCK: 20, - ESCAPE: 27, - PAGE_UP: 33, - PAGE_DOWN: 34, - END: 35, - HOME: 36, - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40, - INSERT: 45, - DELETE: 46, - NUM_0: 48, - NUM_1: 49, - NUM_2: 50, - NUM_3: 51, - NUM_4: 52, - NUM_5: 53, - NUM_6: 54, - NUM_7: 55, - NUM_8: 56, - NUM_9: 57, - CHAR_A: 65, - CHAR_B: 66, - CHAR_C: 67, - CHAR_D: 68, - CHAR_E: 69, - CHAR_F: 70, - CHAR_G: 71, - CHAR_H: 72, - CHAR_I: 73, - CHAR_J: 74, - CHAR_K: 75, - CHAR_L: 76, - CHAR_M: 77, - CHAR_N: 78, - CHAR_O: 79, - CHAR_P: 80, - CHAR_Q: 81, - CHAR_R: 82, - CHAR_S: 83, - CHAR_T: 84, - CHAR_U: 85, - CHAR_V: 86, - CHAR_W: 87, - CHAR_X: 88, - CHAR_Y: 89, - CHAR_Z: 90, - NUM_PAD_0: 96, - NUM_PAD_1: 97, - NUM_PAD_2: 98, - NUM_PAD_3: 99, - NUM_PAD_4: 100, - NUM_PAD_5: 101, - NUM_PAD_6: 102, - NUM_PAD_7: 103, - NUM_PAD_8: 104, - NUM_PAD_9: 105, - MULTIPLY: 106, - ADD: 107, - SUBTRACT: 109, - DECIMAL: 110, - DIVIDE: 111, - F1: 112, - F2: 113, - F3: 114, - F4: 115, - F5: 116, - F6: 117, - F7: 118, - F8: 119, - F9: 120, - F10: 121, - F11: 122, - F12: 123, - SEMICOLON: 186, - EQUALS: 187, - COMMA: 188, - DASH: 189, - PERIOD: 190, - FORWARD_SLASH: 191, - GRAVE: 192, - OPEN_BRACKET: 219, - BACK_SLASH: 220, - CLOSE_BRACKET: 221, - SINGLE_QUOTE: 222 - }; - - var KeyboardInput = function () { - function KeyboardInput() { - (0, _classCallCheck3.default)(this, KeyboardInput); - - - var self = this; - self._keyState = {}; - - window.addEventListener("keydown", function (event) { - self._keyDownHandler(event); - }, false); - - window.addEventListener("keyup", function (event) { - self._keyUpHandler(event); - }, false); - } - - (0, _createClass3.default)(KeyboardInput, [{ - key: "isPressed", - value: function isPressed(keyCode) { - return !!this._keyState[keyCode]; - } - }, { - key: "_keyDownHandler", - value: function _keyDownHandler(event) { - this._keyState[event.keyCode] = true; - } - }, { - key: "_keyUpHandler", - value: function _keyUpHandler(event) { - this._keyState[event.keyCode] = false; - } - }]); - return KeyboardInput; - }(); - - exports.default = KeyboardInput; - exports.KeyConsts = KeyConsts; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _getPrototypeOf = __webpack_require__(2); - - var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _possibleConstructorReturn2 = __webpack_require__(19); - - var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - - var _inherits2 = __webpack_require__(56); - - var _inherits3 = _interopRequireDefault(_inherits2); - - var _entity = __webpack_require__(63); - - var _entity2 = _interopRequireDefault(_entity); - - var _vector2d = __webpack_require__(64); - - var _vector2d2 = _interopRequireDefault(_vector2d); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Emitter = function (_Entity) { - (0, _inherits3.default)(Emitter, _Entity); - - function Emitter(x, y, rate, velocity, particle) { - (0, _classCallCheck3.default)(this, Emitter); - - var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Emitter).call(this, x, y)); - - _this.particleVelocity = velocity; - _this.particleClass = particle; - - _this.rate = rate; - _this.emitting = false; - _this.spread = Math.PI; - _this._lastEmitTime = _this._creationTime; - _this._wasEmitting = false; - - _this._particles = []; - - return _this; - } - - (0, _createClass3.default)(Emitter, [{ - key: "setParticleParent", - value: function setParticleParent(entity) { - this._particleParent = entity; - } - }, { - key: "_emit", - value: function _emit() { - - var ParticleClass = this.particleClass, - parent = this._particleParent || this._parent; - - var angle = this.particleVelocity.angle() + this.spread - Math.random() * this.spread * 2, - magnitude = this.particleVelocity.length(), - velocity = _vector2d2.default.fromAngle(angle, magnitude); - - var particle = new ParticleClass(this._calculatedPos.x, this._calculatedPos.y); - particle.velocity = velocity; - - //this._particles.push(particle); - parent.addChildEntity(particle); - } - }, { - key: "_triggerEmissions", - value: function _triggerEmissions() { - - // We prematurely call preprocess so that child particles can spawn from the emitters permission but be children of a different parent - // NK: This might cause a bug where child renders have an incorrect position because preprocess should normally be called after the update function but before the render, here it is before update. We'll see. - this._preprocess(); - - if (this.emitting) { - - var currentTime = +new Date(); - - if (!this._wasEmitting) { - this._wasEmitting = true; - this._lastEmitTime = currentTime; - } - - var emitDelta = currentTime - this._lastEmitTime; - if (emitDelta > this.rate) { - - var emissions = ~ ~(emitDelta / this.rate); - - this._lastEmitTime = currentTime + (emitDelta - this.rate * emissions); - - for (var i = 0; i < emissions; i++) { - this._emit(); - } - } - } else { - this._wasEmitting = false; - } - } - }, { - key: "update", - value: function update() { - this._triggerEmissions(); - } - }]); - return Emitter; - }(_entity2.default); - - exports.default = Emitter; - -/***/ }, -/* 67 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _getPrototypeOf = __webpack_require__(2); - - var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _possibleConstructorReturn2 = __webpack_require__(19); - - var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - - var _inherits2 = __webpack_require__(56); - - var _inherits3 = _interopRequireDefault(_inherits2); - - var _entity = __webpack_require__(63); - - var _entity2 = _interopRequireDefault(_entity); - - var _vector2d = __webpack_require__(64); - - var _vector2d2 = _interopRequireDefault(_vector2d); - - var _imageloader = __webpack_require__(68); - - var _imageloader2 = _interopRequireDefault(_imageloader); - - var _collisionmethods = __webpack_require__(69); - - var _collisionmethods2 = _interopRequireDefault(_collisionmethods); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Sprite = function (_Entity) { - (0, _inherits3.default)(Sprite, _Entity); - - function Sprite(x, y, width, height, image) { - (0, _classCallCheck3.default)(this, Sprite); - - - if (!image instanceof _imageloader2.default) { - throw new Error("MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance"); - } - - var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Sprite).call(this, x, y)); - - _this.size = new _vector2d2.default(width || 0, height || 0); - - _this._image = image; - _this._imagePos = new _vector2d2.default(0, 0); - _this._imageSize = new _vector2d2.default(0, 0); - - return _this; - } - - (0, _createClass3.default)(Sprite, [{ - key: "setImageCoords", - value: function setImageCoords(x, y, width, height) { - - this._imagePos.x = x; - this._imagePos.y = y; - this._imageSize.x = width || 0; - this._imageSize.y = height || 0; - } - }, { - key: "isReady", - value: function isReady() { - return this._image.isLoaded() && !this._image.isError(); - } - }, { - key: "render", - value: function render() { - - if (this.isReady() && this._game) { - - var imageObj = this._image.getImageObj(); - - var subWidth = imageObj.width - this._imagePos.x, - subHeight = imageObj.height - this._imagePos.y; - - this._game.context.drawImage(imageObj, this._imagePos.x, this._imagePos.y, this._imageSize.x || subWidth, this._imageSize.y || subHeight, this._calculatedPos.x, this._calculatedPos.y, this.size.x || subWidth, this.size.y || subHeight); - - return true; - } else { - return false; - } - } - }]); - return Sprite; - }(_entity2.default); - - exports.default = Sprite; - -/***/ }, -/* 68 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var ImageLoader = function () { - function ImageLoader(src) { - var _this = this; - - (0, _classCallCheck3.default)(this, ImageLoader); - - - this._loaded = false; // Default is true, set it to false until the image has loaded - this._error = false; // If the image fails to load, this will contain the reason - - this._imageObj = new Image(); - - this._imageObj.addEventListener("load", function () { - _this._loaded = true; - _this._error = false; - }); - - this._imageObj.addEventListener("_error", function (err) { - _this._loaded = false; - _this._error = err; - }); - - this._imageObj.src = src; - } - - (0, _createClass3.default)(ImageLoader, [{ - key: "getImageObj", - value: function getImageObj() { - - if (this._loaded) { - return this._imageObj; - } else { - return false; - } - } - }, { - key: "isLoaded", - value: function isLoaded() { - return this._loaded; - } - }, { - key: "isError", - value: function isError() { - return this._error; - } - }]); - return ImageLoader; - }(); - - exports.default = ImageLoader; - -/***/ }, -/* 69 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _rect = __webpack_require__(70); - - var _rect2 = _interopRequireDefault(_rect); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var CollisionMethods = function () { - function CollisionMethods() { - (0, _classCallCheck3.default)(this, CollisionMethods); - } - - (0, _createClass3.default)(CollisionMethods, null, [{ - key: "AABB", - value: function AABB(entity1, entity2) { - - if (!entity1 instanceof _rect2.default || !entity2 instanceof _rect2.default) { - throw new Error("AABB collisions can only be checked on these entity types: Rect"); - } - - return entity1.pos.x < entity2.pos.x + entity2.size.x && entity1.pos.x + entity1.size.x > entity2.pos.x && entity1.pos.y < entity2.pos.y + entity2.size.y && entity1.size.y + entity1.pos.y > entity2.pos.y; - } - }]); - return CollisionMethods; - }(); - - exports.default = CollisionMethods; - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _getPrototypeOf = __webpack_require__(2); - - var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _possibleConstructorReturn2 = __webpack_require__(19); - - var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - - var _inherits2 = __webpack_require__(56); - - var _inherits3 = _interopRequireDefault(_inherits2); - - var _entity = __webpack_require__(63); - - var _entity2 = _interopRequireDefault(_entity); - - var _vector2d = __webpack_require__(64); - - var _vector2d2 = _interopRequireDefault(_vector2d); - - var _collisionmethods = __webpack_require__(69); - - var _collisionmethods2 = _interopRequireDefault(_collisionmethods); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Rect = function (_Entity) { - (0, _inherits3.default)(Rect, _Entity); - - function Rect(x, y, width, height, color) { - (0, _classCallCheck3.default)(this, Rect); - - var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Rect).call(this, x, y)); - - _this.size = new _vector2d2.default(width, height); - _this.color = color; - - return _this; - } - - (0, _createClass3.default)(Rect, [{ - key: "isCollidingWith", - value: function isCollidingWith(entity) { - - if (entity instanceof Rect) { - return _collisionmethods2.default.AABB(this, entity); - } - } - }, { - key: "render", - value: function render() { - - if (this._game) { - - this._game.context.fillStyle = this.color.toString(); - this._game.context.fillRect(this._calculatedPos.x, this._calculatedPos.y, this.size.x, this.size.y); - - return true; - } else { - return false; - } - } - }]); - return Rect; - }(_entity2.default); - - exports.default = Rect; - -/***/ }, -/* 71 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _classCallCheck2 = __webpack_require__(14); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = __webpack_require__(15); - - var _createClass3 = _interopRequireDefault(_createClass2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Color = function () { - function Color(r, g, b, a) { - (0, _classCallCheck3.default)(this, Color); - - - this.r = r || 0; - this.g = g || 0; - this.b = b || 0; - this.a = a || 1; - } - - (0, _createClass3.default)(Color, [{ - key: "toString", - value: function toString() { - return "rgba(" + this.r + ", " + this.g + ", " + this.b + ", " + this.a + ")"; - } - }, { - key: "toHex", - value: function toHex() { - return "#" + (r << 16 | g << 8 | b).toString(16); - } - }]); - return Color; - }(); - - exports.default = Color; - -/***/ }, -/* 72 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _game = __webpack_require__(1); - - var _game2 = _interopRequireDefault(_game); - - var _emitter = __webpack_require__(66); - - var _emitter2 = _interopRequireDefault(_emitter); - - var _entity = __webpack_require__(63); - - var _entity2 = _interopRequireDefault(_entity); - - var _vector2d = __webpack_require__(64); - - var _vector2d2 = _interopRequireDefault(_vector2d); - - var _sprite = __webpack_require__(67); - - var _sprite2 = _interopRequireDefault(_sprite); - - var _rect = __webpack_require__(70); - - var _rect2 = _interopRequireDefault(_rect); - - var _color = __webpack_require__(71); - - var _color2 = _interopRequireDefault(_color); - - var _imageloader = __webpack_require__(68); - - var _imageloader2 = _interopRequireDefault(_imageloader); - - var _keyboardinput = __webpack_require__(65); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var Classes = { - Game: _game2.default, - Emitter: _emitter2.default, - Entity: _entity2.default, - Sprite: _sprite2.default, - Rect: _rect2.default, - Vector2D: _vector2d2.default, - Color: _color2.default, - ImageLoader: _imageloader2.default - }; - - var Consts = { - Input: { - Keys: _keyboardinput.KeyConsts - } - }; - - exports.default = { - Classes: Classes, - Consts: Consts - }; - -/***/ } -/******/ ]); +!function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return t[i].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}var r=n(2),o=i(r),u=n(14),s=i(u),a=n(15),c=i(a),f=n(19),l=i(f),d=n(56),h=i(d),_=n(72),y=i(_),p=y["default"].Consts.Input.Keys,v=function(t){function e(t,n){(0,s["default"])(this,e);var i=(0,l["default"])(this,(0,o["default"])(e).call(this,t,n,1,1,new y["default"].Classes.Color(255,255,255,0)));return i.timeToLive=5e3,i}return(0,h["default"])(e,t),(0,c["default"])(e,[{key:"update",value:function(t){this.color.a=this.color.a-25e-5*t}}]),e}(y["default"].Classes.Rect);window.onload=function(){var t=640,e=360,n=t/64,i=new y["default"].Classes.Game({canvas:document.getElementById("canvas"),width:t,height:e,fixRatio:!0,desiredFps:60,inputs:{keyboard:!0}}),r=new y["default"].Classes.Color(0,0,0),o=new y["default"].Classes.Color(255,0,0),u=new y["default"].Classes.Rect(0,0,t,e,r);i.addChildEntity(u);var s=new y["default"].Classes.Rect(t/2-n,e/2-n,2*n,2*n,o),a=new y["default"].Classes.Emitter(n,n,4,new y["default"].Classes.Vector2D(0,.05),v);u.addChildEntity(s),s.addChildEntity(a),s.update=function(t){i.inputs.keyboard.isPressed(p.UP)&&(s.pos.y-=.2*t),i.inputs.keyboard.isPressed(p.DOWN)&&(s.pos.y+=.2*t),i.inputs.keyboard.isPressed(p.LEFT)&&(s.pos.x-=.2*t),i.inputs.keyboard.isPressed(p.RIGHT)&&(s.pos.x+=.2*t)},a.setParticleParent(u),a.emitting=!0,i.start()}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=i(r),u=n(14),s=i(u),a=n(15),c=i(a),f=n(19),l=i(f),d=n(56),h=i(d),_=n(63),y=i(_),p=n(65),v=i(p),m=function(t){function e(t){(0,s["default"])(this,e);var n=(0,l["default"])(this,(0,o["default"])(e).call(this));if(t=t||{},t.inputs=t.inputs||{},!t.canvas)throw new Error("MomentumEngine.Classes.Game must be constructed with a canvas");if(n.canvas=t.canvas,!t.width)throw new Error("MomentumEngine.Classes.Game must be constructed with canvas width");if(n.width=t.width,!t.height)throw new Error("MomentumEngine.Classes.Game must be constructed with canvas height");if(n.height=t.height,n.desiredFps=t.desiredFps||60,t.fixRatio){var i=window.devicePixelRatio,r=0;"undefined"!=typeof ejecta?r=1:(n.context=n.canvas.getContext("2d"),r=n.context.webkitBackingStorePixelRatio||n.context.mozBackingStorePixelRatio||n.context.msBackingStorePixelRatio||n.context.oBackingStorePixelRatio||n.context.backingStorePixelRatio||1),n.scale=i/r,n.canvas.width=n.width*n.scale,n.canvas.height=n.height*n.scale,n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px","undefined"!=typeof ejecta&&(n.context=n.canvas.getContext("2d")),n.context.scale(i,i)}else n.canvas.width=n.width,n.canvas.height=n.height,n.context=n.canvas.getContext("2d");return"undefined"!=typeof n.context.imageSmoothingEnabled&&(n.context.imageSmoothingEnabled=t.imageSmoothing||!1),n.frameCounter=0,n.inputs={},t.inputs.keyboard&&(n.inputs.keyboard=new v["default"](n)),n._game=n,n._lastFrameTimestamp=0,n._wantPause=!0,n}return(0,h["default"])(e,t),(0,c["default"])(e,[{key:"step",value:function(t){this.frameCounter++,this._updateEntity(t),this._renderEntity()}},{key:"start",value:function(){var t=this;if(!t._wantPause)return console.log("MomentumEngine.Classes.Game.start called, game instance is already started"),!1;t._wantPause=!1,t._wantPause=!1;var e=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/t.desiredFps)}}();t._lastFrameTimestamp=+new Date,t.startTime=t._lastFrameTimestamp;var n=function i(){if(!t._wantPause){var n=+new Date,r=n-t._lastFrameTimestamp;r=Math.min(r,1e3/t.desiredFps),t._lastFrameTimestamp=n,t.step(r),e(i)}};return n(),!0}},{key:"pause",value:function(){return this._wantPause?(console.log("MomentumEngine.Classes.Game.pause called, game instance is already paused"),!1):(this._wantPause=!0,!0)}}]),e}(y["default"]);e["default"]=m},function(t,e,n){t.exports={"default":n(3),__esModule:!0}},function(t,e,n){n(4),t.exports=n(10).Object.getPrototypeOf},function(t,e,n){var i=n(5);n(7)("getPrototypeOf",function(t){return function(e){return t(i(e))}})},function(t,e,n){var i=n(6);t.exports=function(t){return Object(i(t))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var i=n(8),r=n(10),o=n(13);t.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],u={};u[t]=e(n),i(i.S+i.F*o(function(){n(1)}),"Object",u)}},function(t,e,n){var i=n(9),r=n(10),o=n(11),u="prototype",s=function(t,e,n){var a,c,f,l=t&s.F,d=t&s.G,h=t&s.S,_=t&s.P,y=t&s.B,p=t&s.W,v=d?r:r[e]||(r[e]={}),m=d?i:h?i[e]:(i[e]||{})[u];d&&(n=e);for(a in n)c=!l&&m&&a in m,c&&a in v||(f=c?m[a]:n[a],v[a]=d&&"function"!=typeof m[a]?n[a]:y&&c?o(f,i):p&&m[a]==f?function(t){var e=function(e){return this instanceof t?new t(e):t(e)};return e[u]=t[u],e}(f):_&&"function"==typeof f?o(Function.call,f):f,_&&((v[u]||(v[u]={}))[a]=f))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,t.exports=s},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n=t.exports={version:"1.2.6"};"number"==typeof __e&&(__e=n)},function(t,e,n){var i=n(12);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){"use strict";e.__esModule=!0,e["default"]=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var r=n(16),o=i(r);e["default"]=function(){function t(t,e){for(var n=0;n=e.length?{value:void 0,done:!0}:(t=i(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){var i=n(25),r=n(6);t.exports=function(t){return function(e,n){var o,u,s=String(r(e)),a=i(n),c=s.length;return 0>a||a>=c?t?"":void 0:(o=s.charCodeAt(a),55296>o||o>56319||a+1===c||(u=s.charCodeAt(a+1))<56320||u>57343?t?s.charAt(a):o:t?s.slice(a,a+2):(o-55296<<10)+(u-56320)+65536)}}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){"use strict";var i=n(27),r=n(8),o=n(28),u=n(29),s=n(32),a=n(33),c=n(34),f=n(35),l=n(18).getProto,d=n(36)("iterator"),h=!([].keys&&"next"in[].keys()),_="@@iterator",y="keys",p="values",v=function(){return this};t.exports=function(t,e,n,m,g,x,w){c(n,e,m);var b,P,C=function(t){if(!h&&t in S)return S[t];switch(t){case y:return function(){return new n(this,t)};case p:return function(){return new n(this,t)}}return function(){return new n(this,t)}},E=e+" Iterator",M=g==p,k=!1,S=t.prototype,A=S[d]||S[_]||g&&S[g],O=A||C(g);if(A){var R=l(O.call(new t));f(R,E,!0),!i&&s(S,_)&&u(R,d,v),M&&A.name!==p&&(k=!0,O=function(){return A.call(this)})}if(i&&!w||!h&&!k&&S[d]||u(S,d,O),a[e]=O,a[E]=v,g)if(b={values:M?O:C(p),keys:x?O:C(y),entries:M?C("entries"):O},w)for(P in b)P in S||o(S,P,b[P]);else r(r.P+r.F*(h||k),e,b);return b}},function(t,e){t.exports=!0},function(t,e,n){t.exports=n(29)},function(t,e,n){var i=n(18),r=n(30);t.exports=n(31)?function(t,e,n){return i.setDesc(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){t.exports=!n(13)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e){t.exports={}},function(t,e,n){"use strict";var i=n(18),r=n(30),o=n(35),u={};n(29)(u,n(36)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=i.create(u,{next:r(1,n)}),o(t,e+" Iterator")}},function(t,e,n){var i=n(18).setDesc,r=n(32),o=n(36)("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(37)("wks"),r=n(38),o=n(9).Symbol;t.exports=function(t){return i[t]||(i[t]=o&&o[t]||(o||r)("Symbol."+t))}},function(t,e,n){var i=n(9),r="__core-js_shared__",o=i[r]||(i[r]={});t.exports=function(t){return o[t]||(o[t]={})}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},function(t,e,n){n(40);var i=n(33);i.NodeList=i.HTMLCollection=i.Array},function(t,e,n){"use strict";var i=n(41),r=n(42),o=n(33),u=n(43);t.exports=n(26)(Array,"Array",function(t,e){this._t=u(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,r(1)):"keys"==e?r(0,n):"values"==e?r(0,t[n]):r(0,[n,t[n]])},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var i=n(44),r=n(6);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(45);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){t.exports={"default":n(47),__esModule:!0}},function(t,e,n){n(48),n(55),t.exports=n(10).Symbol},function(t,e,n){"use strict";var i=n(18),r=n(9),o=n(32),u=n(31),s=n(8),a=n(28),c=n(13),f=n(37),l=n(35),d=n(38),h=n(36),_=n(49),y=n(50),p=n(51),v=n(52),m=n(53),g=n(43),x=n(30),w=i.getDesc,b=i.setDesc,P=i.create,C=y.get,E=r.Symbol,M=r.JSON,k=M&&M.stringify,S=!1,A=h("_hidden"),O=i.isEnum,R=f("symbol-registry"),D=f("symbols"),j="function"==typeof E,T=Object.prototype,N=u&&c(function(){return 7!=P(b({},"a",{get:function(){return b(this,"a",{value:7}).a}})).a})?function(t,e,n){var i=w(T,e);i&&delete T[e],b(t,e,n),i&&t!==T&&b(T,e,i)}:b,F=function(t){var e=D[t]=P(E.prototype);return e._k=t,u&&S&&N(T,t,{configurable:!0,set:function(e){o(this,A)&&o(this[A],t)&&(this[A][t]=!1),N(this,t,x(1,e))}}),e},H=function(t){return"symbol"==typeof t},U=function(t,e,n){return n&&o(D,e)?(n.enumerable?(o(t,A)&&t[A][e]&&(t[A][e]=!1),n=P(n,{enumerable:x(0,!1)})):(o(t,A)||b(t,A,x(1,{})),t[A][e]=!0),N(t,e,n)):b(t,e,n)},I=function(t,e){m(t);for(var n,i=p(e=g(e)),r=0,o=i.length;o>r;)U(t,n=i[r++],e[n]);return t},L=function(t,e){return void 0===e?P(t):I(P(t),e)},G=function(t){var e=O.call(this,t);return e||!o(this,t)||!o(D,t)||o(this,A)&&this[A][t]?e:!0},B=function(t,e){var n=w(t=g(t),e);return!n||!o(D,e)||o(t,A)&&t[A][e]||(n.enumerable=!0),n},z=function(t){for(var e,n=C(g(t)),i=[],r=0;n.length>r;)o(D,e=n[r++])||e==A||i.push(e);return i},K=function(t){for(var e,n=C(g(t)),i=[],r=0;n.length>r;)o(D,e=n[r++])&&i.push(D[e]);return i},W=function(t){if(void 0!==t&&!H(t)){for(var e,n,i=[t],r=1,o=arguments;o.length>r;)i.push(o[r++]);return e=i[1],"function"==typeof e&&(n=e),(n||!v(e))&&(e=function(t,e){return n&&(e=n.call(this,t,e)),H(e)?void 0:e}),i[1]=e,k.apply(M,i)}},V=c(function(){var t=E();return"[null]"!=k([t])||"{}"!=k({a:t})||"{}"!=k(Object(t))});j||(E=function(){if(H(this))throw TypeError("Symbol is not a constructor");return F(d(arguments.length>0?arguments[0]:void 0))},a(E.prototype,"toString",function(){return this._k}),H=function(t){return t instanceof E},i.create=L,i.isEnum=G,i.getDesc=B,i.setDesc=U,i.setDescs=I,i.getNames=y.get=z,i.getSymbols=K,u&&!n(27)&&a(T,"propertyIsEnumerable",G,!0));var q={"for":function(t){return o(R,t+="")?R[t]:R[t]=E(t)},keyFor:function(t){return _(R,t)},useSetter:function(){S=!0},useSimple:function(){S=!1}};i.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(t){var e=h(t);q[t]=j?e:F(e)}),S=!0,s(s.G+s.W,{Symbol:E}),s(s.S,"Symbol",q),s(s.S+s.F*!j,"Object",{create:L,defineProperty:U,defineProperties:I,getOwnPropertyDescriptor:B,getOwnPropertyNames:z,getOwnPropertySymbols:K}),M&&s(s.S+s.F*(!j||V),"JSON",{stringify:W}),l(E,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e,n){var i=n(18),r=n(43);t.exports=function(t,e){for(var n,o=r(t),u=i.getKeys(o),s=u.length,a=0;s>a;)if(o[n=u[a++]]===e)return n}},function(t,e,n){var i=n(43),r=n(18).getNames,o={}.toString,u="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(e){return u.slice()}};t.exports.get=function(t){return u&&"[object Window]"==o.call(t)?s(t):r(i(t))}},function(t,e,n){var i=n(18);t.exports=function(t){var e=i.getKeys(t),n=i.getSymbols;if(n)for(var r,o=n(t),u=i.isEnum,s=0;o.length>s;)u.call(t,r=o[s++])&&e.push(r);return e}},function(t,e,n){var i=n(45);t.exports=Array.isArray||function(t){return"Array"==i(t)}},function(t,e,n){var i=n(54);t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var r=n(57),o=i(r),u=n(61),s=i(u),a=n(20),c=i(a);e["default"]=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof e?"undefined":(0,c["default"])(e)));t.prototype=(0,s["default"])(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(o["default"]?(0,o["default"])(t,e):t.__proto__=e)}},function(t,e,n){t.exports={"default":n(58),__esModule:!0}},function(t,e,n){n(59),t.exports=n(10).Object.setPrototypeOf},function(t,e,n){var i=n(8);i(i.S,"Object",{setPrototypeOf:n(60).set})},function(t,e,n){var i=n(18).getDesc,r=n(54),o=n(53),u=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{r=n(11)(Function.call,i(Object.prototype,"__proto__").set,2),r(t,[]),e=!(t instanceof Array)}catch(o){e=!0}return function(t,n){return u(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:u}},function(t,e,n){t.exports={"default":n(62),__esModule:!0}},function(t,e,n){var i=n(18);t.exports=function(t,e){return i.create(t,e)}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(14),o=i(r),u=n(15),s=i(u),a=n(64),c=i(a),f=function(){function t(e,n){(0,o["default"])(this,t),this.pos=new c["default"](e||0,n||0),this.velocity=new c["default"](0,0),this.acceleration=new c["default"](0,0),this.state={},this.children=[],this._calculatedPos=this.pos.clone(),this._lastCalculated=0,this._game=null,this._parent=null,this._creationTime=+new Date}return(0,s["default"])(t,[{key:"setVelocity",value:function(t,e){t instanceof c["default"]?this.velocity=t:(this.velocity.x=t,this.velocity.y=e)}},{key:"setAcceleration",value:function(t,e){t instanceof c["default"]?this.acceleration=t:(this.acceleration.x=t,this.acceleration.y=e)}},{key:"createChildEntity",value:function(){var e=new t;return e._updateGame(this._game),e._parent=this,this.children.push(e),e}},{key:"addChildEntity",value:function(t){return t._updateGame(this._game),t._parent=this,this.children.push(t),t}},{key:"detachChildEntity",value:function(t){for(var e=0;ethis.timeToLive&&this._parent.detachChildEntity(this),this.velocity&&(this.acceleration&&this.velocity.add(this.acceleration),this.pos.add(this.velocity.clone().multiply(t)));var e=this.update&&this.update(t);(e||"undefined"==typeof e||"undefined"==typeof this.update)&&this.children.forEach(function(e){e._updateEntity(t)})}},{key:"_renderEntity",value:function(){this._preprocess();var t=this.render&&this.render();(t||"undefined"==typeof t||"undefined"==typeof this.render)&&this.children.forEach(function(t){t._renderEntity()})}}]),t}();e["default"]=f},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(14),o=i(r),u=n(15),s=i(u),a=function(){function t(e,n){(0,o["default"])(this,t),this.x=e||0,this.y=n||0}return(0,s["default"])(t,[{key:"invert",value:function(){return this.x=-this.x,this.y=-this.y,this}},{key:"add",value:function(e){return e instanceof t?(this.x+=e.x,this.y+=e.y):(this.x+=e,this.y+=e),this}},{key:"subtract",value:function(e){return e instanceof t?(this.x-=e.x,this.y-=e.y):(this.x-=e,this.y-=e),this}},{key:"multiply",value:function(e){return e instanceof t?(this.x*=e.x,this.y*=e.y):(this.x*=e,this.y*=e),this}},{key:"divide",value:function(e){return e instanceof t?(this.x/=e.x,this.y/=e.y):(this.x/=e,this.y/=e),this}},{key:"equals",value:function(t){return this.x==t.x&&this.y==t.y}},{key:"dot",value:function(t){return this.x*t.x+this.y*t.y}},{key:"length",value:function(){return Math.sqrt(this.dot(this))}},{key:"unit",value:function(){return this.divide(this.length())}},{key:"min",value:function(){return Math.min(this.x,this.y)}},{key:"max",value:function(){return Math.max(this.x,this.y)}},{key:"degrees",value:function(){return 180*Math.atan(this.x,this.y)}},{key:"angle",value:function(){return Math.atan2(this.x,this.y)}},{key:"toArray",value:function(){return[this.x,this.y]}},{key:"toString",value:function(){return"["+this.x+"},"+this.y+"}]"}},{key:"clone",value:function(){return new t(this.x,this.y)}}],[{key:"fromAngle",value:function(e,n){return new t(n*Math.cos(e),n*Math.sin(e))}}]),t}();e["default"]=a},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),e.KeyConsts=void 0;var r=n(14),o=i(r),u=n(15),s=i(u),a={SPACE:32,BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,INSERT:45,DELETE:46,NUM_0:48,NUM_1:49,NUM_2:50,NUM_3:51,NUM_4:52,NUM_5:53,NUM_6:54,NUM_7:55,NUM_8:56,NUM_9:57,CHAR_A:65,CHAR_B:66,CHAR_C:67,CHAR_D:68,CHAR_E:69,CHAR_F:70,CHAR_G:71,CHAR_H:72,CHAR_I:73,CHAR_J:74,CHAR_K:75,CHAR_L:76,CHAR_M:77,CHAR_N:78,CHAR_O:79,CHAR_P:80,CHAR_Q:81,CHAR_R:82,CHAR_S:83,CHAR_T:84,CHAR_U:85,CHAR_V:86,CHAR_W:87,CHAR_X:88,CHAR_Y:89,CHAR_Z:90,NUM_PAD_0:96,NUM_PAD_1:97,NUM_PAD_2:98,NUM_PAD_3:99,NUM_PAD_4:100,NUM_PAD_5:101,NUM_PAD_6:102,NUM_PAD_7:103,NUM_PAD_8:104,NUM_PAD_9:105,MULTIPLY:106,ADD:107,SUBTRACT:109,DECIMAL:110,DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,SEMICOLON:186,EQUALS:187,COMMA:188,DASH:189,PERIOD:190,FORWARD_SLASH:191,GRAVE:192,OPEN_BRACKET:219,BACK_SLASH:220,CLOSE_BRACKET:221,SINGLE_QUOTE:222},c=function(){function t(){(0,o["default"])(this,t);var e=this;e._keyState={},window.addEventListener("keydown",function(t){e._keyDownHandler(t)},!1),window.addEventListener("keyup",function(t){e._keyUpHandler(t)},!1)}return(0,s["default"])(t,[{key:"isPressed",value:function(t){return!!this._keyState[t]}},{key:"_keyDownHandler",value:function(t){this._keyState[t.keyCode]=!0}},{key:"_keyUpHandler",value:function(t){this._keyState[t.keyCode]=!1}}]),t}();e["default"]=c,e.KeyConsts=a},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=i(r),u=n(14),s=i(u),a=n(15),c=i(a),f=n(19),l=i(f),d=n(56),h=i(d),_=n(63),y=i(_),p=n(64),v=i(p),m=function(t){function e(t,n,i,r,u){(0,s["default"])(this,e);var a=(0,l["default"])(this,(0,o["default"])(e).call(this,t,n));return a.particleVelocity=r,a.particleClass=u,a.rate=i,a.emitting=!1,a.spread=Math.PI,a._lastEmitTime=a._creationTime,a._wasEmitting=!1,a._particles=[],a}return(0,h["default"])(e,t),(0,c["default"])(e,[{key:"setParticleParent",value:function(t){this._particleParent=t}},{key:"_emit",value:function(){var t=this.particleClass,e=this._particleParent||this._parent,n=this.particleVelocity.angle()+this.spread-Math.random()*this.spread*2,i=this.particleVelocity.length(),r=v["default"].fromAngle(n,i),o=new t(this._calculatedPos.x,this._calculatedPos.y);o.velocity=r,e.addChildEntity(o)}},{key:"_triggerEmissions",value:function(){if(this._preprocess(),this.emitting){var t=+new Date;this._wasEmitting||(this._wasEmitting=!0,this._lastEmitTime=t);var e=t-this._lastEmitTime;if(e>this.rate){var n=~~(e/this.rate);this._lastEmitTime=t+(e-this.rate*n);for(var i=0;n>i;i++)this._emit()}}else this._wasEmitting=!1}},{key:"update",value:function(){this._triggerEmissions()}}]),e}(y["default"]);e["default"]=m},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=i(r),u=n(14),s=i(u),a=n(15),c=i(a),f=n(19),l=i(f),d=n(56),h=i(d),_=n(63),y=i(_),p=n(64),v=i(p),m=n(68),g=i(m),x=n(69),w=(i(x),function(t){function e(t,n,i,r,u){if((0,s["default"])(this,e),!u instanceof g["default"])throw new Error("MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance");var a=(0,l["default"])(this,(0,o["default"])(e).call(this,t,n));return a.size=new v["default"](i||0,r||0),a._image=u,a._imagePos=new v["default"](0,0),a._imageSize=new v["default"](0,0),a}return(0,h["default"])(e,t),(0,c["default"])(e,[{key:"setImageCoords",value:function(t,e,n,i){this._imagePos.x=t,this._imagePos.y=e,this._imageSize.x=n||0,this._imageSize.y=i||0}},{key:"isReady",value:function(){return this._image.isLoaded()&&!this._image.isError()}},{key:"render",value:function(){if(this.isReady()&&this._game){var t=this._image.getImageObj(),e=t.width-this._imagePos.x,n=t.height-this._imagePos.y;return this._game.context.drawImage(t,this._imagePos.x,this._imagePos.y,this._imageSize.x||e,this._imageSize.y||n,this._calculatedPos.x,this._calculatedPos.y,this.size.x||e,this.size.y||n),!0}return!1}}]),e}(y["default"]));e["default"]=w},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(14),o=i(r),u=n(15),s=i(u),a=function(){function t(e){var n=this;(0,o["default"])(this,t),this._loaded=!1,this._error=!1,this._imageObj=new Image,this._imageObj.addEventListener("load",function(){n._loaded=!0,n._error=!1}),this._imageObj.addEventListener("_error",function(t){n._loaded=!1,n._error=t}),this._imageObj.src=e}return(0,s["default"])(t,[{key:"getImageObj",value:function(){return this._loaded?this._imageObj:!1}},{key:"isLoaded",value:function(){return this._loaded}},{key:"isError",value:function(){return this._error}}]),t}();e["default"]=a},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(14),o=i(r),u=n(15),s=i(u),a=n(70),c=i(a),f=function(){function t(){(0,o["default"])(this,t)}return(0,s["default"])(t,null,[{key:"AABB",value:function(t,e){if(!t instanceof c["default"]||!e instanceof c["default"])throw new Error("AABB collisions can only be checked on these entity types: Rect");return t.pos.xe.pos.x&&t.pos.ye.pos.y}}]),t}();e["default"]=f},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=i(r),u=n(14),s=i(u),a=n(15),c=i(a),f=n(19),l=i(f),d=n(56),h=i(d),_=n(63),y=i(_),p=n(64),v=i(p),m=n(69),g=i(m),x=function(t){function e(t,n,i,r,u){(0,s["default"])(this,e);var a=(0,l["default"])(this,(0,o["default"])(e).call(this,t,n));return a.size=new v["default"](i,r),a.color=u,a}return(0,h["default"])(e,t),(0,c["default"])(e,[{key:"isCollidingWith",value:function(t){return t instanceof e?g["default"].AABB(this,t):void 0}},{key:"render",value:function(){return this._game?(this._game.context.fillStyle=this.color.toString(),this._game.context.fillRect(this._calculatedPos.x,this._calculatedPos.y,this.size.x,this.size.y),!0):!1}}]),e}(y["default"]);e["default"]=x},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(14),u=i(o),s=n(15),a=i(s),c=function(){function t(e,n,i,r){(0,u["default"])(this,t),this.r=e||0,this.g=n||0,this.b=i||0,this.a=r||1}return(0,a["default"])(t,[{key:"toString",value:function(){return"rgba("+this.r+", "+this.g+", "+this.b+", "+this.a+")"}},{key:"toHex",value:function(){return"#"+(r<<16|g<<8|b).toString(16)}}]),t}();e["default"]=c},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(1),o=i(r),u=n(66),s=i(u),a=n(63),c=i(a),f=n(64),l=i(f),d=n(67),h=i(d),_=n(70),y=i(_),p=n(71),v=i(p),m=n(68),g=i(m),x=n(65),w={Game:o["default"],Emitter:s["default"],Entity:c["default"],Sprite:h["default"],Rect:y["default"],Vector2D:l["default"],Color:v["default"],ImageLoader:g["default"]},b={Input:{Keys:x.KeyConsts}};e["default"]={Classes:w,Consts:b}}]); //# sourceMappingURL=particles.js.map \ No newline at end of file diff --git a/examples/particles/dist/particles.js.map b/examples/particles/dist/particles.js.map index 7df3339..ec43b05 100644 --- a/examples/particles/dist/particles.js.map +++ b/examples/particles/dist/particles.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap e78c406e4972b9e8c899?c245","webpack:///./examples/particles/particles.js","webpack:///./src/classes/game.js?42ad","webpack:///./~/babel-runtime/core-js/object/get-prototype-of.js?b265","webpack:///./~/core-js/library/fn/object/get-prototype-of.js?5193","webpack:///./~/core-js/library/modules/es6.object.get-prototype-of.js?eaa3","webpack:///./~/core-js/library/modules/$.to-object.js?093c","webpack:///./~/core-js/library/modules/$.defined.js?7087","webpack:///./~/core-js/library/modules/$.object-sap.js?f39d","webpack:///./~/core-js/library/modules/$.export.js?b734","webpack:///./~/core-js/library/modules/$.global.js?4deb","webpack:///./~/core-js/library/modules/$.core.js?7680","webpack:///./~/core-js/library/modules/$.ctx.js?e797","webpack:///./~/core-js/library/modules/$.a-function.js?860b","webpack:///./~/core-js/library/modules/$.fails.js?6c29","webpack:///./~/babel-runtime/helpers/classCallCheck.js?21af","webpack:///./~/babel-runtime/helpers/createClass.js?1dfe","webpack:///./~/babel-runtime/core-js/object/define-property.js?5f70","webpack:///./~/core-js/library/fn/object/define-property.js?b7d8","webpack:///./~/core-js/library/modules/$.js?6ce7","webpack:///./~/babel-runtime/helpers/possibleConstructorReturn.js?aad9","webpack:///./~/babel-runtime/helpers/typeof.js?f4bd","webpack:///./~/babel-runtime/core-js/symbol/iterator.js?d16b","webpack:///./~/core-js/library/fn/symbol/iterator.js?238d","webpack:///./~/core-js/library/modules/es6.string.iterator.js?fe18","webpack:///./~/core-js/library/modules/$.string-at.js?a0b4","webpack:///./~/core-js/library/modules/$.to-integer.js?b29c","webpack:///./~/core-js/library/modules/$.iter-define.js?970f","webpack:///./~/core-js/library/modules/$.library.js?c05f","webpack:///./~/core-js/library/modules/$.redefine.js?2643","webpack:///./~/core-js/library/modules/$.hide.js?2cce","webpack:///./~/core-js/library/modules/$.property-desc.js?e1db","webpack:///./~/core-js/library/modules/$.descriptors.js?8327","webpack:///./~/core-js/library/modules/$.has.js?bcec","webpack:///./~/core-js/library/modules/$.iterators.js?9d0a","webpack:///./~/core-js/library/modules/$.iter-create.js?4401","webpack:///./~/core-js/library/modules/$.set-to-string-tag.js?d0fc","webpack:///./~/core-js/library/modules/$.wks.js?3e04","webpack:///./~/core-js/library/modules/$.shared.js?6ce8","webpack:///./~/core-js/library/modules/$.uid.js?f177","webpack:///./~/core-js/library/modules/web.dom.iterable.js?bf0e","webpack:///./~/core-js/library/modules/es6.array.iterator.js?1e09","webpack:///./~/core-js/library/modules/$.add-to-unscopables.js?af5b","webpack:///./~/core-js/library/modules/$.iter-step.js?76ef","webpack:///./~/core-js/library/modules/$.to-iobject.js?daca","webpack:///./~/core-js/library/modules/$.iobject.js?3ada","webpack:///./~/core-js/library/modules/$.cof.js?74ee","webpack:///./~/babel-runtime/core-js/symbol.js?a70d","webpack:///./~/core-js/library/fn/symbol/index.js?f07a","webpack:///./~/core-js/library/modules/es6.symbol.js?670a","webpack:///./~/core-js/library/modules/$.keyof.js?3b7d","webpack:///./~/core-js/library/modules/$.get-names.js?e4b8","webpack:///./~/core-js/library/modules/$.enum-keys.js?1c2a","webpack:///./~/core-js/library/modules/$.is-array.js?4d69","webpack:///./~/core-js/library/modules/$.an-object.js?2be9","webpack:///./~/core-js/library/modules/$.is-object.js?7453","webpack:///./~/babel-runtime/helpers/inherits.js?0578","webpack:///./~/babel-runtime/core-js/object/set-prototype-of.js?bb00","webpack:///./~/core-js/library/fn/object/set-prototype-of.js?f909","webpack:///./~/core-js/library/modules/es6.object.set-prototype-of.js?b195","webpack:///./~/core-js/library/modules/$.set-proto.js?759b","webpack:///./~/babel-runtime/core-js/object/create.js?aa4b","webpack:///./~/core-js/library/fn/object/create.js?738c","webpack:///./src/classes/entity.js?7862","webpack:///./src/classes/vector2d.js?aacc","webpack:///./src/classes/keyboardinput.js?f4ac","webpack:///./src/classes/emitter.js?708e","webpack:///./src/classes/sprite.js?e426","webpack:///./src/classes/imageloader.js?b2ac","webpack:///./src/libs/collisionmethods.js?439c","webpack:///./src/classes/rect.js?5872","webpack:///./src/classes/color.js?70aa","webpack:///./src/es6.js"],"names":[],"mappings":"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vC,8BAA6B;AAC7B,sCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACNA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;ACRA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,G;;;;;;AC1BD,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA,G;;;;;;AChBA;;AAEA,uGAAsG,mBAAmB,EAAE,mBAAmB,oGAAoG;;AAElP;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,EAAC;AACD;AACA,G;;;;;;ACpBA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA,sD;;;;;;ACFA;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC,E;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACjEA,uB;;;;;;ACAA,0C;;;;;;ACAA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD,wBAAuB;AACvB;AACA;AACA,G;;;;;;ACHA,qB;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA,G;;;;;;ACZA;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,iE;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,6B;;;;;;ACjCA,6BAA4B,e;;;;;;ACA5B;AACA,WAAU;AACV,G;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA,iD;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA2B;AAC3B,qBAAoB,4BAA4B,SAAS,IAAI;AAC7D,IAAG;AACH,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA8D;AAC9D;AACA,MAAK;AACL;AACA,uBAAsB,iCAAiC;AACvD,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAoD,KAAK,QAAQ,iCAAiC;AAClG,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH,yBAAwB,eAAe,EAAE;AACzC,yBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA,iCAAgC,gBAAgB;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,8EAA6E,sBAAsB;;AAEnG;AACA;AACA;AACA;AACA;AACA,2C;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACTA;AACA;AACA;AACA,mBAAkB;;AAElB;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACbA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,G;;;;;;;;;;;;ACFA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,G;;;;;;AChCA,mBAAkB,wD;;;;;;ACAlB;AACA,gE;;;;;;ACDA;AACA;AACA,+BAA8B,4CAA6C,E;;;;;;ACF3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,QAAO,UAAU,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,GAAG;AACR;AACA,G;;;;;;ACzBA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;;;;;;;;;;;;;;;;;;;;KAIM;AAGF,cAHE,MAGF,CAAa,CAAb,EAAgB,CAAhB,EAAmB;6CAHjB,QAGiB;;;AAEf,cAAK,GAAL,GAAW,uBAAa,KAAK,CAAL,EAAQ,KAAK,CAAL,CAAhC,CAFe;AAGf,cAAK,QAAL,GAAgB,uBAAa,CAAb,EAAgB,CAAhB,CAAhB,CAHe;AAIf,cAAK,YAAL,GAAoB,uBAAa,CAAb,EAAgB,CAAhB,CAApB,CAJe;;AAMf,cAAK,KAAL,GAAa,EAAb,CANe;AAOf,cAAK,QAAL,GAAgB,EAAhB,CAPe;;AASf,cAAK,cAAL,GAAsB,KAAK,GAAL,CAAS,KAAT,EAAtB,CATe;AAUf,cAAK,eAAL,GAAuB,CAAvB,CAVe;AAWf,cAAK,KAAL,GAAa,IAAb,CAXe;AAYf,cAAK,OAAL,GAAe,IAAf,CAZe;;AAcf,cAAK,aAAL,GAAqB,CAAE,IAAI,IAAJ,EAAF,CAdN;MAAnB;;gCAHE;;qCAsBW,GAAG,GAAG;;AAEf,iBAAI,+BAAJ,EAA2B;AACvB,sBAAK,QAAL,GAAgB,CAAhB,CADuB;cAA3B,MAEO;AACH,sBAAK,QAAL,CAAc,CAAd,GAAkB,CAAlB,CADG;AAEH,sBAAK,QAAL,CAAc,CAAd,GAAkB,CAAlB,CAFG;cAFP;;;;yCAUa,GAAG,GAAG;;AAEnB,iBAAI,+BAAJ,EAA2B;AACvB,sBAAK,YAAL,GAAoB,CAApB,CADuB;cAA3B,MAEO;AACH,sBAAK,YAAL,CAAkB,CAAlB,GAAsB,CAAtB,CADG;AAEH,sBAAK,YAAL,CAAkB,CAAlB,GAAsB,CAAtB,CAFG;cAFP;;;;6CAUiB;;AAEjB,iBAAI,QAAQ,IAAI,MAAJ,EAAR,CAFa;;AAIjB,mBAAM,WAAN,CAAkB,KAAK,KAAL,CAAlB,CAJiB;AAKjB,mBAAM,OAAN,GAAgB,IAAhB,CALiB;AAMjB,kBAAK,QAAL,CAAc,IAAd,CAAmB,KAAnB,EANiB;;AAQjB,oBAAO,KAAP,CARiB;;;;wCAaL,OAAO;;AAEnB,mBAAM,WAAN,CAAkB,KAAK,KAAL,CAAlB,CAFmB;AAGnB,mBAAM,OAAN,GAAgB,IAAhB,CAHmB;AAInB,kBAAK,QAAL,CAAc,IAAd,CAAmB,KAAnB,EAJmB;;AAMnB,oBAAO,KAAP,CANmB;;;;2CAWJ,OAAO;;AAEtB,kBAAK,IAAI,IAAI,CAAJ,EAAO,IAAI,KAAK,QAAL,CAAc,MAAd,EAAsB,GAA1C,EAA+C;AAC3C,qBAAI,KAAK,QAAL,CAAc,CAAd,KAAoB,KAApB,EAA2B;;AAE3B,0BAAK,QAAL,CAAc,MAAd,CAAqB,CAArB,EAAwB,CAAxB,EAF2B;AAG3B,4BAAO,IAAP,CAH2B;kBAA/B;cADJ;;AASA,oBAAO,KAAP,CAXsB;;;;uCAgBX;;;;;;;;AAQX,iBAAI,KAAK,KAAL,IAAc,KAAK,eAAL,GAAuB,KAAK,KAAL,CAAW,YAAX,EAAyB;;AAE9D,qBAAI,KAAK,OAAL,EAAc;;AAEd,yBAAI,YAAY,KAAK,OAAL,CAAa,WAAb,EAAZ,CAFU;;AAId,0BAAK,cAAL,CAAoB,CAApB,GAAwB,KAAK,GAAL,CAAS,CAAT,GAAa,UAAU,CAAV,CAJvB;AAKd,0BAAK,cAAL,CAAoB,CAApB,GAAwB,KAAK,GAAL,CAAS,CAAT,GAAa,UAAU,CAAV,CALvB;kBAAlB,MAOO;AACH,0BAAK,cAAL,CAAoB,CAApB,GAAwB,KAAK,GAAL,CAAS,CAAT,CADrB;AAEH,0BAAK,cAAL,CAAoB,CAApB,GAAwB,KAAK,GAAL,CAAS,CAAT,CAFrB;kBAPP;;AAYA,sBAAK,eAAL,GAAuB,KAAK,KAAL,CAAW,YAAX,CAduC;cAAlE;;AAkBA,oBAAO,KAAK,cAAL,CA1BI;;;;qCA+BF,MAAM;;AAEf,kBAAK,KAAL,GAAa,IAAb,CAFe;;AAIf,kBAAK,QAAL,CAAc,OAAd,CAAsB,UAAC,KAAD,EAAW;AAC7B,uBAAM,WAAN,CAAkB,IAAlB,EAD6B;cAAX,CAAtB,CAJe;;;;uCAWJ,OAAO;;AAElB,iBAAI,KAAK,UAAL,EAAiB;AACjB,qBAAI,CAAE,IAAI,IAAJ,EAAF,GAAgB,KAAK,aAAL,GAAqB,KAAK,UAAL,EAAiB;AACtD,0BAAK,OAAL,CAAa,iBAAb,CAA+B,IAA/B,EADsD;kBAA1D;cADJ;;;AAFkB,iBASd,KAAK,QAAL,EAAe;;AAEf,qBAAI,KAAK,YAAL,EAAmB;AACnB,0BAAK,QAAL,CAAc,GAAd,CAAkB,KAAK,YAAL,CAAlB,CADmB;kBAAvB;;AAIA,sBAAK,GAAL,CAAS,GAAT,CAAa,KAAK,QAAL,CAAb,CANe;cAAnB;;;AATkB,iBAoBd,UAAU,KAAK,MAAL,IAAe,KAAK,MAAL,CAAY,KAAZ,CAAf,CApBI;;AAsBlB,iBAAI,WAAY,OAAO,OAAP,IAAkB,WAAlB,IAAmC,OAAO,KAAK,MAAL,KAAgB,WAAvB,EAAqC;;AAEpF,sBAAK,QAAL,CAAc,OAAd,CAAsB,UAAC,KAAD,EAAW;AAC7B,2BAAM,aAAN,CAAoB,KAApB,EAD6B;kBAAX,CAAtB,CAFoF;cAAxF;;;;yCAWa;;AAEb,kBAAK,WAAL,GAFa;;AAIb,iBAAI,WAAW,KAAK,MAAL,IAAe,KAAK,MAAL,EAAf,CAJF;;AAMb,iBAAI,YAAa,OAAO,QAAP,IAAmB,WAAnB,IAAoC,OAAO,KAAK,MAAL,KAAgB,WAAvB,EAAqC;;AAEtF,sBAAK,QAAL,CAAc,OAAd,CAAsB,UAAC,KAAD,EAAW;AAC7B,2BAAM,aAAN,GAD6B;kBAAX,CAAtB,CAFsF;cAA1F;;;YAvKF;;;mBAqLS,O;;;;;;ACzLf;;;;;;;;;;;;;;;;KAEM;AAGF,cAHE,QAGF,CAAa,CAAb,EAAgB,CAAhB,EAAmB;6CAHjB,UAGiB;;AACf,cAAK,CAAL,GAAS,KAAK,CAAL,CADM,IACE,CAAK,CAAL,GAAS,KAAK,CAAL,CADX;MAAnB;;gCAHE;;kCAQQ;AACN,kBAAK,CAAL,GAAS,CAAC,KAAK,CAAL,CADJ,IACY,CAAK,CAAL,GAAS,CAAC,KAAK,CAAL,CADtB;AAEN,oBAAO,IAAP,CAFM;;;;6BAML,KAAK;;AAEN,iBAAI,eAAe,QAAf,EAAyB;AACzB,sBAAK,CAAL,IAAU,IAAI,CAAJ,CADe,IACR,CAAK,CAAL,IAAU,IAAI,CAAJ,CADF;cAA7B,MAEO;AACH,sBAAK,CAAL,IAAU,GAAV,CADG,IACY,CAAK,CAAL,IAAU,GAAV,CADZ;cAFP;;AAMA,oBAAO,IAAP,CARM;;;;kCAaA,KAAK;;AAEX,iBAAI,eAAe,QAAf,EAAyB;AACzB,sBAAK,CAAL,IAAU,IAAI,CAAJ,CADe,IACR,CAAK,CAAL,IAAU,IAAI,CAAJ,CADF;cAA7B,MAEO;AACH,sBAAK,CAAL,IAAU,GAAV,CADG,IACY,CAAK,CAAL,IAAU,GAAV,CADZ;cAFP;;AAMA,oBAAO,IAAP,CARW;;;;kCAaL,KAAK;;AAEX,iBAAI,eAAe,QAAf,EAAyB;AACzB,sBAAK,CAAL,IAAU,IAAI,CAAJ,CADe,IACR,CAAK,CAAL,IAAU,IAAI,CAAJ,CADF;cAA7B,MAEO;AACH,sBAAK,CAAL,IAAU,GAAV,CADG,IACY,CAAK,CAAL,IAAU,GAAV,CADZ;cAFP;;AAMA,oBAAO,IAAP,CARW;;;;gCAaP,KAAK;;AAET,iBAAI,eAAe,QAAf,EAAyB;AACzB,sBAAK,CAAL,IAAU,IAAI,CAAJ,CADe,IACR,CAAK,CAAL,IAAU,IAAI,CAAJ,CADF;cAA7B,MAEO;AACH,sBAAK,CAAL,IAAU,GAAV,CADG,IACY,CAAK,CAAL,IAAU,GAAV,CADZ;cAFP;;AAMA,oBAAO,IAAP,CARS;;;;gCAaL,KAAK;AACT,oBAAQ,KAAK,CAAL,IAAU,IAAI,CAAJ,IAAS,KAAK,CAAL,IAAU,IAAI,CAAJ,CAD5B;;;;6BAKR,KAAK;AACN,oBAAQ,KAAK,CAAL,GAAS,IAAI,CAAJ,GAAQ,KAAK,CAAL,GAAS,IAAI,CAAJ,CAD5B;;;;kCAKA;AACN,oBAAO,KAAK,IAAL,CAAU,KAAK,GAAL,CAAS,IAAT,CAAV,CAAP,CADM;;;;gCAKF;AACJ,oBAAO,KAAK,MAAL,CAAY,KAAK,MAAL,EAAZ,CAAP,CADI;;;;+BAKD;AACH,oBAAO,KAAK,GAAL,CAAS,KAAK,CAAL,EAAQ,KAAK,CAAL,CAAxB,CADG;;;;+BAKA;AACH,oBAAO,KAAK,GAAL,CAAS,KAAK,CAAL,EAAQ,KAAK,CAAL,CAAxB,CADG;;;;mCAKI;AACP,oBAAQ,KAAK,IAAL,CAAU,KAAK,CAAL,EAAQ,KAAK,CAAL,CAAlB,GAA4B,GAA5B,CADD;;;;iCAKF;AACL,oBAAO,KAAK,KAAL,CAAW,KAAK,CAAL,EAAQ,KAAK,CAAL,CAA1B,CADK;;;;mCAKE;AACP,oBAAO,CAAC,KAAK,CAAL,EAAQ,KAAK,CAAL,CAAhB,CADO;;;;oCAKC;AACR,0BAAW,KAAK,CAAL,UAAW,KAAK,CAAL,OAAtB,CADQ;;;;iCAKH;AACL,oBAAO,IAAI,QAAJ,CAAa,KAAK,CAAL,EAAQ,KAAK,CAAL,CAA5B,CADK;;;;mCAKS,OAAO,QAAQ;AAC7B,oBAAO,IAAI,QAAJ,CAAa,SAAS,KAAK,GAAL,CAAS,KAAT,CAAT,EAA0B,SAAS,KAAK,GAAL,CAAS,KAAT,CAAT,CAA9C,CAD6B;;;YAzH/B;;;mBAiIS,S;;;;;;ACnIf;;;;;;;;;;;;;;;;;AAGA,KAAM,YAAY;AACd,YAAO,EAAP;AACA,gBAAW,CAAX;AACA,UAAK,CAAL;AACA,YAAO,EAAP;AACA,YAAO,EAAP;AACA,WAAM,EAAN;AACA,UAAK,EAAL;AACA,YAAO,EAAP;AACA,gBAAW,EAAX;AACA,aAAQ,EAAR;AACA,cAAS,EAAT;AACA,gBAAW,EAAX;AACA,UAAK,EAAL;AACA,WAAM,EAAN;AACA,WAAM,EAAN;AACA,SAAI,EAAJ;AACA,YAAO,EAAP;AACA,WAAM,EAAN;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,YAAO,EAAP;AACA,YAAO,EAAP;AACA,YAAO,EAAP;AACA,YAAO,EAAP;AACA,YAAO,EAAP;AACA,YAAO,EAAP;AACA,YAAO,EAAP;AACA,YAAO,EAAP;AACA,YAAO,EAAP;AACA,YAAO,EAAP;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,aAAQ,EAAR;AACA,gBAAW,EAAX;AACA,gBAAW,EAAX;AACA,gBAAW,EAAX;AACA,gBAAW,EAAX;AACA,gBAAW,GAAX;AACA,gBAAW,GAAX;AACA,gBAAW,GAAX;AACA,gBAAW,GAAX;AACA,gBAAW,GAAX;AACA,gBAAW,GAAX;AACA,eAAU,GAAV;AACA,UAAK,GAAL;AACA,eAAU,GAAV;AACA,cAAS,GAAT;AACA,aAAQ,GAAR;AACA,SAAI,GAAJ;AACA,SAAI,GAAJ;AACA,SAAI,GAAJ;AACA,SAAI,GAAJ;AACA,SAAI,GAAJ;AACA,SAAI,GAAJ;AACA,SAAI,GAAJ;AACA,SAAI,GAAJ;AACA,SAAI,GAAJ;AACA,UAAK,GAAL;AACA,UAAK,GAAL;AACA,UAAK,GAAL;AACA,gBAAW,GAAX;AACA,aAAQ,GAAR;AACA,YAAO,GAAP;AACA,WAAM,GAAN;AACA,aAAQ,GAAR;AACA,oBAAe,GAAf;AACA,YAAO,GAAP;AACA,mBAAc,GAAd;AACA,iBAAY,GAAZ;AACA,oBAAe,GAAf;AACA,mBAAc,GAAd;EA9FE;;KAkGA;AAGF,cAHE,aAGF,GAAe;6CAHb,eAGa;;;AAEX,aAAI,OAAO,IAAP,CAFO;AAGX,cAAK,SAAL,GAAiB,EAAjB,CAHW;;AAKX,gBAAO,gBAAP,CAAwB,SAAxB,EAAmC,UAAC,KAAD,EAAW;AAC1C,kBAAK,eAAL,CAAqB,KAArB,EAD0C;UAAX,EAEhC,KAFH,EALW;;AASX,gBAAO,gBAAP,CAAwB,OAAxB,EAAiC,UAAC,KAAD,EAAW;AACxC,kBAAK,aAAL,CAAmB,KAAnB,EADwC;UAAX,EAE9B,KAFH,EATW;MAAf;;gCAHE;;mCAmBS,SAAS;AAChB,oBAAO,CAAC,CAAC,KAAK,SAAL,CAAe,OAAf,CAAD,CADQ;;;;yCAKH,OAAO;AACpB,kBAAK,SAAL,CAAe,MAAM,OAAN,CAAf,GAAgC,IAAhC,CADoB;;;;uCAKT,OAAO;AAClB,kBAAK,SAAL,CAAe,MAAM,OAAN,CAAf,GAAgC,KAAhC,CADkB;;;YA7BpB;;;mBAqCS;SACP,sB;;;;;;AC3IR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMM;;;AAGF,cAHE,OAGF,CAAa,CAAb,EAAgB,CAAhB,EAAmB,IAAnB,EAAyB,QAAzB,EAAmC,QAAnC,EAA6C;6CAH3C,SAG2C;;kGAH3C,oBAKQ,GAAG,IAFgC;;AAIzC,eAAK,gBAAL,GAAwB,QAAxB,CAJyC;AAKzC,eAAK,aAAL,GAAqB,QAArB,CALyC;;AAOzC,eAAK,IAAL,GAAY,IAAZ,CAPyC;AAQzC,eAAK,QAAL,GAAgB,KAAhB,CARyC;AASzC,eAAK,MAAL,GAAc,KAAK,EAAL,CAT2B;AAUzC,eAAK,aAAL,GAAqB,MAAK,aAAL,CAVoB;AAWzC,eAAK,YAAL,GAAoB,KAApB,CAXyC;;AAazC,eAAK,UAAL,GAAkB,EAAlB,CAbyC;;;MAA7C;;gCAHE;;2CAqBiB,QAAQ;AACvB,kBAAK,eAAL,GAAuB,MAAvB,CADuB;;;;iCAKlB;;AAEL,iBAAI,gBAAgB,KAAK,aAAL;iBAChB,SAAS,KAAK,eAAL,IAAwB,KAAK,OAAL,CAHhC;;AAKL,iBAAI,QAAQ,KAAK,gBAAL,CAAsB,KAAtB,KAAgC,KAAK,MAAL,GAAe,KAAK,MAAL,KAAgB,KAAK,MAAL,GAAc,CAA9B;iBACvD,YAAY,KAAK,gBAAL,CAAsB,MAAtB,EAAZ;iBACA,WAAW,mBAAS,SAAT,CAAmB,KAAnB,EAA0B,SAA1B,CAAX,CAPC;;AASL,iBAAI,WAAW,IAAI,aAAJ,CAAkB,KAAK,cAAL,CAAoB,CAApB,EAAuB,KAAK,cAAL,CAAoB,CAApB,CAApD,CATC;AAUL,sBAAS,QAAT,GAAoB,QAApB;;;AAVK,mBAaL,CAAO,cAAP,CAAsB,QAAtB,EAbK;;;;6CAkBY;;;;AAIjB,kBAAK,WAAL,GAJiB;;AAMjB,iBAAI,KAAK,QAAL,EAAe;;AAEf,qBAAI,cAAc,CAAE,IAAI,IAAJ,EAAF,CAFH;;AAIf,qBAAI,CAAC,KAAK,YAAL,EAAmB;AACpB,0BAAK,YAAL,GAAoB,IAApB,CADoB;AAEpB,0BAAK,aAAL,GAAqB,WAArB,CAFoB;kBAAxB;;AAKA,qBAAI,YAAY,cAAc,KAAK,aAAL,CATf;AAUf,qBAAI,YAAY,KAAK,IAAL,EAAW;;AAEvB,yBAAI,YAAY,EAAC,EAAE,YAAY,KAAK,IAAL,CAAd,CAFM;;AAIvB,0BAAK,aAAL,GAAqB,eAAe,YAAa,KAAK,IAAL,GAAY,SAAZ,CAA5B,CAJE;;AAMvB,0BAAK,IAAI,IAAI,CAAJ,EAAO,IAAI,SAAJ,EAAe,GAA/B,EAAoC;AAChC,8BAAK,KAAL,GADgC;sBAApC;kBANJ;cAVJ,MAsBO;AACH,sBAAK,YAAL,GAAoB,KAApB,CADG;cAtBP;;;;kCA6BM;AACN,kBAAK,iBAAL,GADM;;;YA/ER;;;mBAuFS,Q;;;;;;AC7Ff;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KASM;;;AAGF,cAHE,MAGF,CAAa,CAAb,EAAgB,CAAhB,EAAmB,KAAnB,EAA0B,MAA1B,EAAkC,KAAlC,EAAyC;6CAHvC,QAGuC;;;AAErC,aAAI,CAAC,KAAD,iCAAJ,EAAmC;AAC/B,mBAAM,IAAI,KAAJ,CAAU,iFAAV,CAAN,CAD+B;UAAnC;;kGALF,mBASQ,GAAG,IAN4B;;AAQrC,eAAK,IAAL,GAAY,uBAAa,SAAS,CAAT,EAAY,UAAU,CAAV,CAArC,CARqC;;AAUrC,eAAK,MAAL,GAAc,KAAd,CAVqC;AAWrC,eAAK,SAAL,GAAiB,uBAAa,CAAb,EAAgB,CAAhB,CAAjB,CAXqC;AAYrC,eAAK,UAAL,GAAkB,uBAAa,CAAb,EAAgB,CAAhB,CAAlB,CAZqC;;;MAAzC;;gCAHE;;wCAoBc,GAAG,GAAG,OAAO,QAAQ;;AAEjC,kBAAK,SAAL,CAAe,CAAf,GAAmB,CAAnB,CAFiC;AAGjC,kBAAK,SAAL,CAAe,CAAf,GAAmB,CAAnB,CAHiC;AAIjC,kBAAK,UAAL,CAAgB,CAAhB,GAAoB,SAAS,CAAT,CAJa;AAKjC,kBAAK,UAAL,CAAgB,CAAhB,GAAoB,UAAU,CAAV,CALa;;;;mCAU1B;AACP,oBAAQ,KAAK,MAAL,CAAY,QAAZ,MAA0B,CAAC,KAAK,MAAL,CAAY,OAAZ,EAAD,CAD3B;;;;kCAKD;;AAEN,iBAAI,KAAK,OAAL,MAAkB,KAAK,KAAL,EAAY;;AAE9B,qBAAI,WAAW,KAAK,MAAL,CAAY,WAAZ,EAAX,CAF0B;;AAI9B,qBAAI,WAAW,SAAS,KAAT,GAAiB,KAAK,SAAL,CAAe,CAAf;qBAC5B,YAAY,SAAS,MAAT,GAAkB,KAAK,SAAL,CAAe,CAAf,CALJ;;AAO9B,sBAAK,KAAL,CAAW,OAAX,CAAmB,SAAnB,CACI,QADJ,EAEI,KAAK,SAAL,CAAe,CAAf,EACA,KAAK,SAAL,CAAe,CAAf,EACA,KAAK,UAAL,CAAgB,CAAhB,IAAqB,QAArB,EACA,KAAK,UAAL,CAAgB,CAAhB,IAAqB,SAArB,EACA,KAAK,cAAL,CAAoB,CAApB,EACA,KAAK,cAAL,CAAoB,CAApB,EACA,KAAK,IAAL,CAAU,CAAV,IAAe,QAAf,EACA,KAAK,IAAL,CAAU,CAAV,IAAe,SAAf,CATJ,CAP8B;;AAmB9B,wBAAO,IAAP,CAnB8B;cAAlC,MAqBO;AACH,wBAAO,KAAP,CADG;cArBP;;;YArCF;;;mBAoES,O;;;;;;AC7Ef;;;;;;;;;;;;;;;;KAEM;AAGF,cAHE,WAGF,CAAa,GAAb,EAAkB;;;6CAHhB,aAGgB;;;AAEd,cAAK,OAAL,GAAe,KAAf;AAFc,aAGd,CAAK,MAAL,GAAc,KAAd;;AAHc,aAKd,CAAK,SAAL,GAAiB,IAAI,KAAJ,EAAjB,CALc;;AAOd,cAAK,SAAL,CAAe,gBAAf,CAAgC,MAAhC,EAAwC,YAAM;AAC1C,mBAAK,OAAL,GAAe,IAAf,CAD0C;AAE1C,mBAAK,MAAL,GAAc,KAAd,CAF0C;UAAN,CAAxC,CAPc;;AAYd,cAAK,SAAL,CAAe,gBAAf,CAAgC,QAAhC,EAA0C,UAAC,GAAD,EAAS;AAC/C,mBAAK,OAAL,GAAe,KAAf,CAD+C;AAE/C,mBAAK,MAAL,GAAc,GAAd,CAF+C;UAAT,CAA1C,CAZc;;AAiBd,cAAK,SAAL,CAAe,GAAf,GAAqB,GAArB,CAjBc;MAAlB;;gCAHE;;uCAyBa;;AAEX,iBAAI,KAAK,OAAL,EAAc;AACd,wBAAO,KAAK,SAAL,CADO;cAAlB,MAEO;AACH,wBAAO,KAAP,CADG;cAFP;;;;oCASQ;AACR,oBAAO,KAAK,OAAL,CADC;;;;mCAKD;AACP,oBAAO,KAAK,MAAL,CADA;;;YAzCT;;;mBAiDS,Y;;;;;;;;;;;;;;;;;;;;;;;;;;KCjDT;;;;;;;8BAGW,SAAS,SAAS;;AAE3B,iBAAI,CAAC,OAAD,8BAA4B,CAAC,OAAD,0BAA5B,EAAsD;AACtD,uBAAM,IAAI,KAAJ,CAAU,iEAAV,CAAN,CADsD;cAA1D;;AAIA,oBAAQ,QAAQ,GAAR,CAAY,CAAZ,GAAgB,QAAQ,GAAR,CAAY,CAAZ,GAAgB,QAAQ,IAAR,CAAa,CAAb,IACpC,QAAQ,GAAR,CAAY,CAAZ,GAAgB,QAAQ,IAAR,CAAa,CAAb,GAAiB,QAAQ,GAAR,CAAY,CAAZ,IACjC,QAAQ,GAAR,CAAY,CAAZ,GAAgB,QAAQ,GAAR,CAAY,CAAZ,GAAgB,QAAQ,IAAR,CAAa,CAAb,IAChC,QAAQ,IAAR,CAAa,CAAb,GAAiB,QAAQ,GAAR,CAAY,CAAZ,GAAgB,QAAQ,GAAR,CAAY,CAAZ,CATV;;;YAH7B;;;mBAoBS,iB;;;;;;ACtBf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAQM;;;AAGF,cAHE,IAGF,CAAa,CAAb,EAAgB,CAAhB,EAAmB,KAAnB,EAA0B,MAA1B,EAAkC,KAAlC,EAAyC;6CAHvC,MAGuC;;kGAHvC,iBAKQ,GAAG,IAF4B;;AAIrC,eAAK,IAAL,GAAY,uBAAa,KAAb,EAAoB,MAApB,CAAZ,CAJqC;AAKrC,eAAK,KAAL,GAAa,KAAb,CALqC;;;MAAzC;;gCAHE;;yCAae,QAAQ;;AAErB,iBAAI,kBAAkB,IAAlB,EAAwB;AACxB,wBAAO,2BAAiB,IAAjB,CAAsB,IAAtB,EAA4B,MAA5B,CAAP,CADwB;cAA5B;;;;kCAOM;;AAEN,iBAAI,KAAK,KAAL,EAAY;;AAEZ,sBAAK,KAAL,CAAW,OAAX,CAAmB,SAAnB,GAA+B,KAAK,KAAL,CAAW,QAAX,EAA/B,CAFY;AAGZ,sBAAK,KAAL,CAAW,OAAX,CAAmB,QAAnB,CAA4B,KAAK,cAAL,CAAoB,CAApB,EAAuB,KAAK,cAAL,CAAoB,CAApB,EAAuB,KAAK,IAAL,CAAU,CAAV,EAAa,KAAK,IAAL,CAAU,CAAV,CAAvF,CAHY;;AAKZ,wBAAO,IAAP,CALY;cAAhB,MAOO;AACH,wBAAO,KAAP,CADG;cAPP;;;YAxBF;;;mBAyCS,K;;;;;;ACjDf;;;;;;;;;;;;;;;;KAEM;AAGF,cAHE,KAGF,CAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB;6CAHvB,OAGuB;;;AAErB,cAAK,CAAL,GAAS,KAAK,CAAL,CAFY;AAGrB,cAAK,CAAL,GAAS,KAAK,CAAL,CAHY;AAIrB,cAAK,CAAL,GAAS,KAAK,CAAL,CAJY;AAKrB,cAAK,CAAL,GAAS,KAAK,CAAL,CALY;MAAzB;;gCAHE;;oCAaU;AACR,8BAAe,KAAK,CAAL,UAAW,KAAK,CAAL,UAAW,KAAK,CAAL,UAAW,KAAK,CAAL,MAAhD,CADQ;;;;iCAKH;AACL,0BAAW,CAAC,CAAC,IAAK,EAAL,GAAY,KAAK,CAAL,GAAU,CAAvB,CAAD,CAA2B,QAA3B,CAAoC,EAApC,CAAX,CADK;;;YAlBP;;;mBA0BS,M;;;;;;AC5Bf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,KAAM,UAAU;AACZ,yBADY;AAEZ,+BAFY;AAGZ,6BAHY;AAIZ,6BAJY;AAKZ,yBALY;AAMZ,iCANY;AAOZ,2BAPY;AAQZ,uCARY;EAAV;;AAYN,KAAM,SAAS;AACX,YAAO;AACH,uCADG;MAAP;EADE;;mBAOS;AACX,qBADW;AAEX,mBAFW","file":"particles.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap e78c406e4972b9e8c899\n **/","\"use strict\";\n\nimport MomentumEngine from \"../../src/es6\";\n\nlet KeyConsts = MomentumEngine.Consts.Input.Keys;\n\n\nclass BlueParticle extends MomentumEngine.Classes.Rect {\n\n constructor (x, y) {\n super(x, y, 1, 1, new MomentumEngine.Classes.Color(255, 255, 255, 0));\n this.timeToLive = 5000;\n }\n\n update (delta) {\n this.color.a = this.color.a - (delta * 0.00025);\n }\n\n}\n\n\nwindow.onload = function () {\n\n let width = 640,\n height = 360,\n baseSize = width / 64;\n\n let particles = new MomentumEngine.Classes.Game({\n canvas: document.getElementById(\"canvas\"),\n width: width,\n height: height,\n fixRatio: true,\n desiredFps: 60,\n inputs: {\n keyboard: true\n }\n });\n\n let black = new MomentumEngine.Classes.Color(0, 0, 0),\n red = new MomentumEngine.Classes.Color(255, 0, 0);\n\n let mainScene = new MomentumEngine.Classes.Rect(0, 0, width, height, black);\n particles.addChildEntity(mainScene);\n\n let rect = new MomentumEngine.Classes.Rect(width / 2 - baseSize, height / 2 - baseSize, baseSize * 2, baseSize * 2, red),\n emitter = new MomentumEngine.Classes.Emitter(baseSize, baseSize, 4, new MomentumEngine.Classes.Vector2D(0, 1), BlueParticle);\n\n mainScene.addChildEntity(rect);\n rect.addChildEntity(emitter);\n\n rect.update = function (delta) {\n\n if (particles.inputs.keyboard.isPressed(KeyConsts.UP)) {\n rect.pos.y -= (0.2 * delta);\n }\n\n if (particles.inputs.keyboard.isPressed(KeyConsts.DOWN)) {\n rect.pos.y += (0.2 * delta);\n }\n\n if (particles.inputs.keyboard.isPressed(KeyConsts.LEFT)) {\n rect.pos.x -= (0.2 * delta);\n }\n\n if (particles.inputs.keyboard.isPressed(KeyConsts.RIGHT)) {\n rect.pos.x += (0.2 * delta);\n }\n\n };\n\n emitter.setParticleParent(mainScene);\n emitter.emitting = true;\n\n particles.start();\n\n};\n\n\n/** WEBPACK FOOTER **\n ** ./examples/particles/particles.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport KeyboardInput from \"./keyboardinput.js\";\n\nclass Game extends Entity {\n\n\n constructor (config) {\n\n super(); // Call entity constructor\n config = config || {};\n config.inputs = config.inputs || {};\n\n\n // Required params\n if (config.canvas) {\n this.canvas = config.canvas;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with a canvas\");\n }\n\n if (config.width) {\n this.width = config.width;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas width\");\n }\n\n if (config.height) {\n this.height = config.height;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas height\");\n }\n\n\n // Optional params\n this.desiredFps = config.desiredFps || 60;\n\n if (config.fixRatio) {\n\n let deviceRatio = window.devicePixelRatio,\n backingStoreRatio = 0;\n\n // Unfortunately Ejecta requires calling getContext last, so we cannot get the backingStorePixelRatio. So for Ejecta's case, we set it to 1, and call getContext later.\n if (typeof ejecta !== \"undefined\") {\n backingStoreRatio = 1;\n } else {\n\n this.context = this.canvas.getContext(\"2d\");\n\n backingStoreRatio = this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio || 1;\n\n }\n\n this.scale = deviceRatio / backingStoreRatio;\n\n this.canvas.width = this.width * this.scale;\n this.canvas.height = this.height * this.scale;\n\n this.canvas.style.width = this.width + \"px\";\n this.canvas.style.height = this.height + \"px\";\n\n // Call getContext last for Ejecta only.\n if (typeof ejecta !== \"undefined\") {\n this.context = this.canvas.getContext(\"2d\");\n }\n\n this.context.scale(deviceRatio, deviceRatio);\n\n } else {\n\n this.canvas.width = this.width;\n this.canvas.height = this.height;\n\n this.context = this.canvas.getContext(\"2d\");\n\n }\n\n if (typeof this.context.imageSmoothingEnabled !== \"undefined\") {\n this.context.imageSmoothingEnabled = config.imageSmoothing || false;\n }\n\n\n // Initialize defaults\n this.frameCounter = 0;\n\n this.inputs = {};\n if (config.inputs.keyboard) {\n this.inputs.keyboard = new KeyboardInput(this);\n }\n\n this._game = this;\n this._lastFrameTimestamp = 0;\n this._wantPause = true;\n\n }\n\n\n step (delta) {\n\n this.frameCounter++;\n\n this._updateEntity(delta);\n this._renderEntity();\n\n }\n\n\n start () {\n\n var self = this; // NK: Hate doing this...better way plz?\n\n if (self._wantPause) {\n self._wantPause = false;\n } else {\n console.log(\"MomentumEngine.Classes.Game.start called, game instance is already started\");\n return false; // Game is already running\n }\n\n self._wantPause = false;\n\n let requestFrame = (() => {\n\n return (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n function (callback) {\n window.setTimeout(callback, 1000 / self.desiredFps);\n });\n\n })();\n\n self._lastFrameTimestamp = +(new Date());\n self.startTime = self._lastFrameTimestamp;\n\n var loop = function () {\n\n if (self._wantPause) {\n return;\n }\n\n let currentTimestamp = +(new Date()),\n delta = currentTimestamp - self._lastFrameTimestamp;\n\n delta = Math.min(delta, 1000 / self.desiredFps);\n self._lastFrameTimestamp = currentTimestamp;\n\n self.step(delta);\n\n requestFrame(loop);\n\n };\n\n loop();\n return true;\n\n }\n\n\n pause () {\n\n if (!this._wantPause) {\n this._wantPause = true;\n return true;\n } else {\n console.log(\"MomentumEngine.Classes.Game.pause called, game instance is already paused\");\n return false;\n }\n }\n\n\n}\n\n\nexport default Game;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/game.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/get-prototype-of.js\n ** module id = 2\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.getPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/get-prototype-of.js\n ** module id = 3\n ** module chunks = 0 1\n **/","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./$.to-object');\n\nrequire('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.get-prototype-of.js\n ** module id = 4\n ** module chunks = 0 1\n **/","// 7.1.13 ToObject(argument)\nvar defined = require('./$.defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-object.js\n ** module id = 5\n ** module chunks = 0 1\n **/","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.defined.js\n ** module id = 6\n ** module chunks = 0 1\n **/","// most Object methods by ES6 should accept primitives\nvar $export = require('./$.export')\n , core = require('./$.core')\n , fails = require('./$.fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-sap.js\n ** module id = 7\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , core = require('./$.core')\n , ctx = require('./$.ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && key in target;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(param){\n return this instanceof C ? new C(param) : C(param);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\nmodule.exports = $export;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.export.js\n ** module id = 8\n ** module chunks = 0 1\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.global.js\n ** module id = 9\n ** module chunks = 0 1\n **/","var core = module.exports = {version: '1.2.6'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.core.js\n ** module id = 10\n ** module chunks = 0 1\n **/","// optional / simple context binding\nvar aFunction = require('./$.a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.ctx.js\n ** module id = 11\n ** module chunks = 0 1\n **/","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.a-function.js\n ** module id = 12\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.fails.js\n ** module id = 13\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 14\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 15\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 16\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function defineProperty(it, key, desc){\n return $.setDesc(it, key, desc);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 17\n ** module chunks = 0 1\n **/","var $Object = Object;\nmodule.exports = {\n create: $Object.create,\n getProto: $Object.getPrototypeOf,\n isEnum: {}.propertyIsEnumerable,\n getDesc: $Object.getOwnPropertyDescriptor,\n setDesc: $Object.defineProperty,\n setDescs: $Object.defineProperties,\n getKeys: $Object.keys,\n getNames: $Object.getOwnPropertyNames,\n getSymbols: $Object.getOwnPropertySymbols,\n each: [].forEach\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.js\n ** module id = 18\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/possibleConstructorReturn.js\n ** module id = 19\n ** module chunks = 0 1\n **/","\"use strict\";\n\nvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/typeof.js\n ** module id = 20\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol/iterator.js\n ** module id = 21\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/$.wks')('iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/iterator.js\n ** module id = 22\n ** module chunks = 0 1\n **/","'use strict';\nvar $at = require('./$.string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./$.iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 23\n ** module chunks = 0 1\n **/","var toInteger = require('./$.to-integer')\n , defined = require('./$.defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.string-at.js\n ** module id = 24\n ** module chunks = 0 1\n **/","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-integer.js\n ** module id = 25\n ** module chunks = 0 1\n **/","'use strict';\nvar LIBRARY = require('./$.library')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , hide = require('./$.hide')\n , has = require('./$.has')\n , Iterators = require('./$.iterators')\n , $iterCreate = require('./$.iter-create')\n , setToStringTag = require('./$.set-to-string-tag')\n , getProto = require('./$').getProto\n , ITERATOR = require('./$.wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , methods, key;\n // Fix native\n if($native){\n var IteratorPrototype = getProto($default.call(new Base));\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // FF fix\n if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: !DEF_VALUES ? $default : getMethod('entries')\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-define.js\n ** module id = 26\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.library.js\n ** module id = 27\n ** module chunks = 0 1\n **/","module.exports = require('./$.hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine.js\n ** module id = 28\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , createDesc = require('./$.property-desc');\nmodule.exports = require('./$.descriptors') ? function(object, key, value){\n return $.setDesc(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.hide.js\n ** module id = 29\n ** module chunks = 0 1\n **/","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.property-desc.js\n ** module id = 30\n ** module chunks = 0 1\n **/","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./$.fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.descriptors.js\n ** module id = 31\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.has.js\n ** module id = 32\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iterators.js\n ** module id = 33\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , descriptor = require('./$.property-desc')\n , setToStringTag = require('./$.set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./$.hide')(IteratorPrototype, require('./$.wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-create.js\n ** module id = 34\n ** module chunks = 0 1\n **/","var def = require('./$').setDesc\n , has = require('./$.has')\n , TAG = require('./$.wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-to-string-tag.js\n ** module id = 35\n ** module chunks = 0 1\n **/","var store = require('./$.shared')('wks')\n , uid = require('./$.uid')\n , Symbol = require('./$.global').Symbol;\nmodule.exports = function(name){\n return store[name] || (store[name] =\n Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.wks.js\n ** module id = 36\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.shared.js\n ** module id = 37\n ** module chunks = 0 1\n **/","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.uid.js\n ** module id = 38\n ** module chunks = 0 1\n **/","require('./es6.array.iterator');\nvar Iterators = require('./$.iterators');\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 39\n ** module chunks = 0 1\n **/","'use strict';\nvar addToUnscopables = require('./$.add-to-unscopables')\n , step = require('./$.iter-step')\n , Iterators = require('./$.iterators')\n , toIObject = require('./$.to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./$.iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 40\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.add-to-unscopables.js\n ** module id = 41\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-step.js\n ** module id = 42\n ** module chunks = 0 1\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./$.iobject')\n , defined = require('./$.defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-iobject.js\n ** module id = 43\n ** module chunks = 0 1\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./$.cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iobject.js\n ** module id = 44\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.cof.js\n ** module id = 45\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol.js\n ** module id = 46\n ** module chunks = 0 1\n **/","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nmodule.exports = require('../../modules/$.core').Symbol;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/index.js\n ** module id = 47\n ** module chunks = 0 1\n **/","'use strict';\n// ECMAScript 6 symbols shim\nvar $ = require('./$')\n , global = require('./$.global')\n , has = require('./$.has')\n , DESCRIPTORS = require('./$.descriptors')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , $fails = require('./$.fails')\n , shared = require('./$.shared')\n , setToStringTag = require('./$.set-to-string-tag')\n , uid = require('./$.uid')\n , wks = require('./$.wks')\n , keyOf = require('./$.keyof')\n , $names = require('./$.get-names')\n , enumKeys = require('./$.enum-keys')\n , isArray = require('./$.is-array')\n , anObject = require('./$.an-object')\n , toIObject = require('./$.to-iobject')\n , createDesc = require('./$.property-desc')\n , getDesc = $.getDesc\n , setDesc = $.setDesc\n , _create = $.create\n , getNames = $names.get\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , setter = false\n , HIDDEN = wks('_hidden')\n , isEnum = $.isEnum\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , useNative = typeof $Symbol == 'function'\n , ObjectProto = Object.prototype;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(setDesc({}, 'a', {\n get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = getDesc(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n setDesc(it, key, D);\n if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n} : setDesc;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol.prototype);\n sym._k = tag;\n DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: function(value){\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n }\n });\n return sym;\n};\n\nvar isSymbol = function(it){\n return typeof it == 'symbol';\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(D && has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return setDesc(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key);\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n var D = getDesc(it = toIObject(it), key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n return result;\n};\nvar $stringify = function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , $$ = arguments\n , replacer, $replacer;\n while($$.length > i)args.push($$[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n};\nvar buggyJSON = $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n});\n\n// 19.4.1.1 Symbol([description])\nif(!useNative){\n $Symbol = function Symbol(){\n if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n };\n redefine($Symbol.prototype, 'toString', function toString(){\n return this._k;\n });\n\n isSymbol = function(it){\n return it instanceof $Symbol;\n };\n\n $.create = $create;\n $.isEnum = $propertyIsEnumerable;\n $.getDesc = $getOwnPropertyDescriptor;\n $.setDesc = $defineProperty;\n $.setDescs = $defineProperties;\n $.getNames = $names.get = $getOwnPropertyNames;\n $.getSymbols = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./$.library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n}\n\nvar symbolStatics = {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n return keyOf(SymbolRegistry, key);\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n};\n// 19.4.2.2 Symbol.hasInstance\n// 19.4.2.3 Symbol.isConcatSpreadable\n// 19.4.2.4 Symbol.iterator\n// 19.4.2.6 Symbol.match\n// 19.4.2.8 Symbol.replace\n// 19.4.2.9 Symbol.search\n// 19.4.2.10 Symbol.species\n// 19.4.2.11 Symbol.split\n// 19.4.2.12 Symbol.toPrimitive\n// 19.4.2.13 Symbol.toStringTag\n// 19.4.2.14 Symbol.unscopables\n$.each.call((\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n 'species,split,toPrimitive,toStringTag,unscopables'\n).split(','), function(it){\n var sym = wks(it);\n symbolStatics[it] = useNative ? sym : wrap(sym);\n});\n\nsetter = true;\n\n$export($export.G + $export.W, {Symbol: $Symbol});\n\n$export($export.S, 'Symbol', symbolStatics);\n\n$export($export.S + $export.F * !useNative, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.symbol.js\n ** module id = 48\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , toIObject = require('./$.to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = $.getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.keyof.js\n ** module id = 49\n ** module chunks = 0 1\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./$.to-iobject')\n , getNames = require('./$').getNames\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return getNames(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.get = function getOwnPropertyNames(it){\n if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n return getNames(toIObject(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.get-names.js\n ** module id = 50\n ** module chunks = 0 1\n **/","// all enumerable object keys, includes symbols\nvar $ = require('./$');\nmodule.exports = function(it){\n var keys = $.getKeys(it)\n , getSymbols = $.getSymbols;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = $.isEnum\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n }\n return keys;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.enum-keys.js\n ** module id = 51\n ** module chunks = 0 1\n **/","// 7.2.2 IsArray(argument)\nvar cof = require('./$.cof');\nmodule.exports = Array.isArray || function(arg){\n return cof(arg) == 'Array';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array.js\n ** module id = 52\n ** module chunks = 0 1\n **/","var isObject = require('./$.is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.an-object.js\n ** module id = 53\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-object.js\n ** module id = 54\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/inherits.js\n ** module id = 56\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/set-prototype-of.js\n ** module id = 57\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.setPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/set-prototype-of.js\n ** module id = 58\n ** module chunks = 0 1\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./$.export');\n$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.set-prototype-of.js\n ** module id = 59\n ** module chunks = 0 1\n **/","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar getDesc = require('./$').getDesc\n , isObject = require('./$.is-object')\n , anObject = require('./$.an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-proto.js\n ** module id = 60\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/create.js\n ** module id = 61\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/create.js\n ** module id = 62\n ** module chunks = 0 1\n **/","\"use strict\";\n\nimport Vector2D from \"./vector2d.js\";\n\nclass Entity {\n\n\n constructor (x, y) {\n\n this.pos = new Vector2D(x || 0, y || 0);\n this.velocity = new Vector2D(0, 0);\n this.acceleration = new Vector2D(0, 0);\n\n this.state = {};\n this.children = [];\n\n this._calculatedPos = this.pos.clone();\n this._lastCalculated = 0;\n this._game = null;\n this._parent = null;\n\n this._creationTime = +(new Date());\n\n }\n\n\n setVelocity (x, y) {\n\n if (x instanceof Vector2D) {\n this.velocity = x;\n } else {\n this.velocity.x = x;\n this.velocity.y = y;\n }\n\n }\n\n\n setAcceleration (x, y) {\n\n if (x instanceof Vector2D) {\n this.acceleration = x;\n } else {\n this.acceleration.x = x;\n this.acceleration.y = y;\n }\n\n }\n\n\n createChildEntity () {\n\n let child = new Entity();\n\n child._updateGame(this._game);\n child._parent = this;\n this.children.push(child);\n\n return child;\n\n }\n\n\n addChildEntity (child) {\n\n child._updateGame(this._game);\n child._parent = this;\n this.children.push(child);\n\n return child;\n\n }\n\n\n detachChildEntity (child) {\n\n for (let i = 0; i < this.children.length; i++) {\n if (this.children[i] == child) {\n\n this.children.splice(i, 1);\n return true;\n\n }\n }\n\n return false;\n\n }\n\n\n _preprocess () {\n\n // NK: The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _preprocess method all the way back up the tree and continuously adding the results together.\n\n // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating.\n\n // When rendering, the draw calls should use this._calculatedPos rather than this.pos in order for the position to be correct.\n\n if (this._game && this._lastCalculated < this._game.frameCounter) {\n\n if (this._parent) {\n\n let parentPos = this._parent._preprocess();\n\n this._calculatedPos.x = this.pos.x + parentPos.x;\n this._calculatedPos.y = this.pos.y + parentPos.y;\n\n } else {\n this._calculatedPos.x = this.pos.x;\n this._calculatedPos.y = this.pos.y;\n }\n\n this._lastCalculated = this._game.frameCounter;\n\n }\n\n return this._calculatedPos;\n\n }\n\n\n _updateGame (game) {\n\n this._game = game;\n\n this.children.forEach((child) => {\n child._updateGame(game);\n });\n\n }\n\n\n _updateEntity (delta) {\n\n if (this.timeToLive) {\n if (+(new Date()) - this._creationTime > this.timeToLive) {\n this._parent.detachChildEntity(this);\n }\n }\n\n // Calculate new position based on velocity and acceleration if there's one set\n if (this.velocity) {\n\n if (this.acceleration) {\n this.velocity.add(this.acceleration);\n }\n\n this.pos.add(this.velocity);\n\n }\n\n // If there's an update method, call it\n let updated = this.update && this.update(delta);\n\n if (updated || (typeof updated == \"undefined\") || (typeof this.update === \"undefined\")) {\n\n this.children.forEach((child) => {\n child._updateEntity(delta);\n });\n\n }\n\n }\n\n\n _renderEntity () {\n\n this._preprocess();\n\n let rendered = this.render && this.render();\n\n if (rendered || (typeof rendered == \"undefined\") || (typeof this.render === \"undefined\")) {\n\n this.children.forEach((child) => {\n child._renderEntity();\n });\n\n }\n\n }\n\n\n}\n\n\nexport default Entity;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/entity.js\n **/","\"use strict\";\n\nclass Vector2D {\n\n\n constructor (x, y) {\n this.x = x || 0; this.y = y || 0;\n }\n\n\n invert () {\n this.x = -this.x; this.y = -this.y;\n return this;\n }\n\n\n add (val) {\n\n if (val instanceof Vector2D) {\n this.x += val.x; this.y += val.y;\n } else {\n this.x += val; this.y += val;\n }\n\n return this;\n\n }\n\n\n subtract (val) {\n\n if (val instanceof Vector2D) {\n this.x -= val.x; this.y -= val.y;\n } else {\n this.x -= val; this.y -= val;\n }\n\n return this;\n\n }\n\n\n multiply (val) {\n\n if (val instanceof Vector2D) {\n this.x *= val.x; this.y *= val.y;\n } else {\n this.x *= val; this.y *= val;\n }\n\n return this;\n\n }\n\n\n divide (val) {\n\n if (val instanceof Vector2D) {\n this.x /= val.x; this.y /= val.y;\n } else {\n this.x /= val; this.y /= val;\n }\n\n return this;\n\n }\n\n\n equals (val) {\n return (this.x == val.x && this.y == val.y);\n }\n\n\n dot (val) {\n return (this.x * val.x + this.y * val.y);\n }\n\n\n length () {\n return Math.sqrt(this.dot(this));\n }\n\n\n unit () {\n return this.divide(this.length());\n }\n\n\n min () {\n return Math.min(this.x, this.y);\n }\n\n\n max () {\n return Math.max(this.x, this.y);\n }\n\n\n degrees () {\n return (Math.atan(this.x, this.y) * 180);\n }\n\n\n angle () {\n return Math.atan2(this.x, this.y);\n }\n\n\n toArray () {\n return [this.x, this.y];\n }\n\n\n toString () {\n return `[${this.x}},${this.y}}]`;\n }\n\n\n clone () {\n return new Vector2D(this.x, this.y);\n }\n\n\n static fromAngle (angle, length) {\n return new Vector2D(length * Math.cos(angle), length * Math.sin(angle));\n }\n\n\n}\n\n\nexport default Vector2D;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/vector2d.js\n **/","\"use strict\";\n\n\nconst KeyConsts = {\n SPACE: 32,\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n PAUSE: 19,\n CAPS_LOCK: 20,\n ESCAPE: 27,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n INSERT: 45,\n DELETE: 46,\n NUM_0: 48,\n NUM_1: 49,\n NUM_2: 50,\n NUM_3: 51,\n NUM_4: 52,\n NUM_5: 53,\n NUM_6: 54,\n NUM_7: 55,\n NUM_8: 56,\n NUM_9: 57,\n CHAR_A: 65,\n CHAR_B: 66,\n CHAR_C: 67,\n CHAR_D: 68,\n CHAR_E: 69,\n CHAR_F: 70,\n CHAR_G: 71,\n CHAR_H: 72,\n CHAR_I: 73,\n CHAR_J: 74,\n CHAR_K: 75,\n CHAR_L: 76,\n CHAR_M: 77,\n CHAR_N: 78,\n CHAR_O: 79,\n CHAR_P: 80,\n CHAR_Q: 81,\n CHAR_R: 82,\n CHAR_S: 83,\n CHAR_T: 84,\n CHAR_U: 85,\n CHAR_V: 86,\n CHAR_W: 87,\n CHAR_X: 88,\n CHAR_Y: 89,\n CHAR_Z: 90,\n NUM_PAD_0: 96,\n NUM_PAD_1: 97,\n NUM_PAD_2: 98,\n NUM_PAD_3: 99,\n NUM_PAD_4: 100,\n NUM_PAD_5: 101,\n NUM_PAD_6: 102,\n NUM_PAD_7: 103,\n NUM_PAD_8: 104,\n NUM_PAD_9: 105,\n MULTIPLY: 106,\n ADD: 107,\n SUBTRACT: 109,\n DECIMAL: 110,\n DIVIDE: 111,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n SEMICOLON: 186,\n EQUALS: 187,\n COMMA: 188,\n DASH: 189,\n PERIOD: 190,\n FORWARD_SLASH: 191,\n GRAVE: 192,\n OPEN_BRACKET: 219,\n BACK_SLASH: 220,\n CLOSE_BRACKET: 221,\n SINGLE_QUOTE: 222\n};\n\n\nclass KeyboardInput {\n\n\n constructor () {\n\n var self = this;\n self._keyState = {};\n\n window.addEventListener(\"keydown\", (event) => {\n self._keyDownHandler(event);\n }, false);\n\n window.addEventListener(\"keyup\", (event) => {\n self._keyUpHandler(event);\n }, false);\n\n }\n\n\n isPressed (keyCode) {\n return !!this._keyState[keyCode];\n }\n\n\n _keyDownHandler (event) {\n this._keyState[event.keyCode] = true;\n }\n\n\n _keyUpHandler (event) {\n this._keyState[event.keyCode] = false;\n }\n\n\n}\n\n\nexport default KeyboardInput;\nexport {KeyConsts};\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/keyboardinput.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\n\n\nclass Emitter extends Entity {\n\n\n constructor (x, y, rate, velocity, particle) {\n\n super(x, y);\n\n this.particleVelocity = velocity;\n this.particleClass = particle;\n\n this.rate = rate;\n this.emitting = false;\n this.spread = Math.PI;\n this._lastEmitTime = this._creationTime;\n this._wasEmitting = false;\n\n this._particles = [];\n\n }\n\n\n setParticleParent (entity) {\n this._particleParent = entity;\n }\n\n\n _emit () {\n\n let ParticleClass = this.particleClass,\n parent = this._particleParent || this._parent;\n\n let angle = this.particleVelocity.angle() + this.spread - (Math.random() * this.spread * 2),\n magnitude = this.particleVelocity.length(),\n velocity = Vector2D.fromAngle(angle, magnitude);\n\n let particle = new ParticleClass(this._calculatedPos.x, this._calculatedPos.y);\n particle.velocity = velocity;\n\n //this._particles.push(particle);\n parent.addChildEntity(particle);\n\n }\n\n\n _triggerEmissions () {\n\n // We prematurely call preprocess so that child particles can spawn from the emitters permission but be children of a different parent\n // NK: This might cause a bug where child renders have an incorrect position because preprocess should normally be called after the update function but before the render, here it is before update. We'll see.\n this._preprocess();\n\n if (this.emitting) {\n\n let currentTime = +(new Date());\n\n if (!this._wasEmitting) {\n this._wasEmitting = true;\n this._lastEmitTime = currentTime;\n }\n\n let emitDelta = currentTime - this._lastEmitTime;\n if (emitDelta > this.rate) {\n\n let emissions = ~~(emitDelta / this.rate);\n\n this._lastEmitTime = currentTime + (emitDelta - (this.rate * emissions));\n\n for (let i = 0; i < emissions; i++) {\n this._emit();\n }\n\n }\n\n } else {\n this._wasEmitting = false;\n }\n\n }\n\n\n update () {\n this._triggerEmissions();\n }\n\n\n}\n\n\nexport default Emitter;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/emitter.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\nimport ImageLoader from \"./imageloader.js\";\n\nimport CollisionMethods from \"../libs/collisionmethods.js\";\n\n\nclass Sprite extends Entity {\n\n\n constructor (x, y, width, height, image) {\n\n if (!image instanceof ImageLoader) {\n throw new Error(\"MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance\");\n }\n\n super(x, y);\n\n this.size = new Vector2D(width || 0, height || 0);\n\n this._image = image;\n this._imagePos = new Vector2D(0, 0);\n this._imageSize = new Vector2D(0, 0);\n\n }\n\n\n setImageCoords (x, y, width, height) {\n\n this._imagePos.x = x;\n this._imagePos.y = y;\n this._imageSize.x = width || 0;\n this._imageSize.y = height || 0;\n\n }\n\n\n isReady () {\n return (this._image.isLoaded() && !this._image.isError());\n }\n\n\n render () {\n\n if (this.isReady() && this._game) {\n\n let imageObj = this._image.getImageObj();\n\n let subWidth = imageObj.width - this._imagePos.x,\n subHeight = imageObj.height - this._imagePos.y;\n\n this._game.context.drawImage(\n imageObj,\n this._imagePos.x,\n this._imagePos.y,\n this._imageSize.x || subWidth,\n this._imageSize.y || subHeight,\n this._calculatedPos.x,\n this._calculatedPos.y,\n this.size.x || subWidth,\n this.size.y || subHeight\n );\n\n return true;\n\n } else {\n return false;\n }\n\n }\n\n\n}\n\n\nexport default Sprite;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/sprite.js\n **/","\"use strict\";\n\nclass ImageLoader {\n\n\n constructor (src) {\n\n this._loaded = false; // Default is true, set it to false until the image has loaded\n this._error = false; // If the image fails to load, this will contain the reason\n\n this._imageObj = new Image();\n\n this._imageObj.addEventListener(\"load\", () => {\n this._loaded = true;\n this._error = false;\n });\n\n this._imageObj.addEventListener(\"_error\", (err) => {\n this._loaded = false;\n this._error = err;\n });\n\n this._imageObj.src = src;\n\n }\n\n\n getImageObj () {\n\n if (this._loaded) {\n return this._imageObj;\n } else {\n return false;\n }\n\n }\n\n\n isLoaded () {\n return this._loaded;\n }\n\n\n isError () {\n return this._error;\n }\n\n\n}\n\n\nexport default ImageLoader;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/imageloader.js\n **/","import Rect from \"../classes/rect.js\";\n\nclass CollisionMethods {\n\n\n static AABB (entity1, entity2) {\n\n if (!entity1 instanceof Rect || !entity2 instanceof Rect) {\n throw new Error(\"AABB collisions can only be checked on these entity types: Rect\");\n }\n\n return (entity1.pos.x < entity2.pos.x + entity2.size.x &&\n entity1.pos.x + entity1.size.x > entity2.pos.x &&\n entity1.pos.y < entity2.pos.y + entity2.size.y &&\n entity1.size.y + entity1.pos.y > entity2.pos.y);\n\n }\n\n\n}\n\n\nexport default CollisionMethods;\n\n\n/** WEBPACK FOOTER **\n ** ./src/libs/collisionmethods.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\n\nimport CollisionMethods from \"../libs/collisionmethods.js\";\n\n\nclass Rect extends Entity {\n\n\n constructor (x, y, width, height, color) {\n\n super(x, y);\n\n this.size = new Vector2D(width, height);\n this.color = color;\n\n }\n\n\n isCollidingWith (entity) {\n\n if (entity instanceof Rect) {\n return CollisionMethods.AABB(this, entity);\n }\n\n }\n\n\n render () {\n\n if (this._game) {\n\n this._game.context.fillStyle = this.color.toString();\n this._game.context.fillRect(this._calculatedPos.x, this._calculatedPos.y, this.size.x, this.size.y);\n\n return true;\n\n } else {\n return false;\n }\n\n }\n\n\n}\n\n\nexport default Rect;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/rect.js\n **/","\"use strict\";\n\nclass Color {\n\n\n constructor (r, g, b, a) {\n\n this.r = r || 0;\n this.g = g || 0;\n this.b = b || 0;\n this.a = a || 1;\n\n }\n\n\n toString () {\n return `rgba(${this.r}, ${this.g}, ${this.b}, ${this.a})`;\n }\n\n\n toHex () {\n return `#${((r << 16) | (g << 8) | b).toString(16)}`;\n }\n\n\n}\n\n\nexport default Color;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/color.js\n **/","\"use strict\";\n\nimport Game from \"./classes/game.js\";\nimport Emitter from \"./classes/emitter.js\";\nimport Entity from \"./classes/entity.js\";\nimport Vector2D from \"./classes/vector2d.js\";\nimport Sprite from \"./classes/sprite.js\";\nimport Rect from \"./classes/rect.js\";\nimport Color from \"./classes/color.js\";\nimport ImageLoader from \"./classes/imageloader.js\";\n\nimport {KeyConsts} from \"./classes/keyboardinput.js\";\n\n\nconst Classes = {\n Game: Game,\n Emitter: Emitter,\n Entity: Entity,\n Sprite: Sprite,\n Rect: Rect,\n Vector2D: Vector2D,\n Color: Color,\n ImageLoader: ImageLoader\n};\n\n\nconst Consts = {\n Input: {\n Keys: KeyConsts\n }\n};\n\n\nexport default {\n Classes,\n Consts\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/es6.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///particles.js","webpack:///webpack/bootstrap 52cde20b0370da5d4a9a?bbea","webpack:///./examples/particles/particles.js","webpack:///./src/classes/game.js?42ad","webpack:///./~/babel-runtime/core-js/object/get-prototype-of.js?b265","webpack:///./~/core-js/library/fn/object/get-prototype-of.js?5193","webpack:///./~/core-js/library/modules/es6.object.get-prototype-of.js?eaa3","webpack:///./~/core-js/library/modules/$.to-object.js?093c","webpack:///./~/core-js/library/modules/$.defined.js?7087","webpack:///./~/core-js/library/modules/$.object-sap.js?f39d","webpack:///./~/core-js/library/modules/$.export.js?b734","webpack:///./~/core-js/library/modules/$.global.js?4deb","webpack:///./~/core-js/library/modules/$.core.js?7680","webpack:///./~/core-js/library/modules/$.ctx.js?e797","webpack:///./~/core-js/library/modules/$.a-function.js?860b","webpack:///./~/core-js/library/modules/$.fails.js?6c29","webpack:///./~/babel-runtime/helpers/classCallCheck.js?21af","webpack:///./~/babel-runtime/helpers/createClass.js?1dfe","webpack:///./~/babel-runtime/core-js/object/define-property.js?5f70","webpack:///./~/core-js/library/fn/object/define-property.js?b7d8","webpack:///./~/core-js/library/modules/$.js?6ce7","webpack:///./~/babel-runtime/helpers/possibleConstructorReturn.js?aad9","webpack:///./~/babel-runtime/helpers/typeof.js?f4bd","webpack:///./~/babel-runtime/core-js/symbol/iterator.js?d16b","webpack:///./~/core-js/library/fn/symbol/iterator.js?238d","webpack:///./~/core-js/library/modules/es6.string.iterator.js?fe18","webpack:///./~/core-js/library/modules/$.string-at.js?a0b4","webpack:///./~/core-js/library/modules/$.to-integer.js?b29c","webpack:///./~/core-js/library/modules/$.iter-define.js?970f","webpack:///./~/core-js/library/modules/$.library.js?c05f","webpack:///./~/core-js/library/modules/$.redefine.js?2643","webpack:///./~/core-js/library/modules/$.hide.js?2cce","webpack:///./~/core-js/library/modules/$.property-desc.js?e1db","webpack:///./~/core-js/library/modules/$.descriptors.js?8327","webpack:///./~/core-js/library/modules/$.has.js?bcec","webpack:///./~/core-js/library/modules/$.iterators.js?9d0a","webpack:///./~/core-js/library/modules/$.iter-create.js?4401","webpack:///./~/core-js/library/modules/$.set-to-string-tag.js?d0fc","webpack:///./~/core-js/library/modules/$.wks.js?3e04","webpack:///./~/core-js/library/modules/$.shared.js?6ce8","webpack:///./~/core-js/library/modules/$.uid.js?f177","webpack:///./~/core-js/library/modules/web.dom.iterable.js?bf0e","webpack:///./~/core-js/library/modules/es6.array.iterator.js?1e09","webpack:///./~/core-js/library/modules/$.add-to-unscopables.js?af5b","webpack:///./~/core-js/library/modules/$.iter-step.js?76ef","webpack:///./~/core-js/library/modules/$.to-iobject.js?daca","webpack:///./~/core-js/library/modules/$.iobject.js?3ada","webpack:///./~/core-js/library/modules/$.cof.js?74ee","webpack:///./~/babel-runtime/core-js/symbol.js?a70d","webpack:///./~/core-js/library/fn/symbol/index.js?f07a","webpack:///./~/core-js/library/modules/es6.symbol.js?670a","webpack:///./~/core-js/library/modules/$.keyof.js?3b7d","webpack:///./~/core-js/library/modules/$.get-names.js?e4b8","webpack:///./~/core-js/library/modules/$.enum-keys.js?1c2a","webpack:///./~/core-js/library/modules/$.is-array.js?4d69","webpack:///./~/core-js/library/modules/$.an-object.js?2be9","webpack:///./~/core-js/library/modules/$.is-object.js?7453","webpack:///./~/babel-runtime/helpers/inherits.js?0578","webpack:///./~/babel-runtime/core-js/object/set-prototype-of.js?bb00","webpack:///./~/core-js/library/fn/object/set-prototype-of.js?f909","webpack:///./~/core-js/library/modules/es6.object.set-prototype-of.js?b195","webpack:///./~/core-js/library/modules/$.set-proto.js?759b","webpack:///./~/babel-runtime/core-js/object/create.js?aa4b","webpack:///./~/core-js/library/fn/object/create.js?738c","webpack:///./src/classes/entity.js?7862","webpack:///./src/classes/vector2d.js?aacc","webpack:///./src/classes/keyboardinput.js?f4ac","webpack:///./src/classes/emitter.js?708e","webpack:///./src/classes/sprite.js?e426","webpack:///./src/classes/imageloader.js?b2ac","webpack:///./src/libs/collisionmethods.js?439c","webpack:///./src/classes/rect.js?5872","webpack:///./src/classes/color.js?70aa","webpack:///./src/es6.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","_getPrototypeOf","_getPrototypeOf2","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","_possibleConstructorReturn2","_possibleConstructorReturn3","_inherits2","_inherits3","_es","_es2","KeyConsts","Consts","Input","Keys","BlueParticle","_MomentumEngine$Class","x","y","this","_this","Classes","Color","timeToLive","key","value","delta","color","a","Rect","window","onload","width","height","baseSize","particles","Game","canvas","document","getElementById","fixRatio","desiredFps","inputs","keyboard","black","red","mainScene","addChildEntity","rect","emitter","Emitter","Vector2D","update","isPressed","UP","pos","DOWN","LEFT","RIGHT","setParticleParent","emitting","start","Object","defineProperty","_entity","_entity2","_keyboardinput","_keyboardinput2","_Entity","config","Error","deviceRatio","devicePixelRatio","backingStoreRatio","ejecta","context","getContext","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","scale","style","imageSmoothingEnabled","imageSmoothing","frameCounter","_game","_lastFrameTimestamp","_wantPause","_updateEntity","_renderEntity","self","console","log","requestFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","callback","setTimeout","Date","startTime","loop","currentTimestamp","Math","min","step","getPrototypeOf","toObject","$getPrototypeOf","it","defined","undefined","TypeError","$export","core","fails","KEY","exec","fn","exp","S","F","global","ctx","PROTOTYPE","type","name","source","own","out","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","target","C","param","Function","__g","version","__e","aFunction","that","length","b","apply","arguments","e","instance","Constructor","_defineProperty","_defineProperty2","defineProperties","props","i","descriptor","enumerable","configurable","writable","protoProps","staticProps","prototype","$","desc","setDesc","$Object","create","getProto","isEnum","propertyIsEnumerable","getDesc","getOwnPropertyDescriptor","setDescs","getKeys","keys","getNames","getOwnPropertyNames","getSymbols","getOwnPropertySymbols","each","forEach","_typeof2","_typeof3","ReferenceError","_typeof","_Symbol","_Symbol$iterator","constructor","_iterator","_iterator2","_symbol","_symbol2","$at","String","iterated","_t","_i","point","O","index","done","toInteger","TO_STRING","s","l","charCodeAt","charAt","slice","ceil","floor","isNaN","LIBRARY","redefine","hide","has","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","next","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","IteratorPrototype","values","entries","createDesc","object","bitmap","get","hasOwnProperty","def","tag","stat","store","uid","Symbol","SHARED","px","random","concat","toString","NodeList","HTMLCollection","Array","addToUnscopables","toIObject","_k","Arguments","IObject","cof","split","DESCRIPTORS","$fails","shared","wks","keyOf","$names","enumKeys","isArray","anObject","_create","$Symbol","$JSON","JSON","_stringify","stringify","setter","HIDDEN","SymbolRegistry","AllSymbols","useNative","ObjectProto","setSymbolDesc","D","protoDesc","wrap","sym","set","isSymbol","$defineProperty","$defineProperties","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","$stringify","replacer","$replacer","args","$$","buggyJSON","symbolStatics","for","keyFor","useSetter","useSimple","el","windowNames","getWindowNames","symbols","arg","isObject","_setPrototypeOf","_setPrototypeOf2","_create2","subClass","superClass","__proto__","setPrototypeOf","check","test","buggy","_vector2d","_vector2d2","Entity","velocity","acceleration","state","children","_calculatedPos","clone","_lastCalculated","_parent","_creationTime","child","_updateGame","splice","parentPos","_preprocess","game","detachChildEntity","add","multiply","updated","rendered","render","val","sqrt","dot","divide","max","atan","atan2","angle","cos","sin","SPACE","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESCAPE","PAGE_UP","PAGE_DOWN","END","HOME","INSERT","DELETE","NUM_0","NUM_1","NUM_2","NUM_3","NUM_4","NUM_5","NUM_6","NUM_7","NUM_8","NUM_9","CHAR_A","CHAR_B","CHAR_C","CHAR_D","CHAR_E","CHAR_F","CHAR_G","CHAR_H","CHAR_I","CHAR_J","CHAR_K","CHAR_L","CHAR_M","CHAR_N","CHAR_O","CHAR_P","CHAR_Q","CHAR_R","CHAR_S","CHAR_T","CHAR_U","CHAR_V","CHAR_W","CHAR_X","CHAR_Y","CHAR_Z","NUM_PAD_0","NUM_PAD_1","NUM_PAD_2","NUM_PAD_3","NUM_PAD_4","NUM_PAD_5","NUM_PAD_6","NUM_PAD_7","NUM_PAD_8","NUM_PAD_9","MULTIPLY","ADD","SUBTRACT","DECIMAL","DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","SEMICOLON","EQUALS","COMMA","DASH","PERIOD","FORWARD_SLASH","GRAVE","OPEN_BRACKET","BACK_SLASH","CLOSE_BRACKET","SINGLE_QUOTE","KeyboardInput","_keyState","addEventListener","event","_keyDownHandler","_keyUpHandler","keyCode","rate","particle","particleVelocity","particleClass","spread","PI","_lastEmitTime","_wasEmitting","_particles","entity","_particleParent","ParticleClass","parent","magnitude","fromAngle","currentTime","emitDelta","emissions","_emit","_triggerEmissions","_imageloader","_imageloader2","_collisionmethods","Sprite","image","size","_image","_imagePos","_imageSize","isLoaded","isError","isReady","imageObj","getImageObj","subWidth","subHeight","drawImage","ImageLoader","src","_loaded","_error","_imageObj","Image","err","_rect","_rect2","CollisionMethods","entity1","entity2","_collisionmethods2","AABB","fillStyle","fillRect","r","g","_game2","_emitter","_emitter2","_sprite","_sprite2","_color","_color2"],"mappings":"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","file":"particles.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(56);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _es = __webpack_require__(72);\n\t\n\tvar _es2 = _interopRequireDefault(_es);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar KeyConsts = _es2.default.Consts.Input.Keys;\n\t\n\tvar BlueParticle = function (_MomentumEngine$Class) {\n\t (0, _inherits3.default)(BlueParticle, _MomentumEngine$Class);\n\t\n\t function BlueParticle(x, y) {\n\t (0, _classCallCheck3.default)(this, BlueParticle);\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(BlueParticle).call(this, x, y, 1, 1, new _es2.default.Classes.Color(255, 255, 255, 0)));\n\t\n\t _this.timeToLive = 5000;\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(BlueParticle, [{\n\t key: \"update\",\n\t value: function update(delta) {\n\t this.color.a = this.color.a - delta * 0.00025;\n\t }\n\t }]);\n\t return BlueParticle;\n\t}(_es2.default.Classes.Rect);\n\t\n\twindow.onload = function () {\n\t\n\t var width = 640,\n\t height = 360,\n\t baseSize = width / 64;\n\t\n\t var particles = new _es2.default.Classes.Game({\n\t canvas: document.getElementById(\"canvas\"),\n\t width: width,\n\t height: height,\n\t fixRatio: true,\n\t desiredFps: 60,\n\t inputs: {\n\t keyboard: true\n\t }\n\t });\n\t\n\t var black = new _es2.default.Classes.Color(0, 0, 0),\n\t red = new _es2.default.Classes.Color(255, 0, 0);\n\t\n\t var mainScene = new _es2.default.Classes.Rect(0, 0, width, height, black);\n\t particles.addChildEntity(mainScene);\n\t\n\t var rect = new _es2.default.Classes.Rect(width / 2 - baseSize, height / 2 - baseSize, baseSize * 2, baseSize * 2, red),\n\t emitter = new _es2.default.Classes.Emitter(baseSize, baseSize, 4, new _es2.default.Classes.Vector2D(0, 0.05), BlueParticle);\n\t\n\t mainScene.addChildEntity(rect);\n\t rect.addChildEntity(emitter);\n\t\n\t rect.update = function (delta) {\n\t\n\t if (particles.inputs.keyboard.isPressed(KeyConsts.UP)) {\n\t rect.pos.y -= 0.2 * delta;\n\t }\n\t\n\t if (particles.inputs.keyboard.isPressed(KeyConsts.DOWN)) {\n\t rect.pos.y += 0.2 * delta;\n\t }\n\t\n\t if (particles.inputs.keyboard.isPressed(KeyConsts.LEFT)) {\n\t rect.pos.x -= 0.2 * delta;\n\t }\n\t\n\t if (particles.inputs.keyboard.isPressed(KeyConsts.RIGHT)) {\n\t rect.pos.x += 0.2 * delta;\n\t }\n\t };\n\t\n\t emitter.setParticleParent(mainScene);\n\t emitter.emitting = true;\n\t\n\t particles.start();\n\t};\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(56);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(63);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _keyboardinput = __webpack_require__(65);\n\t\n\tvar _keyboardinput2 = _interopRequireDefault(_keyboardinput);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Game = function (_Entity) {\n\t (0, _inherits3.default)(Game, _Entity);\n\t\n\t function Game(config) {\n\t (0, _classCallCheck3.default)(this, Game);\n\t // Call entity constructor\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Game).call(this));\n\t\n\t config = config || {};\n\t config.inputs = config.inputs || {};\n\t\n\t // Required params\n\t if (config.canvas) {\n\t _this.canvas = config.canvas;\n\t } else {\n\t throw new Error(\"MomentumEngine.Classes.Game must be constructed with a canvas\");\n\t }\n\t\n\t if (config.width) {\n\t _this.width = config.width;\n\t } else {\n\t throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas width\");\n\t }\n\t\n\t if (config.height) {\n\t _this.height = config.height;\n\t } else {\n\t throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas height\");\n\t }\n\t\n\t // Optional params\n\t _this.desiredFps = config.desiredFps || 60;\n\t\n\t if (config.fixRatio) {\n\t\n\t var deviceRatio = window.devicePixelRatio,\n\t backingStoreRatio = 0;\n\t\n\t // Unfortunately Ejecta requires calling getContext last, so we cannot get the backingStorePixelRatio. So for Ejecta's case, we set it to 1, and call getContext later.\n\t if (typeof ejecta !== \"undefined\") {\n\t backingStoreRatio = 1;\n\t } else {\n\t\n\t _this.context = _this.canvas.getContext(\"2d\");\n\t\n\t backingStoreRatio = _this.context.webkitBackingStorePixelRatio || _this.context.mozBackingStorePixelRatio || _this.context.msBackingStorePixelRatio || _this.context.oBackingStorePixelRatio || _this.context.backingStorePixelRatio || 1;\n\t }\n\t\n\t _this.scale = deviceRatio / backingStoreRatio;\n\t\n\t _this.canvas.width = _this.width * _this.scale;\n\t _this.canvas.height = _this.height * _this.scale;\n\t\n\t _this.canvas.style.width = _this.width + \"px\";\n\t _this.canvas.style.height = _this.height + \"px\";\n\t\n\t // Call getContext last for Ejecta only.\n\t if (typeof ejecta !== \"undefined\") {\n\t _this.context = _this.canvas.getContext(\"2d\");\n\t }\n\t\n\t _this.context.scale(deviceRatio, deviceRatio);\n\t } else {\n\t\n\t _this.canvas.width = _this.width;\n\t _this.canvas.height = _this.height;\n\t\n\t _this.context = _this.canvas.getContext(\"2d\");\n\t }\n\t\n\t if (typeof _this.context.imageSmoothingEnabled !== \"undefined\") {\n\t _this.context.imageSmoothingEnabled = config.imageSmoothing || false;\n\t }\n\t\n\t // Initialize defaults\n\t _this.frameCounter = 0;\n\t\n\t _this.inputs = {};\n\t if (config.inputs.keyboard) {\n\t _this.inputs.keyboard = new _keyboardinput2.default(_this);\n\t }\n\t\n\t _this._game = _this;\n\t _this._lastFrameTimestamp = 0;\n\t _this._wantPause = true;\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Game, [{\n\t key: \"step\",\n\t value: function step(delta) {\n\t\n\t this.frameCounter++;\n\t\n\t this._updateEntity(delta);\n\t this._renderEntity();\n\t }\n\t }, {\n\t key: \"start\",\n\t value: function start() {\n\t\n\t var self = this; // NK: Hate doing this...better way plz?\n\t\n\t if (self._wantPause) {\n\t self._wantPause = false;\n\t } else {\n\t console.log(\"MomentumEngine.Classes.Game.start called, game instance is already started\");\n\t return false; // Game is already running\n\t }\n\t\n\t self._wantPause = false;\n\t\n\t var requestFrame = function () {\n\t\n\t return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) {\n\t window.setTimeout(callback, 1000 / self.desiredFps);\n\t };\n\t }();\n\t\n\t self._lastFrameTimestamp = +new Date();\n\t self.startTime = self._lastFrameTimestamp;\n\t\n\t var loop = function loop() {\n\t\n\t if (self._wantPause) {\n\t return;\n\t }\n\t\n\t var currentTimestamp = +new Date(),\n\t delta = currentTimestamp - self._lastFrameTimestamp;\n\t\n\t delta = Math.min(delta, 1000 / self.desiredFps);\n\t self._lastFrameTimestamp = currentTimestamp;\n\t\n\t self.step(delta);\n\t\n\t requestFrame(loop);\n\t };\n\t\n\t loop();\n\t return true;\n\t }\n\t }, {\n\t key: \"pause\",\n\t value: function pause() {\n\t\n\t if (!this._wantPause) {\n\t this._wantPause = true;\n\t return true;\n\t } else {\n\t console.log(\"MomentumEngine.Classes.Game.pause called, game instance is already paused\");\n\t return false;\n\t }\n\t }\n\t }]);\n\t return Game;\n\t}(_entity2.default);\n\t\n\texports.default = Game;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(3), __esModule: true };\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(4);\n\tmodule.exports = __webpack_require__(10).Object.getPrototypeOf;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 Object.getPrototypeOf(O)\n\tvar toObject = __webpack_require__(5);\n\t\n\t__webpack_require__(7)('getPrototypeOf', function($getPrototypeOf){\n\t return function getPrototypeOf(it){\n\t return $getPrototypeOf(toObject(it));\n\t };\n\t});\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(6);\n\tmodule.exports = function(it){\n\t return Object(defined(it));\n\t};\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t// 7.2.1 RequireObjectCoercible(argument)\n\tmodule.exports = function(it){\n\t if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n\t return it;\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// most Object methods by ES6 should accept primitives\n\tvar $export = __webpack_require__(8)\n\t , core = __webpack_require__(10)\n\t , fails = __webpack_require__(13);\n\tmodule.exports = function(KEY, exec){\n\t var fn = (core.Object || {})[KEY] || Object[KEY]\n\t , exp = {};\n\t exp[KEY] = exec(fn);\n\t $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(9)\n\t , core = __webpack_require__(10)\n\t , ctx = __webpack_require__(11)\n\t , PROTOTYPE = 'prototype';\n\t\n\tvar $export = function(type, name, source){\n\t var IS_FORCED = type & $export.F\n\t , IS_GLOBAL = type & $export.G\n\t , IS_STATIC = type & $export.S\n\t , IS_PROTO = type & $export.P\n\t , IS_BIND = type & $export.B\n\t , IS_WRAP = type & $export.W\n\t , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n\t , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n\t , key, own, out;\n\t if(IS_GLOBAL)source = name;\n\t for(key in source){\n\t // contains in native\n\t own = !IS_FORCED && target && key in target;\n\t if(own && key in exports)continue;\n\t // export native or passed\n\t out = own ? target[key] : source[key];\n\t // prevent global pollution for namespaces\n\t exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n\t // bind timers to global for call from export context\n\t : IS_BIND && own ? ctx(out, global)\n\t // wrap global constructors for prevent change them in library\n\t : IS_WRAP && target[key] == out ? (function(C){\n\t var F = function(param){\n\t return this instanceof C ? new C(param) : C(param);\n\t };\n\t F[PROTOTYPE] = C[PROTOTYPE];\n\t return F;\n\t // make static versions for prototype methods\n\t })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n\t if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n\t }\n\t};\n\t// type bitmap\n\t$export.F = 1; // forced\n\t$export.G = 2; // global\n\t$export.S = 4; // static\n\t$export.P = 8; // proto\n\t$export.B = 16; // bind\n\t$export.W = 32; // wrap\n\tmodule.exports = $export;\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\tif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\tvar core = module.exports = {version: '1.2.6'};\n\tif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(12);\n\tmodule.exports = function(fn, that, length){\n\t aFunction(fn);\n\t if(that === undefined)return fn;\n\t switch(length){\n\t case 1: return function(a){\n\t return fn.call(that, a);\n\t };\n\t case 2: return function(a, b){\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function(a, b, c){\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function(/* ...args */){\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n/***/ },\n/* 12 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t return it;\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(exec){\n\t try {\n\t return !!exec();\n\t } catch(e){\n\t return true;\n\t }\n\t};\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\texports.default = function (instance, Constructor) {\n\t if (!(instance instanceof Constructor)) {\n\t throw new TypeError(\"Cannot call a class as a function\");\n\t }\n\t};\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _defineProperty = __webpack_require__(16);\n\t\n\tvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function () {\n\t function defineProperties(target, props) {\n\t for (var i = 0; i < props.length; i++) {\n\t var descriptor = props[i];\n\t descriptor.enumerable = descriptor.enumerable || false;\n\t descriptor.configurable = true;\n\t if (\"value\" in descriptor) descriptor.writable = true;\n\t (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n\t }\n\t }\n\t\n\t return function (Constructor, protoProps, staticProps) {\n\t if (protoProps) defineProperties(Constructor.prototype, protoProps);\n\t if (staticProps) defineProperties(Constructor, staticProps);\n\t return Constructor;\n\t };\n\t}();\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(17), __esModule: true };\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18);\n\tmodule.exports = function defineProperty(it, key, desc){\n\t return $.setDesc(it, key, desc);\n\t};\n\n/***/ },\n/* 18 */\n/***/ function(module, exports) {\n\n\tvar $Object = Object;\n\tmodule.exports = {\n\t create: $Object.create,\n\t getProto: $Object.getPrototypeOf,\n\t isEnum: {}.propertyIsEnumerable,\n\t getDesc: $Object.getOwnPropertyDescriptor,\n\t setDesc: $Object.defineProperty,\n\t setDescs: $Object.defineProperties,\n\t getKeys: $Object.keys,\n\t getNames: $Object.getOwnPropertyNames,\n\t getSymbols: $Object.getOwnPropertySymbols,\n\t each: [].forEach\n\t};\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof2 = __webpack_require__(20);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (self, call) {\n\t if (!self) {\n\t throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n\t }\n\t\n\t return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n\t};\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\t\n\texports.__esModule = true;\n\t\n\tvar _iterator = __webpack_require__(21);\n\t\n\tvar _iterator2 = _interopRequireDefault(_iterator);\n\t\n\tvar _symbol = __webpack_require__(46);\n\t\n\tvar _symbol2 = _interopRequireDefault(_symbol);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n\t return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n\t} : function (obj) {\n\t return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n\t};\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(22), __esModule: true };\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(23);\n\t__webpack_require__(39);\n\tmodule.exports = __webpack_require__(36)('iterator');\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $at = __webpack_require__(24)(true);\n\t\n\t// 21.1.3.27 String.prototype[@@iterator]()\n\t__webpack_require__(26)(String, 'String', function(iterated){\n\t this._t = String(iterated); // target\n\t this._i = 0; // next index\n\t// 21.1.5.2.1 %StringIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , index = this._i\n\t , point;\n\t if(index >= O.length)return {value: undefined, done: true};\n\t point = $at(O, index);\n\t this._i += point.length;\n\t return {value: point, done: false};\n\t});\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(25)\n\t , defined = __webpack_require__(6);\n\t// true -> String#at\n\t// false -> String#codePointAt\n\tmodule.exports = function(TO_STRING){\n\t return function(that, pos){\n\t var s = String(defined(that))\n\t , i = toInteger(pos)\n\t , l = s.length\n\t , a, b;\n\t if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n\t a = s.charCodeAt(i);\n\t return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n\t ? TO_STRING ? s.charAt(i) : a\n\t : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n\t };\n\t};\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\t// 7.1.4 ToInteger\n\tvar ceil = Math.ceil\n\t , floor = Math.floor;\n\tmodule.exports = function(it){\n\t return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n\t};\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar LIBRARY = __webpack_require__(27)\n\t , $export = __webpack_require__(8)\n\t , redefine = __webpack_require__(28)\n\t , hide = __webpack_require__(29)\n\t , has = __webpack_require__(32)\n\t , Iterators = __webpack_require__(33)\n\t , $iterCreate = __webpack_require__(34)\n\t , setToStringTag = __webpack_require__(35)\n\t , getProto = __webpack_require__(18).getProto\n\t , ITERATOR = __webpack_require__(36)('iterator')\n\t , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n\t , FF_ITERATOR = '@@iterator'\n\t , KEYS = 'keys'\n\t , VALUES = 'values';\n\t\n\tvar returnThis = function(){ return this; };\n\t\n\tmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n\t $iterCreate(Constructor, NAME, next);\n\t var getMethod = function(kind){\n\t if(!BUGGY && kind in proto)return proto[kind];\n\t switch(kind){\n\t case KEYS: return function keys(){ return new Constructor(this, kind); };\n\t case VALUES: return function values(){ return new Constructor(this, kind); };\n\t } return function entries(){ return new Constructor(this, kind); };\n\t };\n\t var TAG = NAME + ' Iterator'\n\t , DEF_VALUES = DEFAULT == VALUES\n\t , VALUES_BUG = false\n\t , proto = Base.prototype\n\t , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n\t , $default = $native || getMethod(DEFAULT)\n\t , methods, key;\n\t // Fix native\n\t if($native){\n\t var IteratorPrototype = getProto($default.call(new Base));\n\t // Set @@toStringTag to native iterators\n\t setToStringTag(IteratorPrototype, TAG, true);\n\t // FF fix\n\t if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n\t // fix Array#{values, @@iterator}.name in V8 / FF\n\t if(DEF_VALUES && $native.name !== VALUES){\n\t VALUES_BUG = true;\n\t $default = function values(){ return $native.call(this); };\n\t }\n\t }\n\t // Define iterator\n\t if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n\t hide(proto, ITERATOR, $default);\n\t }\n\t // Plug for library\n\t Iterators[NAME] = $default;\n\t Iterators[TAG] = returnThis;\n\t if(DEFAULT){\n\t methods = {\n\t values: DEF_VALUES ? $default : getMethod(VALUES),\n\t keys: IS_SET ? $default : getMethod(KEYS),\n\t entries: !DEF_VALUES ? $default : getMethod('entries')\n\t };\n\t if(FORCED)for(key in methods){\n\t if(!(key in proto))redefine(proto, key, methods[key]);\n\t } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n\t }\n\t return methods;\n\t};\n\n/***/ },\n/* 27 */\n/***/ function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(29);\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18)\n\t , createDesc = __webpack_require__(30);\n\tmodule.exports = __webpack_require__(31) ? function(object, key, value){\n\t return $.setDesc(object, key, createDesc(1, value));\n\t} : function(object, key, value){\n\t object[key] = value;\n\t return object;\n\t};\n\n/***/ },\n/* 30 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(bitmap, value){\n\t return {\n\t enumerable : !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable : !(bitmap & 4),\n\t value : value\n\t };\n\t};\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Thank's IE8 for his funny defineProperty\n\tmodule.exports = !__webpack_require__(13)(function(){\n\t return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 32 */\n/***/ function(module, exports) {\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\tmodule.exports = function(it, key){\n\t return hasOwnProperty.call(it, key);\n\t};\n\n/***/ },\n/* 33 */\n/***/ function(module, exports) {\n\n\tmodule.exports = {};\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $ = __webpack_require__(18)\n\t , descriptor = __webpack_require__(30)\n\t , setToStringTag = __webpack_require__(35)\n\t , IteratorPrototype = {};\n\t\n\t// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\t__webpack_require__(29)(IteratorPrototype, __webpack_require__(36)('iterator'), function(){ return this; });\n\t\n\tmodule.exports = function(Constructor, NAME, next){\n\t Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n\t setToStringTag(Constructor, NAME + ' Iterator');\n\t};\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar def = __webpack_require__(18).setDesc\n\t , has = __webpack_require__(32)\n\t , TAG = __webpack_require__(36)('toStringTag');\n\t\n\tmodule.exports = function(it, tag, stat){\n\t if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n\t};\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar store = __webpack_require__(37)('wks')\n\t , uid = __webpack_require__(38)\n\t , Symbol = __webpack_require__(9).Symbol;\n\tmodule.exports = function(name){\n\t return store[name] || (store[name] =\n\t Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n\t};\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(9)\n\t , SHARED = '__core-js_shared__'\n\t , store = global[SHARED] || (global[SHARED] = {});\n\tmodule.exports = function(key){\n\t return store[key] || (store[key] = {});\n\t};\n\n/***/ },\n/* 38 */\n/***/ function(module, exports) {\n\n\tvar id = 0\n\t , px = Math.random();\n\tmodule.exports = function(key){\n\t return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(40);\n\tvar Iterators = __webpack_require__(33);\n\tIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar addToUnscopables = __webpack_require__(41)\n\t , step = __webpack_require__(42)\n\t , Iterators = __webpack_require__(33)\n\t , toIObject = __webpack_require__(43);\n\t\n\t// 22.1.3.4 Array.prototype.entries()\n\t// 22.1.3.13 Array.prototype.keys()\n\t// 22.1.3.29 Array.prototype.values()\n\t// 22.1.3.30 Array.prototype[@@iterator]()\n\tmodule.exports = __webpack_require__(26)(Array, 'Array', function(iterated, kind){\n\t this._t = toIObject(iterated); // target\n\t this._i = 0; // next index\n\t this._k = kind; // kind\n\t// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , kind = this._k\n\t , index = this._i++;\n\t if(!O || index >= O.length){\n\t this._t = undefined;\n\t return step(1);\n\t }\n\t if(kind == 'keys' )return step(0, index);\n\t if(kind == 'values')return step(0, O[index]);\n\t return step(0, [index, O[index]]);\n\t}, 'values');\n\t\n\t// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\n\tIterators.Arguments = Iterators.Array;\n\t\n\taddToUnscopables('keys');\n\taddToUnscopables('values');\n\taddToUnscopables('entries');\n\n/***/ },\n/* 41 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(){ /* empty */ };\n\n/***/ },\n/* 42 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(done, value){\n\t return {value: value, done: !!done};\n\t};\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// to indexed object, toObject with fallback for non-array-like ES3 strings\n\tvar IObject = __webpack_require__(44)\n\t , defined = __webpack_require__(6);\n\tmodule.exports = function(it){\n\t return IObject(defined(it));\n\t};\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar cof = __webpack_require__(45);\n\tmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n\t return cof(it) == 'String' ? it.split('') : Object(it);\n\t};\n\n/***/ },\n/* 45 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = function(it){\n\t return toString.call(it).slice(8, -1);\n\t};\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(47), __esModule: true };\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(48);\n\t__webpack_require__(55);\n\tmodule.exports = __webpack_require__(10).Symbol;\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// ECMAScript 6 symbols shim\n\tvar $ = __webpack_require__(18)\n\t , global = __webpack_require__(9)\n\t , has = __webpack_require__(32)\n\t , DESCRIPTORS = __webpack_require__(31)\n\t , $export = __webpack_require__(8)\n\t , redefine = __webpack_require__(28)\n\t , $fails = __webpack_require__(13)\n\t , shared = __webpack_require__(37)\n\t , setToStringTag = __webpack_require__(35)\n\t , uid = __webpack_require__(38)\n\t , wks = __webpack_require__(36)\n\t , keyOf = __webpack_require__(49)\n\t , $names = __webpack_require__(50)\n\t , enumKeys = __webpack_require__(51)\n\t , isArray = __webpack_require__(52)\n\t , anObject = __webpack_require__(53)\n\t , toIObject = __webpack_require__(43)\n\t , createDesc = __webpack_require__(30)\n\t , getDesc = $.getDesc\n\t , setDesc = $.setDesc\n\t , _create = $.create\n\t , getNames = $names.get\n\t , $Symbol = global.Symbol\n\t , $JSON = global.JSON\n\t , _stringify = $JSON && $JSON.stringify\n\t , setter = false\n\t , HIDDEN = wks('_hidden')\n\t , isEnum = $.isEnum\n\t , SymbolRegistry = shared('symbol-registry')\n\t , AllSymbols = shared('symbols')\n\t , useNative = typeof $Symbol == 'function'\n\t , ObjectProto = Object.prototype;\n\t\n\t// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\n\tvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n\t return _create(setDesc({}, 'a', {\n\t get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n\t })).a != 7;\n\t}) ? function(it, key, D){\n\t var protoDesc = getDesc(ObjectProto, key);\n\t if(protoDesc)delete ObjectProto[key];\n\t setDesc(it, key, D);\n\t if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n\t} : setDesc;\n\t\n\tvar wrap = function(tag){\n\t var sym = AllSymbols[tag] = _create($Symbol.prototype);\n\t sym._k = tag;\n\t DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n\t configurable: true,\n\t set: function(value){\n\t if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n\t setSymbolDesc(this, tag, createDesc(1, value));\n\t }\n\t });\n\t return sym;\n\t};\n\t\n\tvar isSymbol = function(it){\n\t return typeof it == 'symbol';\n\t};\n\t\n\tvar $defineProperty = function defineProperty(it, key, D){\n\t if(D && has(AllSymbols, key)){\n\t if(!D.enumerable){\n\t if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n\t it[HIDDEN][key] = true;\n\t } else {\n\t if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n\t D = _create(D, {enumerable: createDesc(0, false)});\n\t } return setSymbolDesc(it, key, D);\n\t } return setDesc(it, key, D);\n\t};\n\tvar $defineProperties = function defineProperties(it, P){\n\t anObject(it);\n\t var keys = enumKeys(P = toIObject(P))\n\t , i = 0\n\t , l = keys.length\n\t , key;\n\t while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n\t return it;\n\t};\n\tvar $create = function create(it, P){\n\t return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n\t};\n\tvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n\t var E = isEnum.call(this, key);\n\t return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n\t ? E : true;\n\t};\n\tvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n\t var D = getDesc(it = toIObject(it), key);\n\t if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n\t return D;\n\t};\n\tvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n\t return result;\n\t};\n\tvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n\t return result;\n\t};\n\tvar $stringify = function stringify(it){\n\t if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n\t var args = [it]\n\t , i = 1\n\t , $$ = arguments\n\t , replacer, $replacer;\n\t while($$.length > i)args.push($$[i++]);\n\t replacer = args[1];\n\t if(typeof replacer == 'function')$replacer = replacer;\n\t if($replacer || !isArray(replacer))replacer = function(key, value){\n\t if($replacer)value = $replacer.call(this, key, value);\n\t if(!isSymbol(value))return value;\n\t };\n\t args[1] = replacer;\n\t return _stringify.apply($JSON, args);\n\t};\n\tvar buggyJSON = $fails(function(){\n\t var S = $Symbol();\n\t // MS Edge converts symbol values to JSON as {}\n\t // WebKit converts symbol values to JSON as null\n\t // V8 throws on boxed symbols\n\t return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n\t});\n\t\n\t// 19.4.1.1 Symbol([description])\n\tif(!useNative){\n\t $Symbol = function Symbol(){\n\t if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n\t return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n\t };\n\t redefine($Symbol.prototype, 'toString', function toString(){\n\t return this._k;\n\t });\n\t\n\t isSymbol = function(it){\n\t return it instanceof $Symbol;\n\t };\n\t\n\t $.create = $create;\n\t $.isEnum = $propertyIsEnumerable;\n\t $.getDesc = $getOwnPropertyDescriptor;\n\t $.setDesc = $defineProperty;\n\t $.setDescs = $defineProperties;\n\t $.getNames = $names.get = $getOwnPropertyNames;\n\t $.getSymbols = $getOwnPropertySymbols;\n\t\n\t if(DESCRIPTORS && !__webpack_require__(27)){\n\t redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n\t }\n\t}\n\t\n\tvar symbolStatics = {\n\t // 19.4.2.1 Symbol.for(key)\n\t 'for': function(key){\n\t return has(SymbolRegistry, key += '')\n\t ? SymbolRegistry[key]\n\t : SymbolRegistry[key] = $Symbol(key);\n\t },\n\t // 19.4.2.5 Symbol.keyFor(sym)\n\t keyFor: function keyFor(key){\n\t return keyOf(SymbolRegistry, key);\n\t },\n\t useSetter: function(){ setter = true; },\n\t useSimple: function(){ setter = false; }\n\t};\n\t// 19.4.2.2 Symbol.hasInstance\n\t// 19.4.2.3 Symbol.isConcatSpreadable\n\t// 19.4.2.4 Symbol.iterator\n\t// 19.4.2.6 Symbol.match\n\t// 19.4.2.8 Symbol.replace\n\t// 19.4.2.9 Symbol.search\n\t// 19.4.2.10 Symbol.species\n\t// 19.4.2.11 Symbol.split\n\t// 19.4.2.12 Symbol.toPrimitive\n\t// 19.4.2.13 Symbol.toStringTag\n\t// 19.4.2.14 Symbol.unscopables\n\t$.each.call((\n\t 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n\t 'species,split,toPrimitive,toStringTag,unscopables'\n\t).split(','), function(it){\n\t var sym = wks(it);\n\t symbolStatics[it] = useNative ? sym : wrap(sym);\n\t});\n\t\n\tsetter = true;\n\t\n\t$export($export.G + $export.W, {Symbol: $Symbol});\n\t\n\t$export($export.S, 'Symbol', symbolStatics);\n\t\n\t$export($export.S + $export.F * !useNative, 'Object', {\n\t // 19.1.2.2 Object.create(O [, Properties])\n\t create: $create,\n\t // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n\t defineProperty: $defineProperty,\n\t // 19.1.2.3 Object.defineProperties(O, Properties)\n\t defineProperties: $defineProperties,\n\t // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n\t getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n\t // 19.1.2.7 Object.getOwnPropertyNames(O)\n\t getOwnPropertyNames: $getOwnPropertyNames,\n\t // 19.1.2.8 Object.getOwnPropertySymbols(O)\n\t getOwnPropertySymbols: $getOwnPropertySymbols\n\t});\n\t\n\t// 24.3.2 JSON.stringify(value [, replacer [, space]])\n\t$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\t\n\t// 19.4.3.5 Symbol.prototype[@@toStringTag]\n\tsetToStringTag($Symbol, 'Symbol');\n\t// 20.2.1.9 Math[@@toStringTag]\n\tsetToStringTag(Math, 'Math', true);\n\t// 24.3.3 JSON[@@toStringTag]\n\tsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18)\n\t , toIObject = __webpack_require__(43);\n\tmodule.exports = function(object, el){\n\t var O = toIObject(object)\n\t , keys = $.getKeys(O)\n\t , length = keys.length\n\t , index = 0\n\t , key;\n\t while(length > index)if(O[key = keys[index++]] === el)return key;\n\t};\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n\tvar toIObject = __webpack_require__(43)\n\t , getNames = __webpack_require__(18).getNames\n\t , toString = {}.toString;\n\t\n\tvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n\t ? Object.getOwnPropertyNames(window) : [];\n\t\n\tvar getWindowNames = function(it){\n\t try {\n\t return getNames(it);\n\t } catch(e){\n\t return windowNames.slice();\n\t }\n\t};\n\t\n\tmodule.exports.get = function getOwnPropertyNames(it){\n\t if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n\t return getNames(toIObject(it));\n\t};\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// all enumerable object keys, includes symbols\n\tvar $ = __webpack_require__(18);\n\tmodule.exports = function(it){\n\t var keys = $.getKeys(it)\n\t , getSymbols = $.getSymbols;\n\t if(getSymbols){\n\t var symbols = getSymbols(it)\n\t , isEnum = $.isEnum\n\t , i = 0\n\t , key;\n\t while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n\t }\n\t return keys;\n\t};\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.2.2 IsArray(argument)\n\tvar cof = __webpack_require__(45);\n\tmodule.exports = Array.isArray || function(arg){\n\t return cof(arg) == 'Array';\n\t};\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(54);\n\tmodule.exports = function(it){\n\t if(!isObject(it))throw TypeError(it + ' is not an object!');\n\t return it;\n\t};\n\n/***/ },\n/* 54 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n/***/ },\n/* 55 */\n/***/ function(module, exports) {\n\n\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _setPrototypeOf = __webpack_require__(57);\n\t\n\tvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\t\n\tvar _create = __webpack_require__(61);\n\t\n\tvar _create2 = _interopRequireDefault(_create);\n\t\n\tvar _typeof2 = __webpack_require__(20);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (subClass, superClass) {\n\t if (typeof superClass !== \"function\" && superClass !== null) {\n\t throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n\t }\n\t\n\t subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n\t constructor: {\n\t value: subClass,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n\t};\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(58), __esModule: true };\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(59);\n\tmodule.exports = __webpack_require__(10).Object.setPrototypeOf;\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.19 Object.setPrototypeOf(O, proto)\n\tvar $export = __webpack_require__(8);\n\t$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(60).set});\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Works with __proto__ only. Old v8 can't work with null proto objects.\n\t/* eslint-disable no-proto */\n\tvar getDesc = __webpack_require__(18).getDesc\n\t , isObject = __webpack_require__(54)\n\t , anObject = __webpack_require__(53);\n\tvar check = function(O, proto){\n\t anObject(O);\n\t if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n\t};\n\tmodule.exports = {\n\t set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n\t function(test, buggy, set){\n\t try {\n\t set = __webpack_require__(11)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n\t set(test, []);\n\t buggy = !(test instanceof Array);\n\t } catch(e){ buggy = true; }\n\t return function setPrototypeOf(O, proto){\n\t check(O, proto);\n\t if(buggy)O.__proto__ = proto;\n\t else set(O, proto);\n\t return O;\n\t };\n\t }({}, false) : undefined),\n\t check: check\n\t};\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(62), __esModule: true };\n\n/***/ },\n/* 62 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18);\n\tmodule.exports = function create(P, D){\n\t return $.create(P, D);\n\t};\n\n/***/ },\n/* 63 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _vector2d = __webpack_require__(64);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Entity = function () {\n\t function Entity(x, y) {\n\t (0, _classCallCheck3.default)(this, Entity);\n\t\n\t\n\t this.pos = new _vector2d2.default(x || 0, y || 0);\n\t this.velocity = new _vector2d2.default(0, 0);\n\t this.acceleration = new _vector2d2.default(0, 0);\n\t\n\t this.state = {};\n\t this.children = [];\n\t\n\t this._calculatedPos = this.pos.clone();\n\t this._lastCalculated = 0;\n\t this._game = null;\n\t this._parent = null;\n\t\n\t this._creationTime = +new Date();\n\t }\n\t\n\t (0, _createClass3.default)(Entity, [{\n\t key: \"setVelocity\",\n\t value: function setVelocity(x, y) {\n\t\n\t if (x instanceof _vector2d2.default) {\n\t this.velocity = x;\n\t } else {\n\t this.velocity.x = x;\n\t this.velocity.y = y;\n\t }\n\t }\n\t }, {\n\t key: \"setAcceleration\",\n\t value: function setAcceleration(x, y) {\n\t\n\t if (x instanceof _vector2d2.default) {\n\t this.acceleration = x;\n\t } else {\n\t this.acceleration.x = x;\n\t this.acceleration.y = y;\n\t }\n\t }\n\t }, {\n\t key: \"createChildEntity\",\n\t value: function createChildEntity() {\n\t\n\t var child = new Entity();\n\t\n\t child._updateGame(this._game);\n\t child._parent = this;\n\t this.children.push(child);\n\t\n\t return child;\n\t }\n\t }, {\n\t key: \"addChildEntity\",\n\t value: function addChildEntity(child) {\n\t\n\t child._updateGame(this._game);\n\t child._parent = this;\n\t this.children.push(child);\n\t\n\t return child;\n\t }\n\t }, {\n\t key: \"detachChildEntity\",\n\t value: function detachChildEntity(child) {\n\t\n\t for (var i = 0; i < this.children.length; i++) {\n\t if (this.children[i] == child) {\n\t\n\t this.children.splice(i, 1);\n\t return true;\n\t }\n\t }\n\t\n\t return false;\n\t }\n\t }, {\n\t key: \"_preprocess\",\n\t value: function _preprocess() {\n\t\n\t // NK: The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _preprocess method all the way back up the tree and continuously adding the results together.\n\t\n\t // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating.\n\t\n\t // When rendering, the draw calls should use this._calculatedPos rather than this.pos in order for the position to be correct.\n\t\n\t if (this._game && this._lastCalculated < this._game.frameCounter) {\n\t\n\t if (this._parent) {\n\t\n\t var parentPos = this._parent._preprocess();\n\t\n\t this._calculatedPos.x = this.pos.x + parentPos.x;\n\t this._calculatedPos.y = this.pos.y + parentPos.y;\n\t } else {\n\t this._calculatedPos.x = this.pos.x;\n\t this._calculatedPos.y = this.pos.y;\n\t }\n\t\n\t this._lastCalculated = this._game.frameCounter;\n\t }\n\t\n\t return this._calculatedPos;\n\t }\n\t }, {\n\t key: \"_updateGame\",\n\t value: function _updateGame(game) {\n\t\n\t this._game = game;\n\t\n\t this.children.forEach(function (child) {\n\t child._updateGame(game);\n\t });\n\t }\n\t }, {\n\t key: \"_updateEntity\",\n\t value: function _updateEntity(delta) {\n\t\n\t if (this.timeToLive) {\n\t if (+new Date() - this._creationTime > this.timeToLive) {\n\t this._parent.detachChildEntity(this);\n\t }\n\t }\n\t\n\t // Calculate new position based on velocity and acceleration if there's one set\n\t if (this.velocity) {\n\t\n\t if (this.acceleration) {\n\t this.velocity.add(this.acceleration);\n\t }\n\t\n\t this.pos.add(this.velocity.clone().multiply(delta));\n\t }\n\t\n\t // If there's an update method, call it\n\t var updated = this.update && this.update(delta);\n\t\n\t if (updated || typeof updated == \"undefined\" || typeof this.update === \"undefined\") {\n\t\n\t this.children.forEach(function (child) {\n\t child._updateEntity(delta);\n\t });\n\t }\n\t }\n\t }, {\n\t key: \"_renderEntity\",\n\t value: function _renderEntity() {\n\t\n\t this._preprocess();\n\t\n\t var rendered = this.render && this.render();\n\t\n\t if (rendered || typeof rendered == \"undefined\" || typeof this.render === \"undefined\") {\n\t\n\t this.children.forEach(function (child) {\n\t child._renderEntity();\n\t });\n\t }\n\t }\n\t }]);\n\t return Entity;\n\t}();\n\t\n\texports.default = Entity;\n\n/***/ },\n/* 64 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Vector2D = function () {\n\t function Vector2D(x, y) {\n\t (0, _classCallCheck3.default)(this, Vector2D);\n\t\n\t this.x = x || 0;this.y = y || 0;\n\t }\n\t\n\t (0, _createClass3.default)(Vector2D, [{\n\t key: \"invert\",\n\t value: function invert() {\n\t this.x = -this.x;this.y = -this.y;\n\t return this;\n\t }\n\t }, {\n\t key: \"add\",\n\t value: function add(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x += val.x;this.y += val.y;\n\t } else {\n\t this.x += val;this.y += val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"subtract\",\n\t value: function subtract(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x -= val.x;this.y -= val.y;\n\t } else {\n\t this.x -= val;this.y -= val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"multiply\",\n\t value: function multiply(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x *= val.x;this.y *= val.y;\n\t } else {\n\t this.x *= val;this.y *= val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"divide\",\n\t value: function divide(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x /= val.x;this.y /= val.y;\n\t } else {\n\t this.x /= val;this.y /= val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"equals\",\n\t value: function equals(val) {\n\t return this.x == val.x && this.y == val.y;\n\t }\n\t }, {\n\t key: \"dot\",\n\t value: function dot(val) {\n\t return this.x * val.x + this.y * val.y;\n\t }\n\t }, {\n\t key: \"length\",\n\t value: function length() {\n\t return Math.sqrt(this.dot(this));\n\t }\n\t }, {\n\t key: \"unit\",\n\t value: function unit() {\n\t return this.divide(this.length());\n\t }\n\t }, {\n\t key: \"min\",\n\t value: function min() {\n\t return Math.min(this.x, this.y);\n\t }\n\t }, {\n\t key: \"max\",\n\t value: function max() {\n\t return Math.max(this.x, this.y);\n\t }\n\t }, {\n\t key: \"degrees\",\n\t value: function degrees() {\n\t return Math.atan(this.x, this.y) * 180;\n\t }\n\t }, {\n\t key: \"angle\",\n\t value: function angle() {\n\t return Math.atan2(this.x, this.y);\n\t }\n\t }, {\n\t key: \"toArray\",\n\t value: function toArray() {\n\t return [this.x, this.y];\n\t }\n\t }, {\n\t key: \"toString\",\n\t value: function toString() {\n\t return \"[\" + this.x + \"},\" + this.y + \"}]\";\n\t }\n\t }, {\n\t key: \"clone\",\n\t value: function clone() {\n\t return new Vector2D(this.x, this.y);\n\t }\n\t }], [{\n\t key: \"fromAngle\",\n\t value: function fromAngle(angle, length) {\n\t return new Vector2D(length * Math.cos(angle), length * Math.sin(angle));\n\t }\n\t }]);\n\t return Vector2D;\n\t}();\n\t\n\texports.default = Vector2D;\n\n/***/ },\n/* 65 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.KeyConsts = undefined;\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar KeyConsts = {\n\t SPACE: 32,\n\t BACKSPACE: 8,\n\t TAB: 9,\n\t ENTER: 13,\n\t SHIFT: 16,\n\t CTRL: 17,\n\t ALT: 18,\n\t PAUSE: 19,\n\t CAPS_LOCK: 20,\n\t ESCAPE: 27,\n\t PAGE_UP: 33,\n\t PAGE_DOWN: 34,\n\t END: 35,\n\t HOME: 36,\n\t LEFT: 37,\n\t UP: 38,\n\t RIGHT: 39,\n\t DOWN: 40,\n\t INSERT: 45,\n\t DELETE: 46,\n\t NUM_0: 48,\n\t NUM_1: 49,\n\t NUM_2: 50,\n\t NUM_3: 51,\n\t NUM_4: 52,\n\t NUM_5: 53,\n\t NUM_6: 54,\n\t NUM_7: 55,\n\t NUM_8: 56,\n\t NUM_9: 57,\n\t CHAR_A: 65,\n\t CHAR_B: 66,\n\t CHAR_C: 67,\n\t CHAR_D: 68,\n\t CHAR_E: 69,\n\t CHAR_F: 70,\n\t CHAR_G: 71,\n\t CHAR_H: 72,\n\t CHAR_I: 73,\n\t CHAR_J: 74,\n\t CHAR_K: 75,\n\t CHAR_L: 76,\n\t CHAR_M: 77,\n\t CHAR_N: 78,\n\t CHAR_O: 79,\n\t CHAR_P: 80,\n\t CHAR_Q: 81,\n\t CHAR_R: 82,\n\t CHAR_S: 83,\n\t CHAR_T: 84,\n\t CHAR_U: 85,\n\t CHAR_V: 86,\n\t CHAR_W: 87,\n\t CHAR_X: 88,\n\t CHAR_Y: 89,\n\t CHAR_Z: 90,\n\t NUM_PAD_0: 96,\n\t NUM_PAD_1: 97,\n\t NUM_PAD_2: 98,\n\t NUM_PAD_3: 99,\n\t NUM_PAD_4: 100,\n\t NUM_PAD_5: 101,\n\t NUM_PAD_6: 102,\n\t NUM_PAD_7: 103,\n\t NUM_PAD_8: 104,\n\t NUM_PAD_9: 105,\n\t MULTIPLY: 106,\n\t ADD: 107,\n\t SUBTRACT: 109,\n\t DECIMAL: 110,\n\t DIVIDE: 111,\n\t F1: 112,\n\t F2: 113,\n\t F3: 114,\n\t F4: 115,\n\t F5: 116,\n\t F6: 117,\n\t F7: 118,\n\t F8: 119,\n\t F9: 120,\n\t F10: 121,\n\t F11: 122,\n\t F12: 123,\n\t SEMICOLON: 186,\n\t EQUALS: 187,\n\t COMMA: 188,\n\t DASH: 189,\n\t PERIOD: 190,\n\t FORWARD_SLASH: 191,\n\t GRAVE: 192,\n\t OPEN_BRACKET: 219,\n\t BACK_SLASH: 220,\n\t CLOSE_BRACKET: 221,\n\t SINGLE_QUOTE: 222\n\t};\n\t\n\tvar KeyboardInput = function () {\n\t function KeyboardInput() {\n\t (0, _classCallCheck3.default)(this, KeyboardInput);\n\t\n\t\n\t var self = this;\n\t self._keyState = {};\n\t\n\t window.addEventListener(\"keydown\", function (event) {\n\t self._keyDownHandler(event);\n\t }, false);\n\t\n\t window.addEventListener(\"keyup\", function (event) {\n\t self._keyUpHandler(event);\n\t }, false);\n\t }\n\t\n\t (0, _createClass3.default)(KeyboardInput, [{\n\t key: \"isPressed\",\n\t value: function isPressed(keyCode) {\n\t return !!this._keyState[keyCode];\n\t }\n\t }, {\n\t key: \"_keyDownHandler\",\n\t value: function _keyDownHandler(event) {\n\t this._keyState[event.keyCode] = true;\n\t }\n\t }, {\n\t key: \"_keyUpHandler\",\n\t value: function _keyUpHandler(event) {\n\t this._keyState[event.keyCode] = false;\n\t }\n\t }]);\n\t return KeyboardInput;\n\t}();\n\t\n\texports.default = KeyboardInput;\n\texports.KeyConsts = KeyConsts;\n\n/***/ },\n/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(56);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(63);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(64);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Emitter = function (_Entity) {\n\t (0, _inherits3.default)(Emitter, _Entity);\n\t\n\t function Emitter(x, y, rate, velocity, particle) {\n\t (0, _classCallCheck3.default)(this, Emitter);\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Emitter).call(this, x, y));\n\t\n\t _this.particleVelocity = velocity;\n\t _this.particleClass = particle;\n\t\n\t _this.rate = rate;\n\t _this.emitting = false;\n\t _this.spread = Math.PI;\n\t _this._lastEmitTime = _this._creationTime;\n\t _this._wasEmitting = false;\n\t\n\t _this._particles = [];\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Emitter, [{\n\t key: \"setParticleParent\",\n\t value: function setParticleParent(entity) {\n\t this._particleParent = entity;\n\t }\n\t }, {\n\t key: \"_emit\",\n\t value: function _emit() {\n\t\n\t var ParticleClass = this.particleClass,\n\t parent = this._particleParent || this._parent;\n\t\n\t var angle = this.particleVelocity.angle() + this.spread - Math.random() * this.spread * 2,\n\t magnitude = this.particleVelocity.length(),\n\t velocity = _vector2d2.default.fromAngle(angle, magnitude);\n\t\n\t var particle = new ParticleClass(this._calculatedPos.x, this._calculatedPos.y);\n\t particle.velocity = velocity;\n\t\n\t //this._particles.push(particle);\n\t parent.addChildEntity(particle);\n\t }\n\t }, {\n\t key: \"_triggerEmissions\",\n\t value: function _triggerEmissions() {\n\t\n\t // We prematurely call preprocess so that child particles can spawn from the emitters permission but be children of a different parent\n\t // NK: This might cause a bug where child renders have an incorrect position because preprocess should normally be called after the update function but before the render, here it is before update. We'll see.\n\t this._preprocess();\n\t\n\t if (this.emitting) {\n\t\n\t var currentTime = +new Date();\n\t\n\t if (!this._wasEmitting) {\n\t this._wasEmitting = true;\n\t this._lastEmitTime = currentTime;\n\t }\n\t\n\t var emitDelta = currentTime - this._lastEmitTime;\n\t if (emitDelta > this.rate) {\n\t\n\t var emissions = ~ ~(emitDelta / this.rate);\n\t\n\t this._lastEmitTime = currentTime + (emitDelta - this.rate * emissions);\n\t\n\t for (var i = 0; i < emissions; i++) {\n\t this._emit();\n\t }\n\t }\n\t } else {\n\t this._wasEmitting = false;\n\t }\n\t }\n\t }, {\n\t key: \"update\",\n\t value: function update() {\n\t this._triggerEmissions();\n\t }\n\t }]);\n\t return Emitter;\n\t}(_entity2.default);\n\t\n\texports.default = Emitter;\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(56);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(63);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(64);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tvar _imageloader = __webpack_require__(68);\n\t\n\tvar _imageloader2 = _interopRequireDefault(_imageloader);\n\t\n\tvar _collisionmethods = __webpack_require__(69);\n\t\n\tvar _collisionmethods2 = _interopRequireDefault(_collisionmethods);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Sprite = function (_Entity) {\n\t (0, _inherits3.default)(Sprite, _Entity);\n\t\n\t function Sprite(x, y, width, height, image) {\n\t (0, _classCallCheck3.default)(this, Sprite);\n\t\n\t\n\t if (!image instanceof _imageloader2.default) {\n\t throw new Error(\"MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance\");\n\t }\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Sprite).call(this, x, y));\n\t\n\t _this.size = new _vector2d2.default(width || 0, height || 0);\n\t\n\t _this._image = image;\n\t _this._imagePos = new _vector2d2.default(0, 0);\n\t _this._imageSize = new _vector2d2.default(0, 0);\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Sprite, [{\n\t key: \"setImageCoords\",\n\t value: function setImageCoords(x, y, width, height) {\n\t\n\t this._imagePos.x = x;\n\t this._imagePos.y = y;\n\t this._imageSize.x = width || 0;\n\t this._imageSize.y = height || 0;\n\t }\n\t }, {\n\t key: \"isReady\",\n\t value: function isReady() {\n\t return this._image.isLoaded() && !this._image.isError();\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t\n\t if (this.isReady() && this._game) {\n\t\n\t var imageObj = this._image.getImageObj();\n\t\n\t var subWidth = imageObj.width - this._imagePos.x,\n\t subHeight = imageObj.height - this._imagePos.y;\n\t\n\t this._game.context.drawImage(imageObj, this._imagePos.x, this._imagePos.y, this._imageSize.x || subWidth, this._imageSize.y || subHeight, this._calculatedPos.x, this._calculatedPos.y, this.size.x || subWidth, this.size.y || subHeight);\n\t\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t }\n\t }]);\n\t return Sprite;\n\t}(_entity2.default);\n\t\n\texports.default = Sprite;\n\n/***/ },\n/* 68 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar ImageLoader = function () {\n\t function ImageLoader(src) {\n\t var _this = this;\n\t\n\t (0, _classCallCheck3.default)(this, ImageLoader);\n\t\n\t\n\t this._loaded = false; // Default is true, set it to false until the image has loaded\n\t this._error = false; // If the image fails to load, this will contain the reason\n\t\n\t this._imageObj = new Image();\n\t\n\t this._imageObj.addEventListener(\"load\", function () {\n\t _this._loaded = true;\n\t _this._error = false;\n\t });\n\t\n\t this._imageObj.addEventListener(\"_error\", function (err) {\n\t _this._loaded = false;\n\t _this._error = err;\n\t });\n\t\n\t this._imageObj.src = src;\n\t }\n\t\n\t (0, _createClass3.default)(ImageLoader, [{\n\t key: \"getImageObj\",\n\t value: function getImageObj() {\n\t\n\t if (this._loaded) {\n\t return this._imageObj;\n\t } else {\n\t return false;\n\t }\n\t }\n\t }, {\n\t key: \"isLoaded\",\n\t value: function isLoaded() {\n\t return this._loaded;\n\t }\n\t }, {\n\t key: \"isError\",\n\t value: function isError() {\n\t return this._error;\n\t }\n\t }]);\n\t return ImageLoader;\n\t}();\n\t\n\texports.default = ImageLoader;\n\n/***/ },\n/* 69 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _rect = __webpack_require__(70);\n\t\n\tvar _rect2 = _interopRequireDefault(_rect);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar CollisionMethods = function () {\n\t function CollisionMethods() {\n\t (0, _classCallCheck3.default)(this, CollisionMethods);\n\t }\n\t\n\t (0, _createClass3.default)(CollisionMethods, null, [{\n\t key: \"AABB\",\n\t value: function AABB(entity1, entity2) {\n\t\n\t if (!entity1 instanceof _rect2.default || !entity2 instanceof _rect2.default) {\n\t throw new Error(\"AABB collisions can only be checked on these entity types: Rect\");\n\t }\n\t\n\t return entity1.pos.x < entity2.pos.x + entity2.size.x && entity1.pos.x + entity1.size.x > entity2.pos.x && entity1.pos.y < entity2.pos.y + entity2.size.y && entity1.size.y + entity1.pos.y > entity2.pos.y;\n\t }\n\t }]);\n\t return CollisionMethods;\n\t}();\n\t\n\texports.default = CollisionMethods;\n\n/***/ },\n/* 70 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(56);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(63);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(64);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tvar _collisionmethods = __webpack_require__(69);\n\t\n\tvar _collisionmethods2 = _interopRequireDefault(_collisionmethods);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Rect = function (_Entity) {\n\t (0, _inherits3.default)(Rect, _Entity);\n\t\n\t function Rect(x, y, width, height, color) {\n\t (0, _classCallCheck3.default)(this, Rect);\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Rect).call(this, x, y));\n\t\n\t _this.size = new _vector2d2.default(width, height);\n\t _this.color = color;\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Rect, [{\n\t key: \"isCollidingWith\",\n\t value: function isCollidingWith(entity) {\n\t\n\t if (entity instanceof Rect) {\n\t return _collisionmethods2.default.AABB(this, entity);\n\t }\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t\n\t if (this._game) {\n\t\n\t this._game.context.fillStyle = this.color.toString();\n\t this._game.context.fillRect(this._calculatedPos.x, this._calculatedPos.y, this.size.x, this.size.y);\n\t\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t }\n\t }]);\n\t return Rect;\n\t}(_entity2.default);\n\t\n\texports.default = Rect;\n\n/***/ },\n/* 71 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Color = function () {\n\t function Color(r, g, b, a) {\n\t (0, _classCallCheck3.default)(this, Color);\n\t\n\t\n\t this.r = r || 0;\n\t this.g = g || 0;\n\t this.b = b || 0;\n\t this.a = a || 1;\n\t }\n\t\n\t (0, _createClass3.default)(Color, [{\n\t key: \"toString\",\n\t value: function toString() {\n\t return \"rgba(\" + this.r + \", \" + this.g + \", \" + this.b + \", \" + this.a + \")\";\n\t }\n\t }, {\n\t key: \"toHex\",\n\t value: function toHex() {\n\t return \"#\" + (r << 16 | g << 8 | b).toString(16);\n\t }\n\t }]);\n\t return Color;\n\t}();\n\t\n\texports.default = Color;\n\n/***/ },\n/* 72 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _game = __webpack_require__(1);\n\t\n\tvar _game2 = _interopRequireDefault(_game);\n\t\n\tvar _emitter = __webpack_require__(66);\n\t\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\t\n\tvar _entity = __webpack_require__(63);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(64);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tvar _sprite = __webpack_require__(67);\n\t\n\tvar _sprite2 = _interopRequireDefault(_sprite);\n\t\n\tvar _rect = __webpack_require__(70);\n\t\n\tvar _rect2 = _interopRequireDefault(_rect);\n\t\n\tvar _color = __webpack_require__(71);\n\t\n\tvar _color2 = _interopRequireDefault(_color);\n\t\n\tvar _imageloader = __webpack_require__(68);\n\t\n\tvar _imageloader2 = _interopRequireDefault(_imageloader);\n\t\n\tvar _keyboardinput = __webpack_require__(65);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Classes = {\n\t Game: _game2.default,\n\t Emitter: _emitter2.default,\n\t Entity: _entity2.default,\n\t Sprite: _sprite2.default,\n\t Rect: _rect2.default,\n\t Vector2D: _vector2d2.default,\n\t Color: _color2.default,\n\t ImageLoader: _imageloader2.default\n\t};\n\t\n\tvar Consts = {\n\t Input: {\n\t Keys: _keyboardinput.KeyConsts\n\t }\n\t};\n\t\n\texports.default = {\n\t Classes: Classes,\n\t Consts: Consts\n\t};\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** particles.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 52cde20b0370da5d4a9a\n **/","\"use strict\";\n\nimport MomentumEngine from \"../../src/es6\";\n\nlet KeyConsts = MomentumEngine.Consts.Input.Keys;\n\n\nclass BlueParticle extends MomentumEngine.Classes.Rect {\n\n constructor (x, y) {\n super(x, y, 1, 1, new MomentumEngine.Classes.Color(255, 255, 255, 0));\n this.timeToLive = 5000;\n }\n\n update (delta) {\n this.color.a = this.color.a - (delta * 0.00025);\n }\n\n}\n\n\nwindow.onload = function () {\n\n let width = 640,\n height = 360,\n baseSize = width / 64;\n\n let particles = new MomentumEngine.Classes.Game({\n canvas: document.getElementById(\"canvas\"),\n width: width,\n height: height,\n fixRatio: true,\n desiredFps: 60,\n inputs: {\n keyboard: true\n }\n });\n\n let black = new MomentumEngine.Classes.Color(0, 0, 0),\n red = new MomentumEngine.Classes.Color(255, 0, 0);\n\n let mainScene = new MomentumEngine.Classes.Rect(0, 0, width, height, black);\n particles.addChildEntity(mainScene);\n\n let rect = new MomentumEngine.Classes.Rect(width / 2 - baseSize, height / 2 - baseSize, baseSize * 2, baseSize * 2, red),\n emitter = new MomentumEngine.Classes.Emitter(baseSize, baseSize, 4, new MomentumEngine.Classes.Vector2D(0, 0.05), BlueParticle);\n\n mainScene.addChildEntity(rect);\n rect.addChildEntity(emitter);\n\n rect.update = function (delta) {\n\n if (particles.inputs.keyboard.isPressed(KeyConsts.UP)) {\n rect.pos.y -= (0.2 * delta);\n }\n\n if (particles.inputs.keyboard.isPressed(KeyConsts.DOWN)) {\n rect.pos.y += (0.2 * delta);\n }\n\n if (particles.inputs.keyboard.isPressed(KeyConsts.LEFT)) {\n rect.pos.x -= (0.2 * delta);\n }\n\n if (particles.inputs.keyboard.isPressed(KeyConsts.RIGHT)) {\n rect.pos.x += (0.2 * delta);\n }\n\n };\n\n emitter.setParticleParent(mainScene);\n emitter.emitting = true;\n\n particles.start();\n\n};\n\n\n/** WEBPACK FOOTER **\n ** ./examples/particles/particles.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport KeyboardInput from \"./keyboardinput.js\";\n\nclass Game extends Entity {\n\n\n constructor (config) {\n\n super(); // Call entity constructor\n config = config || {};\n config.inputs = config.inputs || {};\n\n\n // Required params\n if (config.canvas) {\n this.canvas = config.canvas;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with a canvas\");\n }\n\n if (config.width) {\n this.width = config.width;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas width\");\n }\n\n if (config.height) {\n this.height = config.height;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas height\");\n }\n\n\n // Optional params\n this.desiredFps = config.desiredFps || 60;\n\n if (config.fixRatio) {\n\n let deviceRatio = window.devicePixelRatio,\n backingStoreRatio = 0;\n\n // Unfortunately Ejecta requires calling getContext last, so we cannot get the backingStorePixelRatio. So for Ejecta's case, we set it to 1, and call getContext later.\n if (typeof ejecta !== \"undefined\") {\n backingStoreRatio = 1;\n } else {\n\n this.context = this.canvas.getContext(\"2d\");\n\n backingStoreRatio = this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio || 1;\n\n }\n\n this.scale = deviceRatio / backingStoreRatio;\n\n this.canvas.width = this.width * this.scale;\n this.canvas.height = this.height * this.scale;\n\n this.canvas.style.width = this.width + \"px\";\n this.canvas.style.height = this.height + \"px\";\n\n // Call getContext last for Ejecta only.\n if (typeof ejecta !== \"undefined\") {\n this.context = this.canvas.getContext(\"2d\");\n }\n\n this.context.scale(deviceRatio, deviceRatio);\n\n } else {\n\n this.canvas.width = this.width;\n this.canvas.height = this.height;\n\n this.context = this.canvas.getContext(\"2d\");\n\n }\n\n if (typeof this.context.imageSmoothingEnabled !== \"undefined\") {\n this.context.imageSmoothingEnabled = config.imageSmoothing || false;\n }\n\n\n // Initialize defaults\n this.frameCounter = 0;\n\n this.inputs = {};\n if (config.inputs.keyboard) {\n this.inputs.keyboard = new KeyboardInput(this);\n }\n\n this._game = this;\n this._lastFrameTimestamp = 0;\n this._wantPause = true;\n\n }\n\n\n step (delta) {\n\n this.frameCounter++;\n\n this._updateEntity(delta);\n this._renderEntity();\n\n }\n\n\n start () {\n\n var self = this; // NK: Hate doing this...better way plz?\n\n if (self._wantPause) {\n self._wantPause = false;\n } else {\n console.log(\"MomentumEngine.Classes.Game.start called, game instance is already started\");\n return false; // Game is already running\n }\n\n self._wantPause = false;\n\n let requestFrame = (() => {\n\n return (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n function (callback) {\n window.setTimeout(callback, 1000 / self.desiredFps);\n });\n\n })();\n\n self._lastFrameTimestamp = +(new Date());\n self.startTime = self._lastFrameTimestamp;\n\n var loop = function () {\n\n if (self._wantPause) {\n return;\n }\n\n let currentTimestamp = +(new Date()),\n delta = currentTimestamp - self._lastFrameTimestamp;\n\n delta = Math.min(delta, 1000 / self.desiredFps);\n self._lastFrameTimestamp = currentTimestamp;\n\n self.step(delta);\n\n requestFrame(loop);\n\n };\n\n loop();\n return true;\n\n }\n\n\n pause () {\n\n if (!this._wantPause) {\n this._wantPause = true;\n return true;\n } else {\n console.log(\"MomentumEngine.Classes.Game.pause called, game instance is already paused\");\n return false;\n }\n }\n\n\n}\n\n\nexport default Game;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/game.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/get-prototype-of.js\n ** module id = 2\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.getPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/get-prototype-of.js\n ** module id = 3\n ** module chunks = 0 1\n **/","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./$.to-object');\n\nrequire('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.get-prototype-of.js\n ** module id = 4\n ** module chunks = 0 1\n **/","// 7.1.13 ToObject(argument)\nvar defined = require('./$.defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-object.js\n ** module id = 5\n ** module chunks = 0 1\n **/","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.defined.js\n ** module id = 6\n ** module chunks = 0 1\n **/","// most Object methods by ES6 should accept primitives\nvar $export = require('./$.export')\n , core = require('./$.core')\n , fails = require('./$.fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-sap.js\n ** module id = 7\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , core = require('./$.core')\n , ctx = require('./$.ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && key in target;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(param){\n return this instanceof C ? new C(param) : C(param);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\nmodule.exports = $export;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.export.js\n ** module id = 8\n ** module chunks = 0 1\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.global.js\n ** module id = 9\n ** module chunks = 0 1\n **/","var core = module.exports = {version: '1.2.6'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.core.js\n ** module id = 10\n ** module chunks = 0 1\n **/","// optional / simple context binding\nvar aFunction = require('./$.a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.ctx.js\n ** module id = 11\n ** module chunks = 0 1\n **/","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.a-function.js\n ** module id = 12\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.fails.js\n ** module id = 13\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 14\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 15\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 16\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function defineProperty(it, key, desc){\n return $.setDesc(it, key, desc);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 17\n ** module chunks = 0 1\n **/","var $Object = Object;\nmodule.exports = {\n create: $Object.create,\n getProto: $Object.getPrototypeOf,\n isEnum: {}.propertyIsEnumerable,\n getDesc: $Object.getOwnPropertyDescriptor,\n setDesc: $Object.defineProperty,\n setDescs: $Object.defineProperties,\n getKeys: $Object.keys,\n getNames: $Object.getOwnPropertyNames,\n getSymbols: $Object.getOwnPropertySymbols,\n each: [].forEach\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.js\n ** module id = 18\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/possibleConstructorReturn.js\n ** module id = 19\n ** module chunks = 0 1\n **/","\"use strict\";\n\nvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/typeof.js\n ** module id = 20\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol/iterator.js\n ** module id = 21\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/$.wks')('iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/iterator.js\n ** module id = 22\n ** module chunks = 0 1\n **/","'use strict';\nvar $at = require('./$.string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./$.iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 23\n ** module chunks = 0 1\n **/","var toInteger = require('./$.to-integer')\n , defined = require('./$.defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.string-at.js\n ** module id = 24\n ** module chunks = 0 1\n **/","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-integer.js\n ** module id = 25\n ** module chunks = 0 1\n **/","'use strict';\nvar LIBRARY = require('./$.library')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , hide = require('./$.hide')\n , has = require('./$.has')\n , Iterators = require('./$.iterators')\n , $iterCreate = require('./$.iter-create')\n , setToStringTag = require('./$.set-to-string-tag')\n , getProto = require('./$').getProto\n , ITERATOR = require('./$.wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , methods, key;\n // Fix native\n if($native){\n var IteratorPrototype = getProto($default.call(new Base));\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // FF fix\n if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: !DEF_VALUES ? $default : getMethod('entries')\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-define.js\n ** module id = 26\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.library.js\n ** module id = 27\n ** module chunks = 0 1\n **/","module.exports = require('./$.hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine.js\n ** module id = 28\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , createDesc = require('./$.property-desc');\nmodule.exports = require('./$.descriptors') ? function(object, key, value){\n return $.setDesc(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.hide.js\n ** module id = 29\n ** module chunks = 0 1\n **/","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.property-desc.js\n ** module id = 30\n ** module chunks = 0 1\n **/","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./$.fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.descriptors.js\n ** module id = 31\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.has.js\n ** module id = 32\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iterators.js\n ** module id = 33\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , descriptor = require('./$.property-desc')\n , setToStringTag = require('./$.set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./$.hide')(IteratorPrototype, require('./$.wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-create.js\n ** module id = 34\n ** module chunks = 0 1\n **/","var def = require('./$').setDesc\n , has = require('./$.has')\n , TAG = require('./$.wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-to-string-tag.js\n ** module id = 35\n ** module chunks = 0 1\n **/","var store = require('./$.shared')('wks')\n , uid = require('./$.uid')\n , Symbol = require('./$.global').Symbol;\nmodule.exports = function(name){\n return store[name] || (store[name] =\n Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.wks.js\n ** module id = 36\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.shared.js\n ** module id = 37\n ** module chunks = 0 1\n **/","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.uid.js\n ** module id = 38\n ** module chunks = 0 1\n **/","require('./es6.array.iterator');\nvar Iterators = require('./$.iterators');\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 39\n ** module chunks = 0 1\n **/","'use strict';\nvar addToUnscopables = require('./$.add-to-unscopables')\n , step = require('./$.iter-step')\n , Iterators = require('./$.iterators')\n , toIObject = require('./$.to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./$.iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 40\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.add-to-unscopables.js\n ** module id = 41\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-step.js\n ** module id = 42\n ** module chunks = 0 1\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./$.iobject')\n , defined = require('./$.defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-iobject.js\n ** module id = 43\n ** module chunks = 0 1\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./$.cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iobject.js\n ** module id = 44\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.cof.js\n ** module id = 45\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol.js\n ** module id = 46\n ** module chunks = 0 1\n **/","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nmodule.exports = require('../../modules/$.core').Symbol;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/index.js\n ** module id = 47\n ** module chunks = 0 1\n **/","'use strict';\n// ECMAScript 6 symbols shim\nvar $ = require('./$')\n , global = require('./$.global')\n , has = require('./$.has')\n , DESCRIPTORS = require('./$.descriptors')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , $fails = require('./$.fails')\n , shared = require('./$.shared')\n , setToStringTag = require('./$.set-to-string-tag')\n , uid = require('./$.uid')\n , wks = require('./$.wks')\n , keyOf = require('./$.keyof')\n , $names = require('./$.get-names')\n , enumKeys = require('./$.enum-keys')\n , isArray = require('./$.is-array')\n , anObject = require('./$.an-object')\n , toIObject = require('./$.to-iobject')\n , createDesc = require('./$.property-desc')\n , getDesc = $.getDesc\n , setDesc = $.setDesc\n , _create = $.create\n , getNames = $names.get\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , setter = false\n , HIDDEN = wks('_hidden')\n , isEnum = $.isEnum\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , useNative = typeof $Symbol == 'function'\n , ObjectProto = Object.prototype;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(setDesc({}, 'a', {\n get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = getDesc(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n setDesc(it, key, D);\n if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n} : setDesc;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol.prototype);\n sym._k = tag;\n DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: function(value){\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n }\n });\n return sym;\n};\n\nvar isSymbol = function(it){\n return typeof it == 'symbol';\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(D && has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return setDesc(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key);\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n var D = getDesc(it = toIObject(it), key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n return result;\n};\nvar $stringify = function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , $$ = arguments\n , replacer, $replacer;\n while($$.length > i)args.push($$[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n};\nvar buggyJSON = $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n});\n\n// 19.4.1.1 Symbol([description])\nif(!useNative){\n $Symbol = function Symbol(){\n if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n };\n redefine($Symbol.prototype, 'toString', function toString(){\n return this._k;\n });\n\n isSymbol = function(it){\n return it instanceof $Symbol;\n };\n\n $.create = $create;\n $.isEnum = $propertyIsEnumerable;\n $.getDesc = $getOwnPropertyDescriptor;\n $.setDesc = $defineProperty;\n $.setDescs = $defineProperties;\n $.getNames = $names.get = $getOwnPropertyNames;\n $.getSymbols = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./$.library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n}\n\nvar symbolStatics = {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n return keyOf(SymbolRegistry, key);\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n};\n// 19.4.2.2 Symbol.hasInstance\n// 19.4.2.3 Symbol.isConcatSpreadable\n// 19.4.2.4 Symbol.iterator\n// 19.4.2.6 Symbol.match\n// 19.4.2.8 Symbol.replace\n// 19.4.2.9 Symbol.search\n// 19.4.2.10 Symbol.species\n// 19.4.2.11 Symbol.split\n// 19.4.2.12 Symbol.toPrimitive\n// 19.4.2.13 Symbol.toStringTag\n// 19.4.2.14 Symbol.unscopables\n$.each.call((\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n 'species,split,toPrimitive,toStringTag,unscopables'\n).split(','), function(it){\n var sym = wks(it);\n symbolStatics[it] = useNative ? sym : wrap(sym);\n});\n\nsetter = true;\n\n$export($export.G + $export.W, {Symbol: $Symbol});\n\n$export($export.S, 'Symbol', symbolStatics);\n\n$export($export.S + $export.F * !useNative, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.symbol.js\n ** module id = 48\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , toIObject = require('./$.to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = $.getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.keyof.js\n ** module id = 49\n ** module chunks = 0 1\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./$.to-iobject')\n , getNames = require('./$').getNames\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return getNames(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.get = function getOwnPropertyNames(it){\n if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n return getNames(toIObject(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.get-names.js\n ** module id = 50\n ** module chunks = 0 1\n **/","// all enumerable object keys, includes symbols\nvar $ = require('./$');\nmodule.exports = function(it){\n var keys = $.getKeys(it)\n , getSymbols = $.getSymbols;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = $.isEnum\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n }\n return keys;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.enum-keys.js\n ** module id = 51\n ** module chunks = 0 1\n **/","// 7.2.2 IsArray(argument)\nvar cof = require('./$.cof');\nmodule.exports = Array.isArray || function(arg){\n return cof(arg) == 'Array';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array.js\n ** module id = 52\n ** module chunks = 0 1\n **/","var isObject = require('./$.is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.an-object.js\n ** module id = 53\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-object.js\n ** module id = 54\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/inherits.js\n ** module id = 56\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/set-prototype-of.js\n ** module id = 57\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.setPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/set-prototype-of.js\n ** module id = 58\n ** module chunks = 0 1\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./$.export');\n$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.set-prototype-of.js\n ** module id = 59\n ** module chunks = 0 1\n **/","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar getDesc = require('./$').getDesc\n , isObject = require('./$.is-object')\n , anObject = require('./$.an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-proto.js\n ** module id = 60\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/create.js\n ** module id = 61\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/create.js\n ** module id = 62\n ** module chunks = 0 1\n **/","\"use strict\";\n\nimport Vector2D from \"./vector2d.js\";\n\nclass Entity {\n\n\n constructor (x, y) {\n\n this.pos = new Vector2D(x || 0, y || 0);\n this.velocity = new Vector2D(0, 0);\n this.acceleration = new Vector2D(0, 0);\n\n this.state = {};\n this.children = [];\n\n this._calculatedPos = this.pos.clone();\n this._lastCalculated = 0;\n this._game = null;\n this._parent = null;\n\n this._creationTime = +(new Date());\n\n }\n\n\n setVelocity (x, y) {\n\n if (x instanceof Vector2D) {\n this.velocity = x;\n } else {\n this.velocity.x = x;\n this.velocity.y = y;\n }\n\n }\n\n\n setAcceleration (x, y) {\n\n if (x instanceof Vector2D) {\n this.acceleration = x;\n } else {\n this.acceleration.x = x;\n this.acceleration.y = y;\n }\n\n }\n\n\n createChildEntity () {\n\n let child = new Entity();\n\n child._updateGame(this._game);\n child._parent = this;\n this.children.push(child);\n\n return child;\n\n }\n\n\n addChildEntity (child) {\n\n child._updateGame(this._game);\n child._parent = this;\n this.children.push(child);\n\n return child;\n\n }\n\n\n detachChildEntity (child) {\n\n for (let i = 0; i < this.children.length; i++) {\n if (this.children[i] == child) {\n\n this.children.splice(i, 1);\n return true;\n\n }\n }\n\n return false;\n\n }\n\n\n _preprocess () {\n\n // NK: The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _preprocess method all the way back up the tree and continuously adding the results together.\n\n // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating.\n\n // When rendering, the draw calls should use this._calculatedPos rather than this.pos in order for the position to be correct.\n\n if (this._game && this._lastCalculated < this._game.frameCounter) {\n\n if (this._parent) {\n\n let parentPos = this._parent._preprocess();\n\n this._calculatedPos.x = this.pos.x + parentPos.x;\n this._calculatedPos.y = this.pos.y + parentPos.y;\n\n } else {\n this._calculatedPos.x = this.pos.x;\n this._calculatedPos.y = this.pos.y;\n }\n\n this._lastCalculated = this._game.frameCounter;\n\n }\n\n return this._calculatedPos;\n\n }\n\n\n _updateGame (game) {\n\n this._game = game;\n\n this.children.forEach((child) => {\n child._updateGame(game);\n });\n\n }\n\n\n _updateEntity (delta) {\n\n if (this.timeToLive) {\n if (+(new Date()) - this._creationTime > this.timeToLive) {\n this._parent.detachChildEntity(this);\n }\n }\n\n // Calculate new position based on velocity and acceleration if there's one set\n if (this.velocity) {\n\n if (this.acceleration) {\n this.velocity.add(this.acceleration);\n }\n\n this.pos.add(this.velocity.clone().multiply(delta));\n\n }\n\n // If there's an update method, call it\n let updated = this.update && this.update(delta);\n\n if (updated || (typeof updated == \"undefined\") || (typeof this.update === \"undefined\")) {\n\n this.children.forEach((child) => {\n child._updateEntity(delta);\n });\n\n }\n\n }\n\n\n _renderEntity () {\n\n this._preprocess();\n\n let rendered = this.render && this.render();\n\n if (rendered || (typeof rendered == \"undefined\") || (typeof this.render === \"undefined\")) {\n\n this.children.forEach((child) => {\n child._renderEntity();\n });\n\n }\n\n }\n\n\n}\n\n\nexport default Entity;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/entity.js\n **/","\"use strict\";\n\nclass Vector2D {\n\n\n constructor (x, y) {\n this.x = x || 0; this.y = y || 0;\n }\n\n\n invert () {\n this.x = -this.x; this.y = -this.y;\n return this;\n }\n\n\n add (val) {\n\n if (val instanceof Vector2D) {\n this.x += val.x; this.y += val.y;\n } else {\n this.x += val; this.y += val;\n }\n\n return this;\n\n }\n\n\n subtract (val) {\n\n if (val instanceof Vector2D) {\n this.x -= val.x; this.y -= val.y;\n } else {\n this.x -= val; this.y -= val;\n }\n\n return this;\n\n }\n\n\n multiply (val) {\n\n if (val instanceof Vector2D) {\n this.x *= val.x; this.y *= val.y;\n } else {\n this.x *= val; this.y *= val;\n }\n\n return this;\n\n }\n\n\n divide (val) {\n\n if (val instanceof Vector2D) {\n this.x /= val.x; this.y /= val.y;\n } else {\n this.x /= val; this.y /= val;\n }\n\n return this;\n\n }\n\n\n equals (val) {\n return (this.x == val.x && this.y == val.y);\n }\n\n\n dot (val) {\n return (this.x * val.x + this.y * val.y);\n }\n\n\n length () {\n return Math.sqrt(this.dot(this));\n }\n\n\n unit () {\n return this.divide(this.length());\n }\n\n\n min () {\n return Math.min(this.x, this.y);\n }\n\n\n max () {\n return Math.max(this.x, this.y);\n }\n\n\n degrees () {\n return (Math.atan(this.x, this.y) * 180);\n }\n\n\n angle () {\n return Math.atan2(this.x, this.y);\n }\n\n\n toArray () {\n return [this.x, this.y];\n }\n\n\n toString () {\n return `[${this.x}},${this.y}}]`;\n }\n\n\n clone () {\n return new Vector2D(this.x, this.y);\n }\n\n\n static fromAngle (angle, length) {\n return new Vector2D(length * Math.cos(angle), length * Math.sin(angle));\n }\n\n\n}\n\n\nexport default Vector2D;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/vector2d.js\n **/","\"use strict\";\n\n\nconst KeyConsts = {\n SPACE: 32,\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n PAUSE: 19,\n CAPS_LOCK: 20,\n ESCAPE: 27,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n INSERT: 45,\n DELETE: 46,\n NUM_0: 48,\n NUM_1: 49,\n NUM_2: 50,\n NUM_3: 51,\n NUM_4: 52,\n NUM_5: 53,\n NUM_6: 54,\n NUM_7: 55,\n NUM_8: 56,\n NUM_9: 57,\n CHAR_A: 65,\n CHAR_B: 66,\n CHAR_C: 67,\n CHAR_D: 68,\n CHAR_E: 69,\n CHAR_F: 70,\n CHAR_G: 71,\n CHAR_H: 72,\n CHAR_I: 73,\n CHAR_J: 74,\n CHAR_K: 75,\n CHAR_L: 76,\n CHAR_M: 77,\n CHAR_N: 78,\n CHAR_O: 79,\n CHAR_P: 80,\n CHAR_Q: 81,\n CHAR_R: 82,\n CHAR_S: 83,\n CHAR_T: 84,\n CHAR_U: 85,\n CHAR_V: 86,\n CHAR_W: 87,\n CHAR_X: 88,\n CHAR_Y: 89,\n CHAR_Z: 90,\n NUM_PAD_0: 96,\n NUM_PAD_1: 97,\n NUM_PAD_2: 98,\n NUM_PAD_3: 99,\n NUM_PAD_4: 100,\n NUM_PAD_5: 101,\n NUM_PAD_6: 102,\n NUM_PAD_7: 103,\n NUM_PAD_8: 104,\n NUM_PAD_9: 105,\n MULTIPLY: 106,\n ADD: 107,\n SUBTRACT: 109,\n DECIMAL: 110,\n DIVIDE: 111,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n SEMICOLON: 186,\n EQUALS: 187,\n COMMA: 188,\n DASH: 189,\n PERIOD: 190,\n FORWARD_SLASH: 191,\n GRAVE: 192,\n OPEN_BRACKET: 219,\n BACK_SLASH: 220,\n CLOSE_BRACKET: 221,\n SINGLE_QUOTE: 222\n};\n\n\nclass KeyboardInput {\n\n\n constructor () {\n\n var self = this;\n self._keyState = {};\n\n window.addEventListener(\"keydown\", (event) => {\n self._keyDownHandler(event);\n }, false);\n\n window.addEventListener(\"keyup\", (event) => {\n self._keyUpHandler(event);\n }, false);\n\n }\n\n\n isPressed (keyCode) {\n return !!this._keyState[keyCode];\n }\n\n\n _keyDownHandler (event) {\n this._keyState[event.keyCode] = true;\n }\n\n\n _keyUpHandler (event) {\n this._keyState[event.keyCode] = false;\n }\n\n\n}\n\n\nexport default KeyboardInput;\nexport {KeyConsts};\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/keyboardinput.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\n\n\nclass Emitter extends Entity {\n\n\n constructor (x, y, rate, velocity, particle) {\n\n super(x, y);\n\n this.particleVelocity = velocity;\n this.particleClass = particle;\n\n this.rate = rate;\n this.emitting = false;\n this.spread = Math.PI;\n this._lastEmitTime = this._creationTime;\n this._wasEmitting = false;\n\n this._particles = [];\n\n }\n\n\n setParticleParent (entity) {\n this._particleParent = entity;\n }\n\n\n _emit () {\n\n let ParticleClass = this.particleClass,\n parent = this._particleParent || this._parent;\n\n let angle = this.particleVelocity.angle() + this.spread - (Math.random() * this.spread * 2),\n magnitude = this.particleVelocity.length(),\n velocity = Vector2D.fromAngle(angle, magnitude);\n\n let particle = new ParticleClass(this._calculatedPos.x, this._calculatedPos.y);\n particle.velocity = velocity;\n\n //this._particles.push(particle);\n parent.addChildEntity(particle);\n\n }\n\n\n _triggerEmissions () {\n\n // We prematurely call preprocess so that child particles can spawn from the emitters permission but be children of a different parent\n // NK: This might cause a bug where child renders have an incorrect position because preprocess should normally be called after the update function but before the render, here it is before update. We'll see.\n this._preprocess();\n\n if (this.emitting) {\n\n let currentTime = +(new Date());\n\n if (!this._wasEmitting) {\n this._wasEmitting = true;\n this._lastEmitTime = currentTime;\n }\n\n let emitDelta = currentTime - this._lastEmitTime;\n if (emitDelta > this.rate) {\n\n let emissions = ~~(emitDelta / this.rate);\n\n this._lastEmitTime = currentTime + (emitDelta - (this.rate * emissions));\n\n for (let i = 0; i < emissions; i++) {\n this._emit();\n }\n\n }\n\n } else {\n this._wasEmitting = false;\n }\n\n }\n\n\n update () {\n this._triggerEmissions();\n }\n\n\n}\n\n\nexport default Emitter;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/emitter.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\nimport ImageLoader from \"./imageloader.js\";\n\nimport CollisionMethods from \"../libs/collisionmethods.js\";\n\n\nclass Sprite extends Entity {\n\n\n constructor (x, y, width, height, image) {\n\n if (!image instanceof ImageLoader) {\n throw new Error(\"MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance\");\n }\n\n super(x, y);\n\n this.size = new Vector2D(width || 0, height || 0);\n\n this._image = image;\n this._imagePos = new Vector2D(0, 0);\n this._imageSize = new Vector2D(0, 0);\n\n }\n\n\n setImageCoords (x, y, width, height) {\n\n this._imagePos.x = x;\n this._imagePos.y = y;\n this._imageSize.x = width || 0;\n this._imageSize.y = height || 0;\n\n }\n\n\n isReady () {\n return (this._image.isLoaded() && !this._image.isError());\n }\n\n\n render () {\n\n if (this.isReady() && this._game) {\n\n let imageObj = this._image.getImageObj();\n\n let subWidth = imageObj.width - this._imagePos.x,\n subHeight = imageObj.height - this._imagePos.y;\n\n this._game.context.drawImage(\n imageObj,\n this._imagePos.x,\n this._imagePos.y,\n this._imageSize.x || subWidth,\n this._imageSize.y || subHeight,\n this._calculatedPos.x,\n this._calculatedPos.y,\n this.size.x || subWidth,\n this.size.y || subHeight\n );\n\n return true;\n\n } else {\n return false;\n }\n\n }\n\n\n}\n\n\nexport default Sprite;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/sprite.js\n **/","\"use strict\";\n\nclass ImageLoader {\n\n\n constructor (src) {\n\n this._loaded = false; // Default is true, set it to false until the image has loaded\n this._error = false; // If the image fails to load, this will contain the reason\n\n this._imageObj = new Image();\n\n this._imageObj.addEventListener(\"load\", () => {\n this._loaded = true;\n this._error = false;\n });\n\n this._imageObj.addEventListener(\"_error\", (err) => {\n this._loaded = false;\n this._error = err;\n });\n\n this._imageObj.src = src;\n\n }\n\n\n getImageObj () {\n\n if (this._loaded) {\n return this._imageObj;\n } else {\n return false;\n }\n\n }\n\n\n isLoaded () {\n return this._loaded;\n }\n\n\n isError () {\n return this._error;\n }\n\n\n}\n\n\nexport default ImageLoader;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/imageloader.js\n **/","import Rect from \"../classes/rect.js\";\n\nclass CollisionMethods {\n\n\n static AABB (entity1, entity2) {\n\n if (!entity1 instanceof Rect || !entity2 instanceof Rect) {\n throw new Error(\"AABB collisions can only be checked on these entity types: Rect\");\n }\n\n return (entity1.pos.x < entity2.pos.x + entity2.size.x &&\n entity1.pos.x + entity1.size.x > entity2.pos.x &&\n entity1.pos.y < entity2.pos.y + entity2.size.y &&\n entity1.size.y + entity1.pos.y > entity2.pos.y);\n\n }\n\n\n}\n\n\nexport default CollisionMethods;\n\n\n/** WEBPACK FOOTER **\n ** ./src/libs/collisionmethods.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\n\nimport CollisionMethods from \"../libs/collisionmethods.js\";\n\n\nclass Rect extends Entity {\n\n\n constructor (x, y, width, height, color) {\n\n super(x, y);\n\n this.size = new Vector2D(width, height);\n this.color = color;\n\n }\n\n\n isCollidingWith (entity) {\n\n if (entity instanceof Rect) {\n return CollisionMethods.AABB(this, entity);\n }\n\n }\n\n\n render () {\n\n if (this._game) {\n\n this._game.context.fillStyle = this.color.toString();\n this._game.context.fillRect(this._calculatedPos.x, this._calculatedPos.y, this.size.x, this.size.y);\n\n return true;\n\n } else {\n return false;\n }\n\n }\n\n\n}\n\n\nexport default Rect;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/rect.js\n **/","\"use strict\";\n\nclass Color {\n\n\n constructor (r, g, b, a) {\n\n this.r = r || 0;\n this.g = g || 0;\n this.b = b || 0;\n this.a = a || 1;\n\n }\n\n\n toString () {\n return `rgba(${this.r}, ${this.g}, ${this.b}, ${this.a})`;\n }\n\n\n toHex () {\n return `#${((r << 16) | (g << 8) | b).toString(16)}`;\n }\n\n\n}\n\n\nexport default Color;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/color.js\n **/","\"use strict\";\n\nimport Game from \"./classes/game.js\";\nimport Emitter from \"./classes/emitter.js\";\nimport Entity from \"./classes/entity.js\";\nimport Vector2D from \"./classes/vector2d.js\";\nimport Sprite from \"./classes/sprite.js\";\nimport Rect from \"./classes/rect.js\";\nimport Color from \"./classes/color.js\";\nimport ImageLoader from \"./classes/imageloader.js\";\n\nimport {KeyConsts} from \"./classes/keyboardinput.js\";\n\n\nconst Classes = {\n Game: Game,\n Emitter: Emitter,\n Entity: Entity,\n Sprite: Sprite,\n Rect: Rect,\n Vector2D: Vector2D,\n Color: Color,\n ImageLoader: ImageLoader\n};\n\n\nconst Consts = {\n Input: {\n Keys: KeyConsts\n }\n};\n\n\nexport default {\n Classes,\n Consts\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/es6.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/examples/particles/particles.js b/examples/particles/particles.js index f348124..956fb94 100644 --- a/examples/particles/particles.js +++ b/examples/particles/particles.js @@ -43,7 +43,7 @@ window.onload = function () { particles.addChildEntity(mainScene); let rect = new MomentumEngine.Classes.Rect(width / 2 - baseSize, height / 2 - baseSize, baseSize * 2, baseSize * 2, red), - emitter = new MomentumEngine.Classes.Emitter(baseSize, baseSize, 4, new MomentumEngine.Classes.Vector2D(0, 1), BlueParticle); + emitter = new MomentumEngine.Classes.Emitter(baseSize, baseSize, 4, new MomentumEngine.Classes.Vector2D(0, 0.05), BlueParticle); mainScene.addChildEntity(rect); rect.addChildEntity(emitter); diff --git a/src/classes/entity.js b/src/classes/entity.js index b21cce1..113764b 100644 --- a/src/classes/entity.js +++ b/src/classes/entity.js @@ -145,7 +145,7 @@ class Entity { this.velocity.add(this.acceleration); } - this.pos.add(this.velocity); + this.pos.add(this.velocity.clone().multiply(delta)); }