{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///../node_modules/core-js/modules/es6.symbol.js","webpack:///../node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack:///../node_modules/core-js/modules/es6.reflect.get.js","webpack:///../node_modules/core-js/modules/_wks.js","webpack:///../node_modules/core-js/modules/_global.js","webpack:///../node_modules/core-js/modules/_is-object.js","webpack:///../node_modules/core-js/modules/_export.js","webpack:///../node_modules/core-js/modules/_has.js","webpack:///../node_modules/core-js/modules/es6.function.name.js","webpack:///../node_modules/core-js/modules/_hide.js","webpack:///../node_modules/core-js/modules/_object-dp.js","webpack:///../node_modules/core-js/modules/_descriptors.js","webpack:///../node_modules/core-js/modules/_to-iobject.js","webpack:///../node_modules/core-js/modules/_an-object.js","webpack:///../node_modules/core-js/modules/_fails.js","webpack:///../node_modules/core-js/modules/_uid.js","webpack:///../node_modules/core-js/modules/_redefine.js","webpack:///../node_modules/core-js/modules/_object-keys.js","webpack:///./scripts/objects/helpHand.js","webpack:///../node_modules/core-js/modules/_shared.js","webpack:///../node_modules/core-js/modules/_core.js","webpack:///../node_modules/core-js/modules/_library.js","webpack:///../node_modules/core-js/modules/_property-desc.js","webpack:///../node_modules/core-js/modules/_cof.js","webpack:///../node_modules/core-js/modules/_object-pie.js","webpack:///../node_modules/core-js/modules/_to-primitive.js","webpack:///../node_modules/core-js/modules/_iterators.js","webpack:///../node_modules/core-js/modules/_defined.js","webpack:///../node_modules/core-js/modules/_shared-key.js","webpack:///../node_modules/core-js/modules/_enum-bug-keys.js","webpack:///../node_modules/core-js/modules/_set-to-string-tag.js","webpack:///../node_modules/core-js/modules/_object-gopd.js","webpack:///../node_modules/core-js/modules/es6.array.sort.js","webpack:///./scripts/objects/pausePopup.js","webpack:///./scripts/objects/helpPopup.js","webpack:///../node_modules/core-js/modules/es6.array.iterator.js","webpack:///../node_modules/core-js/modules/_add-to-unscopables.js","webpack:///../node_modules/core-js/modules/_ie8-dom-define.js","webpack:///../node_modules/core-js/modules/_dom-create.js","webpack:///../node_modules/core-js/modules/_ctx.js","webpack:///../node_modules/core-js/modules/_a-function.js","webpack:///../node_modules/core-js/modules/_object-create.js","webpack:///../node_modules/core-js/modules/_object-keys-internal.js","webpack:///../node_modules/core-js/modules/_array-includes.js","webpack:///../node_modules/core-js/modules/_to-integer.js","webpack:///../node_modules/core-js/modules/_object-gpo.js","webpack:///../node_modules/core-js/modules/_to-object.js","webpack:///./scripts/scenes/splash-screen.js","webpack:///../node_modules/core-js/modules/_wks-define.js","webpack:///../node_modules/core-js/modules/_wks-ext.js","webpack:///../node_modules/core-js/modules/_object-gops.js","webpack:///../node_modules/core-js/modules/_object-gopn.js","webpack:///../node_modules/core-js/modules/web.dom.iterable.js","webpack:///../node_modules/core-js/modules/_iter-step.js","webpack:///../node_modules/core-js/modules/_iobject.js","webpack:///../node_modules/core-js/modules/_iter-define.js","webpack:///../node_modules/core-js/modules/_function-to-string.js","webpack:///../node_modules/core-js/modules/_iter-create.js","webpack:///../node_modules/core-js/modules/_object-dps.js","webpack:///../node_modules/core-js/modules/_to-length.js","webpack:///../node_modules/core-js/modules/_to-absolute-index.js","webpack:///../node_modules/core-js/modules/_html.js","webpack:///../node_modules/core-js/modules/es6.object.to-string.js","webpack:///../node_modules/core-js/modules/_classof.js","webpack:///../node_modules/core-js/modules/es7.object.values.js","webpack:///../node_modules/core-js/modules/_object-to-array.js","webpack:///../node_modules/webpack/buildin/global.js","webpack:///../node_modules/core-js/modules/_meta.js","webpack:///../node_modules/core-js/modules/_enum-keys.js","webpack:///../node_modules/core-js/modules/_is-array.js","webpack:///../node_modules/core-js/modules/_object-gopn-ext.js","webpack:///../node_modules/core-js/modules/_set-proto.js","webpack:///../node_modules/core-js/modules/es7.array.includes.js","webpack:///../node_modules/core-js/modules/es6.string.includes.js","webpack:///../node_modules/core-js/modules/_string-context.js","webpack:///../node_modules/core-js/modules/_is-regexp.js","webpack:///../node_modules/core-js/modules/_fails-is-regexp.js","webpack:///../node_modules/core-js/modules/_strict-method.js","webpack:///./scripts/objects/baseCharacter.js","webpack:///./scripts/objects/dressupCharacter.js","webpack:///./scripts/objects/simpleButton.js","webpack:///./scripts/objects/xyloButton.js","webpack:///./scripts/objects/baseScene.js","webpack:///./scripts/scenes/character-select.js","webpack:///./scripts/objects/carouselItem.js","webpack:///./scripts/objects/itemCarousel.js","webpack:///./scripts/objects/CharacterItem.js","webpack:///./scripts/scenes/dressup.js","webpack:///./scripts/scenes/title.js","webpack:///./scripts/config.js","webpack:///./scripts/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","has","DESCRIPTORS","$export","redefine","META","KEY","$fails","shared","setToStringTag","uid","wks","wksExt","wksDefine","enumKeys","isArray","anObject","isObject","toIObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$DP","$keys","gOPD","f","dP","gOPN","$Symbol","$JSON","JSON","_stringify","stringify","HIDDEN","TO_PRIMITIVE","isEnum","propertyIsEnumerable","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","this","a","it","D","protoDesc","wrap","tag","sym","_k","isSymbol","iterator","$defineProperty","$defineProperties","P","keys","length","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","IS_OP","TypeError","arguments","undefined","$set","configurable","set","G","W","F","es6Symbols","split","j","wellKnownSymbols","store","k","S","for","keyFor","useSetter","useSimple","defineProperties","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","replacer","$replacer","args","apply","valueOf","Math","setPrototypeOf","getPrototypeOf","target","propertyKey","desc","proto","receiver","USE_SYMBOL","window","self","Function","__g","core","hide","ctx","type","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","B","expProto","U","R","FProto","nameRE","match","e","IE8_DOM_DEFINE","O","Attributes","IObject","defined","exec","id","px","random","concat","toString","SRC","$toString","TPL","inspectSource","val","safe","isFunction","join","String","enumBugKeys","HelpHand","scene","x","y","bg","_this","_classCallCheck","_getPrototypeOf","add","existing","_assertThisInitialized","depth","offsetX","width","offsetY","height","startScaleX","scaleX","startScaleY","scaleY","startX","startY","targetX","targetY","bgWidth","bgHeight","emitter","Phaser","Events","EventEmitter","resetAnims","GameObjects","Image","animIndex","handTween","stop","anims","nextAnim","emit","anim","delay","moveHand","time","easing","tapHand","scaleHand","scale","_this2","actualX","actualY","tweens","targets","duration","ease","onComplete","handleAnimComplete","w","h","_this3","_this4","yoyo","_this5","animations","_get","version","copyright","__e","bitmap","writable","slice","fn","def","TAG","stat","pIE","aFunction","toObject","fails","$sort","sort","test","comparefn","PausePopup","popupGroup","cameras","main","setDepth","overlay","image","setOrigin","setDisplaySize","tint","alpha","paddingX","paddingY","active","title","bitmapText","setFontSize","playBtn","sprite","setInteractive","useHandCursor","on","handlePlayButtonDown","muteState","mute","muteBtn","handleMuteButtonDown","helpBtn","handleHelpButtonDown","Sprite","btnTween","setTexture","sound","onShown","onHidden","paused","newMute","toggleMute","HelpPopup","animData","screenX","screenY","steps","helpIdx","helpHand","nextHelp","setAnims","start","animate","addToUnscopables","step","Iterators","Array","iterated","kind","_t","_i","index","Arguments","UNSCOPABLES","ArrayProto","document","is","createElement","that","b","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","open","write","lt","close","Properties","arrayIndexOf","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","ceil","floor","isNaN","constructor","SplashScreen","_possibleConstructorReturn","pack","files","Scene","showCover","setupRotationHandling","setupiOS8BrowserCompatability","charData","load","json","bitmapFont","createRotateMessage","startedInPortrait","orientation","Scale","PORTRAIT","hideOrientationMessage","refresh","showOrientationMessage","LANDSCAPE","systems","game","device","os","iOS","iOSVersion","gameSize","baseSize","displaySize","resolution","gameResized","makeFullScreenMessage","makeFullScreenMessageBG","showProgressBar","spineData","cache","characters","dressupData","dressupConfig","titleConfig","sounds","soundConfig","characterSFX","helpConfig","soundsLength","cSound","variants","oggPath","file","mp3Path","audio","charSFXLength","q","loadAudioFromArray","vo","include","atlas","setPath","titleImagesLength","images","atlasLength","data","pixelRatio","spriteScaler","desktop","atlas_1x","key_1x","data_1x","spine","loadComplete","audioPaths","console","log","_this$textures$get$ge","textures","img","v","setCrop","_errorMsgDiv","$","append","iPad","css","background-image","hideNonFullScreenMessage","addClass","removeClass","scenes","sleep","previousMuteState","wake","body","scrollTop","documentElement","iPhone","lastHeight","innerHeight","isMinimalView","spec","deviceSpec","scrollTo","nonFullScreenMessage","innerWidth","nonFullScreenMessageBG","specs","screen","devicePixelRatio","LIBRARY","charAt","hiddenKeys","$iterators","getKeys","ITERATOR","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","NAME","explicit","Collection","done","cof","$iterCreate","BUGGY","returnThis","Base","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","descriptor","toInteger","min","max","classof","ARG","T","tryGet","callee","$values","isEntries","g","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","meta","NEED","fastKey","getWeak","onFreeze","gOPS","getSymbols","symbols","arg","windowNames","getWindowNames","check","buggy","__proto__","$includes","includes","context","searchString","indexOf","isRegExp","MATCH","re","method","BaseCharacter","character","skin","sfx","spineRef","idleAnims","idles","charActive","shuffle","ID","minIdleTime","maxIdleTime","idleCounter","randomRange","idleTime","Between","prevTimescale","spineChar","lastPlayedAnim","clickArea","setSkin","default","transform","container","frozen","canIdle","idleActive","off","posX","posY","dir","setPosition","direction","setScale","texBounds","getBounds","charWidth","size","charHeight","delta","updateIdle","arr","resetIdle","setTimescale","playAnimVariant","skinName","setSkinByName","attachments","skeleton","low","high","tScale","state","timeScale","mix","loop","returnToPrevious","setMix","currentAnim","setAnimation","track","getCurrent","getAnimationLength","addAnimation","playing","currentAnimation","idx","playAnim","playAnimSFX","play","volume","happy","celebrate","sad","characterID","toggleOn","timescale","removeAll","destroy","DressupCharacter","slotDefs","dressupCharacter_classCallCheck","dressupCharacter_getPrototypeOf","activeSlots","scaleMultiplier","dressupCharacter_assertThisInitialized","dancing","danceTime","danceCounter","giggling","giggleTime","giggleCounter","giggleIdx","clothes","pointer","handleCharacterClicked","initActiveSlots","slot","findSlot","setAttachment","trackTime","dressupCharacter_get","charScale","charScaleX","abs","charScaleY","displayWidth","displayHeight","slotItems","placedItems","itemScale","slotItem","freePlace","item","overrideSlot","attachment","addAttachmentAsSprite","noSprite","spriteName","spr","itemScaleX","itemScaleY","minDist","closestSlot","bone","boneX","worldX","boneY","worldY","dist","distance","getClosestSlot","x1","y1","x2","y2","sqrt","eyesOpen","spritePath","getImageFromRegion","itemPivot","itemHolder","itemName","boneAngle","getWorldRotationX","angle","freePlaceOnly","items","icon","_loop","getAt","itemIsFreeplace","fp","tweenX","tweenY","floorY","tweenAngle","characterGroup","easeParams","shake","immediate","toggleEyes","danceIdx","playDance","delayedCall","playHappy","callback","animateClothes","animation","startDance","getAnimationTime","dance","lastDanceAnim","danceAnim","giggleAnim","lastDanceLength","danceLength","slotName","attachmentName","freezeTime","offset","wiggleX","wiggleTween","moveTween","SimpleButton","simpleButton_classCallCheck","simpleButton_getPrototypeOf","blocked","btnSFX","simpleButton_assertThisInitialized","onPress","btnSfx","scX","scY","pressTween","simpleButton_get","XyloButton","callbackOnTing","group","xyloButton_classCallCheck","xyloButton_getPrototypeOf","startOffset","endOffset","dingY","startDingY","dinger","xyloButton_assertThisInitialized","animating","holderGroup","xyloButton_get","props","BaseScene","created","prevMute","localStorage","getItem","screenWidth","screenHeight","backgroundGroup","uiGroup","helpPopup","pausePopup","handleResumed","showHelp","pauseBtn","handlePaused","show","setItem","setMute","xyloButton","endEvent","bgEvent","togglePause","dt","updateCharacter","playIdle","clear","CharacterSelect","character_select_classCallCheck","character_select_possibleConstructorReturn","character_select_getPrototypeOf","character_select_get","freezeAnim","pressedXylophone","charSelected","simulateXlyophonePressed","count","charIndex","params","slots","setTransform","setSortOrder","populateSlots","freeze","outroDelay","playCelebrate","laughAtDressupCharacter","bgMusic","playOutro","animateOut","danceThenAnimateClothes","restartInteraction","canDance","animateIn","tapHandAtPoint","startGiggle","charID","char","toggleFreeze","handleCharacterSelected","cleanup","kill","CarouselItem","carouselItem_classCallCheck","carouselItem_getPrototypeOf","carouselItem_assertThisInitialized","initX","initY","itemDragging","setDragEvents","freeplace","itemID","isFreePlace","atlasPath","iconScale","texWidth","texHeight","iconWidth","iconHeight","dragTime","input","setDraggable","dragDistanceThreshold","gameObject","forceReturn","sqrDragDist","dragX","dragY","isDown","dropItem","returnTween","carouselItem_get","ItemCarousel","cWidth","cHeight","maxItems","padding","worldScale","itemCarousel_classCallCheck","itemCarousel_possibleConstructorReturn","itemCarousel_getPrototypeOf","itemDefs","setItems","itemNum","itemHeight","itemWidth","handleItemReleased","btnWidth","btnHeight","upButton","handleUpPressed","downButton","handleDownPressed","updateItems","newIndex","itemData","updateItem","toggleInteractive","toggleButtons","up","down","children","itemCarousel_get","CharacterItem","objID","CharacterItem_classCallCheck","CharacterItem_getPrototypeOf","CharacterItem_assertThisInitialized","itemDraggable","CharacterItem_get","Dressup","dressup_classCallCheck","dressup_possibleConstructorReturn","dressup_getPrototypeOf","dressup_get","carouselGroup","dressupScale","dressItems","checkForItems","itemSfxTrigger","itemCount","idleSFXIndex","canPlaySFX","idleSFX","idleVO","idleSounds","charSFX","sfxPath","voIdx","charRect","tickBtn","carousel","itemGroup","toggleBlocked","getSlotFromPosition","itemDef","pointInBounds","onItemPlaced","regions","region","tapped","itemX","itemY","itemPos","randomPointInBounds","addSprite","returnToCarousel","onSfxAvailable","newSprite","newSlot","newAttachment","splice","newX","newY","normPos","getNormalizedPosition","thisID","round","Date","now","spriteReleased","addItem","getChildren","shift","onEnd","remove","newPos","bounds","minX","minY","maxX","maxY","Title","title_classCallCheck","title_possibleConstructorReturn","title_getPrototypeOf","titleImages","sX","sY","logo","font","text","setCenterAlign","title_get","FIT","autoCenter","CENTER_BOTH","zoom","WEBGL","pixelArt","roundPixels","transparent","parent","canvasStyle","backgroundColor","clearBeforeRender","fps","physics","loader","path","plugins","plugin","SpineWebGLPlugin","sceneKey","boot","Game","config","__webpack_exports__"],"mappings":"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","file":"app-3be989e4e15f0142b832.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 54);\n","require('./_wks-define')('asyncIterator');\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","export default class HelpHand extends Phaser.GameObjects.Image {\n /**\n * A simple prefab (extended game object class), displaying a spinning\n * Phaser 3 logo.\n *\n * @extends Phaser.GameObjects.Image\n */\n constructor(scene, x, y, bg) {\n super(scene, x, y, 'hand');\n scene.add.existing(this);\n this.depth = 25;\n this.scene = scene;\n this.offsetX = this.width * 0.35;\n this.offsetY = this.height * 0.35;\n this.x += this.offsetX;\n this.y += this.offsetY;\n this.startScaleX = this.scaleX;\n this.startScaleY = this.scaleY;\n this.startX = this.x;\n this.startY = this.y;\n this.targetX = bg.x;\n this.targetY = bg.y;\n this.bgWidth = bg.width;\n this.bgHeight = bg.height;\n this.emitter = new Phaser.Events.EventEmitter();\n this.resetAnims();\n }\n\n resetAnims() {\n this.animIndex = 0;\n this.scaleX = 0;\n this.scaleY = 0;\n this.x = this.startX;\n this.y = this.startY;\n if (this.handTween !== undefined) {\n this.handTween.stop();\n this.handTween = undefined;\n }\n }\n\n setAnims(anims) {\n this.anims = anims;\n this.resetAnims();\n }\n\n start() {\n this.nextAnim();\n }\n\n handleAnimComplete() {\n if(this.anims !== undefined)\n {\n if (this.animIndex >= this.anims.length - 1) {\n this.emitter.emit('stepComplete');\n this.resetAnims();\n } else {\n this.animIndex = (this.animIndex + 1) % this.anims.length;\n }\n this.nextAnim();\n }\n else {\n this.resetAnims();\n }\n }\n\n nextAnim() {\n let anim = this.anims[this.animIndex];\n if (this.handTween !== undefined) {\n this.handTween.stop();\n this.handTween = undefined;\n }\n let delay = anim.delay !== undefined ? anim.delay : 0;\n if (anim.type === 'move') {\n this.moveHand(anim.target.x, anim.target.y, anim.time, anim.easing, delay);\n } else if (anim.type === 'tap') {\n this.tapHand(anim.time, anim.easing, delay);\n } else if (anim.type === 'scale') {\n this.scaleHand(anim.scale, anim.scale, anim.time, anim.easing, delay);\n }\n }\n\n moveHand(x, y, time, easing, d) {\n let actualX = this.targetX + x * this.bgWidth + this.offsetX;\n let actualY = this.targetY - y * this.bgHeight + this.offsetY;\n this.handTween = this.scene.tweens.add({\n targets: this,\n x: actualX,\n y: actualY,\n duration: time,\n ease: easing,\n delay: d,\n onComplete: () => {\n this.handleAnimComplete();\n }\n });\n }\n\n scaleHand(w, h, time, easing, d) {\n this.handTween = this.scene.tweens.add({\n targets: this,\n scaleX: this.startScaleX * w,\n scaleY: this.startScaleY * h,\n duration: time,\n ease: easing,\n delay: d,\n onComplete: () => {\n this.handleAnimComplete();\n }\n });\n }\n\n tapHand(time, easing, d) {\n this.handTween = this.scene.tweens.add({\n targets: this,\n scaleX: this.startScaleX * 0.85,\n scaleY: this.startScaleY * 0.85,\n duration: time,\n yoyo: true,\n ease: easing,\n delay: d,\n onComplete: () => {\n this.handleAnimComplete();\n }\n });\n }\n\n tapHandAtPoint(x,y)\n {\n let actualX = x+50;//this.targetX + x * this.bgWidth + this.offsetX;\n let actualY = this.targetY - y * this.bgHeight + this.offsetY;\n this.x = actualX;\n this.y = actualY+100;\n\n this.handTween = this.scene.tweens.add({\n targets: this,\n scaleX: this.startScaleX,\n scaleY: this.startScaleY,\n duration: 750,\n ease: \"Back.easeOut\",\n delay: 0,\n });\n this.handTween = this.scene.tweens.add({\n targets: this,\n scaleX: this.startScaleX * 0.85,\n scaleY: this.startScaleY * 0.85,\n duration: 200,\n ease: \"Quad.easeInOut\",\n delay: 750\n });\n this.handTween = this.scene.tweens.add({\n targets: this,\n scaleX: this.startScaleX,\n scaleY: this.startScaleY,\n duration: 200,\n ease: \"Quad.easeInOut\",\n delay: 950\n });\n this.handTween = this.scene.tweens.add({\n targets: this,\n scaleX: this.startScaleX*0,\n scaleY: this.startScaleY*0,\n duration: 750,\n ease: \"Back.easeIn\",\n delay: 1150,\n onComplete: () => {\n this.handleAnimComplete();\n }\n });\n }\n\n destroy() {\n if (this.handTween !== undefined) {\n this.handTween.stop();\n this.handTween = undefined;\n }\n this.scene = null;\n this.animations = null;\n super.destroy();\n }\n}\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = false;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = {};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","export default class PausePopup extends Phaser.GameObjects.Sprite {\n /**\n * A simple prefab (extended game object class), displaying a spinning\n * Phaser 3 logo.\n *\n * @extends Phaser.GameObjects.Sprite\n */\n constructor(scene, popupGroup) {\n let width = scene.cameras.main.width;\n let height = scene.cameras.main.height;\n super(scene, width / 2, height / 2, 'pause_popup');\n this.setDepth(20);\n this.overlay = scene.add.image(0, 0, 'white');\n this.overlay.setOrigin(0, 0);\n this.overlay.setDisplaySize(width, height);\n this.overlay.setDepth(this.depth - 1);\n this.overlay.tint = '#000000';\n this.overlay.alpha = 0;\n this.scene = scene;\n this.paddingX = 100;\n this.paddingY = 230;\n this.setOrigin(0.5);\n this.scaleX = 1.2;\n this.scaleY = 1.2;\n this.alpha = 0;\n this.active = false;\n this.emitter = new Phaser.Events.EventEmitter();\n\n popupGroup.add(this, true);\n\n this.title = scene.add.bitmapText(\n scene.cameras.main.width / 2,\n scene.cameras.main.height / 2 - 135,\n 'HelloHeadline',\n 'Paused'\n );\n let title = this.title;\n title.setFontSize(110);\n title.setOrigin(0.5);\n popupGroup.add(title);\n title.alpha = 0;\n title.setDepth(this.depth + 1);\n\n this.playBtn = scene.add.sprite(\n scene.cameras.main.width / 2,\n scene.cameras.main.height / 2 + 30,\n 'startBtn'\n );\n let playBtn = this.playBtn;\n playBtn\n .setInteractive({ useHandCursor: true })\n .on('pointerdown', () => this.handlePlayButtonDown());\n playBtn.alpha = 0;\n popupGroup.add(playBtn);\n playBtn.setDepth(this.depth + 1);\n\n let muteState = ('sound_' + (this.scene.mute === false ? 'on' : 'off'));\n // console.log(muteState);\n this.muteBtn = scene.add.sprite(\n scene.cameras.main.width / 2 - this.paddingX,\n scene.cameras.main.height / 2 + this.paddingY,\n muteState\n );\n let muteBtn = this.muteBtn;\n muteBtn\n .setInteractive({ useHandCursor: true })\n .on('pointerdown', () => this.handleMuteButtonDown());\n muteBtn.alpha = 0;\n popupGroup.add(muteBtn);\n muteBtn.setDepth(this.depth + 1);\n\n this.helpBtn = scene.add.sprite(\n scene.cameras.main.width / 2 + this.paddingX,\n scene.cameras.main.height / 2 + this.paddingY,\n 'helpBtn'\n );\n let helpBtn = this.helpBtn;\n helpBtn\n .setInteractive({ useHandCursor: true })\n .on('pointerdown', () => this.handleHelpButtonDown());\n helpBtn.alpha = 0;\n popupGroup.add(helpBtn);\n helpBtn.setDepth(this.depth + 1);\n }\n\n show(scene) {\n if (this.btnTween !== undefined) {\n this.btnTween.stop();\n this.btnTween = undefined;\n }\n this.muteBtn.setTexture('sound_' + (this.scene.sound.mute === false ? 'on' : 'off'));\n this.active = true;\n\n this.scaleX = 1.2;\n this.scaleY = 1.2;\n\n scene.tweens.add({\n targets: this.overlay,\n alpha: 0.5,\n ease: 'Cubic',\n duration: 150\n });\n\n this.btnTween = scene.tweens.add({\n targets: [this, this.title, this.playBtn, this.muteBtn, this.helpBtn],\n alpha: 1,\n scaleX: 1,\n scaleY: 1,\n ease: 'Cubic',\n duration: 150,\n // delay: 50,\n onComplete: this.onShown\n });\n }\n\n onShown() {\n if (this.emitter !== undefined) {\n this.emitter.emit('gamePaused');\n }\n }\n\n onHidden() { }\n\n hide(scene) {\n scene.tweens.add({\n targets: this.overlay,\n alpha: 0,\n ease: 'Cubic',\n duration: 150\n });\n\n if (this.btnTween !== undefined) {\n this.btnTween.stop();\n this.btnTween = undefined;\n }\n\n scene.tweens.add({\n targets: [this, this.title, this.playBtn, this.muteBtn, this.helpBtn],\n scaleX: 1,\n scaleY: 1,\n alpha: 0,\n ease: 'Cubic',\n duration: 150,\n onComplete: this.onHidden\n });\n this.active = false;\n }\n\n handlePlayButtonDown() {\n this.scene.paused = false;\n if (this.emitter !== undefined) {\n this.emitter.emit('gameResumed');\n }\n this.hide(this.scene);\n }\n\n handleMuteButtonDown() {\n let newMute = this.scene.mute === true ? false : true;\n this.scene.toggleMute(newMute);\n this.muteBtn.setTexture('sound_' + (this.scene.mute == false ? 'on' : 'off'));\n }\n\n handleHelpButtonDown() {\n // do something helpy\n this.hide(this.scene);\n this.emitter.emit('helpRequested');\n }\n\n destroy() {\n super.destroy();\n }\n}\n","import HelpHand from './helpHand';\n\nexport default class HelpPopup extends Phaser.GameObjects.Sprite {\n /**\n * A simple prefab (extended game object class), displaying a spinning\n * Phaser 3 logo.\n *\n * @extends Phaser.GameObjects.Sprite\n */\n constructor(scene, popupGroup, animData) {\n let width = scene.cameras.main.width;\n let height = scene.cameras.main.height;\n super(scene, width / 2, height / 2, 'help_popup');\n this.setDepth(20);\n this.overlay = scene.add.image(0, 0, 'white');\n this.overlay.setOrigin(0, 0);\n this.overlay.setDisplaySize(width, height);\n this.overlay.setDepth(this.depth - 1);\n this.overlay.tint = '#000000';\n this.overlay.alpha = 0;\n this.scene = scene;\n this.paddingX = 350;\n this.paddingY = 230;\n this.setOrigin(0.5);\n this.scaleX = 1.2;\n this.scaleY = 1.2;\n this.alpha = 0;\n this.active = false;\n this.emitter = new Phaser.Events.EventEmitter();\n\n popupGroup.add(this, true);\n const screenX = scene.cameras.main.width / 2;\n const screenY = scene.cameras.main.height / 2;\n this.title = scene.add.bitmapText(\n screenX,\n screenY - 185,\n 'HelloHeadline',\n 'How To Play'\n );\n let title = this.title;\n title.setFontSize(65);\n title.setOrigin(0.5);\n popupGroup.add(title);\n title.alpha = 0;\n title.setDepth(this.depth + 1);\n\n this.playBtn = scene.add.sprite(\n screenX + this.paddingX,\n screenY + this.paddingY,\n 'playBtn'\n );\n let playBtn = this.playBtn;\n playBtn\n .setInteractive({ useHandCursor: true })\n .on('pointerdown', () => this.handlePlayButtonDown());\n playBtn.alpha = 0;\n popupGroup.add(playBtn);\n playBtn.setDepth(this.depth + 1);\n\n this.bg = scene.add.image(screenX, screenY + 20, animData.steps[0].image);\n this.bg.setDepth(this.depth + 1);\n this.bg.alpha = 0;\n this.animData = animData;\n this.helpIdx = 0;\n this.helpHand = new HelpHand(scene, screenX, screenY + 150, this.bg);\n this.helpHand.emitter.on('stepComplete', () => this.nextHelp(), this);\n popupGroup.add(this.helpHand);\n this.helpHand.setDepth(this.depth + 2);\n this.helpHand.alpha = 1;\n\n }\n\n nextHelp() {\n this.bg.setTexture(this.animData.steps[this.helpIdx].image);\n this.helpHand.setAnims(this.animData.steps[this.helpIdx].anims);\n this.helpHand.start();\n this.helpIdx = (this.helpIdx + 1) % this.animData.steps.length;\n }\n\n show(scene, animate = true) {\n if (this.btnTween !== undefined) {\n this.btnTween.stop();\n this.btnTween = undefined;\n }\n\n this.active = true;\n this.helpIdx = 0;\n this.bg.setTexture(this.animData.steps[this.helpIdx].image);\n this.helpHand.setAnims(this.animData.steps[this.helpIdx].anims);\n this.helpHand.start();\n\n if (animate) {\n this.scaleX = 1.2;\n this.scaleY = 1.2;\n\n scene.tweens.add({\n targets: this.overlay,\n alpha: 0.5,\n ease: 'Cubic',\n duration: 150\n });\n\n this.btnTween = scene.tweens.add({\n targets: [this, this.title, this.playBtn, this.bg],\n alpha: 1,\n scaleX: 1,\n scaleY: 1,\n ease: 'Cubic',\n duration: 150,\n // delay: 50,\n onComplete: () => {\n this.onShown();\n }\n });\n } else {\n this.overlay.alpha = 0.5;\n this.alpha = 1;\n this.title.alpha = 1;\n this.playBtn.alpha = 1;\n this.bg.alpha = 1;\n this.scaleX = 1;\n this.scaleY = 1;\n this.onShown();\n }\n }\n\n onShown() {\n if (this.emitter !== undefined) {\n this.emitter.emit('gamePaused');\n }\n\n if (this.helpHand === undefined) {\n this.helpHand = new HelpHand(this.scene, screenX, screenY + 150, this.bg);\n }\n\n this.nextHelp();\n }\n\n onHidden() {\n this.helpHand.resetAnims();\n }\n\n hide(scene) {\n scene.tweens.add({\n targets: this.overlay,\n alpha: 0,\n ease: 'Cubic',\n duration: 150\n });\n\n if (this.btnTween !== undefined) {\n this.btnTween.stop();\n this.btnTween = undefined;\n }\n\n scene.tweens.add({\n targets: [this, this.title, this.playBtn, this.bg],\n scaleX: 1,\n scaleY: 1,\n alpha: 0,\n ease: 'Cubic',\n duration: 150,\n onComplete: () => {\n this.onHidden();\n }\n });\n this.active = false;\n }\n\n handlePlayButtonDown() {\n this.scene.paused = false;\n if (this.emitter !== undefined) {\n this.emitter.emit('gameResumed');\n }\n this.hide(this.scene);\n }\n\n destroy() {\n super.destroy();\n }\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","import PausePopup from '@/objects/pausePopup';\nimport HelpPopup from '../objects/helpPopup';\n\nexport default class SplashScreen extends Phaser.Scene {\n /**\n * Takes care of loading the main game assets, including textures, tile\n * maps, sound effects and other binary files, while displaying a busy\n * splash screen.\n *\n * @extends Phaser.Scene\n */\n constructor() {\n super({\n key: 'SplashScreen',\n\n // Splash screen and progress bar textures.\n pack: {\n files: [\n {\n key: 'splash-screen',\n type: 'image'\n },\n {\n key: 'progress-bar',\n type: 'image'\n },\n {\n key: 'progress-bg',\n type: 'image'\n }\n // {\n // type: 'scenePlugin',\n // key: 'SpineWebGLPlugin',\n // url: './plugins/spine/SpineWebGLPlugin.js',\n // sceneKey: 'spine'\n // }\n ]\n }\n });\n }\n\n /**\n * Show the splash screen and prepare to load game assets.\n *\n * @protected\n */\n preload() {\n // Display cover and progress bar textures.\n this.showCover();\n this.setupRotationHandling();\n this.setupiOS8BrowserCompatability();\n this.charData = [];\n\n // HINT: Declare all game assets to be loaded here.\n let dataPath = 'test_gameData.json';\n this.load.json('data', dataPath);\n this.load.bitmapFont(\n 'HelloHeadline',\n 'fonts/helloheadline.png',\n 'fonts/helloheadline.xml'\n );\n }\n\n setupRotationHandling() {\n this.createRotateMessage();\n this.startedInPortrait = (this.scene.scene.scale.orientation === Phaser.Scale.PORTRAIT);\n if (!this.startedInPortrait) {\n this.hideOrientationMessage();\n }\n this.scene.scene.scale.refresh();\n\n let that = this;\n this.scene.scene.scale.on('orientationchange', function (orientation) {\n if (orientation === Phaser.Scale.PORTRAIT) {\n that.showOrientationMessage();\n } else if (orientation === Phaser.Scale.LANDSCAPE) {\n that.hideOrientationMessage();\n }\n });\n }\n\n setupiOS8BrowserCompatability() {\n if (this.scene.systems.game.device.os.iOS) {\n if (this.scene.systems.game.device.os.iOSVersion === 8) {\n let that = this;\n this.scene.scene.scale.on('resize', function (gameSize, baseSize, displaySize, resolution) {\n that.gameResized();\n });\n\n this.makeFullScreenMessage();\n this.makeFullScreenMessageBG();\n this.gameResized();\n }\n else {\n this.scene.scene.scale.refresh();\n\n }\n }\n }\n\n create() {\n this.showProgressBar();\n this.scene.scene.scale.refresh();\n this.spineData = this.cache.json.get('data').spineData;\n this.charData = this.cache.json.get('data').characters;\n this.dressupData = this.cache.json.get('data').dressupConfig;\n this.titleConfig = this.cache.json.get('data').titleConfig;\n this.sounds = this.cache.json.get('data').soundConfig;\n this.characterSFX = this.cache.json.get('data').characterSFX;\n\n // this.load.image('logo');\n this.load.image('startBtn', 'play_btn_lrg.png');\n this.load.image('playBtn', 'play_btn_small.png');\n this.load.image('tickBtn', 'tick_btn_small.png');\n this.load.image('blank', 'blank.png');\n this.load.image('white', 'white.png');\n this.load.image('pauseBtn', 'pause_btn.png');\n this.load.image('pause_popup');\n this.load.image('help_popup');\n this.load.image('sound_on', 'sound_btn_on.png');\n this.load.image('sound_off', 'sound_btn_off.png');\n this.load.image('helpBtn', 'help_btn.png');\n this.load.image('hand', 'help_hand_white.png');\n // this.load.image('bg');\n this.load.image('btnUp', 'scroll_btn_up.png');\n this.load.image('btnDown', 'scroll_btn_down.png');\n this.load.image('gameBG', 'playroom_notoys.png');\n this.load.image('dressupBG', 'playroom_detail.png');\n this.load.image('bandit', 'bandit_static.png');\n this.load.image('bingo', 'bingo_static.png');\n this.load.image('xylo', 'magic_xylophone.png');\n this.load.image('dinger', 'dinger.png');\n this.load.image('carousel');\n this.load.image('zoom_bluey_bg');\n this.load.image('zoom_bingo_bg');\n this.load.image('zoom_dad_bg');\n\n this.helpConfig = this.cache.json.get('data').helpConfig;\n\n for (let p = 0; p < this.helpConfig.steps.length; p++) {\n this.load.image(this.helpConfig.steps[p].image);\n }\n\n let soundsLength = this.sounds.length;\n for (let m = 0; m < soundsLength; m++) {\n let cSound = this.sounds[m];\n if (cSound.variants !== undefined) {\n for (let n = 0; n < cSound.variants; n++) {\n let oggPath = 'sound/' + cSound.file + (n + 1) + '.ogg';\n let mp3Path = 'sound/' + cSound.file + +(n + 1) + '.mp3';\n this.load.audio(cSound.name + (n + 1), [oggPath, mp3Path]);\n }\n } else {\n let oggPath = 'sound/' + cSound.file + '.ogg';\n let mp3Path = 'sound/' + cSound.file + '.mp3';\n this.load.audio(cSound.name, [oggPath, mp3Path]);\n }\n }\n\n let charSFXLength = this.characterSFX.length;\n for (let q = 0; q < charSFXLength; q++) {\n let cSound = this.characterSFX[q];\n if (cSound.sounds !== undefined) {\n if (cSound.sounds !== undefined) {\n this.loadAudioFromArray(cSound.sounds);\n }\n if (cSound.vo !== undefined) {\n this.loadAudioFromArray(cSound.vo);\n }\n if (cSound.include !== undefined) {\n this.loadAudioFromArray(cSound.include);\n }\n\n }\n }\n\n this.load.atlas('items', 'spritesheets/magicxylo_items.png', 'spritesheets/magicxylo_items.json');\n this.load.atlas('freeplaceItems', 'spritesheets/magicxylo_items_place.png', 'spritesheets/magicxylo_items_place.json');\n //this.load.atlas('ui', ['spritesheets/magicxylo_ui1.png', 'spritesheets/magicxylo_ui2.png'], ['spritesheets/magicxylo_ui1.json', 'spritesheets/magicxylo_ui2.json'])\n // this.load.atlas('items', 'spritesheets/magicxylo_ui1.png', 'spritesheets/magicxylo_ui1.json');\n // this.load.atlas('items', 'spritesheets/magicxylo_ui2.png', 'spritesheets/magicxylo_ui2.json');\n\n this.load.setPath('assets/title');\n let titleImagesLength = this.titleConfig.images.length;\n for (let i = 0; i < titleImagesLength; i++) {\n this.load.image(this.titleConfig.images[i].name);\n }\n\n /* this.load.setPath('assets/items');\n let itemsLength = this.dressupData.items.length;\n // console.log('loading ' + itemsLength + ' item(s)');\n for (let j = 0; j < itemsLength; j++) {\n this.load.image('c_' + this.dressupData.items[j].icon);\n if (this.dressupData.items[j].type == 'sprite') {\n this.load.image(this.dressupData.items[j].region);\n } else if (this.dressupData.items[j].overrideSlot !== undefined) {\n this.load.image(this.dressupData.items[j].overrideSlot.sprite);\n }\n } */\n\n\n this.load.setPath('assets/spine');\n let atlasLength = this.spineData.length;\n for (let k = 0; k < atlasLength; k++) {\n /*console.log(\n 'loading spine char --> ' +\n this.spineData[k].data +\n ' from ' +\n this.spineData[k].atlas\n );*/\n\n let key = this.spineData[k].key;\n let a = this.spineData[k].atlas;\n let data = this.spineData[k].data;\n\n var pixelRatio = this.scene.systems.game.device.os.pixelRatio;\n window.spriteScaler = 1;\n if (pixelRatio <= 1 && !this.scene.systems.game.device.os.desktop) {\n window.spriteScaler = 3;\n a = this.spineData[k].atlas_1x;\n key = this.spineData[k].key_1x;\n data = this.spineData[k].data_1x;\n }\n\n this.load.spine(\n key,\n data,\n a\n );\n }\n\n this.load.on('complete', this.loadComplete, this);\n this.load.start();\n }\n\n loadAudioFromArray(audioPaths) {\n for (let p = 0; p < audioPaths.length; p++) {\n let oggPath = 'sound/' + audioPaths[p] + '.ogg';\n let mp3Path = 'sound/' + audioPaths[p] + '.mp3';\n this.load.audio(audioPaths[p], [oggPath, mp3Path]);\n }\n }\n\n loadComplete() {\n // this.uiGroup = this.add.group();\n // this.popupGroup = this.add.group();\n // this.helpConfig = this.cache.json.get('data').helpConfig;\n // window.helpPopup = new HelpPopup(this, this.popupGroup, this.helpConfig);\n // window.pausePopup = new PausePopup(this.scene, this.popupGroup);\n console.log('LOAD COMPLETE');\n this.scene.start('Title');\n }\n\n /**\n * Set up animations, plugins etc. that depend on the game assets we just\n * loaded.\n *\n * @protected\n */\n\n // ------------------------------------------------------------------------\n\n /**\n * Show the splash screen cover.\n *\n * @private\n */\n showCover() {\n this.add.image(0, 0, 'splash-screen').setOrigin(0);\n this.add.image(568, 320, 'progress-bg').setOrigin(0.5);\n }\n\n /**\n * Show the progress bar and set up its animation effect.\n *\n * @private\n */\n showProgressBar() {\n // Get the progress bar filler texture dimensions.\n const { width: w, height: h } = this.textures.get('progress-bar').get();\n\n // Place the filler over the progress bar of the splash screen.\n const img = this.add\n .sprite(568 - w / 2, 320, 'progress-bar')\n .setOrigin(0, 0.5);\n\n // Crop the filler along its width, proportional to the amount of files\n // loaded.\n this.load.on('progress', v => img.setCrop(0, 0, Math.ceil(v * w), h));\n }\n\n createRotateMessage() {\n let isDesktop = this.scene.systems.game.device.os.desktop;\n if (!isDesktop) {\n this._errorMsgDiv = $(\"
\");\n $('body').append(this._errorMsgDiv);\n if (this.scene.systems.game.device.os.iPad) {\n this._errorMsgDiv.css({\n 'background-image': \"url('orientation/orientation_ipad.jpg\" + \"')\",\n });\n }\n else {\n this._errorMsgDiv.css({\n 'background-image': \"url('orientation/orientation.jpg\" + \"')\",\n });\n }\n }\n }\n\n showOrientationMessage() {\n let version = this.scene.systems.game.device.os.iOSVersion;\n if (version === 8) {\n this.hideNonFullScreenMessage();\n }\n $('#rotateMessage').addClass('showMessage');\n $('#rotateMessage').removeClass('hideMessage');\n\n for (let i = 0; i < this.game.scene.scenes.length; ++i) {\n this.scene.sleep(this.game.scene.scenes[i].scene.key);\n }\n }\n\n hideOrientationMessage() {\n $('#rotateMessage').addClass('hideMessage');\n $('#rotateMessage').removeClass('showMessage');\n // $(this.game.canvas).show();\n if (this.previousMuteState) {\n this.previousMuteState = false;\n }\n for (let i = 0; i < this.game.scene.scenes.length; ++i) {\n this.scene.wake(this.game.scene.scenes[i].scene.key);\n }\n\n document.body.scrollTop = 0; // For Safari\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\n }\n\n //For iOS 8 - if the user touches the bottom 44px of the screen, it kicks them out of fullscreen mode.\n //SO! catch that case, and show a message to the user to swipe up to enter fullscreen again.\n gameResized() {\n if (!this.scene.systems.game.device.os.desktop) {\n if (this.scene.systems.game.device.os.iOS && this.scene.systems.game.device.os.iPhone) {\n if (this.scene.systems.game.device.os.iOSVersion <= 8) {\n if (this.scene.scene.scale.orientation === Phaser.Scale.LANDSCAPE) {\n if (this.lastHeight != window.innerHeight) {\n this.lastHeight = window.innerHeight;\n if (this.isMinimalView()) {\n // this.showNonFullScreenMessage();\n }\n else {\n this.scene.scene.scale.refresh();\n }\n }\n else {\n // this.hideNonFullScreenMessage();\n }\n }\n }\n }\n }\n }\n\n isMinimalView() {\n let spec = this.deviceSpec();\n if (spec !== undefined) {\n return (window.innerHeight !== spec[4]);\n }\n else {\n return false;\n }\n }\n\n showNonFullScreenMessage() {\n global.scrollTo(0, 0);\n\n $('#leftFullscreenMessage').removeClass('hideMessage');\n $('#fullscreenOverlay').removeClass('hideMessage');\n $('#leftFullscreenMessage').addClass('showMessage');\n $('#fullscreenOverlay').addClass('showMessage');\n\n this.nonFullScreenMessage.css({\n 'width': global.innerWidth + 'px',\n 'height': global.innerHeight * 2 + 'px',\n });\n this.nonFullScreenMessageBG.css({\n 'width': global.innerWidth + 'px',\n 'height': global.innerHeight + 'px',\n });\n for (let i = 0; i < this.game.scene.scenes.length; ++i) {\n this.scene.sleep(this.game.scene.scenes[i].scene.key);\n }\n }\n\n hideNonFullScreenMessage() {\n $('#leftFullscreenMessage').removeClass('showMessage');\n $('#fullscreenOverlay').removeClass('showMessage');\n $('#leftFullscreenMessage').addClass('hideMessage');\n $('#fullscreenOverlay').addClass('hideMessage');\n for (let i = 0; i < this.game.scene.scenes.length; ++i) {\n this.scene.wake(this.game.scene.scenes[i].scene.key);\n }\n }\n\n makeFullScreenMessage() {\n // var nonFullScreenMessage = $(\"

\"+\"Swipe Up\"+\"

\");\n // $(\"body\").append(nonFullScreenMessage);\n //\n // this.nonFullScreenMessage = nonFullScreenMessage;\n }\n\n makeFullScreenMessageBG() {\n var nonFullScreenMessageBG = $(\"
\");\n $('body').append(nonFullScreenMessageBG);\n\n this.nonFullScreenMessageBG = nonFullScreenMessageBG;\n }\n\n deviceSpec() {\n let index, spec;\n\n const specs = [\n [1280, 1762, 1920, 1280, 320, 480, 2, 'iPhone 4'],\n [1280, 2114, 2272, 1280, 320, 568, 2, 'iPhone 5 or 5s'],\n\n [1500, 2510, 2668, 1500, 375, 667, 2, 'iPhone 6'],\n // Equivalent to iPhone 5\n // [1280, 2114, 2272, 1280, 320, 568, 2, 'iPhone 6 (Zoomed)'],\n\n [1656, 2785, 2944, 1656, 414, 736, 3, 'iPhone 6 plus'],\n [1500, 2509, 2668, 1500, 375, 667, 3, 'iPhone 6 plus (Zoomed)'],\n\n [3072, 3936, 4096, 2912, 768, 1024, 1, 'iPad 2'],\n [3072, 3938, 4096, 2914, 768, 1024, 2, 'iPad Air or Retina'],\n\n [4096, 5306, 5464, 3938, 1024, 1366, 2, 'iPad Pro']\n ];\n\n index = specs.length;\n while (index--) {\n if (window.screen.width === specs[index][4] &&\n window.screen.height === specs[index][5] &&\n window.devicePixelRatio === specs[index][6]) {\n spec = specs[index];\n\n break;\n }\n }\n\n return spec;\n }\n}\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","var getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","export default class BaseCharacter extends Phaser.GameObjects.Image {\n /**\n * A simple prefab (extended game object class), displaying a spinning\n * Phaser 3 logo.\n *\n * @extends Phaser\n *\n *\n */\n\n constructor(scene, id, character, skin, animations, sfx) {\n super(scene, 0, 0, 'blank');\n // this.load.spine(character, json, atlas);\n this.spineRef = character;\n this.name = skin;\n this.animations = animations;\n this.idleAnims = animations.idles;\n this.charActive = true;\n this.shuffle(this.idleAnims);\n this.sfx = sfx;\n this.emitter = new Phaser.Events.EventEmitter();\n scene.add.existing(this);\n this.ID = id;\n this.minIdleTime = 1000;\n this.maxIdleTime = 3000;\n this.idleCounter = this.randomRange(0, this.maxIdleTime);\n this.idleTime = Phaser.Math.Between(this.minIdleTime, this.maxIdleTime);\n this.prevTimescale = 1;\n // console.log('creating character --> ' + skin + ' from ' + character);\n this.spineChar = scene.add.spine(0, 0, character, this.lastPlayedAnim, true);\n // this.spineChar.on('spine.complete', this.handleAnimComplete, this);\n this.clickArea = scene.add.image(0, 0, 'blank');\n this.clickArea.setOrigin(0.5, 1);\n this.setSkin(skin);\n this.lastPlayedAnim = animations.default;\n this.transform = scene.add.container(0, 0);\n let container = scene.add.container(0, 0, [this.spineChar, this.clickArea]);\n // this.setOrigin(0.5, 1);\n this.transform.add(container);\n this.frozen = false;\n this.canIdle = true;\n this.idleActive = true;\n this.charActive = true;\n }\n\n kill() {\n this.clickArea.off('pointerdown');\n }\n\n wrap(value) {\n return value % 360;\n }\n\n setTransform(posX, posY, scaleX, scaleY, dir) {\n var x = posX;\n var y = posY;\n\n this.transform.setPosition(x, y);\n\n // this.transform.setRandomPosition();\n this.direction = dir;\n this.spineChar.setScale(scaleX * this.direction, scaleY);\n this.texBounds = this.spineChar.getBounds();\n this.charWidth = this.texBounds.size.x * this.spineChar.scaleX;\n this.charHeight = this.texBounds.size.y * this.spineChar.scaleY;\n this.clickArea.setDisplaySize(this.charWidth, this.charHeight);\n }\n\n updateCharacter(time, delta, scene) {\n if (this.idleActive == true && this.frozen == false) {\n this.updateIdle(scene, delta);\n }\n }\n\n shuffle(arr) {\n arr.sort(() => Math.random - 0.5);\n }\n\n updateIdle(scene, delta) {\n if (this.idleCounter >= this.idleTime) {\n // do idle anim\n this.resetIdle();\n this.setTimescale(0.9, 1.1);\n this.playAnimVariant(scene, this.idleAnims, 'IDLE');\n\n } else {\n this.idleCounter += delta;\n }\n }\n\n setSortOrder(depth) {\n this.spineChar.depth = depth;\n }\n\n randomRange(min, max, round = false) {\n if (round) {\n return Phaser.Math.Between(min, max);\n } else {\n return Phaser.Math.Between(min * 100, max * 100) / 100;\n }\n }\n\n setSkin(skinName) {\n this.spineChar.setSkin(null);\n this.spineChar.setSkinByName(skinName);\n this.attachments = this.spineChar.skeleton.skin.attachments;\n }\n\n setTimescale(min, max) {\n let low = min * 100;\n let high = max * 100;\n let tScale = Phaser.Math.Between(low, high) / 100;\n this.spineChar.state.timeScale = tScale;\n }\n\n playAnim(scene, anim, mix, loop = false, returnToPrevious = true) {\n if (mix > 0) {\n this.spineChar.setMix(this.currentAnim, anim, mix);\n this.spineChar.setAnimation(0, anim, loop, 0);\n if (loop == false) {\n let track = this.spineChar.state.getCurrent(0);\n if (track !== undefined) {\n let delay = track.getAnimationLength();\n this.spineChar.setMix(anim, this.animations.default, mix);\n this.spineChar.addAnimation(0, this.animations.default, true, delay - mix);\n }\n\n }\n }\n\n this.playing = true;\n this.returnToPrevious = returnToPrevious;\n this.currentAnimation = anim;\n }\n\n playAnimVariant(scene, animations, /* debugTrace */) {\n\n let idx = Phaser.Math.Between(0, animations.length - 1);\n let anim = animations[idx];\n\n if (Array.isArray(animations)) {\n this.playAnim(\n scene,\n anim,\n 0.25,\n false,\n true // this.randomRange(0, this.animations.idles.length, true)\n );\n if (animations[idx].sfx !== undefined) {\n this.playAnimSFX(scene, animations[idx].sfx);\n }\n } else {\n this.playAnim(\n scene,\n anim,\n 0.25,\n false,\n true // this.randomRange(0, this.animations.idles.length, true)\n );\n }\n\n /* if (debugTrace !== undefined) {\n console.log(this.name + ' --> ' + debugTrace + ' --> playing ' + anim);\n } */\n }\n\n playAnimSFX(scene, sfx) {\n let idx = Phaser.Math.Between(0, sfx.length - 1);\n scene.sound.play(sfx[idx], { volume: 0.5 });\n }\n\n playHappy(scene) {\n this.resetIdle();\n this.setTimescale(0.9, 1.1);\n this.playAnimVariant(scene, this.animations.happy, 'HAPPY');\n }\n\n playCelebrate(scene) {\n this.resetIdle();\n this.playAnimVariant(scene, this.animations.celebrate, 'CELEBRATE');\n }\n\n playSad(scene) {\n this.resetIdle();\n this.playAnimVariant(scene, this.animations.sad, 'SAD');\n }\n\n togglePause(paused) {\n this.idleActive = paused ? false : this.canIdle;\n this.spineChar.state.timeScale = paused ? 0 : 1;\n }\n\n handleCharacterClicked() {\n if (this.charActive) { this.emitter.emit('characterClicked', this.characterID); }\n }\n\n resetIdle() {\n this.idleCounter = 0;\n this.idleTime = Phaser.Math.Between(this.minIdleTime, this.maxIdleTime);\n }\n\n toggleActive(toggleOn) {\n this.charActive = !toggleOn;\n if (this.charActive) {\n this.spineChar.state.timescale = this.prevTimescale !== undefined ? this.prevTimescale : 1;\n } else {\n this.prevTimescale = this.spineChar.state.timescale;\n this.spineChar.state.timescale = 0;\n }\n }\n\n destroy() {\n this.transform.removeAll();\n this.transform = null;\n this.spineChar.destroy();\n this.spineChar = null;\n this.emitter = null;\n this.animations = null;\n super.destroy();\n }\n}\n","import BaseCharacter from '@/objects/baseCharacter';\n\nexport default class DressupCharacter extends BaseCharacter {\n /**\n * A simple prefab (extended game object class), displaying a spinning\n * Phaser 3 logo.\n *\n * @extends Phaser\n *\n *\n */\n\n constructor(scene, id, character, skin, animations, sfx, slotDefs) {\n super(scene, id, character, skin, animations, sfx);\n this.slotDefs = slotDefs;\n this.dressupData = scene.cache.json.get('data').dressupConfig;\n this.currentAnim = this.animations.default;\n this.activeSlots = [];\n this.scaleMultiplier = 0.3;\n scene.add.existing(this);\n this.dancing = false;\n this.danceTime = 2300;\n this.danceCounter = 0;\n\n this.giggling = false;\n this.giggleTime = 0;\n this.giggleCounter = 0;\n this.giggleIdx = 0;\n\n this.frozen = false;\n this.clothes = scene.add.container(0, 0);\n this.clothes.setPosition(0, 0);\n this.clickArea\n .setInteractive({\n useHandCursor: true\n })\n .on(\n 'pointerdown',\n function (pointer) {\n this.handleCharacterClicked(this.ID, pointer);\n },\n this\n );\n\n this.initActiveSlots();\n\n }\n\n initActiveSlots() {\n for (let i = 0; i < this.slotDefs.length; i++) {\n if (Array.isArray(this.slotDefs[i])) {\n for (let j = 0; j < this.slotDefs[i].length; j++) {\n let slot = this.spineChar.skeleton.findSlot(this.slotDefs[i][j]);\n if (slot !== undefined && slot !== null) {\n this.setAttachment(this.slotDefs[i][j], null);\n this.activeSlots.push(slot);\n }\n }\n } else {\n let slot = this.spineChar.skeleton.findSlot(this.slotDefs[i]);\n if (slot !== undefined && slot !== null) {\n this.setAttachment(this.slotDefs[i], null);\n this.activeSlots.push(slot);\n }\n }\n }\n }\n\n kill() {\n this.clickArea.off('pointerdown');\n }\n\n freeze(scene, anim, time) {\n this.spineChar.addAnimation(0, anim, false);\n let track = this.spineChar.state.getCurrent(0);\n if (track !== undefined) {\n track.trackTime = time;\n this.spineChar.state.apply(this.spineChar.skeleton);\n this.spineChar.state.timeScale = 0;\n }\n // this.spineChar.state.setCurrentTime(time);\n }\n\n setTransform(posX, posY, scaleX, scaleY, dir) {\n super.setTransform(posX, posY, scaleX, scaleY, dir);\n this.charScale = scaleX;\n this.charScaleX = Math.abs(scaleX);\n this.charScaleY = Math.abs(scaleY);\n }\n\n\n randomPointInBounds() {\n let padding = 80;//100;\n let width = Math.abs(this.clickArea.displayWidth / 2);\n let height = this.clickArea.displayHeight;\n return {\n x:\n this.transform.x +\n Phaser.Math.Between(padding - width, width - padding),\n y: this.transform.y - Phaser.Math.Between(padding, height - padding)\n };\n }\n\n populateSlots(scene, slotItems, placedItems, itemScale) {\n this.activeSlots = slotItems;\n this.itemScale = itemScale;\n for (var i = 0; i < slotItems.length; i++) {\n let slotItem = slotItems[i];\n slotItem.freePlace = false;\n slotItem.name = slotItems[i].item;\n let overrideSlot = slotItem.overrideSlot;\n this.setAttachment(slotItem.slot, slotItem.attachment);\n if (overrideSlot === undefined) {\n this.addAttachmentAsSprite(scene, slotItem);\n } else if (overrideSlot.noSprite === false) {\n this.addAttachmentAsSprite(scene, slotItem, overrideSlot.spriteName);\n }\n }\n\n let scale = itemScale;//(this.charScale / this.scaleMultiplier);// * this.itemScale;\n for (var j = 0; j < placedItems.length; j++) {\n let spr = placedItems[j];\n let offsetX = spr.x * this.charWidth;\n let offsetY = spr.y * this.charHeight;\n let item = scene.add.image(\n this.transform.x + offsetX,\n this.transform.y + offsetY,\n 'freeplaceItems',\n spr.sprite + '.png'\n );\n\n item.freePlace = true;\n let itemScaleX = item.width * scale;\n let itemScaleY = item.height * scale;\n item.setDisplaySize(itemScaleX, itemScaleY);// *= scale;\n //item.displayHeight *= scale;\n this.clothes.add(item);\n }\n }\n\n handleCharacterClicked(id, pointer) {\n if (this.charActive) { this.emitter.emit('characterClicked', id, pointer); }\n }\n\n getNormalizedPosition(x, y) {\n let normX = (x - this.transform.x) / this.charWidth;\n let normY = (y - this.transform.y) / this.charHeight;\n return {\n x: normX,\n y: normY\n };\n }\n\n addItem(scene, item) {\n // let itemPivot = scene.add.container(item.x, item.y, [item]);\n // let itemHolder = scene.add.container(itemPivot.x, 0, [itemPivot]);\n this.clothes.add(item);\n }\n\n getClosestSlot(x, y) {\n let minDist = 100;\n let closestSlot = null;\n\n for (let i = 0; i < this.slotDefs.length; i++) {\n let bone = this.activeSlots[i].bone;\n let boneX = this.transform.x + bone.worldX * this.spineChar.scaleX;\n let boneY = this.transform.y - bone.worldY * this.spineChar.scaleY;\n let dist = this.distance(x, y, boneX, boneY);\n let attachment = this.activeSlots[i].attachment;\n if (attachment !== null && dist < minDist) {\n minDist = dist;\n closestSlot = this.slotDefs[i];\n }\n }\n\n return closestSlot;\n }\n\n getSlotFromPosition(x, y) {\n return this.getClosestSlot(x, y);\n }\n\n distance(x1, y1, x2, y2) {\n let a = x1 - x2;\n let b = y1 - y2;\n return Math.sqrt(a * a + b * b);\n }\n\n toggleEyes(eyesOpen) {\n // let eyeLeft = this.spineChar.skeleton.findSlot(\"Openeye_L\");\n // let eyeRight = this.spineChar.skeleton.findSlot(\"Openeye_R\");\n if (eyesOpen) {\n this.setAttachment('Openeye_L', 'Openeye_L');\n this.setAttachment('Openeye_R', 'Openeye_R');\n }\n else {\n this.setAttachment('Openeye_L', 'Openeye_L_empty');\n this.setAttachment('Openeye_R', 'Openeye_R_empty');\n }\n\n }\n\n addAttachmentAsSprite(scene, slotItem, spriteName) {\n\n let slot = this.spineChar.skeleton.findSlot(slotItem.slot);\n let bone = slot.bone;\n let boneX = this.transform.x + bone.worldX * this.spineChar.scaleX;\n let boneY = this.transform.y - bone.worldY * this.spineChar.scaleY;\n var item = null;\n if (spriteName !== undefined) {\n let spritePath = spriteName + '.png';\n item = scene.add.sprite(0, 0, 'freeplaceItems', spritePath);\n } else {\n\n item = this.spineChar.skeleton.atlas.getImageFromRegion(\n scene,\n slotItem.attachment\n );\n\n if (item == null) {\n item = this.spineChar.skeleton.atlas.getImageFromRegion(\n scene,\n slotItem.item\n );\n }\n }\n\n if (item != null) {\n let scale = this.charScale / this.scaleMultiplier;\n item.scaleX = scale * window.spriteScaler;\n item.scaleY = scale * window.spriteScaler;\n\n let itemPivot = scene.add.container(0, 0, [item]);\n let itemHolder = scene.add.container(0, 0, [itemPivot]);\n itemHolder.itemName = slotItem.item;\n itemHolder.freePlace = false;\n this.clothes.add(itemHolder);\n itemHolder.x = boneX;\n itemHolder.y = boneY;\n itemPivot.x = 0;\n itemPivot.y = 0;\n let boneAngle = bone.getWorldRotationX();\n\n itemPivot.angle = boneAngle;\n itemHolder.alpha = 0;\n }\n }\n\n wrap(value) {\n return value % 360;\n }\n\n animateClothes(scene, freePlaceOnly) {\n for (var i = 0; i < this.activeSlots.length; i++) {\n for (var j = 0; j < this.dressupData.items.length; ++j) {\n if (this.dressupData.items[j].icon === this.activeSlots[i].item) {\n if (!freePlaceOnly || this.dressupData.items[j].freePlace == 'true') {\n this.setAttachment(this.activeSlots[i].slot, null);\n }\n }\n }\n }\n this.clothes.depth = 5;\n\n for (var l = 0; l < this.clothes.length; l++) {\n let item = this.clothes.getAt(l);\n\n if (item != null) {\n let itemIsFreeplace = true;\n if (!item.freePlace) {\n for (var k = 0; k < this.dressupData.items.length; ++k) {\n if (this.dressupData.items[k].icon === item.itemName) {\n\n let fp = this.dressupData.items[k].freePlace == 'true' ? true : false;\n if (fp === undefined) {\n fp = false;\n }\n\n itemIsFreeplace = fp;\n }\n }\n }\n\n if (item.freePlace && freePlaceOnly || !freePlaceOnly || itemIsFreeplace) {\n\n item.depth = 0;\n // console.log('moving item from ' + item.x + ', ' + item.y);\n let dir = item.x - this.transform.x > 0 ? 1 : -1;\n let tweenX = item.x + dir * Phaser.Math.Between(100, 300);\n let tweenY = item.y - Phaser.Math.Between(50, 75);\n let floorY = this.transform.y;\n let tweenAngle = Phaser.Math.Between(-360, 360);\n item.alpha = 1;\n scene.characterGroup.add(item);\n scene.tweens.add({\n targets: item,\n x: tweenX,\n duration: 2000\n });\n scene.tweens.add({\n targets: item,\n y: tweenY,\n duration: 1000,\n ease: 'Cubic.easeOut'\n });\n scene.tweens.add({\n targets: item,\n y: floorY,\n duration: 1000,\n delay: 1000,\n ease: 'Bounce.easeOut',\n easeParams: [Phaser.Math.Between(100, 200) * 0.01]\n });\n scene.tweens.add({\n targets: item,\n angle: tweenAngle,\n duration: 1750,\n ease: 'Quad.easeOut'\n });\n scene.tweens.add({\n targets: item,\n alpha: 0,\n duration: 500,\n delay: 1750,\n onComplete: () => {\n item.destroy();\n }\n });\n }\n }\n }\n\n // scene.sound.play(this.sfx.shake);\n // this.togglePause(scene);\n this.spineChar.state.timeScale = 1;\n if (!freePlaceOnly) {\n this.playAnim(scene, this.animations.shake, 0.1, false, false);\n }\n }\n\n startMove(scene) {\n this.playAnim(scene, this.animations.default, 0.33, true);\n this.playing = true;\n //this.canIdle = true;\n }\n\n startDance(scene, immediate = true) {\n // let offset = Phaser.Math.Between(0, 3);\n this.dancing = true;\n this.idleActive = false;\n // this.giggling = false;\n this.canIdle = false;\n this.toggleEyes(false);\n this.danceIdx = 0;//Phaser.Math.Between(0, this.animations.dance.length - 1);\n if (immediate) {\n this.playDance(scene);\n }\n else {\n this.danceTime = 500;\n }\n }\n\n startGiggle(scene) {\n // let offset = Phaser.Math.Between(0, 3);\n this.dancing = false;\n this.idleActive = false;\n this.giggling = true;\n this.canIdle = false;\n this.giggleTime = 2000;\n this.giggleCounter = 0;\n this.giggleIdx = 0;//Phaser.Math.Between(0, this.animations.dance.length - 1);\n\n scene.time.delayedCall(Phaser.Math.Between(0, 500), () => {\n this.playHappy(scene, true);\n });\n }\n\n danceThenAnimateClothes(scene, callback) {\n // this.toggleFreeze();\n //this.startDance(scene);\n\n this.animateClothes(scene, true);\n\n let track = this.spineChar.state.getCurrent(0);\n if (this.idleAnims.includes(track.animation.name)) {\n this.startDance(scene);\n }\n else {\n this.dancing = true;\n this.danceIdx = 0;\n this.danceCounter = this.spineChar.state.getCurrent(0).getAnimationTime() / 0.001;\n this.danceTime = this.spineChar.state.getCurrent(0).getAnimationLength() / 0.001;\n }\n\n scene.time.delayedCall(4000, () => {\n this.dancing = false;\n this.animateClothes(scene);\n this.toggleEyes(false);\n });\n scene.time.delayedCall(6000, () => {\n this.startDance(scene);\n callback();\n });\n }\n\n updateCharacter(time, delta, scene) {\n super.updateCharacter(time, delta, scene);\n\n if (this.dancing == true && !this.giggling) {\n if (this.danceCounter >= this.danceTime) {\n if (this.animations.dance.length > 1) {\n this.danceIdx = (this.danceIdx + 1) % this.animations.dance.length;\n this.playDance(scene);\n }\n } else {\n this.danceCounter += delta;\n }\n }\n\n if (this.giggling == true) {\n if (this.giggleCounter >= this.giggleTime) {\n if (this.dancing) {\n // this.danceCounter = 0;\n // this.danceTime = 3000;\n this.giggling = false;\n }\n else {\n if (this.animations.happy.length > 1) {\n this.giggleIdx = (this.giggleIdx + 1) % this.animations.happy.length;\n this.playHappy(scene, true);\n }\n }\n } else {\n this.giggleCounter += delta;\n }\n }\n }\n\n playHappy(scene, loop) {\n var danceMix = 0.05;\n this.lastDanceAnim = this.danceAnim;\n this.giggleAnim = this.animations.happy[this.giggleIdx];\n this.playAnim(\n scene,\n this.giggleAnim,\n danceMix,\n false,\n false\n );\n\n if (this.sfx.hasOwnProperty(this.giggleAnim)) {\n scene.sound.play(this.sfx[this.giggleAnim]);\n }\n\n if (loop) {\n this.giggleTime = 2000 + Phaser.Math.Between(0, 500);\n this.giggleCounter = 0;\n this.giggling = true;\n }\n else {\n this.giggling = false;\n }\n // super.playHappy(scene);\n }\n\n playDance(scene) {\n var danceMix = 0.05;\n this.lastDanceAnim = this.danceAnim;\n this.danceAnim = this.animations.dance[this.danceIdx];\n this.playAnim(\n scene,\n this.danceAnim,\n danceMix,\n false,\n false\n );\n super.setTimescale(0.95, 1.05);\n this.lastDanceLength = this.danceLength;\n\n this.danceLength = (this.spineChar.state.getCurrent(0).getAnimationLength() + danceMix);\n if (this.lastDanceAnim !== undefined) {\n //console.log(this.name + ' --> DANCE --> from ' + this.lastDanceAnim + ' (' + this.lastDanceLength.toFixed(2) + ') to ' + this.danceAnim + ' (' + this.danceLength.toFixed(2) + ')');\n }\n this.danceTime = Phaser.Math.Between(0, 500) + this.danceLength / 0.001;\n this.danceCounter = 0;\n }\n\n randomRange(min, max, round = false) {\n if (round) {\n return Phaser.Math.Between(min, max);\n } else {\n return Phaser.Math.Between(min * 100, max * 100) / 100;\n }\n }\n\n setAttachment(slotName, attachmentName) {\n this.spineChar.skeleton.setAttachment(slotName, attachmentName);\n }\n\n\n toggleFreeze(/* scene */) {\n if (this.playing == true) {\n let track = this.spineChar.state.getCurrent(0);\n if (track !== undefined) {\n this.freezeTime = track.getAnimationTime();\n }\n this.spineChar.state.timeScale = 0;\n // this.moveTween.pause();\n this.dancing = false;\n this.frozen = true;\n // this.wiggle(scene);\n this.playing = false;\n this.toggleEyes(true);\n } else {\n this.spineChar.state.timeScale = 1;\n this.frozen = false;\n this.playing = true;\n this.toggleEyes(false);\n }\n }\n\n wiggle(scene) {\n let offset = 5 * this.direction;\n this.transform.x -= offset;\n let wiggleX = this.transform.x + offset;\n this.wiggleTween = scene.tweens.add({\n targets: this.transform,\n x: wiggleX,\n duration: 300,\n ease: 'Bounce.easeOut'\n });\n }\n\n destroy() {\n if (this.clothes != null) {\n for (var i = this.clothes.length - 1; i >= 0; i--) {\n if (this.clothes[i] != undefined) {\n this.clothes[i].destroy();\n this.clothes[i] = null;\n }\n }\n }\n this.clothes = null;\n this.moveTween = null;\n super.destroy();\n }\n}\n","export default class SimpleButton extends Phaser.GameObjects.Image {\n /**\n * A simple prefab (extended game object class), displaying a spinning\n * Phaser 3 logo.\n *\n * @extends Phaser\n */\n constructor(scene, x, y, image, callback) {\n super(scene, x, y, image);\n this.name = image;\n this.blocked = false;\n this.btnSFX = 'click';\n scene.add.existing(this);\n this.setOrigin(0.5);\n this.emitter = new Phaser.Events.EventEmitter();\n this.setInteractive({\n useHandCursor: true\n }).on('pointerdown', () => { if (this.blocked === false) { this.onPress(scene, callback); } }, this);\n }\n\n onPress(scene, callback) {\n if (this.btnSfx !== undefined) {\n scene.sound.play(this.btnSFX);\n }\n this.animate(scene, callback);\n }\n\n animate(scene, callback) {\n let scX = this.scaleX;\n let scY = this.scaleY;\n if (this.pressTween != null) {\n this.pressTween.stop();\n this.pressTween = null;\n }\n this.pressTween = scene.tweens.add({\n targets: this,\n scaleX: scX * 0.9,\n scaleY: scY * 0.9,\n duration: 50,\n yoyo: true,\n onComplete: () => callback()\n });\n }\n\n destroy() {\n if (this.pressTween != null) {\n this.pressTween.stop();\n this.pressTween = null;\n }\n super.destroy();\n }\n}\n","import SimpleButton from './simpleButton';\n\nexport default class XyloButton extends SimpleButton {\n /**\n * A simple prefab (extended game object class), displaying a spinning\n * Phaser 3 logo.\n *\n * @extends Phaser\n */\n constructor(scene, x, y, startY, callback, active, callbackOnTing, group) {\n super(scene, x, y, 'xylo', callback);\n this.startOffset = 100;\n this.endOffset = -150;\n this.btnSFX = undefined;\n this.dingY = y + this.startOffset;\n this.startDingY = startY+ this.startOffset;\n this.targetY = y - 100;\n\n this.callbackOnTing = callbackOnTing;\n this.dinger = scene.add.image(x + 170, this.dingY, 'dinger');\n // console.log(group);\n //console.log(this);\n group.add(this);\n this.depth = 10;\n group.add(this.dinger);\n this.dinger.depth = 11;\n this.dinger.setOrigin(0.5, 1);\n this.active = active;\n this.animating = false;\n this.blocked = false;\n this.holderGroup = group;\n }\n\n onPress(scene, callback) {\n //console.log('active? ' + this.active + ', blocked? ' + this.blocked);\n if (this.active === true && this.blocked === false) {\n if (this.callbackOnTing == true) {\n if (this.animating == false) {\n super.onPress(scene, callback);\n }\n } else {\n callback();\n }\n //\n }\n }\n\n animateIn(scene, callback) {\n this.animating = true;\n\n var tween = scene.tweens.add({\n targets:[this,this.dinger],\n y:'-=100',\n ease: 'Quad.easeInOut',\n duration: 100\n });\n\n this.dingY = this.startDingY - 100;\n\n this.pressTween = scene.tweens.add({\n targets: this.dinger,\n props: {\n angle: { value: -90, duration: 150, delay: 100, ease: 'Back.easeIn' },\n y: {\n value: this.dingY + this.endOffset,\n duration: 150,\n ease: 'Quad.easeOut',\n delay: 100\n }\n },\n\n onComplete: () => {\n scene.sound.play('ting');\n if (callback !== undefined) {\n callback();\n }\n this.pressTween = scene.tweens.add({\n targets: this.dinger,\n props: {\n angle: {\n value: 0,\n duration: 150,\n ease: 'Quad.easeInOut'\n },\n y: {\n value: this.dingY,\n duration: 150,\n ease: 'Quad.easeInOut'\n }\n },\n onComplete: () => {\n this.animating = false;\n }\n });\n }\n });\n }\n\n animateOut(scene, callback) {\n this.animating = true;\n\n var tween = scene.tweens.add({\n targets:[this,this.dinger],\n y:'+=100',\n ease: 'Quad.easeInOut',\n duration: 100,\n delay:1000\n });\n\n this.pressTween = scene.tweens.add({\n targets: this.dinger,\n props: {\n angle: { value: -90, duration: 150,delay:150, ease: 'Back.easeIn' },\n y: {\n value: this.dingY + this.endOffset,\n duration: 150,\n ease: 'Quad.easeOut',\n }\n },\n\n onComplete: () => {\n scene.sound.play('ting');\n if (callback !== undefined) {\n callback();\n }\n this.pressTween = scene.tweens.add({\n targets: this.dinger,\n props: {\n angle: {\n value: 0,\n duration: 150,\n ease: 'Quad.easeInOut'\n },\n y: {\n value: this.dingY,\n duration: 150,\n ease: 'Quad.easeInOut'\n }\n },\n onComplete: () => {\n this.animating = false;\n }\n });\n }\n });\n }\n}\n","import PausePopup from '@/objects/pausePopup';\nimport HelpPopup from '../objects/helpPopup';\n\nexport default class BaseScene extends Phaser.Scene {\n\n /**\n * A sample Game scene, displaying the Phaser logo.\n *\n * @extends Phaser.Scene\n */\n\n\n /**\n * Called when a scene is initialized. Method responsible for setting up\n * the game objects of the scene.\n *\n * @protected\n * @param {object} data Initialization parameters.\n */\n\n\n\n create(/* data */) {\n\n this.created = true;\n\n let prevMute = localStorage.getItem('mute');\n this.mute = prevMute !== undefined ? prevMute === 'true' : false;\n this.toggleMute(this.mute);\n this.paused = false;\n this.helpConfig = this.cache.json.get('data').helpConfig;\n this.characterGroup = this.add.group();\n this.screenWidth = this.cameras.main.width;\n this.screenHeight = this.cameras.main.height;\n let x = this.screenWidth;\n let y = this.screenHeight;\n this.backgroundGroup = this.add.group();\n this.uiGroup = this.add.group();\n this.popupGroup = this.add.group();\n this.bg = this.add.image(x / 2, y / 2, 'blank');\n this.bg.setOrigin(0.5, 0.5);\n this.bg.setDisplaySize(x, y);\n this.bg.setDepth(-5);\n this.characters = [];\n this.helpPopup = new HelpPopup(this, this.popupGroup, this.helpConfig);\n this.pausePopup = new PausePopup(this, this.popupGroup);\n this.pausePopup.emitter.on('gameResumed', this.handleResumed, this);\n this.helpPopup.emitter.on('gameResumed', this.handleResumed, this);\n this.pausePopup.emitter.on('helpRequested', this.showHelp, this);\n this.pauseBtn = this.add.image(x - 10, 10, 'pauseBtn');\n this.pauseBtn.setOrigin(1, 0);\n this.pauseBtn\n .setInteractive({ useHandCursor: true })\n .on('pointerdown', () => {\n if (this.paused === false) {\n this.handlePaused();\n if (this.pausePopup.active == false) {\n this.pausePopup.show(this);\n }\n }\n }, this);\n this.uiGroup.depth = 20;\n this.uiGroup.add(this.pauseBtn);\n this.popupGroup.depth = 30;\n\n this.toggleMute(this.mute);\n this.idleTime = 0;\n this.canIdle = true;\n }\n\n init() {\n }\n\n toggleMute(toggleOn) {\n this.mute = toggleOn;\n localStorage.setItem('mute', this.mute);\n this.sound.setMute(this.mute);\n }\n\n handlePaused() {\n this.paused = true;\n if (this.xyloButton !== undefined) {\n this.xyloButton.blocked = true;\n }\n if (this.endEvent !== undefined && this.endEvent !== null) {\n this.endEvent.paused = true;\n }\n if (this.bgEvent !== undefined && this.bgEvent !== null) {\n this.bgEvent.paused = true;\n }\n\n for (let i = 0; i < this.characters.length; i++) {\n this.characters[i].togglePause(true);\n }\n }\n\n handleResumed() {\n this.paused = false;\n\n if (this.xyloButton !== undefined) {\n this.xyloButton.blocked = false;\n }\n\n if (this.endEvent !== undefined) {\n this.endEvent.paused = false;\n }\n\n if (this.bgEvent !== undefined) {\n this.bgEvent.paused = false;\n }\n \n for (let i = 0; i < this.characters.length; i++) {\n this.characters[i].togglePause(false);\n }\n }\n\n showHelp(animate = true) {\n this.handlePaused();\n this.helpPopup.show(this, animate);\n }\n\n wrap(value, min, max) {\n if (value >= min && value <= max) {\n return value;\n } else if (value < min) {\n return max - (value - min);\n } else {\n return min + (value - max);\n }\n }\n\n /**\n * Called when a scene is updated. Updates to game logic, physics and game\n * objects are handled here.\n *\n * @protected\n * @param {number} t Current internal clock time.\n * @param {number} dt Time elapsed since last update.\n */\n update(t, dt) {\n if (this.paused === false && this.characters !== null) {\n for (var i = 0; i < this.characters.length; i++) {\n this.characters[i].updateCharacter(t, dt, this);\n }\n\n if (this.canIdle) {\n this.idleTime += dt;\n if (this.idleTime > 6000) {\n this.idleTime = 0;\n this.playIdle();\n }\n }\n }\n }\n\n playIdle() {\n\n }\n\n cleanup() {\n\n for (var i = this.characters.length - 1; i >= 0; i--) {\n this.characters[i].destroy();\n this.characters[i] = null;\n }\n this.characters = null;\n this.characterGroup.clear(true);\n this.characterGroup.destroy();\n // this.characterGroup = null;\n this.backgroundGroup.clear(true);\n this.backgroundGroup.destroy();\n // this.backgroundGroup = null;\n this.uiGroup.clear(true);\n this.uiGroup.destroy();\n // this.uiGroup = null;\n this.popupGroup.clear(true);\n this.popupGroup.destroy();\n // this.popupGroup = null;\n }\n}\n","import DressupCharacter from '@/objects/dressupCharacter';\nimport XyloButton from '../objects/xyloButton';\nimport BaseScene from '../objects/baseScene';\nimport HelpHand from '../objects/helpHand';\n\nexport default class CharacterSelect extends BaseScene {\n\n constructor() {\n super({\n key: 'CharacterSelect'\n });\n }\n\n /**\n * Called when a scene is initialized. Method responsible for setting up\n * the game objects of the scene.\n *\n * @protected\n * @param {object} data Initialization parameters.\n */\n\n init(data) {\n super.init(data);\n this.characterID = data.characterID;\n this.activeSlots = data.activeSlots;\n this.placedItems = data.placedItems;\n this.freezeAnim = data.freezeAnim;\n this.freezeTime = data.freezeTime;\n }\n\n create() {\n super.create();\n let x = this.screenWidth;\n let y = this.screenHeight;\n this.bg.setTexture('gameBG');\n this.bg.setOrigin(0.5, 0.5);\n // this.bg.setScale(1.3, 1.3);\n this.bg.setDisplaySize(x, y);\n this.bg.setDepth(-20);\n\n this.pressedXylophone = false;\n\n this.xyloButton = new XyloButton(\n this,\n x / 2,\n this.charSelected ? y - 10 : y + 80,\n y + 80,\n () => {\n this.simulateXlyophonePressed();\n },\n this.characterID === undefined,\n true,\n this.uiGroup,\n );\n\n if (this.charSelected) {\n this.bgEvent = this.time.delayedCall(3000, () => this.simulateXlyophonePressed());\n }\n\n // TODO: Replace this content with really cool game code here :)\n this.count = 0;\n this.charIndex = 0;\n this.characters = [];\n this.charSelected = false;\n\n let outroDelay = 500;\n let restartDelay = 2400;\n\n this.charData = this.cache.json.get('data').characters;\n this.dressupData = this.cache.json.get('data').dressupConfig;\n for (let i = 0; i < this.charData.length; i++) {\n let params = this.charData[i];\n if (params.type !== 'static') {\n let c = new DressupCharacter(\n this,\n i,\n params.spine, // the key of the object in cache\n params.skin,\n params.animations,\n params.sfx,\n params.slots\n );\n\n c.setTransform(\n params.posX, // X positon\n params.posY, // Y position\n params.scale,\n params.scale,\n params.direction\n );\n c.setSortOrder(-15);\n c.canIdle = false;\n c.idleActive = false;\n this.characterGroup.add(c);\n this.characters.push(c);\n\n\n if (this.characterID !== undefined) {\n if (i == this.characterID) {\n //let scale = (params.dressupScale / this.dressupData.scaleX) * (this.dressupData.itemScale / params.dressupScale);\n let scale = (this.dressupData.itemScale) / this.dressupData.scaleX; // (this.dressupData.scaleX * e));// * params.dressupScale;/\n\n console.log('dance item scale --> ' + scale);\n //console.log('char item scaling --> (' + (1 / params.dressupScale) + ' / ' + this.dressupData.scaleX + ') * ' + this.dressupData.itemScale + ' = ' + scale);\n c.populateSlots(this, this.activeSlots, this.placedItems, scale);\n c.freeze(this, this.freezeAnim, this.freezeTime);\n c.toggleEyes(true);\n // this.time.delayedCall(outroDelay, () => this.playOutro(c));\n } else {\n c.canIdle = true;\n c.idleActive = true;\n c.toggleEyes(false);\n c.resetIdle();\n this.time.delayedCall(outroDelay * 1.5, () => this.playCelebrate(c));\n\n }\n } else {\n this.setInteractive(c, true);\n this.xyloButton.blocked = true;\n this.showHelp(false);\n }\n }\n\n this.characterGroup.depth = 5;\n this.uiGroup.depth = 15;\n this.popupGroup.depth = 25;\n }\n\n this.characterSFX = this.cache.json.get('data').characterSFX;\n //this.mumSFX = this.characterSFX[this.characterSFX.length - 1].sounds;\n //this.mumSFX.sort(() => Math.random() - 0.5);\n\n\n if (this.characterID !== undefined) {\n this.xyloButton.active = true;\n }\n else {\n this.xyloButton.active = false;\n }\n\n this.helpHand = new HelpHand(this, this.x, this.y, this.bg);\n this.helpHand.setDepth(5);\n\n //console.log(this.characterID);\n if (this.characterID !== undefined) {\n // this.endEvent = this.time.delayedCall(restartDelay, () =>\n // this.laughAtDressupCharacter()\n // );\n this.laughAtDressupCharacter();\n this.canIdle = false;\n } else {\n this.bgMusic = this.sound.add('bgmusic', { loop: true, volume: 0.7 });\n this.bgMusic.play();\n this.canIdle = true;\n }\n this.toggleMute(this.mute);\n }\n\n simulateXlyophonePressed() {\n if (!this.pressedXylophone) {\n this.pressedXylophone = true;\n this.playOutro(this.characters[this.characterID]);\n this.xyloButton.active = false;\n }\n }\n\n playOutro(character) {\n this.xyloButton.animateOut(this, () => character.danceThenAnimateClothes(this, () => this.restartInteraction()));//character.animateClothes(this));\n }\n\n\n\n playCelebrate(character) {\n // character.idleActive = false;\n // character.canIdle = false;\n // character.resetIdle();\n // character.playHappy(this);//, character.animations.happy, 0.25, false, true);\n }\n\n setInteractive(c, canDance) {\n c.emitter.on(\n 'characterClicked',\n () => {\n if (this.paused === false) {\n if (this.charSelected === false) {\n this.canIdle = false;\n this.charSelected = true;\n this.xyloButton.animateIn(this, () => this.handleCharacterClicked(c.ID));\n this.xyloButton.active = false;\n }\n }\n },\n this\n );\n if (canDance) {\n c.startDance(this, false);\n }\n }\n\n restartInteraction() {\n for (let i = 0; i < this.characters.length; i++) {\n let c = this.characters[i];\n this.setInteractive(c, this.characterID == i ? false : true);\n }\n\n this.xyloButton.active = true;\n this.canIdle = true;\n this.idleTime = 0;\n }\n\n playIdle() {\n let i = Math.floor((Math.random() * this.characters.length));\n let c = this.characters[i];\n this.helpHand.tapHandAtPoint(c.transform.x, c.y);\n }\n\n laughAtDressupCharacter() {\n for (let i = 0; i < this.characters.length; i++) {\n let c = this.characters[i];\n if (this.characterID !== i) {\n c.startGiggle(this);\n }\n }\n //this.sound.play(this.mumSFX[0]);\n }\n\n handleCharacterClicked(charID) {\n // do something when character clicked\n this.bgEvent = undefined;\n for (var i = 0; i < this.characters.length; i++) {\n let char = this.characters[i];\n if (char.ID == charID) {\n char.toggleFreeze(/* this */);\n this.freezeAnim = char.animations.dance[\n char.danceIdx\n ];\n this.freezeTime = char.freezeTime;\n } else {\n //this.characters[i].stopMove();\n char.dancing = false;\n this.time.delayedCall(Phaser.Math.Between(0, 500), () => char.playHappy(this, false));\n }\n }\n //this.sound.play(this.mumSFX[Phaser.Math.Between(1, this.mumSFX.length - 1)], { volume: 0.75 });\n this.characterID = charID;\n this.endEvent = this.time.delayedCall(2500, () => this.handleCharacterSelected());\n }\n\n handleCharacterSelected() {\n this.scene.stop('CharacterSelect');\n this.scene.start('Dressup', {\n characterID: this.characterID,\n freezeAnim: this.freezeAnim,\n freezeTime: this.freezeTime,\n mute: this.mute\n });\n this.cleanup();\n }\n\n handleGameOver() {\n for (let i = 0; i < this.characters.length; ++i) {\n this.characters[i].kill();\n }\n }\n\n cleanup() {\n this.charData = null;\n this.bg.destroy();\n this.bg = null;\n super.cleanup();\n }\n}\n","export default class CarouselItem extends Phaser.GameObjects.Image {\n /**\n * A simple prefab (extended game object class), displaying a spinning\n * Phaser 3 logo.\n *\n * @extends Phaser\n */\n constructor(scene, x, y, item, scale, itemScale) {\n super(scene, x, y, 'blank');\n this.name = item;\n scene.add.existing(this);\n //let spritePath = this.name === '' ? 'blank' : this.name + '.png';\n\n this.item = scene.add.sprite(x, y, 'blank');\n // this.setOrigin(0.5);\n this.initX = x;\n this.initY = y;\n this.itemDragging = false;\n this.charScale = scale;\n this.itemScale = itemScale;\n this.blocked = false;\n this.emitter = new Phaser.Events.EventEmitter();\n this.setDragEvents(scene);\n }\n\n min(a, b) {\n if (a < b) {\n return a;\n } else {\n return b;\n }\n }\n\n updateItem(itemName, freeplace, id, w, h) {\n this.itemID = id;\n //console.log(spritePath);\n this.freePlace = freeplace;\n let isFreePlace = this.freePlace === true;\n let atlasPath = isFreePlace ? 'freeplaceItems' : 'items';\n let spritePath = isFreePlace ? itemName + '.png' : 'c_' + itemName + '.png';\n this.item.setTexture(atlasPath, spritePath);\n // this.setOrigin(0.5, 0.5);\n let iconScale = isFreePlace ? 0.75 : 1;\n this.texWidth = this.item.width * this.charScale * this.itemScale;\n this.texHeight = this.item.height * this.charScale * this.itemScale;\n /* let width = this.texWidth;\n let height = this.texHeight;\n let ratioX = w / width;\n let ratioY = h / height;\n let ratio = this.min(ratioX, ratioY) * 0.85; */\n this.iconWidth = this.item.width * iconScale;// * this.itemScale;\n this.iconHeight = this.item.height * iconScale;// * this.itemScale;\n //this.setDisplaySize(w, h);\n this.item.setDisplaySize(this.iconWidth, this.iconHeight);\n this.name = itemName;\n }\n\n update(time, delta) {\n if (this.itemDragging) {\n this.dragTime += delta;\n }\n }\n\n toggleInteractive(scene, toggleOn) {\n if (toggleOn) {\n this.setInteractive();\n scene.input.setDraggable(this);\n this.itemDragging = true;\n this.input.dragDistanceThreshold = 50;\n this.item.alpha = 1;\n } else {\n this.item.alpha = 0;\n }\n }\n\n setDragEvents(scene) {\n scene.input.on(\n 'dragstart',\n function (pointer, gameObject) {\n if (gameObject === this && this.blocked === false) {\n this.forceReturn();\n this.itemDragging = true;\n this.sqrDragDist = 0;\n // this.setDisplaySize(this.texWidth, this.texHeight);\n this.item.setDisplaySize(this.texWidth, this.texHeight);\n //console.log('sprite scaling --> ' + this.charScale);\n //console.log('sprite width --> ' + this.texWidth);\n }\n },\n this\n );\n scene.input.on(\n 'drag',\n function (pointer, gameObject, dragX, dragY) {\n if (gameObject === this) {\n if (pointer.isDown && this.blocked === false) {\n let x = this.x - dragX;\n let y = this.y - dragY;\n this.sqrDragDist += x * x + y * y;\n this.x = dragX;\n this.y = dragY;\n this.item.x = dragX;\n this.item.y = dragY;\n } else if (this.itemDragging === true) {\n this.dropItem();\n }\n }\n },\n this\n );\n\n scene.input.on(\n 'dragend',\n function (pointer, gameObject) {\n if (gameObject === this) {\n this.dropItem();\n }\n },\n this\n );\n }\n\n\n returnToCarousel() {\n /* if (tween == true) {\n this.returnTween = scene.tweens.add({\n targets: [this, this.item],\n x: this.initX,\n y: this.initY,\n duration: 250,\n ease: 'Quad.easeOut',\n onEnd: () => {\n //this.itemDragging = true;\n }\n });\n } else {\n this.forceReturn();\n } */\n this.itemDragging = false;\n this.forceReturn();\n }\n\n dropItem() {\n // gameObject.setDisplaySize(this.iconWidth, this.iconHeight);\n this.item.setDisplaySize(this.iconWidth, this.iconHeight);\n if (this.blocked === false) {\n this.emitter.emit(\n 'touchUp',\n { x: this.x, y: this.y },\n this\n );\n }\n }\n\n forceReturn() {\n if (this.returnTween != null) {\n this.returnTween.stop();\n this.returnTween = null;\n }\n this.x = this.initX;\n this.y = this.initY;\n this.item.x = this.initX;\n this.item.y = this.initY;\n }\n\n destroy() {\n if (this.returnTween != null) {\n this.returnTween.stop();\n this.returnTween = null;\n }\n\n if (this.emitter != null) {\n this.emitter.destroy();\n this.emitter = null;\n }\n\n if (this.item != null) {\n this.item.destroy();\n this.item = null;\n }\n\n super.destroy();\n }\n}\n","import CarouselItem from './carouselItem';\nimport SimpleButton from './simpleButton';\n\nexport default class ItemCarousel extends Phaser.GameObjects.Image {\n /**\n * A simple prefab (extended game object class), displaying a spinning\n * Phaser 3 logo.\n *\n * @extends Phaser\n */\n constructor(\n scene,\n bg,\n x,\n y,\n cWidth,\n cHeight,\n items,\n maxItems,\n padding,\n charScale,\n worldScale,\n itemScale\n ) {\n super(scene, x, y, bg);\n this.scene = scene;\n this.emitter = new Phaser.Events.EventEmitter();\n this.itemDefs = items;\n this.itemDefs.sort(() => Math.random() - 0.5);\n this.maxItems = maxItems;\n this.padding = padding;\n this.bg = scene.add.image(0, 0, bg);\n this.bg.setOrigin(0.5, 0.5);\n this.bg.setDepth(-4);\n this.displayHeight = cHeight - x;\n this.setDisplaySize(this.bg.displayWidth, cHeight);\n this.blocked = false;\n this.items = [];\n this.itemHolder = scene.add.group('items');\n this.charScale = charScale;\n this.worldScale = worldScale;\n this.itemScale = itemScale;\n this.setItems(scene);\n }\n\n setItems(scene) {\n this.index = 0;\n let padding = this.padding;\n let itemNum = this.maxItems + 1;\n let itemHeight = (this.displayHeight - this.padding / 2) / itemNum;\n let itemWidth = this.min(itemHeight, this.displayWidth);\n let x = this.x + itemWidth * 0.5;\n let initY = this.y; // this.displayHeight * 0.5 - itemHeight * (itemNum / 2) + itemHeight * 0.5;\n // this.bg.setDisplaySize(itemWidth + padding, itemHeight * this.maxItems);\n this.bg.setPosition(x, this.y + this.displayHeight * 0.5);\n\n let y = initY + itemHeight;\n for (var i = 0; i < this.maxItems; i++) {\n // let itemName = this.itemDefs[this.index + i].icon;\n let item = new CarouselItem(scene, x, y, '', this.worldScale, this.itemScale); // scene.add.image(itemX,itemY,itemName);\n // item.setOrigin(0.5, 0.5);\n item.setDisplaySize(itemWidth - padding, itemHeight - padding);\n item.emitter.on('touchUp', this.handleItemReleased, this);\n // item.setDepth(1);\n this.itemHolder.add(item);\n this.items.push(item);\n y += itemHeight;\n }\n\n let btnWidth = itemWidth - padding * 2;\n let btnHeight = itemHeight - padding * 2;\n this.upButton = new SimpleButton(\n scene,\n x,\n initY + padding * 3,\n 'btnUp',\n () => {\n if (this.blocked === false) { this.handleUpPressed(); }\n });\n this.upButton.setDisplaySize(btnWidth, btnHeight);\n this.downButton = new SimpleButton(\n scene,\n x,\n y - padding * 2.5,\n 'btnDown',\n () => {\n if (this.blocked === false) { this.handleDownPressed(); }\n });\n this.downButton.setDisplaySize(btnWidth, btnHeight);\n this.itemHeight = itemHeight;\n this.itemWidth = itemWidth;\n this.updateItems(0);\n }\n\n handleDownPressed() {\n this.updateItems(this.index + this.maxItems);\n }\n\n handleUpPressed() {\n this.updateItems(this.index - this.maxItems);\n }\n\n toggleBlocked(toggleOn) {\n this.blocked = toggleOn;\n for (let i = 0; i < this.items.length; i++) {\n this.items[i].blocked = this.blocked;\n }\n }\n\n updateItems(newIndex) {\n this.index = newIndex;\n for (var i = 0; i < this.maxItems; i++) {\n let idx = this.index + i;\n if (idx < this.itemDefs.length) {\n let itemData = this.itemDefs[this.index + i];\n let itemName = itemData.icon;\n this.items[i].updateItem(\n itemName,\n itemData.type === 'sprite',\n idx,\n this.itemWidth - this.padding,\n this.itemHeight - this.padding\n );\n this.items[i].alpha = 1;\n this.items[i].toggleInteractive(this.scene, true);\n } else {\n this.items[i].alpha = 0;\n this.items[i].toggleInteractive(this.scene, false);\n }\n }\n\n this.toggleButtons(\n newIndex - this.maxItems >= 0,\n newIndex + this.maxItems < this.itemDefs.length\n );\n }\n\n toggleButtons(up, down) {\n this.downButton.setInteractive(down);\n this.downButton.alpha = down ? 1 : 0;\n this.upButton.setInteractive(up);\n this.upButton.alpha = up ? 1 : 0;\n }\n\n handleItemReleased(pointer, item) {\n if (item.itemID < this.itemDefs.length) {\n this.emitter.emit('itemReleased', pointer, item);\n }\n }\n\n min(a, b) {\n if (a < b) {\n return a;\n } else {\n return b;\n }\n }\n\n destroy() {\n if (this.itemHolder.children !== undefined) {\n this.itemHolder.clear(true);\n this.itemHolder.destroy();\n }\n this.upButton.destroy();\n this.downButton.destroy();\n this.itemHolder = null;\n this.upButton = null;\n this.downButton = null;\n if (this.items != null) {\n for (var i = this.items.length - 1; i >= 0; i--) {\n this.items[i].destroy();\n this.items[i] = null;\n }\n }\n this.items = null;\n super.destroy();\n }\n}\n","export default class CharacterItem extends Phaser.GameObjects.Image {\n /**\n * A simple prefab (extended game object class), displaying a spinning\n * Phaser 3 logo.\n *\n * @extends Phaser\n */\n constructor(scene, x, y, item, id, objID, scale) {\n //super(scene, x, y, 'freeplaceItems', item + '.png');\n super(scene, x, y, 'freeplaceItems', item + '.png');\n this.name = item;\n this.itemID = id;\n this.objID = objID;\n scene.add.existing(this);\n this.setOrigin(0.5);\n this.setDepth(5);\n this.itemDraggable = false;\n this.charScale = scale;\n this.emitter = new Phaser.Events.EventEmitter();\n // this.depth = 100 + this.y;\n this.texWidth = this.width * this.charScale;// * this.charScale;\n this.texHeight = this.height * this.charScale;// * this.charScale;\n this.setDisplaySize(this.texWidth, this.texHeight);\n //this.width = this.width * scale;\n //this.height = this.height * scale;\n //console.log('sprite scaling --> ' + scale);\n //console.log('sprite width --> ' + this.displayWidth);\n }\n\n update(time, delta) {\n if (this.itemDraggable) {\n this.dragTime += delta;\n }\n }\n\n toggleInteractive(scene, toggleOn) {\n if (toggleOn) {\n this.setInteractive();\n scene.input.setDraggable(this);\n this.alpha = 1;\n scene.input.on(\n 'dragstart',\n function (pointer, gameObject) {\n if (gameObject === this) {\n let width = gameObject.width / 2;\n let height = gameObject.height / 2;\n if (pointer.x >= gameObject.x - width && pointer.x <= gameObject.x + width &&\n pointer.y >= gameObject.y - height && pointer.y <= gameObject.y + height) {\n gameObject.itemDraggable = true;\n gameObject.sqrDragDist = 0;\n }\n }\n },\n this\n );\n scene.input.on('drag', function (pointer, gameObject, dragX, dragY) {\n if (gameObject.itemDraggable === true) {\n let x = gameObject.x - dragX;\n let y = gameObject.y - dragY;\n gameObject.sqrDragDist += x * x + y * y;\n gameObject.x = dragX;\n gameObject.y = dragY;\n }\n });\n\n scene.input.on(\n 'dragend',\n function (pointer, gameObject) {\n if (gameObject === this && gameObject.itemDraggable) {\n gameObject.itemDraggable = false;\n gameObject.emitter.emit('touchUp', pointer, this);\n }\n },\n this\n );\n } else {\n this.alpha = 0;\n }\n }\n\n destroy() {\n if (this.emitter != null) {\n this.emitter.destroy();\n this.emitter = null;\n }\n\n super.destroy();\n }\n}\n","import DressupCharacter from '@/objects/dressupCharacter';\nimport ItemCarousel from '../objects/itemCarousel';\nimport CharacterItem from '@/objects/CharacterItem';\nimport XyloButton from '../objects/xyloButton';\nimport BaseScene from '../objects/baseScene';\nimport SimpleButton from '../objects/simpleButton';\n\nexport default class Dressup extends BaseScene {\n\n constructor() {\n super({\n key: 'Dressup'\n });\n }\n\n /**\n * Called when a scene is initialized. Method responsible for setting up\n * the game objects of the scene.\n *\n * @protected\n * @param {object} data Initialization parameters.\n */\n\n init(data) {\n super.init(data);\n this.characterID = data.characterID;\n this.freezeTime = data.freezeTime;\n this.freezeAnim = data.freezeAnim;\n\n }\n\n create() {\n super.create();\n let charData = this.cache.json.get('data').characters;\n this.dressupData = this.cache.json.get('data').dressupConfig;\n console.log(this.dressupData);\n this.characterSFX = this.cache.json.get('data').characterSFX;\n let x = this.screenWidth;\n let y = this.screenHeight;\n this.bg.setTexture(charData[this.characterID].bg);\n this.bg.setOrigin(0.5, 0.5);\n this.bg.setDisplaySize(x, y);\n this.bg.setDepth(-5);\n this.carouselGroup = this.add.group();\n this.itemScale = this.dressupData.itemScale;\n this.worldScale = charData[this.characterID].dressupScale;\n this.dressItems = this.dressupData.items;\n this.activeSlots = [];\n this.placedItems = [];\n let id = this.characterID;\n let c = new DressupCharacter(\n this,\n id,\n charData[id].spine, // the key of the object in cache\n charData[id].skin,\n charData[id].animations,\n charData[id].sfx,\n charData[id].slots\n );\n\n c.setTransform(\n x * 0.5, // X positon\n y * 0.85, // Y position\n charData[id].scale * this.dressupData.scaleX * this.worldScale * charData[id].direction,\n charData[id].scale * this.worldScale * this.dressupData.scaleY,\n 1\n );\n c.emitter.on('characterClicked', this.checkForItems, this);\n c.toggleEyes(true);\n\n this.itemSfxTrigger = 3;\n this.itemCount = 0;\n this.idleSFXIndex = 0;\n this.canPlaySFX = true;\n this.idleSFX = [];\n let idleVO = [];\n let idleSounds = [];\n for (let j = 0; j < this.characterSFX.length; j++) {\n let charSFX = this.characterSFX[j];\n if (charData[id].sfxPath !== charSFX.name) {\n for (let k = 0; k < charSFX.sounds.length; k++) {\n idleSounds.push(charSFX.sounds[k]);\n }\n for (let k = 0; k < charSFX.vo.length; k++) {\n idleVO.push(charSFX.vo[k]);\n }\n } else {\n if (charSFX.include !== undefined) {\n for (let k = 0; k < charSFX.include.length; k++) {\n idleVO.push(charSFX.include[k]);\n }\n }\n }\n }\n\n idleVO.sort(() => Math.random() - 0.5);\n idleSounds.sort(() => Math.random() - 0.5);\n let voIdx = 0;\n for (let k = 0; k < idleSounds.length; k++) {\n if (k % 2 == 0) {\n this.idleSFX.push(idleVO[voIdx]);\n voIdx = (voIdx + 1) % idleVO.length;\n }\n this.idleSFX.push(idleSounds[k]);\n }\n\n console.log(this.idleSFX);\n this.charRect = c.clickArea.getBounds();\n this.character = c;\n // this.xyloButton = new XyloButton(\n // this,\n // x / 2,\n // y - 10,\n // () => this.handleXyloButtonDown(),\n // true,\n // false,\n // this.uiGroup\n // );\n this.tickBtn = new SimpleButton(this, x - 80, y - 80, 'tickBtn', () =>\n this.handlePlayButtonDown()\n );\n\n this.carousel = new ItemCarousel(\n this,\n 'carousel',\n 80,\n 0,\n 320,\n y,\n this.dressItems,\n this.dressupData.maxItems,\n this.dressupData.padding,\n 0.45 * this.dressupData.scaleX,\n this.worldScale,\n this.dressupData.itemScale\n );\n this.carousel.emitter.on('itemReleased', this.handleItemReleased, this);\n this.carouselGroup.add(this.carousel);\n this.character.freeze(this, this.freezeAnim, this.freezeTime);\n this.itemGroup = this.add.group();\n /* this.setupInputEvents(); */\n }\n\n /* setupInputEvents() {\n this.input.on(\n 'dragstart',\n function (pointer, gameObject) {\n let dist = 1000;\n for (let i = 0; i < this.itemGroup.length; i++) {\n let item = this.itemGroup.getAt(i);\n let width = item.width / 2;\n let height = item.height / 2;\n let x = item.x - pointer.x;\n let y = item.y - pointer.y;\n let itemDist = x * x + y * y;\n console.log('itemDistance --> ' + itemDist + '/' + dist);\n if (itemDist < dist && (pointer.x >= item.x - width && pointer.x <= item.x + width &&\n pointer.y >= item.y - height && pointer.y <= item.y + height)) {\n item.itemDraggable = true;\n item.sqrDragDist = 0;\n dist = itemDist;\n this.draggingItem = item;\n }\n }\n }\n ,\n this\n );\n \n this.input.on('drag', function (pointer, gameObject, dragX, dragY) {\n if (this.draggingItem !== undefined && this.draggingItem.itemDraggable === true) {\n let x = this.draggingItem.x - dragX;\n let y = this.draggingItem.y - dragY;\n this.draggingItem.sqrDragDist += x * x + y * y;\n this.draggingItem.x = dragX;\n this.draggingItem.y = dragY;\n }\n });\n \n this.input.on(\n 'dragend',\n function (pointer, gameObject) {\n if (this.draggingItem !== undefined && this.draggingItem.itemDraggable) {\n this.draggingItem.itemDraggable = false;\n this.draggingItem.emitter.emit('touchUp', pointer, this);\n this.draggingItem = undefined;\n }\n },\n this\n );\n } */\n\n handlePaused() {\n super.handlePaused();\n this.tickBtn.blocked = true;\n this.carousel.toggleBlocked(true);\n }\n\n handleResumed() {\n super.handleResumed();\n this.tickBtn.blocked = false;\n this.carousel.toggleBlocked(false);\n }\n\n checkForItems(id, pointer) {\n let x = pointer.x;\n let y = pointer.y;\n let slot = this.character.getSlotFromPosition(x, y);\n if (slot !== null) {\n if (Array.isArray(slot)) {\n for (let i = 0; i < slot.length; i++) {\n this.setAttachment(null, slot[i], null);\n }\n } else {\n this.setAttachment(null, slot, null);\n }\n }\n }\n\n\n handleXyloButtonDown() {\n // eslint-disable-next-line no-console\n // console.log('Clicked!');\n this.scene.start('CharacterSelect', {\n characterID: this.characterID,\n activeSlots: this.activeSlots,\n placedItems: this.placedItems,\n freezeAnim: this.freezeAnim,\n freezeTime: this.freezeTime,\n mute: this.mute\n });\n this.cleanup();\n }\n\n handlePlayButtonDown() {\n this.scene.start('CharacterSelect', {\n characterID: this.characterID,\n activeSlots: this.activeSlots,\n placedItems: this.placedItems,\n freezeAnim: this.freezeAnim,\n freezeTime: this.freezeTime,\n mute: this.mute\n });\n this.time.delayedCall(100, this.cleanup);\n }\n\n handleItemReleased(pointer, item) {\n let itemDef = this.dressItems[item.itemID];\n let inBounds = this.pointInBounds(this.charRect, pointer);\n if (inBounds || item.sqrDragDist <= 5) {\n // item.toggleInteractive(this, false);\n // this.placedItems.push(item);\n this.onItemPlaced();\n if (itemDef.type === 'spine') {\n if (itemDef.slots !== undefined) {\n for (let i = 0; i < itemDef.slots.length; i++) {\n this.setAttachment(itemDef.icon, itemDef.slots[i], itemDef.regions[i], itemDef.overrideSlot);\n }\n } else {\n this.setAttachment(itemDef.icon, itemDef.slot, itemDef.region);\n }\n } else {\n let tapped = item.sqrDragDist <= 5;\n var itemX = pointer.x;\n var itemY = pointer.y;\n if (tapped) {\n var itemPos = this.character.randomPointInBounds();\n itemX = itemPos.x;\n itemY = itemPos.y;\n }\n this.addSprite(itemDef.icon, item.itemID, itemX, itemY, 0.65);\n }\n }\n // else {\n item.returnToCarousel();\n // }\n }\n\n onItemPlaced() {\n this.sound.play('pop');\n this.itemCount++;\n if (this.itemCount >= this.itemSfxTrigger && this.canPlaySFX) {\n this.itemCount = 0;\n this.sound.play(this.idleSFX[this.idleSFXIndex]);\n this.idleSFXIndex = (this.idleSFXIndex + 1) % (this.idleSFX.length);\n this.canPlaySFX = false;\n this.time.delayedCall(2000, () => this.onSfxAvailable(), this);\n }\n }\n\n onSfxAvailable() {\n this.canPlaySFX = true;\n }\n\n setAttachment(newSprite, newSlot, newAttachment, overrideSlot) {\n this.character.setAttachment(newSlot, newAttachment);\n if (this.activeSlots.length > 0) {\n for (var i = 0; i < this.activeSlots.length; i++) {\n if (this.activeSlots[i].slot === newSlot) {\n if (newAttachment !== null) {\n this.activeSlots[i].item = newSprite;\n this.activeSlots[i].attachment = newAttachment;\n if (overrideSlot !== undefined) {\n this.activeSlots[i].overrideSlot.noSprite = overrideSlot.slot !== newSlot;\n this.activeSlots[i].overrideSlot.spriteName = overrideSlot.sprite;\n }\n return;\n } else {\n this.activeSlots.splice(i, 1);\n return;\n }\n }\n }\n }\n\n if (overrideSlot !== undefined) {\n this.activeSlots.push({\n slot: newSlot,\n item: newSprite,\n attachment: newAttachment,\n overrideSlot: {\n noSprite: newSlot !== overrideSlot.slot,\n spriteName: overrideSlot.sprite\n }\n });\n } else {\n this.activeSlots.push({\n slot: newSlot,\n item: newSprite,\n attachment: newAttachment\n });\n }\n }\n\n addSprite(newSprite, id, newX, newY) {\n // console.log(newX + ', ' + newY + ' --> ');\n // console.log(normPos);\n var normPos = this.character.getNormalizedPosition(newX, newY);\n let thisID = Math.round(Date.now() * Math.random());\n let scale = this.worldScale * this.dressupData.itemScale;\n console.log('dressup item scale --> ' + scale);\n let sprite = new CharacterItem(this, newX, newY, newSprite, id, thisID, scale);\n sprite.emitter.on('touchUp', this.spriteReleased, this);\n sprite.toggleInteractive(this, true);\n sprite.freePlace = true;\n this.character.addItem(this, sprite);\n this.placedItems.push({\n sprite: newSprite,\n objID: thisID,\n x: normPos.x,\n y: normPos.y\n });\n this.itemGroup.add(sprite);\n if (this.placedItems.length >= 20) {\n var items = this.itemGroup.getChildren();\n let item = items[0];\n item.destroy();\n item = null;\n // this.itemGroup.remove(1, this.placedItems.length - 1);\n this.placedItems.shift();\n }\n }\n\n spriteReleased(pointer, sprite) {\n let inBounds = this.pointInBounds(this.charRect, pointer);\n if (inBounds == false) {\n this.tweens.add({\n targets: sprite,\n displayWidth: 0,\n duration: 200,\n ease: 'Back.easeIn',\n onEnd: () => {\n let thisID = sprite.objID;\n for (var i = 0; i < this.placedItems.length; i++) {\n let placedID = this.placedItems[i].objID;\n if (placedID == thisID) {\n this.itemGroup.remove(i);\n this.placedItems.splice(i, 1);\n sprite.destroy();\n return;\n }\n }\n }\n });\n } else {\n console.log(sprite.objID + ' repositioned');\n let newPos = { x: sprite.x, y: sprite.y };//{x: pointer.x, y: pointer.y }\n var normPos = this.character.getNormalizedPosition(newPos.x, newPos.y);\n let thisID = sprite.objID;\n for (var i = 0; i < this.placedItems.length; i++) {\n let placedID = this.placedItems[i].objID;\n if (placedID == thisID) {\n this.placedItems[i].x = normPos.x;\n this.placedItems[i].y = normPos.y;\n return;\n }\n }\n }\n }\n\n pointInBounds(bounds, pointer) {\n let x = pointer.x;\n let y = pointer.y;\n let minX = bounds.x;\n let minY = bounds.y;\n let maxX = bounds.x + bounds.width;\n let maxY = bounds.y + bounds.height;\n if (x < minX || x > maxX) {\n return false;\n } else if (y < minY || y > maxY) {\n return false;\n } else {\n return true;\n }\n }\n\n cleanup() {\n this.character.destroy();\n this.character = null;\n this.carousel.destroy();\n this.carousel = null;\n // this.xyloButton.destroy();\n // this.xyloButton = null;\n\n this.tickBtn.destroy();\n this.tickBtn = null;\n\n this.carouselGroup.clear(true);\n this.carouselGroup.destroy();\n this.carouselGroup = null;\n this.itemGroup.clear(true);\n this.itemGroup.destroy();\n this.itemGroup = null;\n this.activeSlots = null;\n this.placedItems = null;\n this.dressItems = null;\n this.dressupData = null;\n super.cleanup();\n }\n}\n","import SimpleButton from '../objects/simpleButton';\n\nexport default class Title extends Phaser.Scene {\n /**\n * My custom scene.\n *\n * @extends Phaser.Scene\n */\n constructor() {\n super({\n key: 'Title'\n });\n }\n\n /**\n * Called when this scene is initialized.\n *\n * @protected\n * @param {object} [data={}] - Initialization parameters.\n */\n init(/* data */) { }\n\n /**\n * Used to declare game assets to be loaded using the loader plugin API.\n *\n * @protected\n */\n preload() { }\n\n /**\n * Responsible for setting up game objects on the screen.\n *\n * @protected\n * @param {object} [data={}] - Initialization parameters.\n */\n create(/* data */) {\n const x = this.cameras.main.width;\n const y = this.cameras.main.height;\n this.titleImages = [];\n this.titleConfig = this.cache.json.get('data').titleConfig;\n let titleImagesLength = this.titleConfig.images.length;\n for (var i = 0; i < titleImagesLength; i++) {\n let sX = this.titleConfig.images[i].x;\n let sY = this.titleConfig.images[i].y;\n let scale = this.titleConfig.images[i].scale;\n let sprite = this.add.sprite(sX, sY, this.titleConfig.images[i].name);\n sprite.scaleX = scale;\n sprite.scaleY = scale;\n this.titleImages.push(sprite);\n }\n\n let logo = this.titleImages[this.titleImages.length - 1];\n let scX = logo.scaleX;\n let scY = logo.scaleY;\n logo.scaleX = 0;\n logo.scaleY = 0;\n this.tweens.add({\n targets: logo,\n scaleX: scX,\n scaleY: scY,\n easeParams: [0.9, 0.25],\n duration: 900,\n delay: 100,\n ease: 'Elastic.easeOut'\n });\n\n /* let playBtn = this.add.sprite(x / 2, y - 120, 'startBtn');\n playBtn\n .setInteractive({\n useHandCursor: true\n })\n .on('pointerdown', () => this.handlePlayButtonDown()); */\n\n let playBtn = new SimpleButton(this, x / 2, y - 120, 'startBtn', () =>\n this.handlePlayButtonDown()\n );\n playBtn.alpha = 0;\n this.tweens.add({\n targets: playBtn,\n alpha: 1,\n duration: 500,\n delay: 1000,\n ease: 'Quad.easeOut'\n });\n\n // this.cache.getBitmapFont(this.titleConfig.title.font).font.lineHeight = 5;\n let title = this.add.bitmapText(\n x / 2,\n 20 + y / 2,\n this.titleConfig.title.font,\n this.titleConfig.title.text\n );\n title.setFontSize(this.titleConfig.title.size);\n title.setCenterAlign();\n title.setOrigin(0.5);\n }\n\n handlePlayButtonDown() {\n\n this.scene.start('CharacterSelect');\n }\n\n /**\n * Handles updates to game logic, physics and game objects.\n *\n * @protected\n * @param {number} t - Current internal clock time.\n * @param {number} dt - Time elapsed since last update.\n */\n update(/* t, dt */) { }\n\n /**\n * Called after a scene is rendered. Handles rendenring post processing.\n *\n * @protected\n */\n render() { }\n\n /**\n * Called when a scene is about to shut down.\n *\n * @protected\n */\n shutdown() { }\n\n /**\n * Called when a scene is about to be destroyed (i.e.: removed from scene\n * manager). All allocated resources that need clean up should be freed up\n * here.\n *\n * @protected\n */\n destroy() {\n this.titleImages.destroy();\n this.titleImages = null;\n super.destroy();\n }\n}\n","/*\n * `config` module\n * ===============\n *\n * The game instance settings.\n */\n\n// Import created game scenes.\nimport * as scenes from '@/scenes';\n\n// HINT: Import plugins, custom or trusted third-party ones, here.\n// import ExamplePlugin from 'example-plugin';\n// import ExampleScenePlugin from '@/plugins/example-scene-plugin';\n// import SpineWebGLPlugin from './plugins/spine/SpineWebGLPlugin.js';\n\n/**\n * Game canvas width.\n */\nexport const width = 1136;\n\n/**\n * Game canvas height.\n */\nexport const height = 640;\n\nexport const scale = {\n mode: Phaser.Scale.FIT,\n autoCenter: Phaser.Scale.CENTER_BOTH,\n max: {\n width: 1136,\n height: 640\n }\n};\n\n/**\n * Adjust zoom factor.\n */\nexport const zoom = 1;\n\n/**\n * Adjust pixel density of game graphics.\n */\nexport const resolution = 1;\n\n/**\n * Choose a rendering method.\n *\n * Available options are:\n *\n * - `WEBGL`: Use WebGL rendering;\n * - `CANVAS`: Use 'context2D' API rendering method;\n * - `AUTO`: Phaser will choose, based on device capabilities, the best\n * rendering method to be used.\n */\nexport const type = Phaser.WEBGL;\n\n/**\n * Whether to disable antialiasing or not. Great for pixel art.\n */\nexport const pixelArt = false;\nexport const roundPixels = false;\n\n/**\n * Whether to enable canvas transparency or not.\n */\nexport const transparent = false;\n\nexport const parent = \"gameHolder\";\n\n/**\n * Apply some style to the canvas element.\n */\nexport const canvasStyle = 'display: block; margin: 0 auto;';\n\n/**\n * Define a default a background color.\n */\nexport const backgroundColor = '#000000';\n\nexport const clearBeforeRender = false;\n\nexport const fps = 20;\n\n/**\n * Configure physics engines global parameters.\n *\n * Available systems are:\n *\n * - `arcade`: Phaser Arcade Physics 2;\n * - `matter`: Liam Brummitt's (@liabru) Matter.js;\n * - `impact`: ImpactJS Physics Engine.\n */\nexport const physics = {\n /**\n * Phaser Arcade Physics 2 parameters.\n *\n * This engine becomes available under a `physics` property on game scenes.\n */\n // arcade: {\n // },\n\n /**\n * Matter.js parameters.\n *\n * This engine becomes available under a `matter` property on game scenes.\n */\n // matter: {\n // },\n\n /**\n * Impact Physics Engine parameters.\n *\n * This engine becomes available under a `impact` property on game scenes.\n */\n // impact: {\n // },\n\n /**\n * Enable a physics engine by default on all game scenes.\n */\n default: false\n};\n\n/**\n * Global parameters of the asset manager.\n */\nexport const loader = {\n // HINT: Put all your game assets in the `app/static/assets/` directory.\n path: 'assets/'\n};\n\n/**\n * Declare custom Phaser plugins.\n *\n * There are two kinds of plugins: Global Plugins and Scene Plugins.\n *\n * Global plugins are instantiated once per game and persist throughout the\n * whole session.\n *\n * Scene plugins are instantiated with each scene and are stored in the\n * `Systems` class, rather than the global plugin manager. Scene plugins are\n * tied to the scene life cycle.\n */\nexport const plugins = {\n global: [\n // {\n // // An identifier to associate this plugin instance within Phaser's\n // // plugin manager cache. It must be unique to avoid naming clashes\n // // with other plugins.\n // key: 'ExamplePlugin',\n //\n // // The imported plugin class.\n // plugin: ExamplePlugin,\n //\n // // The property name your plugin will be aliased to. This plugin\n // // will be exposed as a property of your scene context, for example,\n // // `this.myPlugin`.\n // mapping: 'myPlugin',\n //\n // // Whether to start up or not this plugin on game's initialization.\n // // If omitted or set to `false`, you must request the plugin manager\n // // to start up the plugin on a game scene using the method\n // // `this.plugins.start('')`.\n // start: true\n // },\n // {\n // key:'SpineWebGLPlugin',\n // plugin:SpineWebGLPlugin,\n // mapping:'spine',\n // start:true\n // }\n ],\n\n\n scene: [\n {\n key: 'SpineWebGLPlugin',\n plugin: SpineWebGLPlugin,\n start: true,\n sceneKey: 'spine'\n }\n ]\n};\n\n/**\n * Export the game title, version and Web address, as defined in the\n * project package metadata file (`package.json`).\n *\n * These properties can be accessed in the game configuration object\n * (`scene.sys.game.config`), under the keys `gameTitle`, `gameVersion` and\n * `gameURL`, respectively.\n */\nexport { title, version, url } from '@/../../package.json';\n\n/**\n * Export created game scenes.\n */\nexport const scene = Object.values(scenes);\n","/*\n * `app` module\n * ============\n *\n * Provides the game initialization routine.\n */\n\n// Import game instance configuration.\nimport * as config from '@/config';\n\n/**\n * Create a `Phaser.Game` instance and boot the game.\n */\nexport function boot() {\n return new Phaser.Game(config);\n}\n\nboot();\n"],"sourceRoot":""}