{"version":3,"file":"app.bundle.js","mappings":"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,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbqK,EAAQrK,KAAK,KACbsK,EAAStK,KAAK,SACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,GACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,IACdsK,EAAStK,KAAK,GACduK,EAASvK,KAAK,SACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,GACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,IACduK,EAASvK,KAAK,GACP+J,EAAS,IAAI,CAGnB,GAFAC,EAASH,EAAIW,OAAOT,EAAS,GAEX,IADlBE,EAAanD,EAAI2D,OAAOJ,EAASL,IAEhC,MAAO,GAERE,EAAMI,EAASL,GACfE,EAAMI,EAASN,GACXF,EAAS,EAAIjD,EAAI4D,UAAUX,EAAS,GACvCD,GAAkBK,EAElBL,GAAkBI,EAEnBH,GAAkB,EAKnB,OAHAK,EAAON,EAAS,GAETO,EADAP,EAA+B,GAAtBhD,EAAI4D,UAAUN,GAAa,M,uBAK5C,SAAiBO,GAChB,IAAIC,EAEJ,OADAA,GAAQ,GAAKD,GAAS7I,MAAM,KACrBqG,SAASyC,EAAK,M,oBAEtB,SAAcP,EAASL,GACtB,IAAI7J,EAAG0K,EAEP,IADAA,GAAW,EACN1K,EAAI,EAAGA,EAAIkK,EAAQhK,OAAQF,IAC/B,GAAIkK,EAAQlK,IAAM6J,EAAQ,CACzBa,GAAW,EACX,MAGF,OAAIA,EACI1K,EAEA,I,oBAIT,SAAc2K,GACb,IAAI3K,EAAG4K,EAAOC,EAEd,IADAD,EAAQ,GACH5K,E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","sources":["webpack://FactoryManager/webpack/runtime/load script","webpack://FactoryManager/webpack/runtime/css loading","webpack://FactoryManager/./src/js/Game/Tools/Assets.js","webpack://FactoryManager/./src/js/Game/Tools/Config.js","webpack://FactoryManager/./src/js/Game/Tools/Sprites.js","webpack://FactoryManager/./src/js/3x1010/Pqp.js","webpack://FactoryManager/./src/js/Game/Tools/sounder/Sounder.js","webpack://FactoryManager/./src/js/Game/Tools/MainLoop.js","webpack://FactoryManager/./src/js/Game/Tools/spran/FramesPlayer.js","webpack://FactoryManager/./src/js/Game/Tools/spran/SingleAnimation.js","webpack://FactoryManager/./src/js/Game/Tools/spran/Spran.js","webpack://FactoryManager/./src/js/Game/Tools/controls/KeyControl.js","webpack://FactoryManager/./src/js/Game/Tools/controls/MouseControl.js","webpack://FactoryManager/./src/js/Game/Tools/controls/Controls.js","webpack://FactoryManager/./src/js/3x1010/sounder/SoundSingle.js","webpack://FactoryManager/./src/js/3x1010/sounder/Sounder.js","webpack://FactoryManager/./src/js/Game/Game.js","webpack://FactoryManager/./src/js/Game/ScreenStage.js","webpack://FactoryManager/./src/js/Game/ScreenAttract.js","webpack://FactoryManager/./src/js/Game/ScreenIntro.js","webpack://FactoryManager/./src/js/Game/ScreenGameOver.js","webpack://FactoryManager/./src/js/Game/Main.js","webpack://FactoryManager/./src/js/Globals.js","webpack://FactoryManager/./src/js/pages/PageDefault.js","webpack://FactoryManager/./src/js/pages/PageCommon.js","webpack://FactoryManager/./src/js/FactoryManager.js","webpack://FactoryManager/./node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js","webpack://FactoryManager/./node_modules/mini-css-extract-plugin/dist/hmr/normalize-url.js","webpack://FactoryManager/./src/scss/styles.scss?b7ff","webpack://FactoryManager/webpack/bootstrap","webpack://FactoryManager/webpack/runtime/define property getters","webpack://FactoryManager/webpack/runtime/get javascript update chunk filename","webpack://FactoryManager/webpack/runtime/get mini-css chunk filename","webpack://FactoryManager/webpack/runtime/get update manifest filename","webpack://FactoryManager/webpack/runtime/getFullHash","webpack://FactoryManager/webpack/runtime/global","webpack://FactoryManager/webpack/runtime/hasOwnProperty shorthand","webpack://FactoryManager/webpack/runtime/hot module replacement","webpack://FactoryManager/webpack/runtime/publicPath","webpack://FactoryManager/webpack/runtime/jsonp chunk loading","webpack://FactoryManager/webpack/startup"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"FactoryManager:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var createStylesheet = (chunkId, fullhref, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// no chunk loading\n\nvar oldTags = [];\nvar newTags = [];\nvar applyHandler = (options) => {\n\treturn { dispose: () => {\n\t\tfor(var i = 0; i < oldTags.length; i++) {\n\t\t\tvar oldTag = oldTags[i];\n\t\t\tif(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);\n\t\t}\n\t\toldTags.length = 0;\n\t}, apply: () => {\n\t\tfor(var i = 0; i < newTags.length; i++) newTags[i].rel = \"stylesheet\";\n\t\tnewTags.length = 0;\n\t} };\n}\n__webpack_require__.hmrC.miniCss = (chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList) => {\n\tapplyHandlers.push(applyHandler);\n\tchunkIds.forEach((chunkId) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tvar oldTag = findStylesheet(href, fullhref);\n\t\tif(!oldTag) return;\n\t\tpromises.push(new Promise((resolve, reject) => {\n\t\t\tvar tag = createStylesheet(chunkId, fullhref, () => {\n\t\t\t\ttag.as = \"style\";\n\t\t\t\ttag.rel = \"preload\";\n\t\t\t\tresolve();\n\t\t\t}, reject);\n\t\t\toldTags.push(oldTag);\n\t\t\tnewTags.push(tag);\n\t\t}));\n\t});\n}","export default class Assets {\r\n\r\n static load(files, callback) {\r\n \r\n if (Array.isArray(files)) {\r\n Assets._files = Assets._files.concat(files)\r\n } else {\r\n Assets._files.push(files);\r\n }\r\n Assets._loadNext(callback);\r\n }\r\n\r\n static getSpritesheets() {\r\n let ret = new Array();\r\n for (let x = 0; x < Assets.assets.length; x++) {\r\n if (Assets.assets[x].type === Assets.TYPE_SHEET) {\r\n ret.push(Assets.assets[x]);\r\n }\r\n }\r\n return ret;\r\n }\r\n static getSounds() {\r\n let ret = new Array();\r\n for (let x = 0; x < Assets.assets.length; x++) {\r\n if (Assets.assets[x].type === Assets.TYPE_SOUND) {\r\n ret.push(Assets.assets[x]);\r\n }\r\n }\r\n return ret;\r\n }\r\n static getImages() {\r\n let ret = new Array();\r\n for (let x = 0; x < Assets.assets.length; x++) {\r\n \r\n if ((Assets.assets[x].type === Assets.TYPE_IMAGE) || (Assets.assets[x].type === Assets.TYPE_SHEET)) {\r\n ret.push(Assets.assets[x]);\r\n }\r\n }\r\n return ret;\r\n }\r\n\r\n static getAssetById(idAsset) {\r\n return Assets.assets.find(({ id }) => id === idAsset);\r\n }\r\n\r\n\r\n static _loadNext(callback) {\r\n if (Assets._current < Assets._files.length) {\r\n Assets._dispatch(callback, Assets.EVENT_LOAD_NEXT, { current: Assets._current, total: Assets._files.length });\r\n Assets._load(callback);\r\n } else {\r\n Assets._dispatch(callback, Assets.EVENT_ALL_LOADED, { current: Assets._current, total: Assets._files.length });\r\n }\r\n }\r\n\r\n static _load(callback) {\r\n let asset = JSON.parse(JSON.stringify(Assets._files[Assets._current]))\r\n if (Assets._isImage(asset.src)) {\r\n Assets._loadImage(asset, callback);\r\n } else {\r\n Assets._loadSound(asset, callback);\r\n }\r\n }\r\n\r\n static _isImage(file) {\r\n let images = \"png,jpg,jpeg,gif\"\r\n let ext = file.split(\"?\")\r\n ext = ext[0].split(\".\")\r\n ext = ext[ext.length - 1].toLowerCase();\r\n if (images.indexOf(ext) >= 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n static _loadImage(asset, callback) {\r\n let img = new Image();\r\n img.onload = Assets._imageLoaded.bind(Assets, asset, callback, img);\r\n img.onerror = Assets._imageLoaded.bind(Assets, asset, callback, img);\r\n img.src = asset.src;\r\n }\r\n\r\n static _imageLoaded(asset, callback, img, e) {\r\n let type = Assets.TYPE_IMAGE;\r\n if (asset.width) { // Sprite sheet\r\n type = Assets.TYPE_SHEET;\r\n }\r\n asset.file = asset.src\r\n asset.asset = img\r\n asset.type = type;\r\n Assets.assets.push(asset)\r\n Assets._dispatch(callback, Assets.EVENT_SINGLE_LOADED, { current: Assets._current, total: Assets._files.length });\r\n Assets._current++;\r\n Assets._loadNext(callback);\r\n }\r\n\r\n static _loadSound(asset, callback) {\r\n let audio = new Audio();\r\n audio.addEventListener(\"canplaythrough\", Assets._soundLoaded.bind(Assets, asset, callback, audio), false);\r\n audio.addEventListener(\"error\", Assets._soundLoaded.bind(Assets, asset, callback, audio), false);\r\n audio.src = asset.src;\r\n audio.load();\r\n }\r\n\r\n static _soundLoaded(asset, callback, audio, e) {\r\n asset.file = asset.src\r\n asset.asset = audio\r\n asset.type = Assets.TYPE_SOUND;\r\n Assets.assets.push(asset)\r\n Assets._dispatch(callback, Assets.EVENT_SINGLE_LOADED, { current: Assets._current, total: Assets._files.length });\r\n Assets._current++;\r\n Assets._loadNext(callback);\r\n }\r\n\r\n static _dispatch(callback, type, data = null) {\r\n if (callback) {\r\n callback.call(null, { type: type, data: data });\r\n }\r\n }\r\n}\r\n\r\nAssets._current = 0;\r\nAssets._files = [];\r\n\r\nAssets.EVENT_LOAD_NEXT = \"eventLoadNext\";\r\nAssets.EVENT_ALL_LOADED = \"eventAllLoaded\";\r\nAssets.EVENT_LOAD_ERROR = \"eventLoadError\";\r\nAssets.EVENT_SINGLE_LOADED = \"eventSingleLoaded\";\r\n\r\nAssets.assets = [];\r\n\r\n\r\nAssets.TYPE_IMAGE = \"img\";\r\nAssets.TYPE_SHEET = \"sht\";\r\nAssets.TYPE_SOUND = \"snd\";","export default class Config {\r\n\r\n static load(files, callback) {\r\n Config._files = files;\r\n if (!Array.isArray(files)) {\r\n Config._files = [files];\r\n }\r\n Config._loadNext(callback);\r\n }\r\n\r\n static _loadNext(callback) {\r\n if (Config._current < Config._files.length) {\r\n Config._dispatch(callback, Config.EVENT_LOAD_NEXT, { current: Config._current, total: Config._files.length });\r\n Config._load(callback);\r\n } else {\r\n Config._dispatch(callback, Config.EVENT_ALL_LOADED, { current: Config._current, total: Config._files.length });\r\n }\r\n }\r\n\r\n static _load(callback) {\r\n $.ajax({\r\n type: \"GET\",\r\n url: Config._getUrl(),\r\n success: Config._configLoaded.bind(Config, callback),\r\n error: Config._error.bind(Config, callback)\r\n });\r\n }\r\n static _getUrl() {\r\n let url = Config._files[Config._current];\r\n if (url.indexOf(\"?\") >= 0) {\r\n url += \"&rnd=\" + (new Date()).getTime();\r\n } else {\r\n url += \"?rnd=\" + (new Date()).getTime();\r\n }\r\n return url;\r\n }\r\n\r\n static _toArrayObject(csv) {\r\n let ret = new Array();\r\n for (let x = 1; x < csv.length; x++) {\r\n let o = new Object();\r\n for (let y = 0; y < csv[0].length; y++) {\r\n o[csv[0][y]] = csv[x][y];\r\n }\r\n ret.push(o)\r\n }\r\n return ret;\r\n }\r\n\r\n static _configLoaded(callback, data) {\r\n let csv = jQuery.csv.toArrays(data);\r\n Config.cfgs.push(Config._toArrayObject(csv))\r\n Config._dispatch(callback, Config.EVENT_SINGLE_LOADED, { current: Config._current, total: Config._files.length });\r\n Config._current++;\r\n Config._loadNext(callback);\r\n }\r\n\r\n static _error(callback) {\r\n Config._dispatch(callback, Config.EVENT_LOAD_ERROR, { current: Config._current, total: Config._files.length });\r\n }\r\n\r\n static _dispatch(callback, type, data = null) {\r\n if (callback) {\r\n callback.call(null, { type: type, data: data });\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\nConfig._current = 0;\r\nConfig._files = [];\r\n\r\nConfig.EVENT_LOAD_NEXT = \"eventLoadNext\";\r\nConfig.EVENT_ALL_LOADED = \"eventAllLoaded\";\r\nConfig.EVENT_LOAD_ERROR = \"eventLoadError\";\r\nConfig.EVENT_SINGLE_LOADED = \"eventSingleLoaded\";\r\n\r\nConfig.cfgs = [];\r\n\r\n","import Assets from \"./Assets\";\r\n\r\nexport default class Sprites {\r\n\r\n static init(callback) {\r\n Sprites._prepareSheets(callback);\r\n }\r\n\r\n static getSpriteByRowCol(id, row, col) {\r\n let sheet = Sprites._getSheetById(id);\r\n if (sheet) {\r\n return sheet.sprites[row][col];\r\n }\r\n return null;\r\n }\r\n\r\n static getAllSprites(id) {\r\n let sheet = Sprites._getSheetById(id);\r\n let ret = new Array();\r\n if (sheet) {\r\n let a = sheet.sprites;\r\n for (let y = 0; y < a.length; y++) {\r\n for (let x = 0; x < a[y].length; x++) {\r\n ret.push(a[y][x])\r\n }\r\n }\r\n }\r\n return ret;\r\n }\r\n\r\n\r\n static _getSheetById(idSheet) {\r\n return Sprites._sheets.find(({ id }) => id === idSheet);\r\n }\r\n\r\n static _prepareSheets(callback) {\r\n if (Sprites._inited) {\r\n return\r\n }\r\n Sprites._inited = true;\r\n Sprites._sheets = Assets.getSpritesheets();\r\n Sprites._prepareNextSheet(callback);\r\n }\r\n\r\n static _prepareNextSheet(callback) {\r\n if (Sprites._current < Sprites._sheets.length) {\r\n Sprites._dispatch(callback, Sprites.EVENT_PREPARE_NEXT, { current: Sprites._current, total: Sprites._sheets.length });\r\n Sprites._prepare(callback);\r\n } else {\r\n Sprites._dispatch(callback, Sprites.EVENT_ALL_PREPARED, { current: Sprites._current, total: Sprites._sheets.length });\r\n }\r\n\r\n }\r\n\r\n static _prepare(callback) {\r\n let sheet = Sprites._sheets[Sprites._current];\r\n let image = sheet.asset;\r\n let w = sheet.asset.width;\r\n let h = sheet.asset.height;\r\n\r\n Sprites._canvas = jQuery(\"\");\r\n jQuery(\"body\").append(Sprites._canvas);\r\n let ctx = Sprites._canvas.get(0).getContext(\"2d\");\r\n ctx.drawImage(image, 0, 0);\r\n sheet.sprites = new Array();\r\n let rows = Math.floor(h / sheet.height);\r\n let cols = Math.floor(w / sheet.width);\r\n for (let row = 0; row < rows; row++) {\r\n sheet.sprites.push(new Array())\r\n for (let col = 0; col < cols; col++) {\r\n let imageUrl = Sprites.crop(ctx, row, col, sheet.width, sheet.height);\r\n sheet.sprites[sheet.sprites.length - 1].push(imageUrl);\r\n }\r\n }\r\n Sprites._canvas.remove();\r\n Sprites._current++;\r\n Sprites._dispatch(callback, Sprites.EVENT_SINGLE_PREPARED, { current: Sprites._current, total: Sprites._sheets.length });\r\n requestAnimationFrame(Sprites._prepareNextSheet.bind(Sprites, callback));\r\n }\r\n\r\n static crop(ctx, row, col, tileWidth, tileHeight) {\r\n let img = ctx.getImageData(col * tileWidth, row * tileHeight, tileWidth, tileHeight);\r\n let canvas = jQuery(\"\");\r\n jQuery(\"body\").append(canvas);\r\n let ctxtile = canvas.get(0).getContext(\"2d\");\r\n ctxtile.putImageData(img, 0, 0);\r\n let ret = canvas.get(0).toDataURL();\r\n canvas.remove();\r\n return ret;\r\n }\r\n\r\n\r\n static _dispatch(callback, type, data = null) {\r\n if (callback) {\r\n callback.call(null, { type: type, data: data });\r\n }\r\n }\r\n\r\n}\r\n\r\nSprites._sheets = [];\r\nSprites._current = 0;\r\nSprites._inited = false;\r\n\r\n\r\nSprites.EVENT_PREPARE_NEXT = \"eventPrepareNext\";\r\nSprites.EVENT_ALL_PREPARED = \"eventAllPrepared\";\r\nSprites.EVENT_SINGLE_PREPARED = \"eventSinglePrepared\";\r\n","export default class Pqp {\r\n\r\n\tstatic trace(xValue, level) {\r\n\t\tvar colors = [\"#ff0000\", \"#00ff00\", \"#ff00FF\", \"#FF8000\"]\r\n\t\tif (typeof console != \"undefined\") {\r\n\t\t\tif ((Pqp.isNullOrEmpty(level)) || (level > colors.length - 1)) {\r\n\t\t\t\tconsole.log(xValue);\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log(\"%c\" + xValue, \"color:\" + colors[level]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tstatic isString(a) {\r\n\t\tif ((a instanceof String) || (typeof (a) == \"string\")) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tstatic isNumber(a) {\r\n\t\tif ((a instanceof Number) || (typeof (a) == \"number\")) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tstatic isArray(a) {\r\n\t\tif ((a instanceof Array) || (typeof (a) == \"array\")) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tstatic isNullOrEmpty(xValue) {\r\n\t\tif (typeof (xValue) == \"boolean\") {\r\n\t\t\treturn false;\r\n\t\t} else {\r\n\t\t\tif ((xValue == null) || (xValue == undefined) || (xValue == \"\")) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tstatic getParameterByName(name) {\r\n\t\tvar match = new RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);\r\n\t\treturn match && decodeURIComponent(match[1].replace(/\\+/g, ' '));\r\n\t}\r\n\r\n\tstatic shuffle(o) {\r\n\t\tfor (var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);\r\n\t\treturn o;\r\n\t}\r\n\r\n\r\n\tstatic rnd(max, min) {\r\n\t\tif (!min) {\r\n\t\t\tmin = 0;\r\n\t\t}\r\n\t\treturn Math.floor(Math.random() * (max - min + 1)) + min;\r\n\t}\r\n\r\n\r\n\r\n\tstatic check(nProb) {\r\n\t\tif (nProb >= 1) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (nProb <= 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tvar nSpace = 100000;\r\n\t\tvar nProd = (nProb * nSpace);\r\n\t\tvar nRnd = Pqp.range(0, nSpace);\r\n\t\treturn nRnd < nProd;\r\n\t}\r\n\r\n\tstatic range(nMin, nMax) {\r\n\t\treturn (Pqp.rangeInt((nMin * 1000.0), (nMax * 1000.0))) / 1000.0;\r\n\t}\r\n\r\n\tstatic rangeInt(nMin, nMax) {\r\n\t\treturn Math.floor(Math.random() * (nMax - nMin + 1)) + nMin;\r\n\t}\r\n\r\n\tstatic replace(str, fnd, repl) {\r\n\t\treturn Pqp.safeReplace(str, fnd, repl);\r\n\t}\r\n\r\n\tstatic mettiPunti(input, sep, sepdec) {\r\n\t\tif (sep == null) {\r\n\t\t\tsep = \".\";\r\n\t\t}\r\n\t\tif (sepdec == null) {\r\n\t\t\tsepdec = \",\";\r\n\t\t}\r\n\r\n\t\tvar num = input;\r\n\t\tvar minus = false;\r\n\t\tif (num < 0) {\r\n\t\t\tnum *= -1;\r\n\t\t\tminus = true\r\n\t\t}\r\n\t\tvar dotPos = (num + \"\").split(\".\");\r\n\t\tvar dotU = dotPos[0];\r\n\t\tvar dotD = dotPos[1];\r\n\t\tvar commaFlag = dotU.length % 3;\r\n\r\n\t\tvar out;\r\n\t\tif (commaFlag) {\r\n\t\t\tout = dotU.substring(0, commaFlag);\r\n\t\t\tif (dotU.length > 3) {\r\n\t\t\t\tout += sep;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tout = \"\"\r\n\t\t}\r\n\r\n\t\tfor (var i = commaFlag; i < dotU.length; i += 3) {\r\n\t\t\tout += dotU.substring(i, i + 3);\r\n\t\t\tif (i < dotU.length - 3) {\r\n\t\t\t\tout += sep;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (minus) {\r\n\t\t\tout = \"-\" + out;\r\n\t\t}\r\n\t\tif (dotD) {\r\n\t\t\treturn out + sepdec + dotD\r\n\t\t}\r\n\t\treturn out\r\n\t}\r\n\r\n\r\n\tstatic _carCon(mCf) {\r\n\t\tvar aNumLet = new Array();\r\n\t\tvar aNumeri1 = new Array();\r\n\t\tvar aNumeri2 = new Array();\r\n\t\tvar nSomma;\r\n\t\tvar nConta;\r\n\t\tvar cCifra;\r\n\t\tvar nPuntatore;\r\n\t\tvar nNp;\r\n\t\tvar nNd;\r\n\t\tvar nCf1;\r\n\t\tvar nCf2;\r\n\t\tvar nMlc;\r\n\t\tnSomma = 0;\r\n\t\tnConta = 1;\r\n\t\taNumLet.push(\"DUMMY\");\r\n\t\taNumLet.push(\"0\");\r\n\t\taNumLet.push(\"1\");\r\n\t\taNumLet.push(\"2\");\r\n\t\taNumLet.push(\"3\");\r\n\t\taNumLet.push(\"4\");\r\n\t\taNumLet.push(\"5\");\r\n\t\taNumLet.push(\"6\");\r\n\t\taNumLet.push(\"7\");\r\n\t\taNumLet.push(\"8\");\r\n\t\taNumLet.push(\"9\");\r\n\t\taNumLet.push(\"A\");\r\n\t\taNumLet.push(\"B\");\r\n\t\taNumLet.push(\"C\");\r\n\t\taNumLet.push(\"D\");\r\n\t\taNumLet.push(\"E\");\r\n\t\taNumLet.push(\"F\");\r\n\t\taNumLet.push(\"G\");\r\n\t\taNumLet.push(\"H\");\r\n\t\taNumLet.push(\"I\");\r\n\t\taNumLet.push(\"J\");\r\n\t\taNumLet.push(\"K\");\r\n\t\taNumLet.push(\"L\");\r\n\t\taNumLet.push(\"M\");\r\n\t\taNumLet.push(\"N\");\r\n\t\taNumLet.push(\"O\");\r\n\t\taNumLet.push(\"P\");\r\n\t\taNumLet.push(\"Q\");\r\n\t\taNumLet.push(\"R\");\r\n\t\taNumLet.push(\"S\");\r\n\t\taNumLet.push(\"T\");\r\n\t\taNumLet.push(\"U\");\r\n\t\taNumLet.push(\"V\");\r\n\t\taNumLet.push(\"W\");\r\n\t\taNumLet.push(\"X\");\r\n\t\taNumLet.push(\"Y\");\r\n\t\taNumLet.push(\"Z\");\r\n\t\taNumLet.push(\"/\");\r\n\t\taNumeri1.push(\"DUMMY\");\r\n\t\taNumeri1.push(0);\r\n\t\taNumeri1.push(1);\r\n\t\taNumeri1.push(2);\r\n\t\taNumeri1.push(3);\r\n\t\taNumeri1.push(4);\r\n\t\taNumeri1.push(5);\r\n\t\taNumeri1.push(6);\r\n\t\taNumeri1.push(7);\r\n\t\taNumeri1.push(8);\r\n\t\taNumeri1.push(9);\r\n\t\taNumeri1.push(0);\r\n\t\taNumeri1.push(1);\r\n\t\taNumeri1.push(2);\r\n\t\taNumeri1.push(3);\r\n\t\taNumeri1.push(4);\r\n\t\taNumeri1.push(5);\r\n\t\taNumeri1.push(6);\r\n\t\taNumeri1.push(7);\r\n\t\taNumeri1.push(8);\r\n\t\taNumeri1.push(9);\r\n\t\taNumeri1.push(10);\r\n\t\taNumeri1.push(11);\r\n\t\taNumeri1.push(12);\r\n\t\taNumeri1.push(13);\r\n\t\taNumeri1.push(14);\r\n\t\taNumeri1.push(15);\r\n\t\taNumeri1.push(16);\r\n\t\taNumeri1.push(17);\r\n\t\taNumeri1.push(18);\r\n\t\taNumeri1.push(19);\r\n\t\taNumeri1.push(20);\r\n\t\taNumeri1.push(21);\r\n\t\taNumeri1.push(22);\r\n\t\taNumeri1.push(23);\r\n\t\taNumeri1.push(24);\r\n\t\taNumeri1.push(25);\r\n\t\taNumeri1.push(0);\r\n\t\taNumeri2.push(\"DUMMY\");\r\n\t\taNumeri2.push(1);\r\n\t\taNumeri2.push(0);\r\n\t\taNumeri2.push(5);\r\n\t\taNumeri2.push(7);\r\n\t\taNumeri2.push(9);\r\n\t\taNumeri2.push(13);\r\n\t\taNumeri2.push(15);\r\n\t\taNumeri2.push(17);\r\n\t\taNumeri2.push(19);\r\n\t\taNumeri2.push(21);\r\n\t\taNumeri2.push(1);\r\n\t\taNumeri2.push(0);\r\n\t\taNumeri2.push(5);\r\n\t\taNumeri2.push(7);\r\n\t\taNumeri2.push(9);\r\n\t\taNumeri2.push(13);\r\n\t\taNumeri2.push(15);\r\n\t\taNumeri2.push(17);\r\n\t\taNumeri2.push(19);\r\n\t\taNumeri2.push(21);\r\n\t\taNumeri2.push(2);\r\n\t\taNumeri2.push(4);\r\n\t\taNumeri2.push(18);\r\n\t\taNumeri2.push(20);\r\n\t\taNumeri2.push(11);\r\n\t\taNumeri2.push(3);\r\n\t\taNumeri2.push(6);\r\n\t\taNumeri2.push(8);\r\n\t\taNumeri2.push(12);\r\n\t\taNumeri2.push(14);\r\n\t\taNumeri2.push(16);\r\n\t\taNumeri2.push(10);\r\n\t\taNumeri2.push(22);\r\n\t\taNumeri2.push(25);\r\n\t\taNumeri2.push(24);\r\n\t\taNumeri2.push(23);\r\n\t\taNumeri2.push(0);\r\n\t\twhile (nConta < 16) {\r\n\t\t\tcCifra = mCf.charAt(nConta - 1);\r\n\t\t\tnPuntatore = Pqp._ascan(aNumLet, cCifra);\r\n\t\t\tif (nPuntatore == 0) {\r\n\t\t\t\treturn \"\";\r\n\t\t\t}\r\n\t\t\tnNp = aNumeri1[nPuntatore];\r\n\t\t\tnNd = aNumeri2[nPuntatore];\r\n\t\t\tif (nConta / 2 > Pqp._parteInt(nConta / 2)) {\r\n\t\t\t\tnSomma = nSomma + nNd;\r\n\t\t\t} else {\r\n\t\t\t\tnSomma = nSomma + nNp;\r\n\t\t\t}\r\n\t\t\tnConta = nConta + 1;\r\n\t\t}\r\n\t\tnCf1 = nSomma / 26;\r\n\t\tnCf2 = nSomma - Pqp._parteInt(nCf1) * 26 + 11;\r\n\t\tnMlc = aNumLet[nCf2];\r\n\t\treturn nMlc;\r\n\t}\r\n\r\n\tstatic _parteInt(nNumero) {\r\n\t\tvar aTmp;\r\n\t\taTmp = (\"\" + nNumero).split(\".\");\r\n\t\treturn parseInt(aTmp[0]);\r\n\t}\r\n\tstatic _ascan(aNumLet, cCifra) {\r\n\t\tvar x, lTrovato;\r\n\t\tlTrovato = false;\r\n\t\tfor (x = 0; x < aNumLet.length; x++) {\r\n\t\t\tif (aNumLet[x] == cCifra) {\r\n\t\t\t\tlTrovato = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (lTrovato) {\r\n\t\t\treturn x;\r\n\t\t} else {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\tstatic ascSeq(sString) {\r\n\t\tvar x, sCode, sTmp;\r\n\t\tsCode = \"\";\r\n\t\tfor (x = 0; x < sString.length; x++) {\r\n\t\t\tsTmp = \"\" + sString.charCodeAt(x);\r\n\t\t\tif (sTmp.length < 3) {\r\n\t\t\t\tif (sTmp.length < 2) {\r\n\t\t\t\t\tsTmp = \"00\" + sTmp;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsTmp = \"0\" + sTmp;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tsCode = sCode + sTmp;\r\n\t\t}\r\n\t\treturn sCode;\r\n\t}\r\n\r\n\tstatic charSeq(sString) {\r\n\t\tvar sTmp, x, sChar;\r\n\t\tsTmp = \"\";\r\n\t\tfor (x = 0; x < sString.length / 3; x++) {\r\n\t\t\tsChar = parseInt(Pqp._removeZero(sString.substr(x * 3, 3)));\r\n\t\t\tsTmp = sTmp + String.fromCharCode(sChar);\r\n\t\t}\r\n\t\treturn sTmp;\r\n\t}\r\n\r\n\tstatic _removeZero(sString) {\r\n\t\tvar sTmp, x, lTrovato;\r\n\t\tlTrovato = false;\r\n\t\tfor (x = 0; x < sString.length; x++) {\r\n\t\t\tif (sString.charAt(x) != \"0\") {\r\n\t\t\t\tlTrovato = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (lTrovato) {\r\n\t\t\tsTmp = sString.substr(x);\r\n\t\t} else {\r\n\t\t\tsTmp = sString;\r\n\t\t}\r\n\t\treturn parseInt(sTmp);\r\n\t}\r\n\r\n\tstatic padr(sString, sChar, nQuanti) {\r\n\t\tvar n;\r\n\t\tn = sString.length;\r\n\t\tfor (var x = 0; x < (nQuanti - n); x++) {\r\n\t\t\tsString = sChar + sString;\r\n\t\t}\r\n\t\treturn sString;\r\n\t}\r\n\r\n\tstatic padl(sString, sChar, nQuanti) {\r\n\t\tvar n;\r\n\t\tn = sString.length;\r\n\t\tfor (var x = 0; x < (nQuanti - n); x++) {\r\n\t\t\tsString = sString + sChar\r\n\t\t}\r\n\t\treturn sString;\r\n\t}\r\n\r\n\r\n\tstatic getCheck(s) {\r\n\t\tvar s1 = s.toUpperCase();\r\n\t\ts1 = Pqp._soloCharNumber(s1);\r\n\t\tvar nQuanti = s1.length % 15;\r\n\t\tfor (x = 0; x < 15 - nQuanti; x++) {\r\n\t\t\ts1 = s1 + \"F\";\r\n\t\t}\r\n\t\tvar sControllo = \"\";\r\n\t\tfor (var x = 1; x <= (s1.length / 15); x++) {\r\n\t\t\tsControllo = sControllo + Pqp._carCon(s1.substr(x * 15 - 15, 15));\r\n\t\t}\r\n\t\ts1 = sControllo + sControllo.length;\r\n\t\treturn s1;\r\n\t}\r\n\r\n\r\n\tstatic _soloCharNumber(s) {\r\n\t\tvar sRet = \"\";\r\n\t\tfor (var x = 0; x < s.length; x++) {\r\n\t\t\tvar c = s.charAt(x);\r\n\t\t\tif (((c >= \"0\") && (c <= \"9\")) || ((c >= \"A\") && (c <= \"Z\"))) {\r\n\t\t\t\tsRet += c;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn sRet;\r\n\t}\r\n\r\n\tstatic cripta(s) {\r\n\t\treturn Pqp.uEncode8(s, 6006);\r\n\t}\r\n\r\n\tstatic decripta(s) {\r\n\t\treturn Pqp.uDecode8(s, 6006);\r\n\t}\r\n\r\n\tstatic uEncode8(str, k) {\r\n\t\tk = k % 256;\r\n\t\tvar ret = \"\";\r\n\t\tfor (var i = 0; i < str.length; i++) {\r\n\t\t\tvar u = str.charCodeAt(i) ^ k;\r\n\t\t\tvar s = u.toString(16);\r\n\t\t\twhile (s.length < 2) {\r\n\t\t\t\ts = \"0\" + s;\r\n\t\t\t}\r\n\t\t\tret += s;\r\n\t\t}\r\n\t\treturn ret;\r\n\t}\r\n\r\n\tstatic uDecode8(str, k) {\r\n\t\tk = k % 256;\r\n\t\tvar ret = \"\";\r\n\t\tfor (var i = 0; i < str.length; i += 2) {\r\n\t\t\tvar s = \"\";\r\n\t\t\tfor (var j = 0; j < 2; j++) {\r\n\t\t\t\ts += str.charAt(i + j);\r\n\t\t\t}\r\n\t\t\tvar u = parseInt(s, 16) ^ k;\r\n\t\t\tret += String.fromCharCode(u);\r\n\t\t}\r\n\t\treturn ret;\r\n\t}\r\n\r\n\tstatic utf8Encode(s) {\r\n\t\tvar sRet = \"\";\r\n\t\tfor (var x = 0; x < s.length; x++) {\r\n\t\t\tvar c = s.charAt(x);\r\n\t\t\tvar n = c.charCodeAt(0);\r\n\t\t\tif ((n >= 32) && (n <= 127)) {\r\n\t\t\t\tsRet += c;\r\n\t\t\t} else {\r\n\t\t\t\tsRet += \"\" + n + \";\";\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn sRet;\r\n\t}\r\n\r\n\tstatic dataora(dt) {\r\n\t\tvar sRet = \"\" + dt.getFullYear();\r\n\t\tvar sTmp = (\"0\" + (dt.getMonth() + 1));\r\n\t\tsTmp = sTmp.substr(sTmp.length - 2, 2);\r\n\t\tsRet += sTmp;\r\n\t\tsTmp = (\"0\" + dt.getDate());\r\n\t\tsTmp = sTmp.substr(sTmp.length - 2, 2);\r\n\t\tsRet += sTmp;\r\n\t\tsTmp = (\"0\" + dt.getHours());\r\n\t\tsTmp = sTmp.substr(sTmp.length - 2, 2);\r\n\t\tsRet += sTmp;\r\n\t\tsTmp = (\"0\" + dt.getMinutes());\r\n\t\tsTmp = sTmp.substr(sTmp.length - 2, 2);\r\n\t\tsRet += sTmp;\r\n\t\tsTmp = (\"0\" + dt.getSeconds());\r\n\t\tsTmp = sTmp.substr(sTmp.length - 2, 2);\r\n\t\tsRet += sTmp;\r\n\t\treturn sRet;\r\n\t}\r\n\r\n\tstatic validateEmail(email) {\r\n\t\tvar re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\t\treturn re.test(email);\r\n\t}\r\n\r\n\r\n\tstatic safeReplace(input, rep, replaceWith) {\r\n\t\tvar sb = new String();\r\n\t\tvar found = false;\r\n\r\n\t\tvar sLen = input.length;\r\n\t\tvar rLen = rep.length;\r\n\r\n\t\tfor (var i = 0; i < sLen; i++) {\r\n\t\t\tif (input.charAt(i) == rep.charAt(0)) {\r\n\t\t\t\tfound = true;\r\n\t\t\t\tfor (var j = 0; j < rLen; j++) {\r\n\t\t\t\t\tif (!(input.charAt(i + j) == rep.charAt(j))) {\r\n\t\t\t\t\t\tfound = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (found) {\r\n\t\t\t\t\tsb += replaceWith;\r\n\t\t\t\t\ti = i + (rLen - 1);\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tsb += input.charAt(i);\r\n\t\t}\r\n\t\treturn sb;\r\n\t}\r\n\r\n\r\n\tstatic minion(lMoltiBr, chars, lBarraEnne, lHodor) {\r\n\t\treturn Pqp.lorem(lMoltiBr, chars, lBarraEnne, lHodor);\r\n\t}\r\n\r\n\tstatic lorem(lMoltiBr, chars, lBarraEnne, lHodor) {\r\n\t\tvar consonanti = \"rtplgfdszcvbnm\";\r\n\t\tvar doppie = \"rtplgfdsvnmc\"\r\n\t\tvar mediane = [\"nt\", \"nd\", \"mb\", \"rl\", \"rt\", \"ch\"];\r\n\t\tvar iniziali = [\"pr\", \"cr\", \"st\", \"br\", \"tr\", \"sc\", \"cl\", \"gr\", \"gn\", \"sf\", \"sb\", \"sp\", \"sm\"];\r\n\t\tvar vocali = \"aeiouaeioaeaeoaeo\";\r\n\t\tvar nomi = [\"Frodo\", \"Gandalf\", \"Samwise\", \"Meriadoc\", \"Peregrino\", \"Aragorn\", \"Legolas\", \"Gimli\", \"Boromir\", \"Sauron\", \"Gollum\", \"Bilbo\", \"Elrond\", \"Arwen\", \"Galadriel\", \"Saruman\", \"Eomer\", \"Theoden\", \"Eowyn\", \"Faramir\", \"Denethor\", \"Ned\", \"Sansa\", \"Arya\", \"Bran\", \"Jon\", \"Catelyn\", \"Daenerys\", \"Jaime\", \"Cersei\", \"Tyrion\", \"Walder\", \"Tywin\", \"Geoffrey\"];\r\n\t\tvar cognomi = [\"Baggins\", \"Gamgee\", \"Brandybuck\", \"Tuc\", \"Stark\", \"Lannister\", \"Tyrell\", \"Frey\", \"Bolton\", \"Baratheon\", \"Targaryen\", \"Snow\"];\r\n\t\tvar punteggiatura = \";,,,,,,,,:\";\r\n\t\tvar chiusura = \"!.........?\";\r\n\t\tvar domini = [\".com\", \".it\", \".co.uk\", \".fr\", \".de\", \".ru\"];\r\n\t\tvar lName\r\n\t\tvar lUid\r\n\t\tvar lNoPunteggiatura;\r\n\t\tvar lTitle;\r\n\t\tvar lEmail;\r\n\r\n\t\tif (typeof (lMoltiBr) == \"object\") {\r\n\t\t\tvar oTmp = lMoltiBr;\r\n\t\t\tlMoltiBr = oTmp.lMoltiBr;\r\n\t\t\tchars = oTmp.chars;\r\n\t\t\tlBarraEnne = oTmp.lBarraEnne;\r\n\t\t\tlHodor = oTmp.lHodor;\r\n\t\t\tlName = oTmp.lName;\r\n\t\t\tlUid = oTmp.lUid;\r\n\t\t\tlNoPunteggiatura = oTmp.lNoPunteggiatura;\r\n\t\t\tlTitle = oTmp.lTitle;\r\n\t\t\tlEmail = oTmp.lEmail;\r\n\t\t}\r\n\r\n\t\tif (lEmail) {\r\n\t\t\tlNoPunteggiatura = true;\r\n\r\n\t\t\tchars = Pqp.rnd(30, 20);\r\n\t\t\tlMoltiBr = 0;\r\n\t\t}\r\n\r\n\t\tif (lName) {\r\n\t\t\treturn nomi[Pqp.rnd(nomi.length - 1)] + \" \" + cognomi[Pqp.rnd(cognomi.length - 1)]\r\n\t\t}\r\n\t\tif (lUid) {\r\n\t\t\tlMoltiBr = 0;\r\n\t\t}\r\n\t\tif (lTitle) {\r\n\t\t\tlNoPunteggiatura = true;\r\n\t\t\tchars = Pqp.rnd(30, 20);\r\n\t\t\tlMoltiBr = 0;\r\n\t\t}\r\n\r\n\t\tvar a = new Array();\r\n\t\tfor (var x = 0; x < consonanti.length; x++) {\r\n\t\t\ta.push(consonanti.charAt(x));\r\n\t\t\ta.push(consonanti.charAt(x));\r\n\t\t}\r\n\t\tconsonanti = a;\r\n\r\n\t\tfor (var x = 0; x < doppie.length; x++) {\r\n\t\t\tconsonanti.push(doppie.charAt(x) + doppie.charAt(x));\r\n\t\t}\r\n\r\n\t\tfor (var x = 0; x < iniziali.length; x++) {\r\n\t\t\tconsonanti.push(iniziali[x]);\r\n\t\t}\r\n\r\n\t\tfor (var x = 0; x < mediane.length; x++) {\r\n\t\t\tconsonanti.push(mediane[x]);\r\n\t\t}\r\n\r\n\t\tfor (var x = 0; x < consonanti.length; x++) {\r\n\t\t\tif (consonanti[x].length == 1) {\r\n\t\t\t\tiniziali.push(consonanti[x]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (var x = 0; x < vocali.length; x++) {\r\n\t\t\tiniziali.push(vocali.charAt(x));\r\n\t\t\tiniziali.push(vocali.charAt(x));\r\n\t\t}\r\n\r\n\t\tvar a = new Array();\r\n\t\tfor (var x = 0; x < vocali.length; x++) {\r\n\t\t\ta.push(vocali.charAt(x));\r\n\t\t}\r\n\t\tvocali = a;\r\n\r\n\t\tvar a = new Array();\r\n\t\tfor (var x = 0; x < punteggiatura.length; x++) {\r\n\t\t\ta.push(punteggiatura.charAt(x));\r\n\t\t}\r\n\t\tpunteggiatura = a;\r\n\r\n\t\tvar a = new Array();\r\n\t\tfor (var x = 0; x < chiusura.length; x++) {\r\n\t\t\ta.push(chiusura.charAt(x));\r\n\t\t}\r\n\t\tchiusura = a;\r\n\r\n\r\n\t\tconsonanti = Pqp.shuffle(consonanti)\r\n\t\tiniziali = Pqp.shuffle(iniziali)\r\n\t\tvocali = Pqp.shuffle(vocali)\r\n\t\tpunteggiatura = Pqp.shuffle(punteggiatura)\r\n\t\tchiusura = Pqp.shuffle(chiusura)\r\n\r\n\r\n\t\tif (Pqp.isNullOrEmpty(chars)) {\r\n\t\t\tchars = 4000;\r\n\t\t} else {\r\n\t\t\tif (!Pqp.isNumber(chars)) {\r\n\t\t\t\tchars = 4000;\r\n\t\t\t\ttrace(\"Occhio alla sintassi, Pqp.minion(lMoltiBr, chars, lBarraEnne, lHodor)\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvar lNoBr = false;\r\n\r\n\t\tif (Pqp.isNullOrEmpty(lMoltiBr)) {\r\n\t\t\tlMoltiBr = false;\r\n\t\t} else {\r\n\t\t\tif (lMoltiBr === 0) {\r\n\t\t\t\tlMoltiBr = false;\r\n\t\t\t\tlNoBr = true;\r\n\t\t\t} else {\r\n\t\t\t\tif (typeof (lMoltiBr) === \"boolean\") {\r\n\t\t\t\t\tif (lMoltiBr == true) {\r\n\t\t\t\t\t\tlMoltiBr = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlMoltiBr = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttrace(\"Occhio alla sintassi, Pqp.minion(lMoltiBr, chars, lBarraEnne, lHodor)\");\r\n\t\t\t\t\tlMoltiBr = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (Pqp.isNullOrEmpty(lBarraEnne)) {\r\n\t\t\tlBarraEnne = false;\r\n\t\t} else {\r\n\t\t\tif (lBarraEnne == true) {\r\n\t\t\t\tlBarraEnne = true;\r\n\t\t\t} else {\r\n\t\t\t\tlBarraEnne = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tif (Pqp.isNullOrEmpty(lHodor)) {\r\n\t\t\tlHodor = false;\r\n\t\t}\r\n\r\n\t\t//trace(chars + \" \" + lMoltiBr + \" \" + lBarraEnne + \" \" +lNoBr);\r\n\r\n\t\tvar frase = new Array();\r\n\t\tvar len = 0;\r\n\r\n\t\tvar stepNome = 0;\r\n\t\tvar lastUno = false;\r\n\t\tvar contaDoppie = 0;\r\n\t\tvar lPrimo = true;\r\n\t\tif ((lUid) || (lEmail)) {\r\n\t\t\tlPrimo = false;\r\n\t\t\tchars = 100;\r\n\t\t\tstepNome = 5;\r\n\t\t}\r\n\r\n\t\twhile (len < chars) {\r\n\t\t\tvar word = \"\";\r\n\t\t\tvar lOk = false;\r\n\t\t\tvar lName = false;\r\n\t\t\t// Genera una parola\r\n\t\t\tif (Pqp.check(0.25) || lPrimo) {\r\n\t\t\t\tif (stepNome == 0) {\r\n\t\t\t\t\t// Prende un nome\r\n\t\t\t\t\tlPrimo = false;\r\n\t\t\t\t\tif (Pqp.rnd(1) == 0) {\r\n\t\t\t\t\t\tword = nomi[Pqp.rnd(nomi.length - 1)];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tword = cognomi[Pqp.rnd(cognomi.length - 1)];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstepNome++;\r\n\t\t\t\t\tlName = true;\r\n\t\t\t\t\tlOk = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!lOk) {\r\n\t\t\t\t// Genera una parola\r\n\t\t\t\tvar ln;\r\n\t\t\t\tif (Pqp.check(0.7)) {\r\n\t\t\t\t\tln = Pqp.rnd(3, 1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tln = Pqp.rnd(7, 6);\r\n\t\t\t\t}\r\n\t\t\t\tif ((lastUno) && (ln == 1)) {\r\n\t\t\t\t\t// Controlla di non avere 2 parole da 1 carattere di seguito\r\n\t\t\t\t\tln = Pqp.rnd(4, 3);\r\n\t\t\t\t}\r\n\t\t\t\tif (ln == 1) {\r\n\t\t\t\t\tlastUno = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlastUno = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (stepNome > 0) {\r\n\t\t\t\t\tstepNome++;\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tvar doppie = 0;\r\n\t\t\t\tvar char2 = 0;\r\n\t\t\t\tvar lastVocale\r\n\t\t\t\tfor (var x = 0; x < ln; x++) {\r\n\t\t\t\t\t// Iniziale\r\n\t\t\t\t\tif (x == 0) {\r\n\t\t\t\t\t\tif (lastUno) {\r\n\t\t\t\t\t\t\tword += vocali[Pqp.rnd(vocali.length - 1)];\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tword += iniziali[Pqp.rnd(iniziali.length - 1)];\r\n\t\t\t\t\t\t\tif ((word.indexOf(\"a\") >= 0) || (word.indexOf(\"e\") >= 0) || (word.indexOf(\"i\") >= 0) || (word.indexOf(\"o\") >= 0) || (word.indexOf(\"u\") >= 0)) {\r\n\t\t\t\t\t\t\t\tlastVocale = true;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tlastVocale = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (lastVocale) {\r\n\t\t\t\t\t\t\tvar lCondExit = false;\r\n\t\t\t\t\t\t\twhile (!lCondExit) {\r\n\t\t\t\t\t\t\t\tvar cc = consonanti[Pqp.rnd(consonanti.length - 1)];\r\n\t\t\t\t\t\t\t\tif ((cc.length > 1) && (cc.charAt(0) == cc.charAt(1))) {\r\n\t\t\t\t\t\t\t\t\tif (contaDoppie == 0) {\r\n\t\t\t\t\t\t\t\t\t\t//trace(\"SS\");\r\n\t\t\t\t\t\t\t\t\t\t//trace(cc);\r\n\t\t\t\t\t\t\t\t\t\tlCondExit = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tlCondExit = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tword += cc;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tword += vocali[Pqp.rnd(vocali.length - 1)];\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tlastVocale = !lastVocale;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (stepNome > 5) {\r\n\t\t\t\tif ((!lUid) && (!lEmail)) {\r\n\t\t\t\t\tstepNome = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tcontaDoppie--;\r\n\t\t\tif (contaDoppie < 0) {\r\n\t\t\t\tcontaDoppie = 7;\r\n\t\t\t}\r\n\r\n\t\t\t// Controlla che la parola finisca con una vocale\r\n\t\t\tif (!lName) {\r\n\t\t\t\tif (Pqp.check(0.95)) {\r\n\t\t\t\t\tvar c = word.charAt(word.length - 1);\r\n\t\t\t\t\tif ((c.indexOf(\"a\") >= 0) || (c.indexOf(\"e\") >= 0) || (c.indexOf(\"i\") >= 0) || (c.indexOf(\"o\") >= 0) || (c.indexOf(\"u\") >= 0)) {\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tword += vocali[Pqp.rnd(vocali.length - 1)];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (lHodor) {\r\n\t\t\t\tword = \"hodor\"\r\n\t\t\t}\r\n\r\n\t\t\tlen += word.length;\r\n\r\n\t\t\tfrase.push(word);\r\n\t\t}\r\n\r\n\t\t// Genera la punteggiatura\r\n\r\n\t\tvar nextPun = Pqp.rnd(10, 2);\r\n\t\tvar lastPunto = Pqp.rnd(30, 15);\r\n\r\n\t\tfor (var x = 0; x < frase.length; x++) {\r\n\t\t\tif (x == 0) {\r\n\t\t\t\tfrase[x] = frase[x].charAt(0).toUpperCase() + frase[x].substr(1);\r\n\t\t\t}\r\n\r\n\t\t\tif (x >= nextPun) {\r\n\t\t\t\tif (lastPunto <= 0) {\r\n\t\t\t\t\tif (frase[x].length == 1) {\r\n\t\t\t\t\t\tfrase[x] = frase[x] + \" \"\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfrase[x] = frase[x] + chiusura[Pqp.rnd(chiusura.length - 1)]\r\n\t\t\t\t\t\tvar lBr = false;\r\n\t\t\t\t\t\tif (lMoltiBr) {\r\n\t\t\t\t\t\t\tif (Pqp.check(0.7)) {\r\n\t\t\t\t\t\t\t\tlBr = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (Pqp.check(0.4)) {\r\n\t\t\t\t\t\t\t\tlBr = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (lNoBr) {\r\n\t\t\t\t\t\t\tlBr = false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (lBr) {\r\n\t\t\t\t\t\t\tif (lBarraEnne) {\r\n\t\t\t\t\t\t\t\tfrase[x] = frase[x] + \"\\n\";\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tfrase[x] = frase[x] + \"
\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tfrase[x] = frase[x] + \" \";\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\tlastPunto = Pqp.rnd(30, 15);\r\n\t\t\t\t\t\tnextPun += Pqp.rnd(10, 2);\r\n\t\t\t\t\t\tif (!Pqp.isNullOrEmpty(frase[x + 1])) {\r\n\t\t\t\t\t\t\tfrase[x + 1] = frase[x + 1].charAt(0).toUpperCase() + frase[x + 1].substr(1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (frase[x].length == 1) {\r\n\t\t\t\t\t\tfrase[x] = frase[x] + \" \"\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\tfrase[x] = frase[x] + punteggiatura[Pqp.rnd(punteggiatura.length - 1)] + \" \"\r\n\t\t\t\t\t\tnextPun += Pqp.rnd(10, 2);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\tvar lVirg = false;\r\n\t\t\t\tif (frase[x].length > 2) {\r\n\t\t\t\t\tif (frase[x].charAt(0) != frase[x].charAt(0).toUpperCase()) {\r\n\t\t\t\t\t\tif (Pqp.check(0.01)) {\r\n\t\t\t\t\t\t\tlVirg = true;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (lVirg) {\r\n\t\t\t\t\tfrase[x] = \"\\\"\" + frase[x] + \"\\\"\" + \" \";\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfrase[x] = frase[x] + \" \"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlastPunto--;\r\n\t\t\tif (lastPunto < 0) {\r\n\t\t\t\tlastPunto = 0;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvar finale = \"\";\r\n\t\tvar tot = 0;\r\n\t\tfor (var x = 0; x < frase.length - 1; x++) {\r\n\t\t\tfinale += frase[x];\r\n\t\t\ttot += frase[x].length;\r\n\t\t\tif (frase[x].indexOf(\"
\") >= 0) {\r\n\t\t\t\ttot -= 4;\r\n\t\t\t}\r\n\t\t\tif (frase[x].indexOf(\"\\\\n\") >= 0) {\r\n\t\t\t\ttot -= 2;\r\n\t\t\t}\r\n\r\n\t\t\tif (tot.length >= chars) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tfinale = jQuery.trim(finale);\r\n\t\tvar c = finale.charAt(finale.length - 1);\r\n\t\tif (\";,:.?!\".indexOf(c) >= 0) {\r\n\t\t\tfinale = finale.substr(0, finale.length - 2);\r\n\t\t}\r\n\t\tfinale = finale + chiusura[Pqp.rnd(chiusura.length - 1)];\r\n\r\n\r\n\t\tvar c = finale.charAt(finale.length - 3);\r\n\t\tif (c == \" \") {\r\n\t\t\t//trace(\"-->\"+finale);\r\n\t\t\tfinale = jQuery.trim(finale.substr(0, finale.length - 3));\r\n\t\t\tvar c = finale.charAt(finale.length - 1);\r\n\t\t\tif (\";,:.?!\".indexOf(c) >= 0) {\r\n\t\t\t\tfinale = finale.substr(0, finale.length - 2);\r\n\t\t\t}\r\n\t\t\tfinale = finale + chiusura[Pqp.rnd(chiusura.length - 1)];\r\n\t\t}\r\n\r\n\r\n\t\tif ((lUid) || (lNoPunteggiatura)) {\r\n\r\n\t\t\tfor (var x = 0; x < punteggiatura.length; x++) {\r\n\t\t\t\tfinale = Pqp.safeReplace(finale, punteggiatura[x], \"\");\r\n\t\t\t}\r\n\t\t\tfor (var x = 0; x < chiusura.length; x++) {\r\n\t\t\t\tfinale = Pqp.safeReplace(finale, chiusura[x], \"\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (lUid) {\r\n\t\t\tfinale = Pqp.safeReplace(finale, \" \", \"\");\r\n\t\t\tfinale = Pqp.safeReplace(finale, \" \", \"\");\r\n\t\t\tif (finale.length > 17) {\r\n\t\t\t\tfinale = finale.substr(0, 17);\r\n\t\t\t}\r\n\t\t\tfinale = \"uid\" + finale.toLowerCase();\r\n\t\t}\r\n\r\n\r\n\t\tif (lEmail) {\r\n\t\t\tfinale = (nomi[Pqp.rnd(nomi.length - 1)] + \".\" + cognomi[Pqp.rnd(cognomi.length - 1)] + \"@\" + finale.substr(0, Pqp.rnd(10, 5)) + domini[Pqp.rnd(domini.length - 1)]).toLowerCase();\r\n\t\t\tfinale = Pqp.safeReplace(finale, \" \", \"\");\r\n\t\t}\r\n\r\n\r\n\t\treturn finale;\r\n\t}\r\n\r\n\r\n\tstatic formattaNumeroConMigliaia(n) {\r\n\t\tvar ret = \"\";\r\n\t\tvar tmp = n + \"\";\r\n\t\t//\r\n\t\tvar cnt = 0;\r\n\t\tfor (var i = tmp.length - 1; i >= 0; i--) {\r\n\t\t\tif (cnt == 3) {\r\n\t\t\t\tret = \".\" + ret;\r\n\t\t\t\tcnt = 0;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcnt++;\r\n\t\t\t}\r\n\t\t\tret = tmp.charAt(i) + ret;\r\n\t\t}\r\n\t\treturn ret;\r\n\t}\r\n\r\n\r\n\tstatic newGuid() {\r\n\t\tvar uid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n\t\t\tvar r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n\t\t\treturn v.toString(16);\r\n\t\t});\r\n\t\treturn Pqp.replace(uid, \"-\", \"\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\tstatic removeDiacritics(str) {\r\n\t\tif (!Pqp.diacriticsMap) {\r\n\t\t\tPqp.diacriticsMap = {};\r\n\t\t}\r\n\t\tfor (var i = 0; i < Pqp.defaultDiacriticsRemovalap.length; i++) {\r\n\t\t\tvar letters = Pqp.defaultDiacriticsRemovalap[i].letters.split(\"\");\r\n\t\t\tfor (var j = 0; j < letters.length; j++) {\r\n\t\t\t\tPqp.diacriticsMap[letters[j]] = Pqp.defaultDiacriticsRemovalap[i].base;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar letters = str.split(\"\");\r\n\t\tvar newStr = \"\";\r\n\t\tfor (var i = 0; i < letters.length; i++) {\r\n\t\t\tnewStr += letters[i] in Pqp.diacriticsMap ? Pqp.diacriticsMap[letters[i]] : letters[i];\r\n\t\t}\r\n\t\treturn newStr;\r\n\t}\r\n\r\n\tstatic isMobile() {\r\n\t\tlet mobile = false;\r\n\t\tif (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {\r\n\t\t\tmobile = true;\r\n\t\t}\r\n\t\tlet isIOS = /iPad|iPhone|iPod/i.test(navigator.userAgent) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\r\n\t\tif (isIOS) {\r\n\t\t\tmobile = true;\r\n\t\t}\r\n\t\treturn mobile;\r\n\t}\r\n\r\n\tstatic isIpaddone() {\r\n\t\tlet mobile = Pqp.isMobile();\r\n\t\t// Controllo ipadpro\r\n\t\tlet lIpaddone = false;\r\n\t\tif (mobile) {\r\n\t\t\tif ((window.innerHeight > 900) && (window.innerWidth > 900)) {\r\n\t\t\t\tlIpaddone = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn lIpaddone;\r\n\t}\r\n\r\n\tstatic isIos() {\r\n\t\tlet isIOS = /iPad|iPhone|iPod/i.test(navigator.userAgent) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\r\n\r\n\t\t/*isIOS = false;\r\n\t\tif (/iPhone|iPad|iPod/i.test(navigator.userAgent)) {\r\n\t\t\tisIOS = true;\r\n\t\t}*/\r\n\r\n\t\treturn isIOS;\r\n\t}\r\n}\r\n\r\n\r\nPqp.diacriticsMap = null;\r\nPqp.defaultDiacriticsRemovalap = [\r\n\t{ 'base': 'A', 'letters': '\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F' },\r\n\t{ 'base': 'AA', 'letters': '\\uA732' },\r\n\t{ 'base': 'AE', 'letters': '\\u00C6\\u01FC\\u01E2' },\r\n\t{ 'base': 'AO', 'letters': '\\uA734' },\r\n\t{ 'base': 'AU', 'letters': '\\uA736' },\r\n\t{ 'base': 'AV', 'letters': '\\uA738\\uA73A' },\r\n\t{ 'base': 'AY', 'letters': '\\uA73C' },\r\n\t{ 'base': 'B', 'letters': '\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181' },\r\n\t{ 'base': 'C', 'letters': '\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E' },\r\n\t{ 'base': 'D', 'letters': '\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779' },\r\n\t{ 'base': 'DZ', 'letters': '\\u01F1\\u01C4' },\r\n\t{ 'base': 'Dz', 'letters': '\\u01F2\\u01C5' },\r\n\t{ 'base': 'E', 'letters': '\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E' },\r\n\t{ 'base': 'F', 'letters': '\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B' },\r\n\t{ 'base': 'G', 'letters': '\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E' },\r\n\t{ 'base': 'H', 'letters': '\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D' },\r\n\t{ 'base': 'I', 'letters': '\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197' },\r\n\t{ 'base': 'J', 'letters': '\\u004A\\u24BF\\uFF2A\\u0134\\u0248' },\r\n\t{ 'base': 'K', 'letters': '\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2' },\r\n\t{ 'base': 'L', 'letters': '\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780' },\r\n\t{ 'base': 'LJ', 'letters': '\\u01C7' },\r\n\t{ 'base': 'Lj', 'letters': '\\u01C8' },\r\n\t{ 'base': 'M', 'letters': '\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C' },\r\n\t{ 'base': 'N', 'letters': '\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4' },\r\n\t{ 'base': 'NJ', 'letters': '\\u01CA' },\r\n\t{ 'base': 'Nj', 'letters': '\\u01CB' },\r\n\t{ 'base': 'O', 'letters': '\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C' },\r\n\t{ 'base': 'OI', 'letters': '\\u01A2' },\r\n\t{ 'base': 'OO', 'letters': '\\uA74E' },\r\n\t{ 'base': 'OU', 'letters': '\\u0222' },\r\n\t{ 'base': 'P', 'letters': '\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754' },\r\n\t{ 'base': 'Q', 'letters': '\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A' },\r\n\t{ 'base': 'R', 'letters': '\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782' },\r\n\t{ 'base': 'S', 'letters': '\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784' },\r\n\t{ 'base': 'T', 'letters': '\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786' },\r\n\t{ 'base': 'TZ', 'letters': '\\uA728' },\r\n\t{ 'base': 'U', 'letters': '\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244' },\r\n\t{ 'base': 'V', 'letters': '\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245' },\r\n\t{ 'base': 'VY', 'letters': '\\uA760' },\r\n\t{ 'base': 'W', 'letters': '\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72' },\r\n\t{ 'base': 'X', 'letters': '\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C' },\r\n\t{ 'base': 'Y', 'letters': '\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE' },\r\n\t{ 'base': 'Z', 'letters': '\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762' },\r\n\t{ 'base': 'a', 'letters': '\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250' },\r\n\t{ 'base': 'aa', 'letters': '\\uA733' },\r\n\t{ 'base': 'ae', 'letters': '\\u00E6\\u01FD\\u01E3' },\r\n\t{ 'base': 'ao', 'letters': '\\uA735' },\r\n\t{ 'base': 'au', 'letters': '\\uA737' },\r\n\t{ 'base': 'av', 'letters': '\\uA739\\uA73B' },\r\n\t{ 'base': 'ay', 'letters': '\\uA73D' },\r\n\t{ 'base': 'b', 'letters': '\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253' },\r\n\t{ 'base': 'c', 'letters': '\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184' },\r\n\t{ 'base': 'd', 'letters': '\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A' },\r\n\t{ 'base': 'dz', 'letters': '\\u01F3\\u01C6' },\r\n\t{ 'base': 'e', 'letters': '\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD' },\r\n\t{ 'base': 'f', 'letters': '\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C' },\r\n\t{ 'base': 'g', 'letters': '\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F' },\r\n\t{ 'base': 'h', 'letters': '\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265' },\r\n\t{ 'base': 'hv', 'letters': '\\u0195' },\r\n\t{ 'base': 'i', 'letters': '\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131' },\r\n\t{ 'base': 'j', 'letters': '\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249' },\r\n\t{ 'base': 'k', 'letters': '\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3' },\r\n\t{ 'base': 'l', 'letters': '\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747' },\r\n\t{ 'base': 'lj', 'letters': '\\u01C9' },\r\n\t{ 'base': 'm', 'letters': '\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F' },\r\n\t{ 'base': 'n', 'letters': '\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5' },\r\n\t{ 'base': 'nj', 'letters': '\\u01CC' },\r\n\t{ 'base': 'o', 'letters': '\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275' },\r\n\t{ 'base': 'oi', 'letters': '\\u01A3' },\r\n\t{ 'base': 'ou', 'letters': '\\u0223' },\r\n\t{ 'base': 'oo', 'letters': '\\uA74F' },\r\n\t{ 'base': 'p', 'letters': '\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755' },\r\n\t{ 'base': 'q', 'letters': '\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759' },\r\n\t{ 'base': 'r', 'letters': '\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783' },\r\n\t{ 'base': 's', 'letters': '\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B' },\r\n\t{ 'base': 't', 'letters': '\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787' },\r\n\t{ 'base': 'tz', 'letters': '\\uA729' },\r\n\t{ 'base': 'u', 'letters': '\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289' },\r\n\t{ 'base': 'v', 'letters': '\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C' },\r\n\t{ 'base': 'vy', 'letters': '\\uA761' },\r\n\t{ 'base': 'w', 'letters': '\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73' },\r\n\t{ 'base': 'x', 'letters': '\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D' },\r\n\t{ 'base': 'y', 'letters': '\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF' },\r\n\t{ 'base': 'z', 'letters': '\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763' }\r\n];\r\n\r\n\r\n","import Pqp from \"../../../3x1010/Pqp\";\r\nimport Assets from \"../Assets\";\r\n\r\nexport default class Sounder {\r\n\r\n static play(id, callback = null, loop = false, oneInstance = false) {\r\n let sound = Sounder._getSoundById(id);\r\n if (oneInstance) {\r\n Sounder._removeAllAudioInstances(id);\r\n }\r\n let audio = new Audio();\r\n audio.src = sound.src;\r\n \r\n audio.volume = Sounder.volume;\r\n audio.muted = false;\r\n audio.play();\r\n \r\n let instance = { guid: Pqp.newGuid(), id: id, audio: audio, loop: loop, oneInstance: oneInstance };\r\n audio.addEventListener(\"ended\", Sounder._audioEnded.bind(Sounder, instance, callback));\r\n Sounder._instances.push(instance);\r\n }\r\n static getDuration(id) {\r\n for (let x = 0; x < Sounder._instances.length; x++) {\r\n if (Sounder._instances[x].id === id) {\r\n return Sounder._instances[x].audio.duration;\r\n }\r\n }\r\n return null\r\n\r\n }\r\n\r\n static seek(id,time) {\r\n for (let x = 0; x < Sounder._instances.length; x++) {\r\n if (Sounder._instances[x].id === id) {\r\n Sounder._instances[x].audio.currentTime = time;\r\n }\r\n }\r\n }\r\n\r\n static stop(id) {\r\n for (let x = 0; x < Sounder._instances.length; x++) {\r\n if (Sounder._instances[x].id === id) {\r\n Sounder._instances[x].audio.pause();\r\n Sounder._removeAudioInstance(Sounder._instances[x]);\r\n }\r\n }\r\n }\r\n\r\n static pauseAll() {\r\n for (let x = 0; x < Sounder._instances.length; x++) {\r\n Sounder._instances[x].audio.pause();\r\n }\r\n }\r\n\r\n static resumeAll() {\r\n for (let x = 0; x < Sounder._instances.length; x++) {\r\n Sounder._instances[x].audio.play();\r\n }\r\n }\r\n\r\n static pause(id) {\r\n for (let x = 0; x < Sounder._instances.length; x++) {\r\n if (Sounder._instances[x].id === id) {\r\n Sounder._instances[x].audio.pause();\r\n }\r\n }\r\n }\r\n\r\n static resume(id) {\r\n for (let x = 0; x < Sounder._instances.length; x++) {\r\n if (Sounder._instances[x].id === id) {\r\n Sounder._instances[x].audio.play();\r\n }\r\n }\r\n\r\n }\r\n\r\n static setAllVolume(n) {\r\n if (n > 1) {\r\n n = 1;\r\n }\r\n if (n < 0) {\r\n n = 0;\r\n }\r\n for (let x = 0; x < Sounder._instances.length; x++) {\r\n Sounder._instances[x].audio.volume = n;\r\n }\r\n Sounder.volume = n;\r\n }\r\n\r\n static _audioEnded(instance, callback) {\r\n //alert(instance)\r\n Sounder._dispatch(callback, Sounder.EVENT_SOUND_ENDED, instance)\r\n Sounder._removeAudioInstance(instance);\r\n if (instance.loop) {\r\n Sounder.play(instance.id,callback, true);\r\n }\r\n //console.log(Sounder._instances)\r\n\r\n }\r\n\r\n static _dispatch(callback, type, data = null) {\r\n if (callback) {\r\n callback.call(null, { type: type, data: data });\r\n }\r\n }\r\n\r\n\r\n\r\n static _removeAllAudioInstances(id) {\r\n for (let x = 0; x < Sounder._instances.length; x++) {\r\n if (Sounder._instances[x].id === id) {\r\n Sounder._instances[x].audio.pause();\r\n Sounder._removeAudioInstance(Sounder._instances[x]);\r\n }\r\n }\r\n }\r\n\r\n static _removeAudioInstance(instance) {\r\n let tmp = new Array();\r\n for (let x = 0; x < Sounder._instances.length; x++) {\r\n if (Sounder._instances[x].guid !== instance.guid) {\r\n tmp.push(Sounder._instances[x]);\r\n }\r\n }\r\n Sounder._instances = tmp;\r\n }\r\n\r\n static _getSoundById(idSound) {\r\n Sounder._sounds = Assets.getSounds();\r\n return Sounder._sounds.find(({ id }) => id === idSound);\r\n }\r\n\r\n}\r\n\r\nSounder._sounds = [];\r\nSounder._current = 0;\r\nSounder._inited = false;\r\nSounder._instances = [];\r\nSounder.volume = 1;\r\n\r\nSounder.EVENT_SOUND_ENDED = \"eventSoundEnded\";","import Pqp from \"../../3x1010/Pqp\";\r\n\r\nexport default class MainLoop {\r\n\r\n static start() {\r\n MainLoop._init();\r\n MainLoop._loop(performance.now());\r\n }\r\n\r\n static subscribe(instance, callback = \"paint\", priority = 1) {\r\n instance._mainLoopUid = Pqp.newGuid();\r\n MainLoop._init();\r\n MainLoop._subscriptions[priority].push({ instance: instance, callback: callback });\r\n }\r\n\r\n static unsubscribe(instance) {\r\n for (let x = 0; x < MainLoop._subscriptions.length; x++) {\r\n let a = MainLoop._subscriptions[x];\r\n for (let y = 0; y < a.length; y++) {\r\n if (a[y].instance._mainLoopUid === instance._mainLoopUid) {\r\n MainLoop._subscriptions[x].splice(y, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n static isRunning() {\r\n return MainLoop._started;\r\n }\r\n\r\n static stop() {\r\n MainLoop._started = false;\r\n cancelAnimationFrame(MainLoop._updateId);\r\n }\r\n static pause() {\r\n MainLoop.stop();\r\n }\r\n\r\n static resume() {\r\n MainLoop.start();\r\n }\r\n\r\n static _init() {\r\n if (MainLoop._inited) {\r\n return;\r\n }\r\n MainLoop._inited = true;\r\n for (let x = 0; x < 4; x++) {\r\n MainLoop._subscriptions.push(new Array());\r\n }\r\n }\r\n\r\n\r\n static _loop(currentDelta) {\r\n MainLoop._started = true;\r\n MainLoop._updateId = requestAnimationFrame(MainLoop._loop.bind(MainLoop));\r\n let delta = currentDelta - MainLoop._previousDelta;\r\n if (MainLoop.FPS_LIMIT && delta < Math.floor(1000 / MainLoop.FPS_LIMIT)) {\r\n return;\r\n }\r\n MainLoop._dispatch();\r\n MainLoop._previousDelta = currentDelta;\r\n }\r\n\r\n static _dispatch() {\r\n for (let x = 0; x < MainLoop._subscriptions.length; x++) {\r\n let a = MainLoop._subscriptions[x];\r\n for (let y = 0; y < a.length; y++) {\r\n a[y].instance[a[y].callback]();\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nMainLoop._updateId = -1;\r\nMainLoop._previousDelta = 0;\r\nMainLoop._inited = false;\r\nMainLoop._started = false;\r\n\r\nMainLoop.FPS_LIMIT = 60;\r\nMainLoop.PRIORITY_MAIN = 0;\r\nMainLoop.PRIORITY_HIGH = 1;\r\nMainLoop.PRIORITY_NORMAL = 2;\r\nMainLoop.PRIORITY_LOW = 3;\r\n\r\nMainLoop._subscriptions = new Array();\r\n\r\n","import Pqp from \"../../../3x1010/Pqp\";\r\nimport MainLoop from \"../MainLoop\";\r\n\r\n\r\nexport default class FramesPlayer {\r\n constructor(clip, anim, callback, callbackEndAnimation) {\r\n this.clip = clip;\r\n this.anim = anim;\r\n this.idto = -1;\r\n this.currentFrame = 0;\r\n this.frames = this.anim.frames;\r\n this.callback = callback;\r\n this.callbackEndAnimation = callbackEndAnimation;\r\n this.checkChangedAnimation = false;\r\n this.lastFrame = false;\r\n }\r\n\r\n start() {\r\n if (this.anim.flip) {\r\n this.clip.css(\"transform\", \"scaleX(-1)\");\r\n } else {\r\n this.clip.css(\"transform\", \"scaleX(1)\");\r\n }\r\n this.currentFrame = 0;\r\n this.showNextFrame();\r\n }\r\n showNextFrame() {\r\n let sprite = this.frames[this.currentFrame].sprite;\r\n let time = this.frames[this.currentFrame].time;\r\n this.clip.css(\"background-image\", \"url('\" + sprite + \"')\");\r\n if (!Pqp.isNullOrEmpty(this.frames[this.currentFrame].goto)) {\r\n this.dispatch({ type: FramesPlayer.EVENT_GOTO_ANIMATION, data: { id: this.frames[this.currentFrame].goto } });\r\n if (this.callbackEndAnimation) {\r\n this.callbackEndAnimation.call(null);\r\n }\r\n } else {\r\n if (time !== -1) {\r\n this.checkChangedAnimation = true;\r\n this.idto = time * MainLoop.FPS_LIMIT / 1000;\r\n } else {\r\n if (this.callbackEndAnimation) {\r\n this.callbackEndAnimation.call(null);\r\n }\r\n }\r\n }\r\n this.currentFrame++;\r\n let limit = this.frames.length;\r\n let lGoto = false;\r\n if (!Pqp.isNullOrEmpty(this.frames[limit - 1].goto)) {\r\n lGoto = true;\r\n limit--;\r\n }\r\n\r\n //if (this.currentFrame === this.frames.length) {\r\n if (this.currentFrame === limit) {\r\n this.lastFrame = true;\r\n if (!lGoto) {\r\n this.currentFrame = 0;\r\n }\r\n }\r\n\r\n }\r\n\r\n dispatch(e) {\r\n if (this.callback) {\r\n this.callback.call(null, e);\r\n }\r\n }\r\n\r\n tick() {\r\n if (this.checkChangedAnimation) {\r\n this.idto--;\r\n if (this.idto <= 0) {\r\n if (this.lastFrame) {\r\n this.lastFrame = false;\r\n this.dispatch({ type: FramesPlayer.EVENT_END_ANIMATION });\r\n }\r\n this.checkChangedAnimation = false;\r\n this.showNextFrame();\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nFramesPlayer.EVENT_GOTO_ANIMATION = \"eventGotoAnimation\";\r\nFramesPlayer.EVENT_END_ANIMATION = \"eventEndAnimation\";","import Pqp from \"../../../3x1010/Pqp\";\r\nimport Sprites from \"../Sprites\";\r\n\r\nexport default class SingleAnimation {\r\n constructor(animationDefinition) {\r\n this.sp = Sprites;\r\n this.id = animationDefinition.id;\r\n this.sheet = animationDefinition.sheet;\r\n this.animationDefinition = animationDefinition;\r\n this.flip = animationDefinition.flip;\r\n this.frames = new Array();\r\n }\r\n\r\n init() {\r\n let a = this.animationDefinition.frames;\r\n for (let x = 0; x < a.length; x++) {\r\n if (!Pqp.isNullOrEmpty(a[x].goto)) {\r\n this.frames.push({ goto: a[x].goto });\r\n } else {\r\n this.frames.push({ sprite: this.sp.getSpriteByRowCol(this.sheet, a[x].row, a[x].col), time: a[x].time });\r\n }\r\n }\r\n }\r\n}","import Sprites from \"../Sprites\";\r\nimport FramesPlayer from \"./FramesPlayer\";\r\nimport SingleAnimation from \"./SingleAnimation\";\r\n\r\nexport default class Spran {\r\n constructor(clip, animationsDefinitions, callback) {\r\n this.sp = Sprites;\r\n this.clip = clip;\r\n this.animationsDefinitions = animationsDefinitions;\r\n this.anims = new Array();\r\n this.fp = null;\r\n this.currentId = -1;\r\n this.pausedId = -1;\r\n this.callback = callback;\r\n }\r\n\r\n init() {\r\n let a = this.animationsDefinitions;\r\n for (let x = 0; x < a.length; x++) {\r\n let anm = new SingleAnimation(a[x]);\r\n anm.init();\r\n this.anims.push(anm);\r\n }\r\n }\r\n\r\n setAnimation(id, callback) {\r\n if (!callback) {\r\n if (id === this.currentId) {\r\n return\r\n }\r\n }\r\n this.currentId = id;\r\n let a = this.anims;\r\n for (let x = 0; x < a.length; x++) {\r\n if (a[x].id === id) {\r\n this._startAnimation(a[x], callback);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n getCurrentAnimName() {\r\n return this.currentId;\r\n }\r\n getCurrentFrame() {\r\n if (this.fp) {\r\n return this.fp.currentFrame;\r\n }\r\n return null;\r\n }\r\n\r\n _startAnimation(anim, callback) {\r\n this.dispatch({ type: Spran.EVENT_START_ANIMATION, data: { anim: anim } });\r\n this.fp = new FramesPlayer(this.clip, anim, this._eventsHandler.bind(this, anim), callback);\r\n this.fp.start();\r\n }\r\n\r\n _eventsHandler(anim, e) {\r\n if (e.type === FramesPlayer.EVENT_GOTO_ANIMATION) {\r\n this.setAnimation(e.data.id);\r\n }\r\n if (e.type === FramesPlayer.EVENT_END_ANIMATION) {\r\n this.dispatch({ type: Spran.EVENT_END_ANIMATION, data: { anim: anim } });\r\n }\r\n }\r\n\r\n pause() {\r\n if (this.fp) {\r\n this.pausedId = this.currentId;\r\n this.currentId = -1;\r\n this.fp = null;\r\n }\r\n }\r\n\r\n resume(animation = null) {\r\n if (!Pqp.isNullOrEmpty(animation)) {\r\n this.pausedId = animation;\r\n }\r\n\r\n if (!this.fp) {\r\n this.setAnimation(this.pausedId);\r\n }\r\n }\r\n\r\n paint() {\r\n if (this.fp) {\r\n this.fp.tick();\r\n }\r\n\r\n }\r\n\r\n dispatch(e) {\r\n if (this.callback) {\r\n this.callback.call(null, e);\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n\r\nSpran.EVENT_START_ANIMATION = \"eventStartAnimation\";\r\nSpran.EVENT_END_ANIMATION = \"eventEndAnimation\";\r\n","export default class KeyControl {\r\n constructor(callback) {\r\n this.n = 0;\r\n this.s = 0;\r\n this.e = 0;\r\n this.w = 0;\r\n this.fired = 0;\r\n this.callback = callback;\r\n this.enabled = false;\r\n\r\n }\r\n\r\n destroy() {\r\n jQuery(window).off(\"keydown.key\");\r\n jQuery(window).off(\"keyup.key\");\r\n }\r\n\r\n init() {\r\n jQuery(window).on(\"keydown.key\", this.onKeyDown.bind(this));\r\n jQuery(window).on(\"keyup.key\", this.onKeyUp.bind(this));\r\n }\r\n\r\n enable(lFlag) {\r\n this.enabled = lFlag;\r\n }\r\n\r\n onKeyDown(e) {\r\n //console.log(e.keyCode)\r\n if (!this.enabled) {\r\n e.preventDefault();\r\n return;\r\n }\r\n if ((e.keyCode === KeyControl.UP) || (e.keyCode === KeyControl.UP_ALT)) {\r\n e.preventDefault();\r\n this.n = 1;\r\n }\r\n if ((e.keyCode === KeyControl.RIGHT) || (e.keyCode === KeyControl.RIGHT_ALT)) {\r\n e.preventDefault();\r\n this.e = 1;\r\n }\r\n if ((e.keyCode === KeyControl.LEFT) || (e.keyCode === KeyControl.LEFT_ALT)) {\r\n e.preventDefault();\r\n this.w = 1\r\n }\r\n if ((e.keyCode === KeyControl.DOWN) || (e.keyCode === KeyControl.DOWN_ALT)) {\r\n e.preventDefault();\r\n this.s = 1;\r\n }\r\n\r\n if ((e.keyCode === KeyControl.FIRE) || (e.keyCode === KeyControl.FIRE_ALT)) {\r\n e.preventDefault();\r\n this.fired = 1;\r\n }\r\n\r\n this.callback.call(null, this);\r\n this.n = 0;\r\n this.s = 0;\r\n this.e = 0;\r\n this.w = 0;\r\n this.fired = 0;\r\n\r\n }\r\n\r\n onKeyUp(e) {\r\n this.n = 0;\r\n this.s = 0;\r\n this.e = 0;\r\n this.w = 0;\r\n this.fired = 0;\r\n this.callback.call(null, this);\r\n }\r\n\r\n\r\n\r\n}\r\n\r\nKeyControl.UP = 87;\r\nKeyControl.DOWN = 83;\r\nKeyControl.LEFT = 65;\r\nKeyControl.RIGHT = 68;\r\nKeyControl.FIRE = 69;\r\n\r\nKeyControl.UP_ALT = 38;\r\nKeyControl.DOWN_ALT = 40;\r\nKeyControl.LEFT_ALT = 37;\r\nKeyControl.RIGHT_ALT = 39;\r\nKeyControl.FIRE_ALT = 32;\r\n","import Pqp from \"../../../3x1010/Pqp\";\r\n\r\nexport default class MouseControl {\r\n constructor(callback) {\r\n this.n = 0;\r\n this.s = 0;\r\n this.e = 0;\r\n this.w = 0;\r\n this.fired = 0;\r\n this.callback = callback;\r\n this.enabled = false;\r\n\r\n }\r\n\r\n destroy() {\r\n if (Pqp.isMobile()) {\r\n jQuery(window).off(\"touchstart.key\");\r\n jQuery(window).off(\"touchend.key\");\r\n } else {\r\n jQuery(window).off(\"mousedown.key\");\r\n jQuery(window).off(\"mouseup.key\");\r\n }\r\n }\r\n\r\n init() {\r\n if (Pqp.isMobile()) {\r\n jQuery(window).on(\"touchstart.key\", this.onKeyDown.bind(this));\r\n jQuery(window).on(\"touchend.key\", this.onKeyUp.bind(this));\r\n } else {\r\n jQuery(window).on(\"mousedown.key\", this.onKeyDown.bind(this));\r\n jQuery(window).on(\"mouseup.key\", this.onKeyUp.bind(this));\r\n }\r\n }\r\n\r\n enable(lFlag) {\r\n this.enabled = lFlag;\r\n }\r\n\r\n onKeyDown(e) {\r\n //e.preventDefault();\r\n this.timer = new Date().getTime();\r\n this.idto = setTimeout(this.crouch.bind(this));\r\n }\r\n\r\n crouch() {\r\n //console.log(\"courch\")\r\n this.s = 1;\r\n this.callback.call(null, this);\r\n this.n = 0;\r\n this.s = 0;\r\n this.e = 0;\r\n this.w = 0;\r\n this.fired = 0;\r\n\r\n }\r\n\r\n onKeyUp(e) {\r\n //e.preventDefault();\r\n if (new Date().getTime() - this.timer < 150) {\r\n clearTimeout(this.idTo);\r\n this.n = 1;\r\n //console.log(\"jump\")\r\n } else {\r\n this.s = 0;\r\n }\r\n\r\n this.callback.call(null, this);\r\n this.n = 0;\r\n this.s = 0;\r\n this.e = 0;\r\n this.w = 0;\r\n this.fired = 0;\r\n\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\n","import KeyControl from \"./KeyControl\";\r\nimport MouseControl from \"./MouseControl\";\r\n\r\nexport default class Controls {\r\n\tconstructor(stage) {\r\n\t\tthis.keyControl = null;\r\n\t\tthis.mouseControl = null;\r\n\t\tthis.n = 0;\r\n\t\tthis.s = 0;\r\n\t\tthis.e = 0;\r\n\t\tthis.w = 0;\r\n\t\tthis.fired = 0;\r\n\t\tthis.enabled = false;\r\n\t\tthis.stage = stage;\r\n\t}\r\n\r\n\tdestroy() {\r\n\t\tthis.keyControl.destroy();\r\n\t\tthis.mouseControl.destroy();\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.keyControl = new KeyControl(this.controlHandler.bind(this));\r\n\t\tthis.keyControl.init();\r\n\t\tthis.mouseControl = new MouseControl(this.controlHandler.bind(this));\r\n\t\tthis.mouseControl.init();\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis.n = 0;\r\n\t\tthis.s = 0;\r\n\t\tthis.e = 0;\r\n\t\tthis.w = 0;\r\n\t\tthis.fired = 0;\r\n\t}\r\n\r\n\tenable(lFlag) {\r\n\t\tthis.enabled = lFlag;\r\n\t\tthis.keyControl.enable(lFlag);\r\n\t\tthis.mouseControl.enable(lFlag);\r\n\t}\r\n\r\n\r\n\tcontrolHandler(control) {\r\n\t\tthis.n = 0;\r\n\t\tthis.s = 0;\r\n\t\tthis.e = 0;\r\n\t\tthis.w = 0;\r\n\t\tthis.fired = 0;\r\n\t\tthis.n = control.n;\r\n\t\tthis.s = control.s;\r\n\t\tthis.e = control.e;\r\n\t\tthis.w = control.w;\r\n\t\tthis.fired = control.fired;\r\n\t\t//console.log(this.fired);\r\n\r\n\t}\r\n\r\n\r\n}\r\n\r\n","export default class SoundSingle {\r\n\tconstructor(sounder, id, path, callback) {\r\n\t\tthis.id = id;\r\n\t\tthis.path = path;\r\n\t\tthis.callback = callback;\r\n\t\tthis.ready = false;\r\n\t\tthis.isPreloading = false;\r\n\t\tthis.isPlaying = false;\r\n\t\tthis.instances = new Array();\r\n\t\tthis.counterID = 0;\r\n\t\tthis.sounder = sounder;\r\n\t\tthis.garbage = new Array();\r\n\t}\r\n\r\n\r\n\tpreload() {\r\n\t\tcreatejs.Sound.alternateExtensions = [\"mp3\"];\r\n\t\tthis.queue = new createjs.LoadQueue(false);\r\n\t\tthis.queue.installPlugin(createjs.Sound);\r\n\t\tthis.queue.addEventListener(\"fileload\", jQuery.proxy(this.singlePreloaded, this));\r\n\t\tvar a = new Array({ id: this.id, src: this.path });\r\n\t\tthis.queue.loadManifest(a);\r\n\t}\r\n\r\n\tsinglePreloaded(e) {\r\n\t\tthis.isPreloading = false;\r\n\t\tthis.ready = true;\r\n\t\tthis.callback.call(null, SoundSingle.PRELOAD_COMPLETE, this);\r\n\t}\r\n\r\n\tplay(lOneInstance, fadeIn,callback) {\r\n\t\tif (!this.ready) {\r\n\t\t\tconsole.log(\"Warning: sound \" + this.id + \" not already preloaded!\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (lOneInstance) {\r\n\t\t\tif (!this.isPlaying) {\r\n\t\t\t\tthis.doPlaySound(fadeIn,callback);\r\n\t\t\t} else {\r\n\t\t\t\t// console.log(\"Warning: sound \" + this.id + \" already playing!\");\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.doPlaySound(fadeIn);\r\n\t\t}\r\n\t}\r\n\r\n\tdoPlaySound(fadeIn,callback) {\r\n\t\tvar sndTmp\r\n\t\tthis.isPlaying = true;\r\n\t\tsndTmp = createjs.Sound.play(this.id);\r\n\t\tsndTmp.intID = this.counterID++;\r\n\t\tsndTmp.addEventListener(\"complete\", jQuery.proxy(this.endSound, this, sndTmp,callback));\r\n\t\tthis.instances.push(sndTmp);\r\n\t\tif (fadeIn) {\r\n\t\t\tthis.doFadeIn(sndTmp);\r\n\t\t}\r\n\t}\r\n\r\n\tgetDuration() {\r\n\t\tfor (var x = 0; x < this.instances.length; x++) {\r\n\t\t\tvar snd = this.instances[x];\r\n\t\t\t//console.log(snd)\r\n\t\t\treturn snd.duration;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tsetStartTime(time) {\r\n\t\tfor (var x = 0; x < this.instances.length; x++) {\r\n\t\t\tvar snd = this.instances[x];\r\n\t\t\t//console.log(snd)\r\n\t\t\tsnd.position = time*1000;\r\n\t\t}\r\n }\r\n\r\n\tendSound(sndTmp, callback) {\r\n\t\tvar a = new Array();\r\n\t\tfor (var x = 0; x < this.instances.length; x++) {\r\n\t\t\tvar snd = this.instances[x];\r\n\t\t\tif (snd.intID != sndTmp.intID) {\r\n\t\t\t\ta.push(snd)\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.instances = a;\r\n\t\tif (this.instances.length == 0) {\r\n\t\t\tthis.isPlaying = false;\r\n\t\t}\r\n\t\tthis.callback.call(null, SoundSingle.SOUND_FINISHED_PLAYING, this);\r\n\t\tif (callback) {\r\n\t\t\tcallback.call(null);\r\n\t\t}\r\n\t}\r\n\r\n\tplayLoop(fadeIn, fadeOut, quanti) {\r\n\t\tif (!this.isPlaying) {\r\n\t\t\tthis.isPlaying = true;\r\n\t\t\tvar sndTmp = createjs.Sound.play(this.id);\r\n\t\t\tsndTmp.intID = this.counterID++;\r\n\t\t\tsndTmp.addEventListener(\"complete\", jQuery.proxy(this.loopSound, this, sndTmp, quanti));\r\n\t\t\tthis.instances.push(sndTmp);\r\n\t\t\tif (fadeIn) {\r\n\t\t\t\tthis.doFadeIn(sndTmp);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// console.log(\"Warning: sound \" + this.id + \" already playing!\");\r\n\t\t}\r\n\t}\r\n\r\n\tloopSound(sndTmp, quanti) {\r\n\t\tif (quanti) {\r\n\t\t\tquanti--;\r\n\t\t}\r\n\t\t//console.log(this.id + \" ||||>\" + quanti)\r\n\t\tthis.endSound(sndTmp);\r\n\t\tthis.callback.call(null, SoundSingle.SOUND_LOOPING, this);\r\n\t\tif (quanti) {\r\n\t\t\tif (quanti > 1) {\r\n\t\t\t\tthis.playLoop(null, null, quanti);\r\n\t\t\t\tthis.sounder.updateVolume();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.playLoop();\r\n\t\t\tthis.sounder.updateVolume();\r\n\t\t}\r\n\t}\r\n\r\n\tpause() {\r\n\t\tfor (var x = 0; x < this.instances.length; x++) {\r\n\t\t\tvar snd = this.instances[x];\r\n\t\t\tsnd.paused = true;\r\n\t\t}\r\n\r\n }\r\n\r\n\tresume() {\r\n\t\t//debugger\r\n\t\tfor (var x = 0; x < this.instances.length; x++) {\r\n\t\t\tvar snd = this.instances[x];\r\n\t\t\tsnd.play();\r\n\t\t\tsnd.paused = false;\r\n\t\t}\r\n\r\n }\r\n\r\n\tstop() {\r\n\t\tfor (var x = 0; x < this.instances.length; x++) {\r\n\t\t\tvar snd = this.instances[x];\r\n\t\t\tsnd.stop();\r\n\t\t}\r\n\t\tthis.killTween();\r\n\t\tthis.instances = new Array();\r\n\t\tthis.isPlaying = false;\r\n\t\tthis.sounder.volume = this.sounder.maxVolume;\r\n\t}\r\n\r\n\tdoFadeIn(sndTmp) {\r\n\t\tif (this.sounder.active) {\r\n\t\t\tconsole.log(\"Volume attuale: \" + this.sounder.volume)\r\n\t\t\t//sndTmp.setVolume(0);\r\n\t\t\tvar counter = { value: 0 };\r\n\t\t\tTweenMax.to(counter, Sounder.FADE_IN_TIME, { value: this.sounder.volume, onUpdate: jQuery.proxy(this.updateVolumeFading, this, sndTmp, counter) });\r\n\t\t\tthis.garbage.push(counter);\r\n\t\t}\r\n\t}\r\n\r\n\tupdateVolumeFading(snd, counter) {\r\n\t\t//console.log(counter.value)\r\n\t\tsnd.setVolume(counter.value);\r\n\t\tthis.sounder.volume = counter.value\r\n\t}\r\n\r\n\tsetVolume(vol, lKill) {\r\n\t\tfor (var x = 0; x < this.instances.length; x++) {\r\n\t\t\tvar snd = this.instances[x];\r\n\t\t\tsnd.setVolume(vol);\r\n\t\t}\r\n\t\tif (lKill) {\r\n\t\t\tthis.killTween();\r\n\t\t}\r\n\t}\r\n\r\n\tkillTween() {\r\n\t\tfor (var x = 0; x < this.garbage.length; x++) {\r\n\t\t\tTweenMax.killTweensOf(this.garbage[x]);\r\n\t\t}\r\n\t\tthis.garbage = new Array();\r\n\t}\r\n\r\n\tvolumeFadeOut() {\r\n\t\tfor (var x = 0; x < this.instances.length; x++) {\r\n\t\t\tvar snd = this.instances[x];\r\n\t\t\tvar counter = { value: this.sounder.volume };\r\n\t\t\tTweenMax.to(counter, Sounder.TOGGLE_FADE_IN_TIME, { value: 0, onUpdate: jQuery.proxy(this.updateVolumeFading, this, snd, counter) });\r\n\t\t\tthis.garbage.push(counter);\r\n\t\t}\r\n\t}\r\n\tvolumeFadeIn() {\r\n\t\tfor (var x = 0; x < this.instances.length; x++) {\r\n\t\t\tvar snd = this.instances[x];\r\n\t\t\tvar counter = { value: this.sounder.volume };\r\n\t\t\tTweenMax.to(counter, Sounder.TOGGLE_FADE_OUT_TIME, { value: this.sounder.maxVolume, onUpdate: jQuery.proxy(this.updateVolumeFading, this, snd, counter) });\r\n\t\t\tthis.garbage.push(counter);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nSoundSingle.PRELOAD_COMPLETE = \"preloadComplete\";\r\nSoundSingle.SOUND_FINISHED_PLAYING = \"soundFinishedPlaying\";\r\nSoundSingle.SOUND_LOOPING = \"soundLooping\";\r\n","import Pqp from \"../Pqp.js\";\r\nimport SoundSingle from \"./SoundSingle.js\";\r\n\r\nexport default class Sounder {\r\n\tconstructor(lAutoStart, callback, maxVolume) {\r\n\t\tthis.aSound = new Array();\r\n\t\tthis.preloaded = 0;\r\n\t\tthis.lAutoStart = lAutoStart;\r\n\t\tthis.callback = callback;\r\n\t\tthis.maxVolume = 1;\r\n\t\tif (!Pqp.isNullOrEmpty(maxVolume)) {\r\n\t\t\tthis.maxVolume = maxVolume;\r\n\t\t}\r\n\t\tthis.volume = this.maxVolume;\r\n\t\tthis.debugEvent = false;\r\n\t\tthis.active = true;\r\n\r\n\r\n\t\tthis.updateVolume();\r\n\t}\r\n\r\n\tadd(id, path) {\r\n\t\t// Public\r\n\t\tfor (var x = 0; x < this.aSound.length; x++) {\r\n\t\t\tif (this.aSound[x].id == id) {\r\n\t\t\t\tthis.dispatchEvent(Sounder.ALL_SOUNDS_READY);\r\n\t\t\t\t//console.log(\"Warning! Il suono \" + id + \" esiste già !\");\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.aSound.push(new SoundSingle(this, id, path, jQuery.proxy(this.eventHandler, this)));\r\n\t\tif (this.lAutoStart) {\r\n\t\t\tthis.checkPreloadList();\r\n\t\t}\r\n\t}\r\n\r\n\tinit() {\r\n\t\t// Public\r\n\t\tthis.lAutoStart = true;\r\n\t\tthis.checkPreloadList();\r\n\t}\r\n\r\n\tcheckPreloadList() {\r\n\t\tif (this.preloaded < this.aSound.length) {\r\n\t\t\tif (!this.aSound[this.preloaded].isPreloading) {\r\n\t\t\t\tthis.preloadNextSound();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.dispatchEvent(Sounder.ALL_SOUNDS_READY);\r\n\t\t}\r\n\t}\r\n\r\n\ttrace(xVal, color) {\r\n\t\t// Trace controllato\r\n\t\tif (this.debugEvent) {\r\n\t\t\tif (Pqp.isNullOrEmpty(color)) {\r\n\t\t\t\tconsole.log(xVal);\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log(xVal, color);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n\r\n\tpreloadNextSound() {\r\n\t\tthis.aSound[this.preloaded].isPreloading = true;\r\n\t\tthis.dispatchEvent(Sounder.START_PRELOADING_ONE_SOUND, this.aSound[this.preloaded]);\r\n\r\n\t\tthis.aSound[this.preloaded].preload();\r\n\r\n\t}\r\n\r\n\teventHandler(e, snd) {\r\n\t\tif (e == SoundSingle.PRELOAD_COMPLETE) {\r\n\t\t\tthis.dispatchEvent(Sounder.ONE_SOUND_PRELOADED, this.aSound[this.preloaded]);\r\n\t\t\tthis.preloaded++;\r\n\t\t\tthis.checkPreloadList();\r\n\t\t}\r\n\t\tif (e == SoundSingle.SOUND_FINISHED_PLAYING) {\r\n\t\t\tthis.dispatchEvent(Sounder.SOUND_FINISHED_PLAYING, snd);\r\n\t\t}\r\n\t\tif (e == SoundSingle.SOUND_LOOPING) {\r\n\t\t\tthis.dispatchEvent(Sounder.SOUND_LOOPING, snd);\r\n\t\t}\r\n\t}\r\n\r\n\tupdateVolume(lKill) {\r\n\t\tif (this.active) {\r\n\t\t\tthis.volume = this.maxVolume;\r\n\t\t} else {\r\n\t\t\tthis.volume = 0;\r\n\t\t}\r\n\t\tfor (var x = 0; x < this.aSound.length; x++) {\r\n\t\t\tthis.aSound[x].setVolume(this.volume, lKill);\r\n\t\t}\r\n\t}\r\n\r\n\tsetStartTime(id, time) {\r\n\t\tlet snd = this.getSoundById(id);\r\n\t\tsnd.setStartTime(time);\r\n }\r\n\tgetDuration(id) {\r\n\t\tlet snd = this.getSoundById(id);\r\n\t\t//console.log(snd)\r\n\t\treturn snd.getDuration();\r\n }\r\n\r\n\tgetSoundById(id) {\r\n\t\tfor (var x = 0; x < this.aSound.length; x++) {\r\n\t\t\tif (this.aSound[x].id == id) {\r\n\t\t\t\treturn this.aSound[x];\r\n\t\t\t}\r\n\t\t}\r\n\t\tconsole.log(\"Warning! Non trovo il suono \" + id + \"!\");\r\n\t\treturn null;\r\n\t}\r\n\r\n\r\n\tplay(id, lOneInstance, fadeIn, fadeOut,callback) {\r\n\t\t// Public (fadeout not supported)\r\n\t\ttry {\r\n\t\t\t//debugger\r\n\t\t\tvar snd = this.getSoundById(id);\r\n\t\t\tsnd.play(lOneInstance, fadeIn, callback);\r\n\t\t\tthis.updateVolume();\r\n\t\t} catch (e) {\r\n\t\t\talert(\"Sorry something went wrong trying to play sound, please reload the game!\");\r\n\t\t}\r\n\t}\r\n\r\n\tplayLoop(id, fadeIn, fadeOut,quanti) {\r\n\t\t// Public (fadeout not supported)\r\n\t\ttry {\r\n\t\t\tvar snd = this.getSoundById(id);\r\n\t\t\tsnd.playLoop(fadeIn, false, quanti);\r\n\t\t\tthis.updateVolume();\r\n\t\t} catch (e) {\r\n\t\t\talert(\"Sorry something went wrong trying to play sound, please reload the game!\");\r\n\t\t}\r\n\t}\r\n\r\n\tstop(id) {\r\n\t\t// Public\r\n\t\tvar snd = this.getSoundById(id);\r\n\t\tsnd.stop();\r\n\t\tthis.volume = this.maxVolume;\r\n\t}\r\n\r\n\tpause(id) {\r\n\t\tvar snd = this.getSoundById(id);\r\n\t\tsnd.pause();\r\n\t}\r\n\r\n\r\n\tresume(id) {\r\n\t\tvar snd = this.getSoundById(id);\r\n\t\t//snd.play();\r\n\t\tsnd.resume();\r\n\t}\r\n\r\n\tactivate(lFlag) {\r\n\t\t// Public\r\n\t\tthis.active = lFlag;\r\n\t\tthis.updateVolume();\r\n\t}\r\n\r\n\tsetVolume(vol) {\r\n\t\t// Public\r\n\t\tthis.maxVolume = vol;\r\n\t\tthis.updateVolume(true);\r\n\t}\r\n\r\n\tdispatchEvent(type) {\r\n\t\t// Funzione che si occupa di passare gli eventi alla funzione registrata\r\n\t\tvar e = new Object();\r\n\t\te.type = type;\r\n\t\tif (type == Sounder.ALL_SOUNDS_READY) {\r\n\t\t\tthis.trace(\"Evt all sounds ready\", 2);\r\n\t\t}\r\n\t\tif (type == Sounder.ONE_SOUND_PRELOADED) {\r\n\t\t\te.sound = arguments[1];\r\n\t\t\tthis.trace(\"Evt one sound preloaded: \" + e.sound.id, 2);\r\n\t\t}\r\n\t\tif (type == Sounder.START_PRELOADING_ONE_SOUND) {\r\n\t\t\te.sound = arguments[1];\r\n\t\t\tthis.trace(\"Evt start preloading: \" + e.sound.id, 2);\r\n\t\t}\r\n\t\tif (type == Sounder.SOUND_FINISHED_PLAYING) {\r\n\t\t\te.sound = arguments[1];\r\n\t\t\tthis.trace(\"Evt sound finished playing: \" + e.sound.id, 2);\r\n\t\t}\r\n\t\tif (type == Sounder.SOUND_LOOPING) {\r\n\t\t\te.sound = arguments[1];\r\n\t\t\tthis.trace(\"Evt sound looping: \" + e.sound.id, 2);\r\n\t\t}\r\n\t\tif (!Pqp.isNullOrEmpty(this.callback)) {\r\n\t\t\tthis.callback.call(null, e);\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleVolume(lOn) {\r\n\t\tconsole.log(\"Volume attuale \" + this.volume)\r\n\t\tthis.active = lOn;\r\n\t\tfor (var x = 0; x < this.aSound.length; x++) {\r\n\t\t\tvar snd = this.aSound[x];\r\n\t\t\tif (lOn) {\r\n\t\t\t\tsnd.volumeFadeIn();\r\n\t\t\t} else {\r\n\t\t\t\tsnd.volumeFadeOut();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\nSounder.FADE_IN_TIME = 4;\r\nSounder.TOGGLE_FADE_IN_TIME = 2;\r\nSounder.TOGGLE_FADE_OUT_TIME = 2;\r\n\r\nSounder.ALL_SOUNDS_READY = \"allSoundsReady\";\r\nSounder.START_PRELOADING_ONE_SOUND = \"startPreloadingOneSound\";\r\nSounder.ONE_SOUND_PRELOADED = \"oneSoundPreloaded\";\r\nSounder.SOUND_FINISHED_PLAYING = \"soundFinishedPlaying\";\r\nSounder.SOUND_LOOPING = \"soundLooping\";\r\n\r\n","import Pqp from \"../3x1010/Pqp.js\";\r\n//import Sounder from \"./Tools/sounder/Sounder\";\r\nimport MainLoop from \"./Tools/MainLoop\";\r\nimport Spran from \"./Tools/spran/Spran\";\r\nimport Controls from \"./Tools/controls/Controls\";\r\nimport Main from \"./Main.js\";\r\nimport Sounder from \"../3x1010/sounder/Sounder.js\";\r\n\r\nexport default class Game {\r\n constructor(idtheme, deaths, maxDistance, isAngry, callback) {\r\n this.clipsDebris = new Array();\r\n this.clipsSpearmen = new Array();\r\n this.cornholioStatus = Game.STATUS_CORNHOLIO_RUN;\r\n this.tickFire = 0;\r\n this.callback = callback;\r\n this.isFiring = true;\r\n this.currentCoverCount = 0;\r\n this.theme = idtheme;\r\n this.canCreateSpearmen = true;\r\n this.soundSpears = 0;\r\n this.currentLevel = 0;\r\n this.totalTick = 0;\r\n this.themeDuration = NaN;\r\n this.isDead = false;\r\n this.canFire = true;\r\n this.spearsOrigin = new Array();\r\n this.spearsOriginHistory = new Array();\r\n this.deaths = deaths;\r\n this.maxDistance = maxDistance;\r\n this.isAngry = isAngry;\r\n this.seeked = false;\r\n this.spears = 0;\r\n jQuery(\".js-main\").removeClass(\"black\");\r\n jQuery(\".js-main\").addClass(\"blue\");\r\n\r\n\r\n }\r\n\r\n init() {\r\n this.createSection();\r\n this.createControls();\r\n this.createDebris();\r\n this.createPyramid();\r\n this.createLeftSpearmen()\r\n this.createRightSpearmen()\r\n this.createCornholio();\r\n this.updateDeaths();\r\n this.showAngryMessage();\r\n if (this.deaths >= 3) {\r\n jQuery(\".js-give-up\",this.mc).show();\r\n jQuery(\".js-give-up\", this.mc).on(\"click\",this.giveUp.bind(this));\r\n }\r\n\r\n jQuery(window).on(\"resize.game\", this.onResize.bind(this));\r\n\r\n this.startTheme();\r\n this.initListeners();\r\n MainLoop.subscribe(this, \"onMainLoop\", MainLoop.PRIORITY_MAIN);\r\n MainLoop.start();\r\n }\r\n\r\n giveUp() {\r\n //if (!Main.savegame.rickrolled) {\r\n// Main.savegame.rickrolled = true;\r\n window.open(\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\", \"_blank\");\r\n // }\r\n\r\n for (let x = 0; x < 4; x++) {\r\n //Sounder.stop(\"spear\" + x);\r\n Main.that.sounder.stop(\"spear\" + x);\r\n }\r\n //Sounder.stop(this.theme);\r\n Main.that.sounder.stop(this.theme);\r\n this.dispatch({ type: Game.EVENT_GIVEUP })\r\n }\r\n\r\n showAngryMessage() {\r\n if (this.isAngry) {\r\n this.isAngry = false;\r\n let mex = Game.getNextAngryMessage();\r\n this.showMessage(mex);\r\n }\r\n }\r\n\r\n showSpurMessage() {\r\n let mex = this.getNextSpurMessage();\r\n this.showMessage(mex);\r\n }\r\n\r\n showMessage(mex) {\r\n let clipMessage = jQuery(\"#template-message\").clone();\r\n clipMessage.removeAttr(\"id\");\r\n clipMessage.text(mex);\r\n jQuery(\".js-upper\", this.mc).append(clipMessage);\r\n this.idto = setTimeout(this.removeMessage.bind(this, clipMessage), 4000);\r\n if (Main.savegame.flash) {\r\n requestAnimationFrame(this.blinkMessage.bind(this, clipMessage, 0, 0));\r\n }\r\n\r\n }\r\n\r\n blinkMessage(clip, index, mod) {\r\n mod++;\r\n if (mod % 4 === 0) {\r\n index++;\r\n if (index >= Game.BLINK_COLORS.length) {\r\n index = 0;\r\n }\r\n clip.css(\"color\", Game.BLINK_COLORS[index]);\r\n if (clip.is(\":visible\")) {\r\n requestAnimationFrame(this.blinkMessage.bind(this, clip, index,mod));\r\n }\r\n } else {\r\n requestAnimationFrame(this.blinkMessage.bind(this, clip, index, mod));\r\n }\r\n }\r\n\r\n\r\n removeMessage(clipMessage) {\r\n clipMessage.remove();\r\n }\r\n\r\n static getNextAngryMessage() {\r\n if (!Game.angry) {\r\n Game.angry = new Array();\r\n }\r\n if (Game.angry.length === 0) {\r\n Game.angry = Game.MESSAGES_ANGRY.slice();\r\n Pqp.shuffle(Game.angry);\r\n Pqp.shuffle(Game.angry);\r\n }\r\n return Game.angry.pop();\r\n }\r\n\r\n getNextSpurMessage() {\r\n if (!this.spur) {\r\n this.spur = new Array();\r\n }\r\n if (this.spur.length === 0) {\r\n this.spur = Game.MESSAGES_SPUR.slice();\r\n Pqp.shuffle(this.spur);\r\n Pqp.shuffle(this.spur);\r\n }\r\n return this.spur.pop();\r\n }\r\n\r\n\r\n updateDeaths() {\r\n jQuery(\".js-deaths\", this.mc).text(\"\" + this.deaths)\r\n jQuery(\".js-max-distance-text\", this.mc).text(this.maxDistance + \"%\");\r\n if (this.maxDistance === 0) {\r\n jQuery(\".js-max-distance\", this.mc).hide();\r\n }\r\n }\r\n\r\n initListeners() {\r\n jQuery(window).off(\"blur\");\r\n jQuery(window).off(\"focus\");\r\n jQuery(window).on(\"blur\", this.onMinimize.bind(this));\r\n jQuery(window).on(\"focus\", this.onMaximize.bind(this));\r\n }\r\n\r\n onMinimize() {\r\n //Sounder.pauseAll();\r\n //Sounder.pause(this.theme);\r\n for (let x = 0; x < 4; x++) {\r\n //Sounder.stop(\"spear\" + x);\r\n Main.that.sounder.pause(\"spear\" + x);\r\n }\r\n //Sounder.stop(this.theme);\r\n Main.that.sounder.pause(this.theme);\r\n Main.that.sounder.pause(\"intro\");\r\n\r\n\r\n MainLoop.pause();\r\n TweenMax.pauseAll();\r\n }\r\n onMaximize() {\r\n //Sounder.resume(this.theme);\r\n// Sounder.resumeAll();\r\n for (let x = 0; x < 4; x++) {\r\n //Sounder.stop(\"spear\" + x);\r\n Main.that.sounder.resume(\"spear\" + x);\r\n }\r\n //Sounder.stop(this.theme);\r\n Main.that.sounder.resume(this.theme);\r\n Main.that.sounder.resume(\"intro\");\r\n\r\n\r\n MainLoop.resume();\r\n TweenMax.resumeAll();\r\n }\r\n\r\n\r\n startTheme() {\r\n //Sounder.play(this.theme, this.themeEnded.bind(this));\r\n Main.that.sounder.play(this.theme,true,false,false, this.themeEnded.bind(this));\r\n }\r\n\r\n createSection() {\r\n this.mc = jQuery(\"#template-game-screen\").clone();\r\n this.mc.removeAttr(\"id\");\r\n jQuery(\".js-main\").append(this.mc);\r\n }\r\n\r\n destroy() {\r\n jQuery(window).off(\"blur\");\r\n jQuery(window).off(\"focus\");\r\n jQuery(window).off(\"resize.game\");\r\n MainLoop.stop();\r\n MainLoop.unsubscribe(this);\r\n MainLoop.unsubscribe(this.pyramid);\r\n MainLoop.unsubscribe(this.cornholio);\r\n if (this.cornholioDead) {\r\n MainLoop.unsubscribe(this.cornholioDead);\r\n }\r\n for (let x = 0; x < this.clipsDebris.length; x++) {\r\n MainLoop.unsubscribe(this.clipsDebris[x].spran)\r\n }\r\n for (let x = 0; x < this.clipsSpearmen.length; x++) {\r\n MainLoop.unsubscribe(this.clipsSpearmen[x].spran)\r\n }\r\n\r\n this.mc.remove();\r\n this.controls.destroy();\r\n\r\n }\r\n\r\n onMainLoop() {\r\n if (isNaN(this.themeDuration)) {\r\n //this.themeDuration = Sounder.getDuration(this.theme);\r\n this.themeDuration = Main.that.sounder.getDuration(this.theme)/1000;\r\n //console.log(this.themeDuration)\r\n }\r\n this.checkCornholioStatus()\r\n this.tickFire++;\r\n this.totalTick++;\r\n this.manageDebrisCover();\r\n if (!isNaN(this.themeDuration)) {\r\n if (Game.beginNearEnd) {\r\n if (!this.seeked) {\r\n this.seeked = true;\r\n //Sounder.seek(this.theme, this.themeDuration - 4)\r\n Main.that.sounder.setStartTime(this.theme, this.themeDuration - 4)\r\n }\r\n }\r\n\r\n\r\n this.checkLevel();\r\n }\r\n\r\n }\r\n\r\n checkLevel() {\r\n //this.currentLevel = Math.floor(this.totalTick * MainLoop.FPS_LIMIT / 1000)\r\n if (Game.beginNearEnd) {\r\n this.distance = 100;\r\n jQuery(\".js-distance\", this.mc).text(this.distance + \"%\")\r\n this.currentLevel = Game.LEVELS.length-1;\r\n this.updatePyramid();\r\n return;\r\n }\r\n\r\n\r\n let elapsed = (Math.floor(this.totalTick / MainLoop.FPS_LIMIT));\r\n\r\n let perc = 0;\r\n for (let x = 0; x <= this.currentLevel; x++) {\r\n perc += Game.LEVELS[x].lasts;\r\n }\r\n\r\n if (!this.isDead) {\r\n\r\n this.distance = Math.floor((elapsed / this.themeDuration) * 100);\r\n if (this.distance > 100) {\r\n this.distance = 100;\r\n }\r\n jQuery(\".js-distance\", this.mc).text(this.distance + \"%\")\r\n }\r\n\r\n if (perc < 1) {\r\n let value = this.themeDuration * perc;\r\n //console.log(elapsed + \" \" + value);\r\n if (elapsed > value) {\r\n this.currentLevel++;\r\n this.updatePyramid();\r\n this.showSpurMessage();\r\n }\r\n }\r\n //this.tickFire % Math.floor(100 * MainLoop.FPS_LIMIT / 1000)\r\n }\r\n\r\n\r\n manageDebrisCover() {\r\n if (this.currentCoverCount === 8) {\r\n\r\n return\r\n }\r\n\r\n if (this.currentCoverCount === 7) {\r\n this.tickFire = 118;\r\n this.currentCoverCount++;\r\n if (!Game.DEBUG_NO_FIRE) {\r\n this.isFiring = false;\r\n }\r\n jQuery(\".js-debris-start-cover\", this.mc).remove();\r\n }\r\n\r\n if (this.tickFire % Math.floor(100 * MainLoop.FPS_LIMIT / 1000) === 0) {\r\n this.currentCoverCount++;\r\n for (let x = 0; x < 4; x++) {\r\n jQuery(\".js-cover-\" + x, this.mc).addClass(\"cover-\" + x + \"-step-\" + this.currentCoverCount);\r\n }\r\n }\r\n }\r\n\r\n createControls() {\r\n this.controls = new Controls(this);\r\n this.controls.init();\r\n this.controls.enable(true);\r\n }\r\n\r\n\r\n onResize() {\r\n for (let x = 0; x < this.clipsDebris.length; x++) {\r\n this.clipsDebris[x].spran.pause();\r\n MainLoop.unsubscribe(this.clipsDebris[x].spran)\r\n this.clipsDebris[x].div.remove();\r\n }\r\n this.clipsDebris = new Array();\r\n this.createDebris();\r\n }\r\n\r\n createPyramid() {\r\n let div = jQuery(\".js-pyramid\", this.mc);\r\n let anim = JSON.parse(JSON.stringify(Game.PYRAMID));\r\n let spran = new Spran(div, anim);\r\n spran.init();\r\n spran.setAnimation(\"level0\")\r\n MainLoop.subscribe(spran)\r\n this.pyramid = spran;\r\n }\r\n\r\n updatePyramid() {\r\n this.pyramid.setAnimation(\"level\" + this.currentLevel);\r\n }\r\n\r\n\r\n createDebris() {\r\n let lCondExit = false;\r\n let x = 0 - 4;\r\n while (!lCondExit) {\r\n let div = jQuery(\"#template-lower-debris\").clone();\r\n div.removeAttr(\"id\");\r\n jQuery(\".js-debris\", this.mc).append(div);\r\n div.css(\"left\", x);\r\n x += div.width();\r\n let anim = JSON.parse(JSON.stringify(Game.DEBRIS));\r\n\r\n let spran = new Spran(div, anim);\r\n spran.init();\r\n spran.setAnimation(\"default\")\r\n MainLoop.subscribe(spran)\r\n\r\n if (x > jQuery(window).width()) {\r\n lCondExit = true;\r\n }\r\n\r\n this.clipsDebris.push({ div: div, spran: spran });\r\n\r\n }\r\n\r\n lCondExit = false;\r\n x = jQuery(window).width() / 2;\r\n while (!lCondExit) {\r\n\r\n let div = jQuery(\"#template-upper-debris\").clone();\r\n div.removeAttr(\"id\");\r\n jQuery(\".js-debris\", this.mc).append(div);\r\n div.css(\"left\", x);\r\n x += div.width();\r\n\r\n let anim = JSON.parse(JSON.stringify(Game.DEBRIS));\r\n anim[0].sheet = \"debris1\";\r\n let spran = new Spran(div, anim);\r\n spran.init();\r\n spran.setAnimation(\"default\")\r\n MainLoop.subscribe(spran)\r\n\r\n if (x > jQuery(window).width()) {\r\n lCondExit = true;\r\n }\r\n this.clipsDebris.push({ div: div, spran: spran });\r\n }\r\n\r\n lCondExit = false;\r\n x = jQuery(window).width() / 2;\r\n while (!lCondExit) {\r\n\r\n let div = jQuery(\"#template-upper-debris\").clone();\r\n div.removeAttr(\"id\");\r\n jQuery(\".js-debris\", this.mc).append(div);\r\n x -= div.width();\r\n div.css(\"left\", x);\r\n\r\n\r\n let anim = JSON.parse(JSON.stringify(Game.DEBRIS));\r\n anim[0].sheet = \"debris2\";\r\n anim[0].flip = true;\r\n let spran = new Spran(div, anim);\r\n spran.init();\r\n spran.setAnimation(\"default\")\r\n MainLoop.subscribe(spran)\r\n\r\n if (x < 0) {\r\n lCondExit = true;\r\n }\r\n this.clipsDebris.push({ div: div, spran: spran });\r\n\r\n }\r\n\r\n if (this.cornholioStatus === Game.STATUS_CORNHOLIO_DEAD) {\r\n for (let x = 0; x < this.clipsDebris.length; x++) {\r\n this.clipsDebris[x].spran.pause();\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n createRightSpearmen() {\r\n\r\n let o;\r\n o = this.createNextRightSperamen()\r\n o.spran.setAnimation(\"frame14\")\r\n o = this.createNextRightSperamen()\r\n o.spran.setAnimation(\"frame9\")\r\n o = this.createNextRightSperamen()\r\n o.spran.setAnimation(\"frame4\")\r\n\r\n\r\n }\r\n\r\n createLeftSpearmen() {\r\n let o;\r\n o = this.createNextLeftSperamen()\r\n o.spran.setAnimation(\"frame14\")\r\n o = this.createNextLeftSperamen()\r\n o.spran.setAnimation(\"frame9\")\r\n o = this.createNextLeftSperamen()\r\n o.spran.setAnimation(\"frame4\")\r\n }\r\n\r\n\r\n\r\n\r\n createNextRightSperamen() {\r\n let div = jQuery(\"#template-spearmen\").clone();\r\n let id = \"sp\" + Game.ENUM++\r\n div.attr(\"id\", id);\r\n jQuery(\".js-lower\", this.mc).append(div);\r\n\r\n let anim = JSON.parse(JSON.stringify(Game.SPEARMEN));\r\n let spran = new Spran(div, anim, this.spranRightEventsHandler.bind(this, div));\r\n spran.init();\r\n spran.setAnimation(\"frame0\");\r\n MainLoop.subscribe(spran)\r\n\r\n let o = { div: div, spran: spran }\r\n this.clipsSpearmen.push(o);\r\n\r\n return o;\r\n\r\n }\r\n\r\n spranRightEventsHandler(div, e) {\r\n if (e.type === Spran.EVENT_START_ANIMATION) {\r\n let id = e.data.anim.id;\r\n if (id === \"frame5\") {\r\n if (this.canCreateSpearmen) {\r\n this.createNextRightSperamen();\r\n }\r\n }\r\n\r\n let pos = this.getSpearmenAnimationPos(id);\r\n if (pos) {\r\n div.css(\"top\", pos.top);\r\n div.css(\"left\", pos.left);\r\n } else {\r\n this.removeSpearmen(div);\r\n }\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n getSpearmenAnimationPos(id) {\r\n for (let x = 0; x < Game.SPEARMEN_POS.length; x++) {\r\n if (Game.SPEARMEN_POS[x].id === id) {\r\n return Game.SPEARMEN_POS[x];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n\r\n createNextLeftSperamen() {\r\n let div = jQuery(\"#template-spearmen\").clone();\r\n let id = \"sp\" + Game.ENUM++\r\n div.attr(\"id\", id);\r\n jQuery(\".js-lower\", this.mc).append(div);\r\n\r\n let anim = JSON.parse(JSON.stringify(Game.SPEARMEN));\r\n for (let x = 0; x < anim.length; x++) {\r\n anim[x].flip = true;\r\n }\r\n\r\n let spran = new Spran(div, anim, this.spranLeftEventsHandler.bind(this, div));\r\n spran.init();\r\n spran.setAnimation(\"frame0\");\r\n MainLoop.subscribe(spran)\r\n let o = { div: div, spran: spran };\r\n this.clipsSpearmen.push(o);\r\n return o;\r\n }\r\n\r\n spranLeftEventsHandler(div, e) {\r\n if (e.type === Spran.EVENT_START_ANIMATION) {\r\n let id = e.data.anim.id;\r\n if (id === \"frame5\") {\r\n if (this.canCreateSpearmen) {\r\n this.createNextLeftSperamen();\r\n }\r\n }\r\n\r\n let pos = this.getSpearmenAnimationPos(id);\r\n if (pos) {\r\n div.css(\"top\", pos.top);\r\n let tmp = parseFloat(pos.left.split(\"%\")[0]);\r\n let left = 100 - tmp - 7.3;\r\n left = left + \"%\"\r\n div.css(\"left\", left);\r\n } else {\r\n this.removeSpearmen(div);\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n removeSpearmen(div) {\r\n let id = div.attr(\"id\");\r\n for (let x = 0; x < this.clipsSpearmen.length; x++) {\r\n if (this.clipsSpearmen[x].div.attr(\"id\") === id) {\r\n MainLoop.unsubscribe(this.clipsSpearmen[x].spran)\r\n this.clipsSpearmen.splice(x, 1);\r\n break;\r\n }\r\n }\r\n div.remove();\r\n this.checkFire();\r\n }\r\n\r\n checkFire() {\r\n if (this.cornholioStatus === Game.STATUS_CORNHOLIO_DEAD) {\r\n return;\r\n }\r\n if (this.distance >= 99) {\r\n return;\r\n }\r\n\r\n // console.log(\"CHECK\")\r\n //console.log(this.tickFire)\r\n if (this.tickFire >= this.getSpearTimeForLevel()) {\r\n if (!this.isFiring) {\r\n this.isFiring = true;\r\n this.fire();\r\n }\r\n }\r\n\r\n }\r\n\r\n getSpearTimeForLevel() {\r\n let level = Game.LEVELS[this.currentLevel];\r\n if (Game.EASIER) {\r\n return level.spear + 30;\r\n }\r\n\r\n return level.spear;\r\n }\r\n\r\n\r\n fire() {\r\n if (!this.canFire) {\r\n return\r\n }\r\n\r\n let spear = jQuery(\"#template-spear\").clone();\r\n spear.removeAttr(\"id\");\r\n jQuery(\".js-lower\", this.mc).append(spear);\r\n\r\n let anim = JSON.parse(JSON.stringify(Game.SPEAR));\r\n let n = this.getNextSpearOrigin();\r\n let start = 0 - Math.floor(spear.width() / jQuery(window).width() * 100);\r\n let end = 100;\r\n let lFromLeft = true;\r\n let lUp = true;\r\n //n = 2;\r\n if (n === 0) {\r\n spear.addClass(\"spear-up\")\r\n anim[0].flip = true;\r\n start = 100;\r\n end = 0 - Math.floor(spear.width() / jQuery(window).width() * 100);\r\n lFromLeft = false;\r\n } else if (n === 1) {\r\n anim[0].flip = true;\r\n spear.addClass(\"spear-down\")\r\n start = 100;\r\n end = 0 - Math.floor(spear.width() / jQuery(window).width() * 100);\r\n lUp = false;\r\n lFromLeft = false;\r\n } else if (n === 2) {\r\n spear.addClass(\"spear-up\")\r\n } else {\r\n spear.addClass(\"spear-down\")\r\n lUp = false;\r\n }\r\n let spran = new Spran(spear, anim);\r\n spran.init();\r\n spran.setAnimation(\"default\");\r\n\r\n spear.css(\"left\", start + \"%\");\r\n TweenMax.to(spear, this.getSpearTime(), { left: end + \"%\", ease: Linear.easeNone, onUpdate: this.checkHit.bind(this, spear, spran, lFromLeft, lUp), onComplete: this.removeSpear.bind(this, spear, spran, lFromLeft, lUp) });\r\n\r\n //Sounder.play(\"spear\" + this.soundSpears);\r\n Main.that.sounder.play(\"spear\" + this.soundSpears);\r\n if (this.soundSpears < 3) {\r\n this.soundSpears++;\r\n }\r\n }\r\n\r\n getSpearTime() {\r\n if (Game.EASIER) {\r\n let perc = (100-this.distance) / 100;\r\n let time = Game.ARROW_TIME_ALT + 0.4 * perc;\r\n //console.log(time);\r\n return time;\r\n }\r\n return Game.ARROW_TIME;\r\n }\r\n\r\n\r\n getNextSpearOrigin() {\r\n let n = Pqp.rnd(3);\r\n if (this.spearsOrigin.indexOf(n) >= 0) {\r\n if (this.spearsOrigin.length > 2) {\r\n let n1 = Pqp.rnd(3);\r\n while (n1 === n) {\r\n n1 = Pqp.rnd(3);\r\n }\r\n this.spearsOrigin = new Array();\r\n this.spearsOrigin.push(n1);\r\n n = n1;\r\n } else {\r\n this.spearsOrigin.push(n);\r\n }\r\n } else {\r\n this.spearsOrigin = new Array();\r\n this.spearsOrigin.push(n);\r\n }\r\n\r\n this.spearsOriginHistory.push(n);\r\n return n;\r\n\r\n }\r\n\r\n checkHit(spear, spran, lFromLeft, lUp) {\r\n\r\n if (Game.invincible) {\r\n return;\r\n }\r\n\r\n // 38,52\r\n let percs = Math.floor(spear.width() / jQuery(window).width() * 100);\r\n let left = parseInt(spear.css(\"left\"));\r\n let perc = Math.floor(left / jQuery(window).width() * 100);\r\n if (lFromLeft) {\r\n if ((perc >= 38) && (perc <= 38 + percs)) {\r\n if (lUp) {\r\n if (this.cornholioStatus !== Game.STATUS_CORNHOLIO_CROUCH) {\r\n let id = \"nw\";\r\n let anim = this.cornholio.getCurrentAnimName();\r\n let perc = 0;\r\n if (anim === \"jump\") {\r\n let frame = this.cornholio.getCurrentFrame();\r\n if (frame === 0 || frame === 6) {\r\n perc = 1;\r\n } else if (frame === 1 || frame === 5) {\r\n perc = 2;\r\n } else if (frame === 2 || frame === 3) {\r\n perc = 3;\r\n } else if (frame === 3) {\r\n perc = 4;\r\n }\r\n }\r\n if (perc !== 0) {\r\n id = \"sw\";\r\n }\r\n\r\n // Dead!\r\n this.removeSpear(spear, spran);\r\n this.die(id, perc)\r\n }\r\n } else {\r\n if (this.cornholioStatus !== Game.STATUS_CORNHOLIO_JUMP) {\r\n // Dead!\r\n this.removeSpear(spear, spran);\r\n this.die(\"sw\", 0)\r\n }\r\n }\r\n }\r\n } else {\r\n if ((perc <= 52) && (perc >= 52 - percs)) {\r\n if (lUp) {\r\n if (this.cornholioStatus !== Game.STATUS_CORNHOLIO_CROUCH) {\r\n let id = \"ne\";\r\n let anim = this.cornholio.getCurrentAnimName();\r\n let perc = 0;\r\n if (anim === \"jump\") {\r\n let frame = this.cornholio.getCurrentFrame();\r\n if (frame === 0 || frame === 6) {\r\n perc = 1;\r\n } else if (frame === 1 || frame === 5) {\r\n perc = 2;\r\n } else if (frame === 2 || frame === 3) {\r\n perc = 3;\r\n } else if (frame === 3) {\r\n perc = 4;\r\n }\r\n }\r\n\r\n if (perc !== 0) {\r\n id = \"se\";\r\n }\r\n\r\n // Dead!\r\n this.removeSpear(spear, spran);\r\n this.die(id, perc)\r\n }\r\n } else {\r\n if (this.cornholioStatus !== Game.STATUS_CORNHOLIO_JUMP) {\r\n // Dead!\r\n this.removeSpear(spear, spran);\r\n this.die(\"se\", 0)\r\n }\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n removeSpear(spear, spran, fromLeft) {\r\n spran.pause();\r\n spear.remove();\r\n this.spears++;\r\n this.tickFire = 0;\r\n this.isFiring = false;\r\n }\r\n\r\n\r\n checkCornholioStatus() {\r\n\r\n if (this.cornholioStatus === Game.STATUS_CORNHOLIO_DEAD) {\r\n return;\r\n }\r\n\r\n if (this.cornholioStatus === Game.STATUS_CORNHOLIO_RUN) {\r\n if (this.controls.n) {\r\n this.cornholioStatus = Game.STATUS_CORNHOLIO_JUMP;\r\n this.controls.reset();\r\n this.cornholio.setAnimation(\"jump\");\r\n }\r\n if (this.controls.s) {\r\n this.cornholioStatus = Game.STATUS_CORNHOLIO_CROUCH;\r\n this.cornholio.setAnimation(\"crouch\");\r\n }\r\n }\r\n if (this.cornholioStatus === Game.STATUS_CORNHOLIO_JUMP) {\r\n this.controls.reset();\r\n }\r\n\r\n if (this.cornholioStatus === Game.STATUS_CORNHOLIO_CROUCH) {\r\n if (!this.controls.s) {\r\n this.cornholioStatus = Game.STATUS_CORNHOLIO_RUN;\r\n this.cornholio.setAnimation(\"run\");\r\n }\r\n }\r\n\r\n }\r\n\r\n cornholioEventsHandler(e) {\r\n if (e.type === Spran.EVENT_END_ANIMATION) {\r\n if (e.data.anim.id === \"jump\") {\r\n this.cornholioStatus = Game.STATUS_CORNHOLIO_RUN;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n createCornholio() {\r\n let div = jQuery(\".js-cornholio\", this.mc);\r\n let anim = JSON.parse(JSON.stringify(Game.CORNHOLIO));\r\n let spran = new Spran(div, anim, this.cornholioEventsHandler.bind(this));\r\n spran.init();\r\n spran.setAnimation(\"run\");\r\n MainLoop.subscribe(spran)\r\n this.cornholio = spran;\r\n }\r\n\r\n die(idAnim, incUp) {\r\n this.isDead = true;\r\n jQuery(\".js-deaths\", this.mc).text(\"\" + (this.deaths + 1))\r\n for (let x = 0; x < 4; x++) {\r\n/// Sounder.stop(\"spear\" + x);\r\n Main.that.sounder.stop(\"spear\" + x);\r\n }\r\n //Sounder.play(\"death\");\r\n Main.that.sounder.play(\"death\");\r\n\r\n\r\n for (let x = 0; x < this.clipsDebris.length; x++) {\r\n this.clipsDebris[x].spran.pause();\r\n }\r\n for (let x = 0; x < this.clipsSpearmen.length; x++) {\r\n this.clipsSpearmen[x].spran.pause();\r\n }\r\n this.cornholioStatus = Game.STATUS_CORNHOLIO_DEAD;\r\n\r\n this.cornholio.pause();\r\n jQuery(\".js-cornholio\", this.mc).hide();\r\n\r\n let div = jQuery(\".js-cornholio-dead\", this.mc);\r\n div.addClass(\"cornholio-dead-up-\" + incUp);\r\n\r\n\r\n div.show();\r\n if (idAnim.indexOf(\"e\") >= 0) {\r\n div.addClass(\"cornholio-dead-e\");\r\n } else {\r\n div.addClass(\"cornholio-dead-w\");\r\n }\r\n\r\n let anim = JSON.parse(JSON.stringify(Game.CORNHOLIO_DEAD));\r\n let spran = new Spran(div, anim, this.cornholioDeadEventsHandler.bind(this));\r\n spran.init();\r\n spran.setAnimation(idAnim);\r\n MainLoop.subscribe(spran)\r\n this.cornholioDead = spran;\r\n\r\n\r\n }\r\n cornholioDeadEventsHandler(e) {\r\n if (e.type === Spran.EVENT_END_ANIMATION) {\r\n //Sounder.stop(this.theme);\r\n Main.that.sounder.stop(this.theme)\r\n this.cornholioDead.pause();\r\n this.dispatch({ type: Game.EVENT_DEAD })\r\n }\r\n }\r\n\r\n dispatch(e) {\r\n if (this.callback) {\r\n this.callback.call(null, e);\r\n }\r\n }\r\n\r\n\r\n themeEnded(e) {\r\n if (this.isDead) {\r\n return;\r\n }\r\n //if (e.type === Sounder.EVENT_SOUND_ENDED) {\r\n this.cornholio.setAnimation(\"run\");\r\n this.controls.destroy();\r\n this.stopSpearmen();\r\n //Sounder.play(\"intro\", this.outroEnded.bind(this));\r\n Main.that.sounder.play(\"intro\", true,false,false,this.outroEnded.bind(this));\r\n TweenMax.to(this.cornholio.clip, 5, { delay: 4, scaleX: 0, scaleY: 0, bottom: \"46%\" });\r\n jQuery(\".js-debris-end-cover\", this.mc).show();\r\n TweenMax.to(jQuery(\".js-debris-end-cover\", this.mc), 2, { delay: 2, height: \"100%\", ease: Power1.easeIn });\r\n //}\r\n }\r\n\r\n stopSpearmen() {\r\n this.isFiring = true;\r\n this.canCreateSpearmen = false;\r\n this.canFire = false;\r\n\r\n }\r\n\r\n outroEnded(e) {\r\n //if (e.type === Sounder.EVENT_SOUND_ENDED) {\r\n this.dispatch({ type: Game.EVENT_WON })\r\n MainLoop.stop();\r\n //}\r\n }\r\n\r\n}\r\n\r\nGame.CORNHOLIO = [\r\n {\r\n id: \"run\",\r\n sheet: \"cornholio\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 120 },\r\n { row: 0, col: 1, time: 120 },\r\n ]\r\n },\r\n {\r\n id: \"jump\",\r\n sheet: \"cornholio\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 2, time: 80 },\r\n { row: 0, col: 3, time: 100 },\r\n { row: 0, col: 4, time: 150 },\r\n { row: 0, col: 5, time: 100 },\r\n { row: 0, col: 6, time: 80 },\r\n { row: 0, col: 7, time: 80 },\r\n { row: 0, col: 8, time: 80 },\r\n { row: 0, col: 9, time: 20 },\r\n { goto: \"run\" }\r\n ]\r\n },\r\n {\r\n id: \"crouch\",\r\n sheet: \"cornholio\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 10, time: 120 },\r\n { row: 0, col: 11, time: 120 },\r\n ]\r\n },\r\n\r\n]\r\n\r\nGame.CORNHOLIO_DEAD = [\r\n {\r\n id: \"se\",\r\n sheet: \"dead\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 60 },\r\n { row: 0, col: 1, time: 60 },\r\n { row: 0, col: 2, time: 60 },\r\n { row: 0, col: 3, time: 60 },\r\n { row: 0, col: 4, time: 1000 },\r\n ]\r\n },\r\n {\r\n id: \"ne\",\r\n sheet: \"dead\",\r\n flip: false,\r\n frames: [\r\n { row: 1, col: 0, time: 60 },\r\n { row: 1, col: 1, time: 60 },\r\n { row: 1, col: 2, time: 60 },\r\n { row: 1, col: 3, time: 60 },\r\n { row: 1, col: 4, time: 1000 },\r\n ]\r\n },\r\n {\r\n id: \"nw\",\r\n sheet: \"dead\",\r\n flip: false,\r\n frames: [\r\n { row: 2, col: 0, time: 60 },\r\n { row: 2, col: 1, time: 60 },\r\n { row: 2, col: 2, time: 60 },\r\n { row: 2, col: 3, time: 60 },\r\n { row: 2, col: 4, time: 1000 },\r\n ]\r\n },\r\n {\r\n id: \"sw\",\r\n sheet: \"dead\",\r\n flip: false,\r\n frames: [\r\n { row: 3, col: 0, time: 60 },\r\n { row: 3, col: 1, time: 60 },\r\n { row: 3, col: 2, time: 60 },\r\n { row: 3, col: 3, time: 60 },\r\n { row: 3, col: 4, time: 1000 },\r\n ]\r\n },\r\n]\r\n\r\n\r\nGame.PYRAMID = [\r\n {\r\n id: \"level0\",\r\n sheet: \"pyramid\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 100 },\r\n ]\r\n },\r\n {\r\n id: \"level1\",\r\n sheet: \"pyramid\",\r\n flip: false,\r\n frames: [\r\n { row: 1, col: 0, time: 100 },\r\n ]\r\n },\r\n {\r\n id: \"level2\",\r\n sheet: \"pyramid\",\r\n flip: false,\r\n frames: [\r\n { row: 2, col: 0, time: 100 },\r\n ]\r\n },\r\n {\r\n id: \"level3\",\r\n sheet: \"pyramid\",\r\n flip: false,\r\n frames: [\r\n { row: 3, col: 0, time: 100 },\r\n ]\r\n },\r\n {\r\n id: \"level4\",\r\n sheet: \"pyramid\",\r\n flip: false,\r\n frames: [\r\n { row: 4, col: 0, time: 100 },\r\n ]\r\n },\r\n {\r\n id: \"level5\",\r\n sheet: \"pyramid\",\r\n flip: false,\r\n frames: [\r\n { row: 5, col: 0, time: 100 },\r\n ]\r\n },\r\n {\r\n id: \"level6\",\r\n sheet: \"pyramid\",\r\n flip: false,\r\n frames: [\r\n { row: 6, col: 0, time: 100 },\r\n ]\r\n },\r\n {\r\n id: \"level7\",\r\n sheet: \"pyramid\",\r\n flip: false,\r\n frames: [\r\n { row: 7, col: 0, time: 100 },\r\n ]\r\n },\r\n]\r\n\r\n\r\n\r\n\r\nGame.DEBRIS = [\r\n {\r\n id: \"default\",\r\n sheet: \"debris0\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 100 },\r\n\r\n { row: 0, col: 1, time: 100 },\r\n { row: 1, col: 0, time: 100 },\r\n { row: 1, col: 1, time: 100 },\r\n { row: 2, col: 0, time: 100 },\r\n { row: 2, col: 1, time: 100 },\r\n { row: 3, col: 0, time: 100 },\r\n { row: 3, col: 1, time: 100 },\r\n { row: 4, col: 0, time: 100 },\r\n { row: 4, col: 1, time: 100 },\r\n { row: 5, col: 0, time: 100 },\r\n { row: 5, col: 1, time: 100 },\r\n { row: 6, col: 0, time: 100 },\r\n { row: 6, col: 1, time: 100 },\r\n { row: 7, col: 0, time: 100 },\r\n { row: 7, col: 1, time: 100 },\r\n { row: 8, col: 0, time: 100 },\r\n { row: 8, col: 1, time: 100 },\r\n { row: 9, col: 0, time: 100 }\r\n\r\n ]\r\n },\r\n\r\n]\r\n\r\nGame.SPEAR = [\r\n {\r\n id: \"default\",\r\n sheet: \"spear\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 100 }\r\n ]\r\n }\r\n]\r\n\r\n\r\nGame.SPEARMEN_TIME = 110;\r\n\r\nGame.SPEARMEN_POS = [\r\n { left: \"51%\", top: \"-32.8%\", id: \"frame0\" },\r\n { left: \"52.5%\", top: \"-31.7%\", id: \"frame1\" },\r\n //{ left: \"53.7%\", top: \"-31.8%\", id: \"frame1\" },\r\n { left: \"55%\", top: \"-30.4%\", id: \"frame2\" },\r\n { left: \"56.2%\", top: \"-27.6%\", id: \"frame3\" },\r\n { left: \"57.5%\", top: \"-27.6%\", id: \"frame4\" },\r\n { left: \"59.0%\", top: \"-26.0%\", id: \"frame5\" },\r\n { left: \"59.5%\", top: \"-25.2%\", id: \"frame6\" },\r\n { left: \"61.8%\", top: \"-23.7%\", id: \"frame7\" },\r\n { left: \"64.0%\", top: \"-22.6%\", id: \"frame8\" },\r\n { left: \"65.9%\", top: \"-20.4%\", id: \"frame9\" },\r\n { left: \"68.2%\", top: \"-19.6%\", id: \"frame10\" },\r\n { left: \"70.6%\", top: \"-17.0%\", id: \"frame11\" },\r\n { left: \"73.4%\", top: \"-15.3%\", id: \"frame12\" },\r\n { left: \"76.2%\", top: \"-13.6%\", id: \"frame13\" },\r\n { left: \"78.5%\", top: \"-11.3%\", id: \"frame14\" },\r\n { left: \"81.8%\", top: \"-8.5%\", id: \"frame15\" },\r\n { left: \"84.7%\", top: \"-6.2%\", id: \"frame16\" },\r\n { left: \"88.5%\", top: \"-3.4%\", id: \"frame17\" },\r\n { left: \"92.2%\", top: \"-2.2%\", id: \"frame18\" }\r\n]\r\n\r\n\r\nGame.SPEARMEN = [\r\n {\r\n id: \"frame0\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame1\" }\r\n ]\r\n },\r\n {\r\n id: \"frame1\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 1, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame2\" }\r\n ]\r\n },\r\n {\r\n id: \"frame2\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 2, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame3\" }\r\n ]\r\n },\r\n {\r\n id: \"frame3\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 3, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame4\" }\r\n ]\r\n },\r\n {\r\n id: \"frame4\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 4, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame5\" }\r\n ]\r\n },\r\n {\r\n id: \"frame5\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 5, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame6\" }\r\n ]\r\n },\r\n {\r\n id: \"frame6\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 6, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame7\" }\r\n ]\r\n },\r\n {\r\n id: \"frame7\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 7, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame8\" }\r\n ]\r\n },\r\n {\r\n id: \"frame8\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 8, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame9\" }\r\n ]\r\n },\r\n {\r\n id: \"frame9\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 9, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame10\" }\r\n ]\r\n },\r\n {\r\n id: \"frame10\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 10, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame11\" }\r\n ]\r\n },\r\n {\r\n id: \"frame11\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 11, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame12\" }\r\n ]\r\n },\r\n {\r\n id: \"frame12\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 12, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame13\" }\r\n ]\r\n },\r\n {\r\n id: \"frame13\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 13, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame14\" }\r\n ]\r\n },\r\n {\r\n id: \"frame14\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 14, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame15\" }\r\n ]\r\n },\r\n {\r\n id: \"frame15\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 15, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame16\" }\r\n ]\r\n },\r\n {\r\n id: \"frame16\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 16, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame17\" }\r\n ]\r\n },\r\n\r\n {\r\n id: \"frame17\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 17, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame18\" }\r\n ]\r\n },\r\n {\r\n id: \"frame18\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 18, time: Game.SPEARMEN_TIME },\r\n { goto: \"frame19\" }\r\n ]\r\n },\r\n {\r\n id: \"frame19\",\r\n sheet: \"spearmen\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 19, time: Game.SPEARMEN_TIME }\r\n ]\r\n },\r\n\r\n]\r\n\r\nGame.LEVELS = [\r\n {\r\n level: 0,\r\n lasts: 0.125,\r\n spear: 120\r\n },\r\n {\r\n level: 1,\r\n lasts: 0.125,\r\n spear: 110\r\n },\r\n {\r\n level: 2,\r\n lasts: 0.125,\r\n spear: 100\r\n },\r\n {\r\n level: 3,\r\n lasts: 0.125,\r\n spear: 90\r\n },\r\n {\r\n level: 4,\r\n lasts: 0.125,\r\n spear: 80\r\n },\r\n {\r\n level: 5,\r\n lasts: 0.125,\r\n spear: 70\r\n },\r\n {\r\n level: 6,\r\n lasts: 0.125,\r\n spear: 60\r\n },\r\n {\r\n level: 7,\r\n lasts: 0.125,\r\n spear: 50\r\n },\r\n]\r\n\r\n\r\nGame.ENUM = 0;\r\nGame.STATUS_CORNHOLIO_RUN = \"run\";\r\nGame.STATUS_CORNHOLIO_CROUCH = \"crouch\";\r\nGame.STATUS_CORNHOLIO_JUMP = \"jump\";\r\nGame.STATUS_CORNHOLIO_DEAD = \"dead\";\r\n\r\n\r\nGame.EVENT_DEAD = \"eventDead\";\r\nGame.EVENT_WON = \"eventWon\";\r\nGame.EVENT_GIVEUP = \"eventGiveUp\";\r\n\r\nGame.ARROW_TIME = 1.4;\r\nGame.ARROW_TIME_ALT = 1.4;\r\nGame.DEBUG_NO_FIRE = false;\r\n\r\n\r\nGame.MESSAGES_ANGRY = [\r\n \"I CAN HEAR YOUR CURSES!\",\r\n \"DARK SOULS GAMES ARE NOTHING!\",\r\n \"C'MON THIS GAME IT'S SO EASY! :-)\",\r\n \"DON'T SAY BAD WORDS!\",\r\n \"DO NOT GET MAD!\",\r\n \"ANOTHER RUN! STAY A WHILE... STAY FOREVER!\",\r\n \"ANOTHER DAY ANOTHER TRY, BUT REMEMBER... DUCK, JUMP OR DIE!\",\r\n \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGH!\",\r\n \"ALL YOUR TEMPLE ARE BELONG TO US!\",\r\n \"YOU RUN LIKE A DAIRY FARMER!\",\r\n \"YOU SHALL NOT PASS!\"\r\n]\r\n\r\nGame.MESSAGES_SPUR = [\r\n \"WELL DONE! YOU'RE GETTING CLOSER!\",\r\n \"RUN CORNHOLIO RUN!\",\r\n \"KEEP IT UP!\",\r\n \"RUN TO THE TEMPLE, RUN FOR YOUR LIFE!\",\r\n \"DO NOT GIVE UP NOW!\",\r\n \"YOU CAN DO IT!\",\r\n \"FOCUS!\"\r\n]\r\n\r\nGame.invincible = false;\r\nGame.beginNearEnd = false;\r\nGame.BLINK_COLORS = [\"#FFFFFF\", \"#FF0000\", \"#00FFFF\", \"#FFFF00\", \"#FF00FF\", \"#00FF00\"]\r\nGame.EASIER = true;","import Pqp from \"../3x1010/Pqp.js\";\r\nimport Sounder from \"./Tools/sounder/Sounder\";\r\nimport MainLoop from \"./Tools/MainLoop\";\r\nimport Spran from \"./Tools/spran/Spran\";\r\nimport Controls from \"./Tools/controls/Controls\";\r\nimport Game from \"./Game.js\";\r\nimport Main from \"./Main.js\";\r\n\r\nexport default class ScreenStage {\r\n constructor(data, callback) {\r\n this.data = data;\r\n this.deaths = 0;\r\n this.distance = 0;\r\n this.angry = false;\r\n this.callback = callback;\r\n let tmp = Main.getThemeOnSavegame(this.data.id);\r\n tmp.played++;\r\n this.distance = tmp.distance;\r\n Main.updateSavegame();\r\n\r\n\r\n }\r\n\r\n init() {\r\n this.game = new Game(this.data.id, this.deaths, this.distance, this.angry,this.gameEventsHandler.bind(this));\r\n this.game.init();\r\n\r\n let tmp = Main.getThemeOnSavegame(this.data.id);\r\n tmp.run++;\r\n Main.updateSavegame();\r\n\r\n let o = this.data;\r\n }\r\n\r\n\r\n\r\n destroy() {\r\n this.game.destroy();\r\n }\r\n\r\n gameEventsHandler(e) {\r\n if ((e.type === Game.EVENT_DEAD) || (e.type === Game.EVENT_GIVEUP)) {\r\n let distance = this.game.distance;\r\n let spears = this.game.spears;\r\n this.angry = true;\r\n if (distance > this.distance) {\r\n this.distance = distance;\r\n }\r\n\r\n let tmp = Main.getThemeOnSavegame(this.data.id);\r\n tmp.deaths++;\r\n if (distance > tmp.distance) {\r\n tmp.distance = distance;\r\n }\r\n tmp.spears += spears;\r\n Main.updateSavegame();\r\n \r\n\r\n if (e.type !== Game.EVENT_GIVEUP) {\r\n this.deaths++;\r\n this.destroy();\r\n this.init();\r\n } else {\r\n this.destroy();\r\n this.dispatch({ type: ScreenStage.EVENT_GIVEUP, data: this.data });\r\n }\r\n }\r\n\r\n if (e.type === Game.EVENT_WON) {\r\n let tmp = Main.getThemeOnSavegame(this.data.id);\r\n tmp.distance = 100;\r\n tmp.won++;\r\n Main.updateSavegame();\r\n this.dispatch({ type: ScreenStage.EVENT_GAME_COMPLETED,data:this.data });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n dispatch(e) {\r\n if (this.callback) {\r\n this.callback.call(null, e);\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\nScreenStage.EVENT_GAME_COMPLETED = \"eventGameCompleted\"\r\nScreenStage.EVENT_GIVEUP = \"eventGiveUp\"\r\n","import Pqp from \"../3x1010/Pqp.js\";\r\n//import Sounder from \"./Tools/sounder/Sounder\";\r\nimport MainLoop from \"./Tools/MainLoop\";\r\nimport Spran from \"./Tools/spran/Spran\";\r\nimport Controls from \"./Tools/controls/Controls\";\r\nimport Game from \"./Game.js\";\r\nimport Sprites from \"./Tools/Sprites.js\";\r\nimport Main from \"./Main.js\";\r\nimport Sounder from \"./Tools/sounder/Sounder.js\";\r\n\r\nexport default class ScreenAttract {\r\n constructor(callback) {\r\n this.callback = callback;\r\n this.tick = 0;\r\n }\r\n\r\n init() {\r\n \r\n\r\n this.mc = jQuery(\"#template-attract-screen\").clone();\r\n this.mc.removeAttr(\"id\");\r\n\r\n\r\n jQuery(\".js-main\").append(this.mc);\r\n\r\n if (Main.savegame.skipIntro) {\r\n this.mc.on(\"click\", this.skip.bind(this))\r\n \r\n }\r\n\r\n\r\n let div = jQuery(\".js-logo\", this.mc);\r\n let anim = JSON.parse(JSON.stringify(ScreenAttract.LOGO));\r\n let spran = new Spran(div, anim, this.logoEventHandlers.bind(this));\r\n spran.init();\r\n spran.setAnimation(\"default\");\r\n MainLoop.subscribe(spran)\r\n MainLoop.subscribe(this, \"onMainLoop\");\r\n this.logo = spran;\r\n\r\n MainLoop.start();\r\n\r\n let sp;\r\n sp = Sprites.getSpriteByRowCol(\"aztec\", 0, 0);\r\n jQuery(\".js-aztec\",this.mc).css(\"background-image\", \"url('\" + sp + \"')\");\r\n sp = Sprites.getSpriteByRowCol(\"challenge\", 0, 0);\r\n jQuery(\".js-challenge\", this.mc).css(\"background-image\", \"url('\" + sp + \"')\");\r\n sp = Sprites.getSpriteByRowCol(\"tribute\", 0, 0);\r\n jQuery(\".js-tribute\", this.mc).css(\"background-image\", \"url('\" + sp + \"')\");\r\n\r\n\r\n //Sounder.play(\"intro\");\r\n Main.that.sounder.play(\"intro\");\r\n\r\n this.initListeners();\r\n\r\n if (Pqp.isMobile()) {\r\n jQuery(\".do-tap\", this.mc).show();\r\n jQuery(\".do-click\", this.mc).hide();\r\n } else {\r\n jQuery(\".do-tap\", this.mc).hide();\r\n jQuery(\".do-click\", this.mc).show();\r\n }\r\n\r\n\r\n }\r\n skip() {\r\n if (Pqp.isMobile()) {\r\n if (!Pqp.isIos()) {\r\n let element = jQuery(\"body\").get(0);\r\n element.requestFullscreen();\r\n }\r\n }\r\n\r\n this.dispatch({ type: ScreenAttract.EVENT_ENDED });\r\n }\r\n\r\n initListeners() {\r\n jQuery(window).off(\"blur\");\r\n jQuery(window).off(\"focus\");\r\n jQuery(window).on(\"blur\", this.onMinimize.bind(this));\r\n jQuery(window).on(\"focus\", this.onMaximize.bind(this));\r\n }\r\n\r\n onMinimize() {\r\n //Sounder.pauseAll();\r\n Main.that.sounder.pause(\"intro\");\r\n MainLoop.pause();\r\n }\r\n onMaximize() {\r\n //Sounder.resumeAll();\r\n Main.that.sounder.resume(\"intro\");\r\n MainLoop.resume();\r\n }\r\n\r\n\r\n\r\n logoEventHandlers(e) {\r\n if (e.type === Spran.EVENT_END_ANIMATION) {\r\n Main.savegame.skipIntro = true;\r\n Main.updateSavegame();\r\n this.dispatch({ type: ScreenAttract.EVENT_ENDED });\r\n }\r\n\r\n }\r\n\r\n\r\n onMainLoop() {\r\n this.tick++;\r\n if (Main.savegame.skipIntro) {\r\n if (this.tick >= 120) {\r\n jQuery(\".js-bottom-skip\", this.mc).show();\r\n }\r\n if (this.tick >= 360) {\r\n jQuery(\".js-bottom-skip\", this.mc).hide();\r\n }\r\n }\r\n\r\n if (this.tick >= 500) {\r\n jQuery(\".js-aztec\", this.mc).show();\r\n jQuery(\".js-challenge\", this.mc).show();\r\n jQuery(\".js-tribute\", this.mc).show();\r\n \r\n\r\n }\r\n\r\n }\r\n\r\n destroy() {\r\n //Sounder.stop(\"intro\");\r\n Main.that.sounder.stop(\"intro\");\r\n jQuery(window).off(\"blur\");\r\n jQuery(window).off(\"focus\");\r\n\r\n this.logo.pause();\r\n MainLoop.unsubscribe(this);\r\n MainLoop.unsubscribe(this.logo);\r\n MainLoop.stop();\r\n this.mc.remove();\r\n }\r\n\r\n\r\n dispatch(e) {\r\n if (this.callback) {\r\n this.callback.call(null, e);\r\n }\r\n }\r\n\r\n}\r\n\r\nScreenAttract.EVENT_ENDED = \"eventEnded\";\r\nScreenAttract.LOGO_TIME = 100;\r\nScreenAttract.LOGO = [\r\n {\r\n id: \"default\",\r\n sheet: \"logo\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 5900 },\r\n { row: 0, col: 1, time: ScreenAttract.LOGO_TIME },\r\n { row: 0, col: 2, time: ScreenAttract.LOGO_TIME },\r\n { row: 0, col: 3, time: ScreenAttract.LOGO_TIME },\r\n { row: 1, col: 0, time: ScreenAttract.LOGO_TIME },\r\n { row: 1, col: 1, time: ScreenAttract.LOGO_TIME },\r\n { row: 1, col: 2, time: ScreenAttract.LOGO_TIME },\r\n { row: 1, col: 3, time: ScreenAttract.LOGO_TIME },\r\n { row: 2, col: 0, time: ScreenAttract.LOGO_TIME },\r\n { row: 2, col: 1, time: ScreenAttract.LOGO_TIME },\r\n { row: 2, col: 2, time: ScreenAttract.LOGO_TIME },\r\n { row: 2, col: 3, time: ScreenAttract.LOGO_TIME },\r\n { row: 3, col: 0, time: ScreenAttract.LOGO_TIME },\r\n { row: 3, col: 1, time: ScreenAttract.LOGO_TIME },\r\n { row: 3, col: 2, time: ScreenAttract.LOGO_TIME },\r\n { row: 3, col: 3, time: 5400 },\r\n ]\r\n },\r\n]\r\n\r\n","import Pqp from \"../3x1010/Pqp.js\";\r\n//import Sounder from \"./Tools/sounder/Sounder\";\r\nimport MainLoop from \"./Tools/MainLoop\";\r\nimport Spran from \"./Tools/spran/Spran\";\r\nimport Controls from \"./Tools/controls/Controls\";\r\nimport Game from \"./Game.js\";\r\nimport Assets from \"./Tools/Assets.js\";\r\nimport Main from \"./Main.js\";\r\nimport Sounder from \"../3x1010/sounder/Sounder.js\";\r\n\r\n\r\nexport default class ScreenIntro {\r\n constructor(skipFirstPage,callback) {\r\n this.callback = callback;\r\n this.cheat = 0;\r\n this.cheatBis = 0;\r\n this.skipFirstPage = skipFirstPage;\r\n Game.beginNearEnd = false;\r\n Game.invincible = false;\r\n\r\n }\r\n\r\n init() {\r\n this.mc = jQuery(\"#template-intro-screen\").clone();\r\n this.mc.removeAttr(\"id\");\r\n jQuery(\".js-main\").append(this.mc);\r\n //Sounder.play(\"smallloop\", null, true);\r\n Main.that.sounder.playLoop(\"smallloop\");\r\n if (Pqp.isMobile()) {\r\n jQuery(\".js-mobile\").show();\r\n jQuery(\".js-desktop\").hide();\r\n } else {\r\n jQuery(\".js-mobile\").hide();\r\n jQuery(\".js-desktop\").show();\r\n }\r\n this.initListeners();\r\n if (this.skipFirstPage) {\r\n this.chooseSong();\r\n } else {\r\n this.mc.on(\"click\", this.chooseSong.bind(this));\r\n }\r\n if (Pqp.isMobile()) {\r\n jQuery(\".do-tap\", this.mc).show();\r\n jQuery(\".do-click\", this.mc).hide();\r\n } else {\r\n jQuery(\".do-tap\", this.mc).hide();\r\n jQuery(\".do-click\", this.mc).show();\r\n }\r\n\r\n this.checkTitle();\r\n\r\n\r\n let isMacBrowser = /Mac|iPod|iPhone|iPad/.test(navigator.platform);\r\n\r\n if (!isMacBrowser) {\r\n jQuery(\".js-sardanap\").hide();\r\n }\r\n if (Pqp.isIos()) {\r\n jQuery(\".js-sardanap\").show();\r\n }\r\n\r\n\r\n }\r\n\r\n checkTitle() {\r\n jQuery(window).on(\"resize.intro\", this.onResize.bind(this));\r\n this.onResize();\r\n }\r\n\r\n onResize() {\r\n \r\n let title = jQuery(\".js-title\", this.mc);\r\n if (!title.is(\":visible\")){\r\n title = jQuery(\".js-title-1\", this.mc);\r\n }\r\n \r\n\r\n title.removeAttr(\"style\");\r\n title.show();\r\n let y = title.position().top;\r\n let h = title.height();\r\n \r\n let ref = jQuery(\".js-bottom\", this.mc).position().top;\r\n if (!jQuery(\".js-title\", this.mc).is(\":visible\")){\r\n ref = jQuery(\".js-bottom-1\", this.mc).position().top;\r\n }\r\n\r\n while (y + h > ref) {\r\n if (Pqp.isMobile()) {\r\n h -= 16;\r\n } else {\r\n h -= 67;\r\n }\r\n }\r\n title.css(\"height\", h);\r\n }\r\n\r\n\r\n initListeners() {\r\n jQuery(window).off(\"blur\");\r\n jQuery(window).off(\"focus\");\r\n jQuery(window).on(\"blur\", this.onMinimize.bind(this));\r\n jQuery(window).on(\"focus\", this.onMaximize.bind(this));\r\n }\r\n\r\n onMinimize() {\r\n //Sounder.pauseAll();\r\n Main.that.sounder.pause(\"smallloop\");\r\n }\r\n\r\n onMaximize() {\r\n Main.that.sounder.resume(\"smallloop\");\r\n //Sounder.resumeAll();\r\n }\r\n\r\n\r\n destroy() {\r\n jQuery(window).off(\"resize.intro\");\r\n jQuery(window).off(\"blur\");\r\n jQuery(window).off(\"focus\");\r\n //Sounder.stop(\"smallloop\");\r\n Main.that.sounder.stop(\"smallloop\");\r\n this.mc.remove();\r\n }\r\n\r\n\r\n dispatch(e) {\r\n if (this.callback) {\r\n this.callback.call(null, e);\r\n }\r\n }\r\n\r\n chooseSong() {\r\n if (Pqp.isMobile()) {\r\n if (!Pqp.isIos()) {\r\n let element = jQuery(\"body\").get(0);\r\n element.requestFullscreen();\r\n }\r\n }\r\n\r\n\r\n this.mc.off(\"click\");\r\n jQuery(\".js-title\", this.mc).hide();\r\n jQuery(\".js-bottom\", this.mc).hide();\r\n jQuery(\".js-title-1\", this.mc).show();\r\n jQuery(\".js-bottom-1\", this.mc).show();\r\n for (let x = 0; x < ScreenIntro.SONGS.length; x++) {\r\n let entry = jQuery(\"#template-theme\").clone();\r\n entry.removeAttr(\"id\");\r\n entry.on(\"click\", this.preloadTheme.bind(this, ScreenIntro.SONGS[x]))\r\n jQuery(\".js-author\", entry).text(ScreenIntro.SONGS[x].author)\r\n jQuery(\".js-name\", entry).text(ScreenIntro.SONGS[x].desc)\r\n jQuery(\".js-len\", entry).text(ScreenIntro.SONGS[x].length)\r\n let tmp = Main.getThemeOnSavegame(ScreenIntro.SONGS[x].id);\r\n if (tmp.won > 0) {\r\n jQuery(\".js-won\", entry).text(tmp.distance + \"%\");\r\n jQuery(\".js-won\", entry).addClass(\"green\");\r\n } else if (tmp.played > 0) {\r\n jQuery(\".js-won\", entry).text(tmp.distance+\"%\");\r\n jQuery(\".js-won\", entry).addClass(\"red\");\r\n } else {\r\n jQuery(\".js-won\", entry).text(\"0%\");\r\n }\r\n\r\n jQuery(\".js-themes\", this.mc).append(entry);\r\n }\r\n\r\n jQuery(\".js-title-1\", this.mc).on(\"click\", this.checkCheat.bind(this));\r\n this.onResize();\r\n\r\n\r\n }\r\n\r\n checkCheat() {\r\n this.cheat++;\r\n if (this.cheat === 3) {\r\n Game.invincible = true;\r\n jQuery(\".js-cheat\", this.mc).show();\r\n jQuery(\".js-cheat\", this.mc).on(\"click\", this.checkCheatBis.bind(this));\r\n }\r\n\r\n }\r\n\r\n checkCheatBis() {\r\n this.cheatBis++;\r\n if (this.cheatBis === 3) {\r\n Game.beginNearEnd = true;\r\n jQuery(\".js-cheat\", this.mc).text(\"*SUPER CHEAT ON*\");\r\n }\r\n\r\n }\r\n\r\n\r\n preloadTheme(o) {\r\n if (Pqp.isMobile()) {\r\n if (!Pqp.isIos()) {\r\n let element = jQuery(\"body\").get(0);\r\n element.requestFullscreen();\r\n }\r\n }\r\n jQuery(\".js-cheat\", this.mc).hide();\r\n jQuery(\".js-settings\").hide();\r\n jQuery(\".js-title-1\", this.mc).hide();\r\n jQuery(\".js-bottom-1\", this.mc).hide();\r\n jQuery(\".js-preload-song\", this.mc).show();\r\n Assets.load(o, this.preStartGame.bind(this, o));\r\n\r\n\r\n }\r\n\r\n\r\n preStartGame(o, e) {\r\n if (e.type === Assets.EVENT_ALL_LOADED) {\r\n Main.that.sounder.callback = this.startGame.bind(this,o)\r\n Main.that.sounder.add(o.id, o.src);\r\n }\r\n }\r\n\r\n startGame(o, e) {\r\n if (e.type == Sounder.ALL_SOUNDS_READY) {\r\n setTimeout(this.doStartGame.bind(this, o), 1500);\r\n }\r\n }\r\n\r\n doStartGame(o) {\r\n jQuery(\".js-settings\").show();\r\n this.dispatch({ type: ScreenIntro.EVENT_ENDED, data: o })\r\n }\r\n\r\n\r\n}\r\n\r\nScreenIntro.EVENT_ENDED = \"eventEnded\";\r\nScreenIntro.SONGS = [\r\n { id: \"theme0\", src: \"assets/sounds/themes/theme_pal.mp3\", length: \"3.16\", author: \"PAUL NORMAN\", desc: \"CLASSIC THEME (PAL)\" },\r\n { id: \"theme1\", src: \"assets/sounds/themes/theme_ntsc.mp3\", length: \"3.16\", author: \"PAUL NORMAN\", desc: \"CLASSIC THEME (NTSC)\" },\r\n { id: \"theme2\", src: \"assets/sounds/themes/remakes/A0d of the Subversive Elements - Aztec challenge (run Cornholio run!).mp3\", length: \"2.46\", author: \"A0D OF THE SUBVERSIVE ELEMENTS\", desc: \"AZTEC CHALLENGE (RUN CORNHOLIO RUN!)\" },\r\n { id: \"theme3\", src: \"assets/sounds/themes/remakes/Lello Caliendo - Aztec challenge Evolution.mp3\", length: \"3.13\", author: \"LELLO CALIENDO\", desc: \"AZTEC CHALLENGE EVOLUTION\" },\r\n { id: \"theme4\", src: \"assets/sounds/themes/remakes/Aztec Challenge (Run Of Despair - 2020 edition).mp3\", length: \"3.49\", author: \"ANDREA BARONI\", desc: \"AZTEC CHALLENGE (RUN OF DESPAIR 2020 EDITION)\" },\r\n { id: \"theme5\", src: \"assets/sounds/themes/remakes/chosc - Aztec Challenge - Mental Trance Remix.mp3\", length: \"4.20\", author: \"CHOSC\", desc: \"AZTEC CHALLENGE - MENTAL TRANCE REMIX\" },\r\n { id: \"theme6\", src: \"assets/sounds/themes/remakes/Andi Diat - Aztec Challenge Rocks.mp3\", length: \"4.35\", author: \"ANDI DIAT\", desc: \"AZTEC CHALLENGE ROCKS\" },\r\n { id: \"theme7\", src: \"assets/sounds/themes/remakes/load error - Aztec Challenge (Quetzal Goa Remix).mp3\", length: \"6.47\", author: \"LOAD_ERROR\", desc: \"AZTEC CHALLENGE (QUETZAL GOA REMIX)\" },\r\n { id: \"theme8\", src: \"assets/sounds/themes/remakes/Dr Future - Aztec Challenge (A Runners Game).mp3\", length: \"3.59\", author: \"DR FUTURE\", desc: \"AZTEC CHALLENGE (A RUNNERS GAME)\" },\r\n { id: \"theme9\", src: \"assets/sounds/themes/remakes/ICEtr00per - Aztec Challenge (Remix).mp3\", length: \"5.35\", author: \"ICEXUICK\", desc: \"AZTEC CHALLENGE (REMIX)\" },\r\n { id: \"theme10\", src: \"assets/sounds/themes/remakes/ScareCrow - Headbangers Challenge.mp3\", length: \"2.27\", author: \"SCARECROW\", desc: \"HEADBANGERS CHALLENGE\" },\r\n { id: \"theme11\", src: \"assets/sounds/themes/remakes/LPChip - Aztec Challenge (Hell on Earth mix).mp3\", length: \"2.44\", author: \"LPCHIP\", desc: \"AZTEC CHALLENGE (HELL ON EARTH MIX)\" },\r\n { id: \"theme12\", src: \"assets/sounds/themes/remakes/Sidicium - Aztec Challenge (Aztec Funeral mix).mp3\", length: \"4.51\", author: \"SIDICIUM\", desc: \"AZTEC CHALLENGE (AZTEC FUNERAL MIX)\" },\r\n { id: \"theme14\", src: \"assets/sounds/themes/remakes/chosc - Aztec Challenge (maja remix).mp3\", length: \"2.17\", author: \"CHOSC\", desc: \"AZTEC CHALLENGE (MAJA REMIX)\" },\r\n { id: \"theme15\", src: \"assets/sounds/themes/remakes/Press Play On Tape - Aztec Challenge.mp3\", length: \"2.57\", author: \"PRESS PLAY ON TAPE\", desc: \"AZTEC CHALLENGE\" },\r\n { id: \"theme16\", src: \"assets/sounds/themes/remakes/Davide Gatti - Aztec Challenge Evolution.mp3\", length: \"6.08\", author: \"DAVIDE GATTI\", desc: \"AZTEC CHALLENGE EVOLUTION\" },\r\n { id: \"theme17\", src: \"assets/sounds/themes/remakes/Tony Vera - Aztec Challenge.mp3\", length: \"2.31\", author: \"TONY VERA\", desc: \"AZTEC CHALLENGE\" },\r\n { id: \"theme13\", src: \"assets/sounds/themes/remakes/Frank F. and Himself - Aztec Challenge Tribe - Sacrifice is ready.mp3\", length: \"3.18\", author: \"FRANK F.\", desc: \"AZTEC CHALLENGE TRIBE - SACRIFICE IS READY\" },\r\n]\r\n","import Pqp from \"../3x1010/Pqp.js\";\r\n//import Sounder from \"./Tools/sounder/Sounder\";\r\nimport MainLoop from \"./Tools/MainLoop\";\r\nimport Spran from \"./Tools/spran/Spran\";\r\nimport Controls from \"./Tools/controls/Controls\";\r\nimport Game from \"./Game.js\";\r\nimport Sprites from \"./Tools/Sprites.js\";\r\nimport Main from \"./Main.js\";\r\nimport Sounder from \"../3x1010/sounder/Sounder.js\";\r\n\r\nexport default class ScreenGameOver {\r\n constructor(data, callback) {\r\n this.data = data;\r\n this.callback = callback;\r\n this.tick = 0;\r\n }\r\n\r\n init() {\r\n //console.log(this.data);\r\n this.mc = jQuery(\"#template-gameover-screen\").clone();\r\n this.mc.removeAttr(\"id\");\r\n jQuery(\".js-main\").append(this.mc);\r\n //Sounder.play(\"smallloop\", null, true);\r\n Main.that.sounder.playLoop(\"smallloop\");\r\n this.initListeners();\r\n let savegame = Main.savegame;\r\n let a = savegame.data;\r\n let all = true;\r\n for (let x = 0; x < a.length; x++) {\r\n if (a[x].won === 0) {\r\n all = false;\r\n break;\r\n }\r\n }\r\n if (all) {\r\n this.createScenetteOk()\r\n } else {\r\n this.createScenetteKo()\r\n }\r\n\r\n if (Pqp.isMobile()) {\r\n jQuery(\".do-tap\", this.mc).show();\r\n jQuery(\".do-click\", this.mc).hide();\r\n } else {\r\n jQuery(\".do-tap\", this.mc).hide();\r\n jQuery(\".do-click\", this.mc).show();\r\n }\r\n\r\n }\r\n\r\n\r\n initListeners() {\r\n jQuery(window).off(\"blur\");\r\n jQuery(window).off(\"focus\");\r\n jQuery(window).on(\"blur\", this.onMinimize.bind(this));\r\n jQuery(window).on(\"focus\", this.onMaximize.bind(this));\r\n }\r\n\r\n onMinimize() {\r\n TweenMax.pauseAll();\r\n //Sounder.pauseAll();\r\n Main.that.sounder.pause(\"smallloop\");\r\n Main.that.sounder.pause(\"ending\");\r\n MainLoop.pause();\r\n }\r\n\r\n onMaximize() {\r\n TweenMax.resumeAll();\r\n //Sounder.resumeAll();\r\n Main.that.sounder.resume(\"smallloop\");\r\n Main.that.sounder.resume(\"ending\");\r\n MainLoop.resume();\r\n }\r\n\r\n destroy() {\r\n this.mc.off(\"click\");\r\n jQuery(window).off(\"blur\");\r\n jQuery(window).off(\"focus\");\r\n //Sounder.stop(\"smallloop\");\r\n Main.that.sounder.stop(\"smallloop\");\r\n MainLoop.unsubscribe(this);\r\n MainLoop.unsubscribe(this.cornholio);\r\n if (this.sorry) {\r\n MainLoop.unsubscribe(this.sorry);\r\n }\r\n if (this.princess) {\r\n MainLoop.unsubscribe(this.princess);\r\n }\r\n if (this.karateka) {\r\n MainLoop.unsubscribe(this.karateka);\r\n }\r\n MainLoop.stop();\r\n this.mc.remove();\r\n }\r\n\r\n dispatch(e) {\r\n if (this.callback) {\r\n this.callback.call(null, e);\r\n }\r\n }\r\n\r\n\r\n createScenetteKo() {\r\n let sp;\r\n sp = Sprites.getSpriteByRowCol(\"floor\", 0, 0);\r\n jQuery(\".js-floor\", this.mc).css(\"background-image\", \"url('\" + sp + \"')\");\r\n\r\n jQuery(\".js-main\").removeClass(\"blue\");\r\n jQuery(\".js-main\").addClass(\"black\");\r\n\r\n MainLoop.start();\r\n this.createCornholio(\"run\");\r\n this.createSorry();\r\n\r\n MainLoop.start();\r\n TweenMax.to(jQuery(\".js-cornholiio\", this.mc), 1.5, { left: \"25%\", onComplete: this.makeSpeech.bind(this), ease: Linear.easeNone });\r\n }\r\n\r\n\r\n makeSpeech() {\r\n //Sounder.play(\"tarararan\")\r\n Main.that.sounder.play(\"tarararan\")\r\n this.cornholio.setAnimation(\"stand\");\r\n this.sorry.setAnimation(\"speak\");\r\n jQuery(\".js-message-sorry\", this.mc).show();\r\n MainLoop.subscribe(this, \"onMainLoop\", MainLoop.PRIORITY_MAIN);\r\n }\r\n\r\n\r\n onMainLoop() {\r\n this.tick++;\r\n if (this.tick > 240) {\r\n MainLoop.unsubscribe(this);\r\n jQuery(\".js-message-qbert\", this.mc).show();\r\n //this.cornholio.setAnimation(\"run\");\r\n this.sorry.setAnimation(\"stand\");\r\n jQuery(\".js-message-sorry\", this.mc).hide();\r\n setTimeout(this.doExit.bind(this), 1000);\r\n Main.that.sounder.play(\"qbert\");\r\n //TweenMax.to(jQuery(\".js-cornholiio\", this.mc), 3, { left: \"100%\", onComplete: this.endScenette.bind(this, true), ease: Linear.easeNone });\r\n }\r\n\r\n }\r\n\r\n doExit() {\r\n jQuery(\".js-message-qbert\", this.mc).hide();\r\n this.cornholio.setAnimation(\"run\");\r\n TweenMax.to(jQuery(\".js-cornholiio\", this.mc), 3, { left: \"100%\", onComplete: this.endScenette.bind(this, true), ease: Linear.easeNone });\r\n }\r\n\r\n endScenette(won) {\r\n this.dispatch({ type: ScreenGameOver.EVENT_ENDED, won: won });\r\n }\r\n\r\n\r\n createCornholio(idanim) {\r\n let div = jQuery(\".js-cornholiio\", this.mc);\r\n let anim = JSON.parse(JSON.stringify(ScreenGameOver.CORNHOLIO));\r\n let spran = new Spran(div, anim, this.cornholioEventHandlers.bind(this));\r\n spran.init();\r\n spran.setAnimation(idanim);\r\n MainLoop.subscribe(spran)\r\n this.cornholio = spran;\r\n div.css(\"left\", \"-10%\");\r\n\r\n\r\n }\r\n cornholioEventHandlers(e) {\r\n\r\n }\r\n\r\n\r\n createSorry() {\r\n let div = jQuery(\".js-sorry\", this.mc);\r\n let anim = JSON.parse(JSON.stringify(ScreenGameOver.SORRY));\r\n let spran = new Spran(div, anim, this.sorryEventHandlers.bind(this));\r\n spran.init();\r\n spran.setAnimation(\"stand\");\r\n MainLoop.subscribe(spran)\r\n this.sorry = spran;\r\n }\r\n\r\n sorryEventHandlers() {\r\n\r\n }\r\n\r\n\r\n createScenetteOk() {\r\n //Sounder.play(\"ending\")\r\n Main.that.sounder.play(\"ending\")\r\n let sp;\r\n sp = Sprites.getSpriteByRowCol(\"floor\", 0, 0);\r\n jQuery(\".js-floor\", this.mc).css(\"background-image\", \"url('\" + sp + \"')\");\r\n\r\n jQuery(\".js-main\").removeClass(\"blue\");\r\n jQuery(\".js-main\").addClass(\"black\");\r\n\r\n MainLoop.start();\r\n this.createCornholio(\"walk\");\r\n this.createPrincess();\r\n this.createKarateka();\r\n this.createSorry();\r\n MainLoop.start();\r\n TweenMax.to(jQuery(\".js-cornholiio\", this.mc), 5, { left: \"40%\", onComplete: this.friendzoned.bind(this), ease: Linear.easeNone });\r\n TweenMax.to(jQuery(\".js-karateka\", this.mc), 3, { delay: 2, left: \"78%\", onComplete: this.zanZan.bind(this), ease: Linear.easeNone });\r\n }\r\n createPrincess() {\r\n let div = jQuery(\".js-princess\", this.mc);\r\n let anim = JSON.parse(JSON.stringify(ScreenGameOver.PRINCESS));\r\n let spran = new Spran(div, anim, this.princessEventHandlers.bind(this));\r\n spran.init();\r\n spran.setAnimation(\"stand\");\r\n MainLoop.subscribe(spran)\r\n this.princess = spran;\r\n }\r\n\r\n princessEventHandlers(e) {\r\n /*if (e.type === Spran.EVENT_END_ANIMATION) {\r\n if (e.data.anim.id === \"hug\") {\r\n this.sorry.setAnimation(\"trollface\");\r\n }\r\n }*/\r\n\r\n }\r\n\r\n createKarateka() {\r\n let div = jQuery(\".js-karateka\", this.mc);\r\n let anim = JSON.parse(JSON.stringify(ScreenGameOver.KARATEKA));\r\n let spran = new Spran(div, anim, this.karatekaEventHandlers.bind(this));\r\n spran.init();\r\n spran.setAnimation(\"run\");\r\n MainLoop.subscribe(spran)\r\n div.css(\"left\", \"-15%\");\r\n this.karateka = spran;\r\n\r\n }\r\n\r\n karatekaEventHandlers(e) {\r\n\r\n }\r\n\r\n\r\n friendzoned() {\r\n this.cornholio.setAnimation(\"stand\");\r\n\r\n this.sorry.setAnimation(\"speak\");\r\n jQuery(\".js-message-end\", this.mc).show();\r\n MainLoop.subscribe(this, \"onMainLoop1\", MainLoop.PRIORITY_MAIN);\r\n\r\n }\r\n\r\n onMainLoop1() {\r\n this.tick++;\r\n if (this.tick > 360) {\r\n MainLoop.unsubscribe(this);\r\n this.sorry.setAnimation(\"trollface\");\r\n jQuery(\".js-message-end\", this.mc).hide();\r\n setTimeout(this.goBack.bind(this), 1500);\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n goBack() {\r\n this.cornholio.setAnimation(\"runflipped\");\r\n TweenMax.to(jQuery(\".js-cornholiio\", this.mc), 2, { left: \"-10%\", onComplete: this.endScenetteOk.bind(this), ease: Linear.easeNone });\r\n }\r\n\r\n\r\n zanZan() {\r\n this.karateka.pause();\r\n jQuery(\".js-karateka\", this.mc).hide();\r\n this.princess.setAnimation(\"hug\");\r\n\r\n }\r\n\r\n\r\n endScenetteOk() {\r\n this.showStats();\r\n }\r\n\r\n showStats() {\r\n jQuery(\".js-princess\", this.mc).hide();\r\n jQuery(\".js-sorry\", this.mc).hide();\r\n jQuery(\".js-message-stats\", this.mc).show();\r\n jQuery(\".js-bottom-stats\", this.mc).show();\r\n\r\n let savegame = Main.savegame;\r\n let a = savegame.data;\r\n let run = 0;\r\n let deaths = 0;\r\n let spears = 0;\r\n for (let x = 0; x < a.length; x++) {\r\n run += a[x].run;\r\n deaths += a[x].deaths;\r\n spears += a[x].spears;\r\n }\r\n jQuery(\".js-total-run\", this.mc).text(\"\" + run);\r\n jQuery(\".js-total-death\", this.mc).text(\"\" + deaths);\r\n jQuery(\".js-total-spears\", this.mc).text(\"\" + spears);\r\n jQuery(\".js-total-curses\", this.mc).text(\"\" + Pqp.rnd(10000, 2345));\r\n this.mc.on(\"click\", this.endScenette.bind(this, false));\r\n\r\n\r\n }\r\n\r\n\r\n\r\n}\r\nScreenGameOver.EVENT_ENDED = \"eventEnded\";\r\n\r\n\r\nScreenGameOver.CORNHOLIO = [\r\n {\r\n id: \"stand\",\r\n sheet: \"front\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 100 }\r\n ]\r\n },\r\n {\r\n id: \"run\",\r\n sheet: \"front\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 100 },\r\n { row: 0, col: 1, time: 100 },\r\n { row: 0, col: 2, time: 100 },\r\n ]\r\n },\r\n {\r\n id: \"runflipped\",\r\n sheet: \"front\",\r\n flip: true,\r\n frames: [\r\n { row: 0, col: 0, time: 100 },\r\n { row: 0, col: 1, time: 100 },\r\n { row: 0, col: 2, time: 100 },\r\n ]\r\n },\r\n {\r\n id: \"walk\",\r\n sheet: \"front\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 200 },\r\n { row: 0, col: 1, time: 200 },\r\n { row: 0, col: 2, time: 200 },\r\n ]\r\n },\r\n]\r\n\r\n\r\nScreenGameOver.SORRY = [\r\n {\r\n id: \"stand\",\r\n sheet: \"sorry\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 100 }\r\n ]\r\n },\r\n {\r\n id: \"speak\",\r\n sheet: \"sorry\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 150 },\r\n { row: 0, col: 1, time: 150 },\r\n ]\r\n },\r\n {\r\n id: \"trollface\",\r\n sheet: \"sorry\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 2, time: 150 }\r\n ]\r\n }\r\n]\r\n\r\nScreenGameOver.PRINCESS = [\r\n {\r\n id: \"stand\",\r\n sheet: \"girl\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 1, time: 1000 },\r\n { row: 0, col: 0, time: 100000 }\r\n ]\r\n },\r\n {\r\n id: \"preparehug\",\r\n sheet: \"girl\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 100 }\r\n ]\r\n },\r\n {\r\n id: \"hug\",\r\n sheet: \"girl\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 2, time: 200 },\r\n { row: 0, col: 3, time: 200 },\r\n { row: 0, col: 4, time: 500 },\r\n { row: 0, col: 5, time: 200 },\r\n { row: 0, col: 6, time: 1000 },\r\n { row: 0, col: 5, time: 200 },\r\n { row: 0, col: 4, time: 500 },\r\n { row: 0, col: 3, time: 200 },\r\n { row: 0, col: 2, time: 3000 },\r\n ]\r\n },\r\n]\r\n\r\nScreenGameOver.KARATEKA = [\r\n {\r\n id: \"run\",\r\n sheet: \"karateka\",\r\n flip: false,\r\n frames: [\r\n { row: 0, col: 0, time: 100 },\r\n { row: 0, col: 1, time: 100 },\r\n { row: 0, col: 2, time: 100 },\r\n { row: 0, col: 3, time: 100 },\r\n { row: 0, col: 4, time: 100 },\r\n { row: 0, col: 5, time: 100 },\r\n { row: 0, col: 6, time: 100 },\r\n { row: 0, col: 7, time: 100 }\r\n ]\r\n },\r\n]\r\n\r\n\r\n","//import Sounder from \"./Tools/sounder/Sounder\";\r\nimport Assets from \"./Tools/Assets\";\r\nimport Config from \"./Tools/Config\";\r\nimport Sprites from \"./Tools/Sprites\";\r\nimport ScreenStage from \"./ScreenStage\";\r\nimport Pqp from \"../3x1010/Pqp\";\r\nimport ScreenAttract from \"./ScreenAttract\";\r\nimport ScreenIntro from \"./ScreenIntro\";\r\nimport ScreenGameOver from \"./ScreenGameOver\";\r\nimport Sounder from \"../3x1010/sounder/Sounder\";\r\n\r\n\r\nexport default class Main {\r\n constructor() {\r\n this.totalPreload = Main.CONFIGS.length + Main.SHEETS.length;\r\n this.preloaded = 0;\r\n Main.that = this;\r\n\r\n }\r\n\r\n init() {\r\n this.loadSave();\r\n Main.CRT = Main.savegame.crt;\r\n Main.FLASH = Main.savegame.flash;\r\n Main.VOLUME = Main.savegame.volume;\r\n\r\n this.loadConfig();\r\n this.initSettings()\r\n this.initTurn();\r\n /*if (Pqp.isMobile()) {\r\n jQuery(window).on(\"touchstart.main\", this.disablePinch.bind(this));\r\n jQuery(window).on(\"touchmove.main\", this.disablePinch.bind(this));\r\n }*/\r\n }\r\n /*\r\n disablePinch(e) {\r\n if (e.originalEvent.touches.length > 1) {\r\n //alert(\"CIAO\")\r\n e.originalEvent.preventDefault();\r\n }\r\n\r\n }*/\r\n\r\n\r\n initSettings() {\r\n this.initVolume();\r\n this.initCrt();\r\n }\r\n\r\n initVolume() {\r\n\r\n jQuery(\".js-less-volume\").on(\"click\", this.lessVolume.bind(this))\r\n jQuery(\".js-more-volume\").on(\"click\", this.moreVolume.bind(this))\r\n }\r\n\r\n lessVolume() {\r\n Main.VOLUME--;\r\n if (Main.VOLUME < 0) {\r\n Main.VOLUME = Main.VOLUMES.length - 1;\r\n }\r\n this.applyVolume();\r\n }\r\n moreVolume() {\r\n Main.VOLUME++;\r\n if (Main.VOLUME === Main.VOLUMES.length) {\r\n Main.VOLUME = 0;\r\n }\r\n this.applyVolume();\r\n }\r\n\r\n applyVolume() {\r\n Main.savegame.volume = Main.VOLUME;\r\n Main.updateSavegame();\r\n let vol = Main.getCurrentVolume() * 100;\r\n if (vol === 0) {\r\n vol = \"OFF\"\r\n } else {\r\n vol = vol + \"%\";\r\n }\r\n jQuery(\".js-volume-value\").html(\"VOL. \" + vol)\r\n //Sounder.setAllVolume(Main.getCurrentVolume())\r\n //debugger\r\n this.sounder.setVolume(Main.getCurrentVolume())\r\n }\r\n\r\n static getCurrentVolume() {\r\n return Main.VOLUMES[Main.VOLUME] / 100;\r\n }\r\n\r\n initCrt() {\r\n jQuery(\".js-crt-control\").on(\"click\", this.toggleCrt.bind(this))\r\n this.applyCrt();\r\n jQuery(\".js-flash-control\").on(\"click\", this.toggleFlash.bind(this))\r\n this.applyFlash();\r\n }\r\n\r\n toggleCrt() {\r\n Main.CRT = !Main.CRT;\r\n this.applyCrt();\r\n }\r\n\r\n applyCrt() {\r\n Main.savegame.crt = Main.CRT;\r\n Main.updateSavegame();\r\n\r\n if (Main.CRT) {\r\n jQuery(\".js-crt-control\").text(\"< CRT ON >\")\r\n jQuery(\".to-crt\").addClass(\"crt\");\r\n } else {\r\n jQuery(\".js-crt-control\").text(\"< CRT OFF >\")\r\n jQuery(\".to-crt\").removeClass(\"crt\");\r\n }\r\n }\r\n\r\n toggleFlash() {\r\n Main.FLASH = !Main.FLASH;\r\n this.applyFlash();\r\n }\r\n\r\n applyFlash() {\r\n Main.savegame.flash = Main.FLASH;\r\n Main.updateSavegame();\r\n\r\n if (Main.FLASH) {\r\n jQuery(\".js-flash-control\").text(\"< BLINK ON >\")\r\n //this.set43();\r\n } else {\r\n jQuery(\".js-flash-control\").text(\"< BLINK OFF >\")\r\n //this.setNormal();\r\n }\r\n }\r\n\r\n set43() {\r\n jQuery(window).on(\"resize\", this.doSet43.bind(this));\r\n this.doSet43();\r\n }\r\n\r\n doSet43() {\r\n let rap = 640 / 400;\r\n let h = jQuery(window).height() * 0.96;\r\n let w = h * rap;\r\n jQuery(\".js-main\").height(h);\r\n jQuery(\".js-main\").width(w);\r\n \r\n }\r\n\r\n setNormal() {\r\n jQuery(window).off(\"resize\");\r\n jQuery(\".js-main\").removeAttr(\"style\");\r\n\r\n }\r\n\r\n\r\n loadConfig() {\r\n Config.load(Main.CONFIGS, this.configEventsHandlers.bind(this));\r\n }\r\n\r\n configEventsHandlers(e) {\r\n if (e.type === Config.EVENT_SINGLE_LOADED) {\r\n this.preloaded++;\r\n this.updatePreloader();\r\n }\r\n if (e.type === Config.EVENT_ALL_LOADED) {\r\n Assets.load(Main.SHEETS, this.assetsEventHandlers.bind(this));\r\n }\r\n\r\n }\r\n\r\n assetsEventHandlers(e) {\r\n if (e.type === Assets.EVENT_SINGLE_LOADED) {\r\n this.preloaded++;\r\n this.updatePreloader();\r\n }\r\n\r\n if (e.type === Assets.EVENT_ALL_LOADED) {\r\n\r\n\r\n setTimeout(this.pleaseWait.bind(this), 400)\r\n setTimeout(this.prepareSprites.bind(this), 500);\r\n }\r\n }\r\n\r\n pleaseWait() {\r\n jQuery(\".js-preloader-text\").text(\"PLEASE WAIT...\");\r\n }\r\n\r\n prepareSprites() {\r\n Sprites.init(this.spritesEventsHandler.bind(this));\r\n }\r\n\r\n updatePreloader() {\r\n let perc = Math.floor(this.preloaded / this.totalPreload * 100);\r\n jQuery(\".js-preloader-text\").text(\"LOADING \" + perc + \"%\");\r\n }\r\n\r\n\r\n spritesEventsHandler(e) {\r\n if (e.type === Sprites.EVENT_ALL_PREPARED) {\r\n\r\n let sounder = new Sounder(false, this.soundLoaded.bind(this));\r\n //let a = Game.THEMES_AND_SOUNDS;\r\n let a = Assets.getSounds();\r\n for (let x = 0; x < a.length; x++) {\r\n sounder.add(a[x].id, a[x].src);\r\n }\r\n sounder.init();\r\n this.sounder = sounder;\r\n sounder.setVolume(this.defaultVolume);\r\n \r\n // Assets.load({ id: \"theme0\", src: \"assets/sounds/themes/theme_ntsc.mp3\" }, this.startGame.bind(this));\r\n //Assets.load({ id: \"theme0\", src: \"assets/sounds/themes/theme_pal.mp3\" }, this.startGame.bind(this));\r\n //Assets.load({ id: \"theme0\", src: \"assets/sounds/themes/remakes/Lello Caliendo - Aztec challenge Evolution.mp3\" }, this.startGame.bind(this));\r\n }\r\n }\r\n\r\n soundLoaded(e) {\r\n //console.log(e)\r\n if (e.type == Sounder.ALL_SOUNDS_READY) {\r\n this.applyVolume();\r\n this.cacheImages();\r\n \r\n }\r\n \r\n\r\n }\r\n\r\n cacheImages() {\r\n let images = Assets.getImages();\r\n let div = jQuery(\"